React Native — info – Telegram
React Native — info
1.29K subscribers
77 photos
26 videos
9 files
235 links
@react_native_info — канал с качественным контентом об RN.

Все самое интересное о ReactNative, React, JS, TS и мобильной разработке.

По всем вопросам обращатся — @igroza @bobcatus
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Пользователь Twitter (запрещен в РФ) с ником @hanno_jg развлекается портированием физического движка C++ Box2D в react-native JSI-модуль с использованием shopify/react-native-skia для рендеринга.

Цель: создавать простые 2D-игры, используя Skia с отличным физическим движком.

@react_native_info
91🔥1
Компания Facebook (запрещена в РФ) открыла исходные тексты инструментария memlab, предназначенного для анализа срезов состояния динамически распределяемой памяти (кучи), определения стратегии оптимизации работы с памятью и выявления утечек памяти, возникающих при выполнении кода на языке JavaScript. Код открыт под лицензией MIT.

Фреймворк был создан для разбора причин большого потребления памяти при работе с web-сайтами и web-приложениями.

Например, с помощью memlab проводился анализ потребления памяти при использовании новой версии сайта Facebook.com, который позволил выявить утечки, приводившие к аварийному завершению браузера на стороне клиента из-за исчерпания свободной памяти.

Причинами утечек памяти при выполнении JavaScript-кода может быть наличие скрытых ссылок на объекты, из-за которых сборщик мусора не может высвободить занимаемую объектом память, неразумное кэширование значений или реализация бесконечной прокрутки без вытеснения старых элементов списка.

Основные возможности memlab:
Выявление утечек памяти в браузере. Memlab позволяет автоматически сравнивать слепки состояния динамической памяти, выявлять утечки памяти и агрегировать результаты.

Объектно-ориентированный API для перебора кучи, позволяющий воплощать собственные алгоритмы выявления утечек и реализовывать системы анализа слепков состояния кучи. Поддерживается анализ кучи для браузеров на основе движка Chromium, а также для платформ Node.js, Electron и Hermes.

Интерфейс командной строки и API для поиска возможностей по оптимизации использования памяти.

Система assert-ов для Node.js, позволяющая создавать unit-тесты и выполнять программы на базе Node.js для создания срезов собственного состояния, проверки своей памяти или написания расширенных assert-проверок.

@react_native_info
👍5🌚2
This media is not supported in your browser
VIEW IN TELEGRAM
Очень красивая и интерестная анимация сделанная на react-native.
Автор сделал две реализации, первая с использованием react-native-skia, вторая с использованием react-native-noscript.

Исходный код можно посмотреть на гит

@react_native_info
🔥12👍4🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
Голосовое управление для react-native приложения, реализовано с помощью react-native-voice/voice, выглядит очень эффектно, реализация достаточно примитивная и простая.

Реальный кейс:
В режиме разработки можно делать reload приложения, если распознать матеренные слова 😁

Исходный код можно посмотреть на гит

@react_native_info
🤣63👍3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Remotion — это фреймворк для создания видео с помощью React.js!

Да-да, вам не показалось, теперь крутые и стильные видео можно верстать на реакте!

Также если интерестно, то можно посмотерть уже готовые use-case: remotion.dev/showcase

@react_native_info
🤩7🍓2🤨1
Вышла новая бета-версия TypeScript v4.9, в которой представлен новый оператор satisfies (в переводе с английского "удовлетворяет").

Оператор satisfies позволяет проверить удовлетворяет ли переменная какому-либо типу, но не присвает этот тип для переменной.

@react_native_info
🔥12🤔43
Привет товарищи! Что-то рускоговорящем сегменте совсем нету никаких эвентов для react-native, есть у кого-то желание организивать что-то интерестное в формате хакатона или собраться с докладами о своих достижениях в решении интерестных кейсов и сложных задач в react-native, да и просто поделиться опытом?

Предлагайте варианты в коментарии и высказывайте свое мнение по этому поводу 😉

@react_native_info
👍5🔥3🤨2
Под капотом у Mobx. Пишем свою реактивную библиотеку с нуля

Автор данной статьи описывает процесс написания копии Mobx с нуля, с интеграцией для React через собственно написанный HOC observer. В конце у вас будет общее понимание реактивности, которое поможет в самостоятельном осмыслении не только Mobx, но и других реактивных библиотек и фреймворков.

@react_native_info
🔥7🤨2🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
Ребята из Software Mansion готовят новый релиз reanimated2, где будут представлены новый хуки useAnimatedKeyboard и useFrameCallback.

Хуки уже доступны в @next версии пакета и их может попробовать каждый желающий.
Стоит обратить внимание на то что для Android хук useAnimatedKeyboard помечен как эксперементальная фича и иногда может работать нестабильно.

useAnimatedKeyboard будет предоставлять доступ к SharedValue переменным height и state:
height – хранит текущее значение высоты клавиатуры;
state – хранит одно из значений енама { CLOSED, OPEN, CLOSING, OPENING };

useFrameCallback позволяет запускать фрагмент кода при каждом обновлении фрейма.

У данного хука есть два аргумента, callback функция и autostart флаг.
При каждом вызове вашей callback функции в нее будут приходить следущие аргументы:
✓ timestamp: number – системное время (в миллисекундах), когда был отрендерен последний кадр;
timeSincePreviousFrame: number | null – время (в миллисекундах) с момента последнего кадра. Это значение будет null в первом кадре после активации хука. Начиная со второго кадра должно быть ~16 мс на 60 Гц или ~8 мс на 120 Гц дисплеях (когда нет задержки);
timeSinceFirstFrame: number – время (в миллисекундах) с момента последнего вызова вашей callback функции;

Хук возвращает объект FrameCallback, для управления состоянием вашей callback функции и имеет следущие параметры:
setActive: (isActive: boolean) => void – начинает/останавливает прослушивание обновлений кадров;
isActive: boolean – указывает, активен ли обратный вызов (true) или нет (false);
callbackId: number – уникальный идентификатор функции обратного вызова;

В видео реализован пример из документации к useAnimatedKeyboard

@react_native_info
🔥102🤯2
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный кейс анимации на react-native с использованием useAnimatedSensor из reanimated2.

Исходный код можно посмотреть на гит

@react_native_info
5🔥2👍1🤩1
Skia — высокопроизводительная 2D графика для React Native

Автор данной статьи кратко описывает основные возможности Skia в react-native. В статье очень много примеров кода с картинками того что должно получиться.

@react_native_info
🔥72👍2
ВКонтакте пропал из эпл стора.

Также удалены другие приложения этой экосистемы: VK Музыка, VK Клипы и VK Мессенджер, VK Play и VK Админ и почта Mail․ru.

@react_native_info
👍5💩4😱3🌚3
React Native недавно достиг 1 миллиона загрузок в неделю на npm 🎉

@react_native_info
🎉16👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Пользователь GitHub под ником lklima реализовал приложение Rive из этого SwiftUI курса на react-native (expo).

Все анимации выполнены с помощью reanimated2 и rive.

Исходный код можно посмотреть на гит

@react_native_info
🔥214🤩2
Руководство по Supabase

Supabase — это альтернатива Firebase с открытым исходным кодом, предоставляющая все базовые функции, необходимые для создания продукта.

@react_native_info
👍5🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
Энтузиаст создал красивую анимацию покемона volcarona на react-native с использованием хука useAnimatedSensor из reanimated2.

Исходный код можно посмотреть на гит

@react_native_info
🔥123👍2
Ребята из Callstack подготовили отличный пример реализации Fabric библиотеки с использованием C++ стэйта для react-native!

Исходный код можно посмотреть на гит

@react_native_info
🔥8🤔2🤯2
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня Expo ломает границы нативной навигации для мира react-native с помощью Expo Router!

Основные особенности:
Автоматическое создание навигации на основе файлов в вашем проекте;
Автоматические диплинки;
Построен на базе React Navigation;

Если вкратце, то с помощью данной библиотеки можно реализовать навигацию в приложении основываясь на структуре файлов вашего проекта.

Более подробно можно ознакомится в статье «RFC: File System-Based Native Routing with Expo and React Native», а также в оффициальной документации Expo Router.

@react_native_info
🔥76🎉3🥱2💩1
Что такое мемоизация? Как и когда использовать мемоизацию в JavaScript и React

Автор данной статьи рассказывет о мемоизации (запоминании), методе оптимизации, который может помочь сделать тяжелые вычислительные процессы более эффективными.Автор начнет с разговора о том, что такое мемоизация (запоминание) и когда его лучше всего реализовать, позже перейдет к практическим примерам.

@reac_native_info
👍6🔥21