Задать вопрос
NEKOtb
@NEKOtb
FrontEnd разработчик

React Native или Flutter?

Есть у меня один проект посвященный настольным играм довольно расписанный с готовым дизайном и т.д. он представляет из себя мобильное приложение Android и iOS. Я уже создавал приложение на Vue + CapacitorJS может кто слышал, и упёрся в некоторые проблемы по типу работы с памятью камерой блютузом и т.д. да и даже самое банальное с жестами которые webview не очень полноценно даёт решать. И по итогу я стою на распутье меж React Native и Flutter, уже несколько дней читал за эти технологии и так и не могу определиться с одной стороны т.к. я разработчик фронта RN кажется более правильным решением, но все везде просто сильно пишут про стандартные и нативные компоненты систем, я не спорю что автоконвертация под разные системы это удобно но передо мной задача стоит в первую очередь чтобы приложение выглядело одинаково на обеих платформах. Мне не очень нравится действовать по этому "нативному патерну" когда все должно быть похоже на максимально стандартное приложение, хочется создать что-то максимально уникальное без привязки к существующим в системе компонентам, в свое время меня и зацепил этим веб. Я могу создавать то что захочу. Я наверняка уже понял что и у той и у той технологии есть свои системы рендера и отрисовки которые позволяют делать полностью свои компоненты. Однако все ещё остаётся много вопросов... Те разработчики которые правда знаю и шарят в этих технологиях подскажите пожалуйста какую выбрать.

Для меня ключевыми факторами будут в первую очередь.
  • Возможность создавать свои полностью уникальные компоненты. (ниже прикреплю примеры того что мне нужно будет реализовывать)
  • Полноценная работа с памятью устройства.
  • Работа с Bluetooth, Камерой, даже акселерометром и гироскопом. (Как я понял вроде обе технологии могут в это)
  • Ну и некие минимальный пакет нативных настроек, уведомления, сплэш-скрин, быстродействие какое никакое, поддержка тех же 120Гц экранов и т.д.


spoiler
6837470207998858802708.png
6837476e948c2743557569.png
683747daaed28180404063.png
683747e438475231528781.png6837484030cb2712831398.png
Примеры слайдеров для переключения окон:
6837497bedb47324634502.png
68374a8c4637d915254438.png
  • Вопрос задан
  • 2423 просмотра
Подписаться 2 Простой 6 комментариев
Решения вопроса 1
NEKOtb
@NEKOtb Автор вопроса
FrontEnd разработчик
Приветствую всех, спустя пару недель копаний в своем вопросе, решил правда все-же выбрать RN.
Если у кого-то возникнет тот же вопрос, я бы охарактеризовал RN и Flutter следующим образом:

RN - это отличный вариант для тех кто хочет себя попробовать в мобильной разработке после фронта (прямо как в моем случае) интерфейсы стояться весьма гибко, а сам код весьма понятен и знаком ведь это все тот же JS(TS), обильное количество плагинов и широкая комьюнити база позволяет весьма просто найти решение возникшей проблемы или какой либо совет. Касательно интерфейса, чуть видоизмененный CSS тут всему голова, и после фронта, я очень быстро привык к синтаксису тем более что это почти тот же самый React. Интерфейс полностью флексовый и на него идет весь упор. Период некой адаптации, занимает не так уж много, так что при желании создать какое либо полноценное приложение для мобилок имея, знания лишь фронта, будет являться наверное лучшим вариантом именно RN, хотя без знание неких особенностей работы мобилок тут тоже не обойтись.

Flutter - инструмент также само не менее интересный и удобный. Я бы советовал его в первую очередь тем кто так сильно в фронтом не связан. Хочу заметить что ответ Neonoviiwolf выше, также весьма информативен. Что касательно интерфейса, я бы сказал что Flutter будет даже еще более гибким за счет того же canvas которого полноценно нет в RN в прямом его понимании. Да и я бы сказал что Flutter в общем, будет куда проще "из коробки". Все делается правда проще чем в RN.

Касательно только дизайна я бы сказал так.
Все что можно сделать по дизайну в WEB(с парой оговорок) можно сделать и в React Native
Во Flutter дизайна можно сделать даже больше.

Касательно взаимодействия с железом RN будет в более выигрышном состоянии плагинов куда больше(хотя некоторые приходиться править ручками) в же Flutter их меньше. Но если вы строите рядовое приложение в котором как по базе нужна лишь работа с памятью и уведами. Подойдет конечно же и то и то.

Признаюсь честно Flutter пощупал я далеко не так много как RN и вероятно буду править еще этот ответ. Но в общем, своим мнением я поделился. Спасибо всем тем кто помогал мне в этом процессе поиска истинны.
Всем удачи! И всем добра!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@glider_skobb
В вашем случае, видимо, react native лучше, потому что основной опыт связан с вебом и JS. В случае Flutter придется осваивать Dart. Есть ещё KMP, который имхо лучше их обоих, но тоже есть минус: придется учить Kotlin.
Ответ написан
@Neonoviiwolf
Flutter developer
как разработчик флаттера несколько моментов - про какие стандартные виджеты - вы не поняли концепт флаттера, всё, абсолютно всё можно нарисовать виджетами, если прям совсем, то есть же кривые для рисования и получится виджет. Всё что стандартное всё редактируется как угодно или пишется своё с полпинка.
По работе с нативом, увы всё завязано на плагинах, есть плагин чего-то не умеет, пишите/дополняйте функционал сами, если плагин сломан, его могли и забросить, чините сами. Напрямую с нативом не работает дарт, если пистать плагины, натив нужно знать тоже.
По вебвью - добавить вебвью займёт 5 минут, а вот что он поддерживает, жесты и там всякое нужно смотреть что вам нужно самим, но всё фонтан, какие то проблемы через АИ ток получалось решить(хотя по большей части хрень предлагал и спорил что работает)
Флаттер супер удобен для всего, что не требует работу с железом, писать код - удовольствие, но как только нужно железо, понимаешь, что хочется шарить в нативе и самому писать плагины, ибо без знаний натива у меня пару раз недели терялись, пока разберусь как правильно исправить поведение плагина
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы