Vadim
Это проблема. На самом деле вам не консультант нужен скорей всего. Потому что состояние "начальная настройка завершилась и можно только на js писать" увы, очень недолговечно. У вас в команде никто не выполняет роль нативного разработчика. А эта роль нужна, либо самим учиться, либо нанимать кого-то, если на две платформы, то это может быть и два человека в зависимости от... в общем, кто-то должен знать натив android и натив ios.
Большое спасибо за ответ! Так и есть. Придется самим учиться, видимо. Я вот сейчас после танцев с бубном все запустил. Но это случается постоянно и внезапно. Выматывает просто неимоверно. А как распределяются задачи? Все, что после нормального старта приложения — js-разработчик, все, что кроме этого — нативщик?
Gena
Большое спасибо за ответ! Так и есть. Придется самим учиться, видимо. Я вот сейчас после танцев с бубном все запустил. Но это случается постоянно и внезапно. Выматывает просто неимоверно. А как распределяются задачи? Все, что после нормального старта приложения — js-разработчик, все, что кроме этого — нативщик?
По разному. В случае RN нативщик и js программисты над некоторыми задачами просто должны вместе работать. Они должны понять текищуе доступные инструменты и поделить работу между нативом и js. Договориться об интерфейсах. И уже дальше делать каждый своё. (и да, это не прописная истина, это сугубо мое личное мнение)
Serge
А нужен ли тогда React Native, если в команде есть нативщики, разбирающиеся в обоих языках?
Vadim
Скорость разработки на RN просто космическая. Но, как обычно, есть один нюанс…
Serge
Мне интересно, в каких случаях без нативщиков не обойтись.
Serge
При каких юзкейсах/проблемах.
The Max
Мне интересно, в каких случаях без нативщиков не обойтись.
Когда надо что-то нативное, чего нет в нпм
Serge
Это понятно. Но например?
Gena
Я могу только за себя говорить. Дело не в скорости реализации фич. Я многое нативно бы написал быстрее и проще, чем на js. Но писал бы это 2 раза. Сейчас в проекте кодовая база примерно 1-5% натив (не кроссплатформа), остальное js на android и ios, из этого ещё процентов 20% и в вебе работает. Довольно большая экономия. (Цифры из головы, если надо - могу точнее посчитать)
The Max
Это понятно. Но например?
Я сейчас пилю приложение для рисования, и единственный модуль РН для этого - редкое говнецо
Gena
А какие части на нативах?
Навигация и ещё несколько интерфейсов на всякие sdk
The Max
+
Serge
Ага, интересненько. Спасибо за примеры.
Serge
Навигация и ещё несколько интерфейсов на всякие sdk
А с нативной навигацией вьюхи реакт нейтива на каждый роут рендерятся? Речь о чем-то более нативном, чем react-native-navigation и дохлом native-navigation?
Serge
Учту, спасибо.
The Max
А с нативной навигацией вьюхи реакт нейтива на каждый роут рендерятся? Речь о чем-то более нативном, чем react-native-navigation и дохлом native-navigation?
Я пару недель назад переписывал апп с react- navigation на react-native-navigation С точки зрения передачи данных, каждый экран - отдельное "приложение" Т.е. createContext() будет вызван заново и т.п. Там принцип работы с данными между вьюхами другой
Serge
Почему решили переписать? Быстрее стало?
The Max
Во первых да, во вторых нужен был 3D-Touch
Serge
Во первых да, во вторых нужен был 3D-Touch
Это определение силы нажатия? А как оно связано с навигацией?
The Max
Ну и т.к. надо было причесать работу с данными и сделать local persistence, RNN вписался нормально в это все
The Max
Сколько скринов в приложении? Много времени ушло на миграцию?
Пара дней Скринов по памяти не скажу, то-ли 6, то ли 7
The Max
У меня в одном скрине каруселью несколько вьюх рендерятся, так что там сэкономил
Serge
Пара дней Скринов по памяти не скажу, то-ли 6, то ли 7
Пара дней непосредственного переписывания? Или сюда включено время изучения доков react-native-navigation?
Vadim
Почему решили переписать? Быстрее стало?
Не знаю что на android, но на ios RNN ощущается как что-то абсолютно нативное. react-navigation субъективно проще для понимания, но выглядит абсолютно ненативно.
Serge
Отчего так? Медленно?
Serge
Даже с react-native-screens?
The Max
Даже с react-native-screens?
Впервые слышу 😅
Vadim
Ну с переходами вперед может и норм, но свайп назад просто ужасен, например.
Vadim
Даже с react-native-screens?
Я тоже не слышал
The Max
Но react-navigation очень медленный
The Max
Я в RN придерживаюсь принципа "если для этого есть нативное решение, используй нативное решение"
Serge
Впервые слышу 😅
С помощью этой зависимости в react-navigation что-то сделали нативно.
Serge
С версии 2.14, судя по ридми.
Serge
https://github.com/kmagiera/react-native-screens
Serge
Требует на андроиде смены ReactActivity на ReactFragmentActivity, что бы это ни значило, не разбираюсь в типах активитей.
Serge
Ну с переходами вперед может и норм, но свайп назад просто ужасен, например.
С недавней интеграцией react-native-gesture-handler должно было стать лучше.
Serge
Эх, жаль, что Airbnb дропнули разработку native-navigation.
Vadim
Эх, жаль, что Airbnb дропнули разработку native-navigation.
Жаль, что они дропнули весь RN у себя )
Serge
Да не, это уже их личное дело.
Serge
К слову, ребят, знаете какие-нибудь большие приложения на RN с открытым кодом? Хочется посмотреть, как другие делают, чтоб свои навыки отточить.
Gena
К слову, ребят, знаете какие-нибудь большие приложения на RN с открытым кодом? Хочется посмотреть, как другие делают, чтоб свои навыки отточить.
Можно на гитхабе поиском найти, я так делал. Но, честно говоря, ничего хорошего не увидел. Скорее примеры как не надо
Serge
Можно на гитхабе поиском найти, я так делал. Но, честно говоря, ничего хорошего не увидел. Скорее примеры как не надо
Лучше, чем ничего. Но хочется именно на хорошие практики и чистые архитектуры посмотреть.
Serge
Есть, конечно. Это лучших практик не существует, а хороших -- завались.
Serge
(я надеюсь)
Gena
Где-то в истории чата есть моя схема. Она мне нравится и хорошо работает (у меня).
Serge
О, звучит интересно. По каким ключевым словам искать?
Kto?
0.59 + rn3 + screens, на андроиде очень сильно бустит в сторону "нативности"
Serge
Большей частью из-за 0.59, думаю?
Serge
Из-за обновленного JSC.
Kto?
Да
Serge
Там что ли на треть прибавка js-производительности вот просто так.
Kto?
По ощущениям более чем на треть)
Serge
Подожду, пока 0.60 релизнут, хехе.
Serge
Чтоб обновиться на 0.59.x с кучей патчей.
Serge
То есть как это?
Serge
Они решили мажорную версию бампнуть?
Kto?
Да нене, это шутка)
Serge
Уф.
Kto?
Им до мажорной несколько лет
Kto?
Кто то из инсайдов сливал
Serge
А вдруг они как с реактом сделают.
Serge
И мажорная версия с нуля ХОБА и сразу 60.
Kto?
Да вообще нет никакой разницы, бужет это 0.60 или 1.0
Serge
Тоже верно.
Serge
О, а кто-нибудь пробовал смигрировать с metro на haul?
Kto?
Как говорится: "главное шоб не лагало"
Serge
Поддержка три-шейкинга в последнем за счет вебпака уж очень заманчиво звучит.
Serge
Потому что, например, сейчас в бандл бандлятся два рендерера.
Serge
Файберный и обычный. При этом файберный не используется.