Под капотом у Mobx. Пишем свою реактивную библиотеку с нуля
Автор данной статьи описывает процесс написания копии Mobx с нуля, с интеграцией для React через собственно написанный HOC observer. В конце у вас будет общее понимание реактивности, которое поможет в самостоятельном осмыслении не только Mobx, но и других реактивных библиотек и фреймворков.
@react_native_info
Автор данной статьи описывает процесс написания копии 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:
✓
✓
useFrameCallback позволяет запускать фрагмент кода при каждом обновлении фрейма.
У данного хука есть два аргумента, callback функция и autostart флаг.
При каждом вызове вашей callback функции в нее будут приходить следущие аргументы:
✓ timestamp: number – системное время (в миллисекундах), когда был отрендерен последний кадр;
✓ timeSincePreviousFrame: number | null – время (в миллисекундах) с момента последнего кадра. Это значение будет null в первом кадре после активации хука. Начиная со второго кадра должно быть ~16 мс на 60 Гц или ~8 мс на 120 Гц дисплеях (когда нет задержки);
✓ timeSinceFirstFrame: number – время (в миллисекундах) с момента последнего вызова вашей callback функции;
Хук возвращает объект FrameCallback, для управления состоянием вашей callback функции и имеет следущие параметры:
✓
✓ isActive: boolean – указывает, активен ли обратный вызов (true) или нет (false);
✓ callbackId: number – уникальный идентификатор функции обратного вызова;
В видео реализован пример из документации к useAnimatedKeyboard
@react_native_info
Хуки уже доступны в @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
🔥10⚡2🤯2
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный кейс анимации на react-native с использованием useAnimatedSensor из reanimated2.
Исходный код можно посмотреть на гит
@react_native_info
Исходный код можно посмотреть на гит
@react_native_info
⚡5🔥2👍1🤩1
Skia — высокопроизводительная 2D графика для React Native
Автор данной статьи кратко описывает основные возможности Skia в react-native. В статье очень много примеров кода с картинками того что должно получиться.
@react_native_info
Автор данной статьи кратко описывает основные возможности Skia в react-native. В статье очень много примеров кода с картинками того что должно получиться.
@react_native_info
🔥7❤2👍2
ВКонтакте пропал из эпл стора.
Также удалены другие приложения этой экосистемы: VK Музыка, VK Клипы и VK Мессенджер, VK Play и VK Админ и почта Mail․ru.
@react_native_info
Также удалены другие приложения этой экосистемы: VK Музыка, VK Клипы и VK Мессенджер, VK Play и VK Админ и почта Mail․ru.
@react_native_info
👍5💩4😱3🌚3
This media is not supported in your browser
VIEW IN TELEGRAM
Пользователь GitHub под ником lklima реализовал приложение Rive из этого SwiftUI курса на react-native (expo).
Все анимации выполнены с помощью reanimated2 и rive.
Исходный код можно посмотреть на гит
@react_native_info
Все анимации выполнены с помощью reanimated2 и rive.
Исходный код можно посмотреть на гит
@react_native_info
🔥21⚡4🤩2
Руководство по Supabase
@react_native_info
Supabase — это альтернатива Firebase с открытым исходным кодом, предоставляющая все базовые функции, необходимые для создания продукта.@react_native_info
👍5🔥2⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
Энтузиаст создал красивую анимацию покемона volcarona на react-native с использованием хука useAnimatedSensor из reanimated2.
Исходный код можно посмотреть на гит
@react_native_info
Исходный код можно посмотреть на гит
@react_native_info
🔥12⚡3👍2
Ребята из Callstack подготовили отличный пример реализации Fabric библиотеки с использованием C++ стэйта для react-native!
Исходный код можно посмотреть на гит
@react_native_info
Исходный код можно посмотреть на гит
@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
Основные особенности:
✓ Автоматическое создание навигации на основе файлов в вашем проекте;
✓ Автоматические диплинки;
✓ Построен на базе React Navigation;
Если вкратце, то с помощью данной библиотеки можно реализовать навигацию в приложении основываясь на структуре файлов вашего проекта.
Более подробно можно ознакомится в статье «RFC: File System-Based Native Routing with Expo and React Native», а также в оффициальной документации Expo Router.
@react_native_info
🔥7⚡6🎉3🥱2💩1
Что такое мемоизация? Как и когда использовать мемоизацию в JavaScript и React
Автор данной статьи рассказывет о мемоизации (запоминании), методе оптимизации, который может помочь сделать тяжелые вычислительные процессы более эффективными.Автор начнет с разговора о том, что такое мемоизация (запоминание) и когда его лучше всего реализовать, позже перейдет к практическим примерам.
@reac_native_info
Автор данной статьи рассказывет о мемоизации (запоминании), методе оптимизации, который может помочь сделать тяжелые вычислительные процессы более эффективными.Автор начнет с разговора о том, что такое мемоизация (запоминание) и когда его лучше всего реализовать, позже перейдет к практическим примерам.
@reac_native_info
👍6🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Пользователь GitHub под ником lklima реализовал необычные транзишены на reanimated2, готовый пример выполнен на expo.
Исходный код можно посмотреть на гит
@react_native_info
Исходный код можно посмотреть на гит
@react_native_info
🔥14🤨4👍2🌚2
На Android появился сервис с открытым исходным кодом, для безопасного тестирования приложений из неизвестных источников — Insular.
Принцип работы прост: Insular создаёт на вашем телефоне «песочницу» в виде нового профиля, на который вы можете загружать и тестировать любые приложения — они не будут иметь доступа к фотографиям, контактам и личным данным, а так же не смогут вносить изменения в настройках телефона.
@react_native_info
Принцип работы прост: Insular создаёт на вашем телефоне «песочницу» в виде нового профиля, на который вы можете загружать и тестировать любые приложения — они не будут иметь доступа к фотографиям, контактам и личным данным, а так же не смогут вносить изменения в настройках телефона.
@react_native_info
👍6🔥4
TypeScript Tips – коллекция полезных советов, которые вы хотели бы знать, когда начинали использовать TypeScript.
Напомню что ранее выкладывал отличную методичку по TypeScript
@react_native_info
Напомню что ранее выкладывал отличную методичку по TypeScript
@react_native_info
🔥7👍3
Dracula UI стал бесплатным и с открытым исходным кодом.
Это красивая и минималистичная коллекция компонентов созданных для React, в темном стиле.
@react_native_info
Это красивая и минималистичная коллекция компонентов созданных для React, в темном стиле.
@react_native_info
⚡3🔥3👍2🤨1
This media is not supported in your browser
VIEW IN TELEGRAM
Не так давно Shopify представили FlashList — это библиотека с открытым исходным кодом, более быстрыя и производительная замена FlatList.
Плюсы FlashList:
✓ Прокрутка 60 кадров в секунду на бюджетных устройствах;
✓ Больше нет пустых мест как в обычном FlatList;
✓ Очень простая реализация;
Более подробно можно почитать тут
@react_native_info
Плюсы FlashList:
✓ Прокрутка 60 кадров в секунду на бюджетных устройствах;
✓ Больше нет пустых мест как в обычном FlatList;
✓ Очень простая реализация;
Более подробно можно почитать тут
@react_native_info
⚡10👍5🔥4🤯2🤔1
CodeEdit – это красивый и легковесный редактор кода для macOS. Разрабатывайте любой проект на любом языке с невиданной прежде скоростью, с повышенной эффективностью и надежностью в редакторе, который идеально подходит для вашего Mac.
В данный момент проект находится в стадии разработки, но уже можно посмотреть исходный код на гит и посмотреть что получается.
@react_native_info
В данный момент проект находится в стадии разработки, но уже можно посмотреть исходный код на гит и посмотреть что получается.
@react_native_info
👍6🔥3👎2⚡1💩1
This media is not supported in your browser
VIEW IN TELEGRAM
Новая рубрика: идея для вдохновления.
Очень много интересных и красивых анимаций выполненных на react-native, но авторы не стали выкладывать код на всеобщее обозрение.
Данная анимация выполнена с помощью reanimated2 пользователем твиттера (запрещен в РФ) barany6m.
P.S. В коментах еще один вариант анимации.
P.S.S. Стоит продолжать делать такой формат постов?
@react_native_info
Очень много интересных и красивых анимаций выполненных на react-native, но авторы не стали выкладывать код на всеобщее обозрение.
Данная анимация выполнена с помощью reanimated2 пользователем твиттера (запрещен в РФ) barany6m.
P.S. В коментах еще один вариант анимации.
P.S.S. Стоит продолжать делать такой формат постов?
@react_native_info
🔥22👍6⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
Хотите альтернативу Lottie, которая быстрее, меньше по размеру, потребляет меньше памяти и полностью интерактивна?
Rive.app поможет вам в данной ситуации, есть удобный онлайн конструктор анимаций, а самое главное есть поддержка для react и react-native!
@react_native_info
Rive.app поможет вам в данной ситуации, есть удобный онлайн конструктор анимаций, а самое главное есть поддержка для react и react-native!
@react_native_info
🔥10👍7⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
Amazon IVS выпустили оффициальный пакет для react-native — amazon-ivs-react-native-player, который является оптимизированным видео плеером для IVS сервиса.
Amazon Interactive Video Service (Amazon IVS) — это управляемая служба потоковой передачи видео в реальном времени.
Основные возможности IVS:
✓ Создание каналов для трансляции видео за считанные минуты;
✓ Создание надежных интерактивных видео-интерфейсов со сверхнизкой задержкой;
✓ Поддержка множества платформ;
На видео реализован пример работы amazon IVS в react-native.
@react_native_info
Amazon Interactive Video Service (Amazon IVS) — это управляемая служба потоковой передачи видео в реальном времени.
Основные возможности IVS:
✓ Создание каналов для трансляции видео за считанные минуты;
✓ Создание надежных интерактивных видео-интерфейсов со сверхнизкой задержкой;
✓ Поддержка множества платформ;
На видео реализован пример работы amazon IVS в react-native.
@react_native_info
👍13🔥5⚡3👎1