React Native vs Swift / Objective-C / Java родной

Я работаю над новым проектом для компании Fintech, и мне было поручено изучить, должны ли мы пойти с React Native или native Swift/Objective-C/Java для нашей технологии разработки мобильных приложений и стратегии в будущем.

Я провел множество исследований в этом и прочитал многие из тематических исследований, связанных с React Native, но я все еще не чувствую, что у меня достаточно, чтобы принять обоснованное решение на данный момент.

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

  • функции, связанные с данными, такие как остатки на счетах и выписки (довольно просто)
  • захват изображения документов, удостоверяющих личность и селфи пользователей
  • сбор биометрических данных
  • Push-уведомления

некоторые из них довольно стандартны и просты, но некоторые из них потребуют, чтобы приложение использовало низкоуровневые функции устройства и/или использовало сторонние Android и iOS SDKs.

Итак, с точки зрения работая над решением стратегии мобильной разработки, могу ли я попросить вас внести свой вклад, основываясь на вашем недавнем опыте, на причинах рассмотрения React Native over native Swift/Objective-C/Java development в свете запланированной функциональности, указанной выше (включая причины, по которым может быть намного лучше придерживаться родных языков/платформ).

2 ответов


React Native имеет действительно хорошую и заманчивую идею, которая звучит как "унифицированная и почти полностью разделяемая кодовая база для разных платформ, включая веб". Но из моего опыта (не столь обширного, но все же) реальность немного отличается – в какой-то момент Вы наверняка столкнетесь с некоторыми проблемами с родным кодом, и было бы очень хорошо, если бы вы испытали разработчиков Swift/Objective-C/Java в своей команде, чтобы справиться с этим. Не доверяй обещаниям "все, что тебе нужно-это просто реагировать. Front-End Developer". Сама платформа React Native казалась мне больше похожей на волшебный черный ящик, который я запускал с одной командой, не имея никакого представления о том, что внутри и как это на самом деле работает. Вы должны знать хотя бы что-то о Xcode и эмуляторе Android, даже если Facebook пытается скрыть этот аспект от вас как можно больше.

TL; DR На мой взгляд, если вы действительно хотите попробовать React Native для чего-то более сложного, чем TodoMVC, вам нужно иметь не менее 3 разработчики: Web (JavaScript / React), iOS (Swift/Objective-C) и Android (Java). Или просто один супергерой.


из собственного опыта я могу сказать, что React Native-хороший выбор для большинства приложений, когда вам нужно быстро разрабатывать и повторять. Это обычно означает, что было бы дешевле разработать для клиента.

глядя на список функций, я не вижу ничего, что нельзя сделать в RN. Рано или поздно вам придется погрузиться в собственный код, обычно для соединения собственных модулей с JS. Я делал это несколько раз, это не так сложно, и документация на веб-сайте RN помогает много.

имейте в виду, что вы наверняка столкнетесь с глупыми ошибками, и вам придется найти обходной путь. По крайней мере, это произошло со мной несколько раз, когда я строил приложение RN полгода назад, может быть, теперь он более стабилен.

также я считаю, что это действительно зависит от того, какие устройства потенциальных пользователей приложения. Я никогда не разрабатывал для Android, но слышал от других разработчиков, что на устройствах среднего уровня Android RN работает намного медленнее, это следует протестировать с самого начало.