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 работает намного медленнее, это следует протестировать с самого начало.