Я хочу рассказать в чем разница между нативной и кроссплатформенной разработкой и почему нативная в большинстве случаев не нужна вашему бизнесу и даже вредна.
Что означает нативная разработка мобильного приложения для вашего бизнеса? Вы находите:
-2 команды разработчиков Android + iOS
-2 команды дизайнеров Android + iOS
-2 команды Quality Assurance
И потом вы начнете путь медленной и дорогой разработки мобильного приложения.
Когда спрашиваешь профессионалов, почему кроссплатформенная разработка - хуже, то слышишь аргументы:
-Это неудобно
-Это медленно
-Это не нативно ¯\_(ツ)_/¯
Сейчас я расскажу вам в чем дело и откуда ноги растут.
Как работает кроссплатформенное приложение?
Есть некий Bridge, который делает так, чтобы ваш код работал на обе платформы: iOS + Android
Проблема здесь в том, что большое количество данных проходит через Bridge, попутно превращаясь в JSON и обратно. Это - медленно.
Примеры неэффективных кроссплатформенных решений:
- Cordova - html,css, javascript - даже демо их приложения на новейших телефонах тормозит так, что кровь льется из глаз.
- React Native - тот же javascript, но уже лучше - появилась возможность коммуникации с нативными OEM-виджетами платформы. Все равно лагает. Проблема с анимациями, ужасная и неисправимая. И даже Facebook признает, что это проблема ( And a serializable bridge means unnecessary copying instead of directly sharing memory between the two worlds.)
- Progressive Web App - плюс приложений на WebView, что производительность на высоте, но есть большой минус, на PWA невозможно добиться такого же поведения от UI, как у нативных приложений. Элементарный пример - скролл, он не такой, каким мы привыкли его видеть в мобильном приложении - это не нравится людям - чувствуется подвох.
Те из разработчиков кто держат руку на пульсе, уже знают, что лучшее кроссплатформенное решение я оставил напоследок.
Flutter
Flutter - фреймворк от Google с открытым исходным кодом, самая быстрорастущая технология мобильной разработки в настоящее время. Чем он отличается от предыдущих решений? Он взаимодействует напрямую с графической картой.
Любая анимация, любые экраны, которые я пробовал разработать на этой платформе за пол года (+- 100 тыс. строк кода) выдают 60 FPS.
Flutter имеет документацию, которой можно позавидовать, количество пользователей растет с каждым днем и в 2020 году, я уверен, Flutter обгонит React Native на Github.
Уже используете React Native? Задумайтесь о переходе на другую платформу. Это можно сделать легко. Если интересны любые вопросы по Dart ил Flutter - пишите комментарии.