Files
bsky-social-app/assets/nano-icons/app-icons/heart.svg
T
Tomek Zawadzki 3606c48f02 Migrate feed and tab bar icons to react-native-nano-icons
react-native-svg materialises three native views per icon (SvgView + Group +
Path). Feed screens render around a thousand icons, so that is ~2400 views and
~2400 shadow nodes of pure overhead per profile load.

Move the 28 icons that repeat on feed screens - the post action bar, feed row
reason, post embeds, the loading skeleton and the bottom tab bar - to
react-native-nano-icons, which draws each icon as a single native text glyph.

The SVG sources are generated from the existing icon path data so the geometry
is unchanged, and `createNanoIcon` mirrors the `useCommonSVGProps` contract so
call sites are one-line import swaps.

Measured on a Samsung Galaxy A16 (SM-A165F, Android 16) with release builds,
10 runs per condition: native views -20.6%, icon construction -45.3%,
JS-thread CPU -6.1%, main-thread CPU -3.3%.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 19:45:04 +02:00

2 lines
596 B
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" clip-rule="evenodd" d="M16.734 5.091c-1.238-.276-2.708.047-4.022 1.38a1 1 0 0 1-1.424 0C9.974 5.137 8.504 4.814 7.266 5.09c-1.263.282-2.379 1.206-2.92 2.556C3.33 10.18 4.252 14.84 12 19.348c7.747-4.508 8.67-9.168 7.654-11.7-.541-1.351-1.657-2.275-2.92-2.557Zm4.777 1.812c1.604 4-.494 9.69-9.022 14.47a1 1 0 0 1-.978 0C2.983 16.592.885 10.902 2.49 6.902c.779-1.942 2.414-3.334 4.342-3.764 1.697-.378 3.552.003 5.169 1.286 1.617-1.283 3.472-1.664 5.17-1.286 1.927.43 3.562 1.822 4.34 3.764Z"/></svg>