<div><img src="https://mc.yandex.ru/watch/54752182" style="position:absolute; left:-9999px;" alt="" /></div>
Меню
Другие статьи
Какой язык выбрать для разработки приложения?
Вашему бизнесу потребовалось свое мобильное приложение. На первый взгляд, задача несложная: нанимаем пару программистов, даем ТЗ, ждем полгода ― и продукт уже в смартфонах пользователей. Но это только на первый взгляд
Разработка
Приложения
Дата публикации
14 января 2024 г.
Задать вопрос
Вступление
Почему мы решили об этом написать
Привет, мы разрабатываем различные цифровые решения, в том числе мобильные приложения.

Опыт показывает, что разработка приложения может занимать до нескольких месяцев до нескольких лет и миллионов рублей инвестиций.

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

Чем больше вы начнете погружаться в нюансы, тем больше вопросов у вас появится. Окажется, что приложения бывают нативные и кроссплатформенные, нативные можно писать на разных языках с разным подходом, а кроссплатформенные ― с использованием разных технологий. А кто-то говорит, можно вообще обойтись PWA (и нет, это не клей).

Добивает муки выбора факт того, что стоимость может варьироваться от 200 000 рублей до пары миллионов. И вполне возможно, что только под одну платформу.

Так какое приложение делать правильнее? Мы попробуем максимально простыми словами без технических терминов объяснить, какие есть подходы, какие у них плюсы и минусы и как определиться с выбором. Всех разработчиков и в принципе людей “в теме” просьба не обращать внимание на излишние упрощения объяснений или технические тонкости. Ведь цель статьи в именно в простоте.

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

Существуют нативные и кросс-платформенные приложения, каждое направление имеет свои преимущества которые мы рассмотрим

То что видите у самых крупных технологических компаний
Нативные приложения
Это приложения, которые написаны так, как это задумали разработчики операционной системы смартфонов. Они выглядят так, будто всегда там были, еще до покупки, настолько они хорошо туда вписываются. Нативные приложения будто проникают в весь смартфон: в них запускается камера и микрофон, импортируются контакты и так далее. Звучит круто, не правда ли?
01
Плюсы
Такие приложения имеют лучшую производительность
Как правило, лучше работают
Лучше выглядят, потому что чаще и эффективнее используют встроенные в систему компоненты
Быстрее запускаются
Имеют меньший вес
В них проще реализовать очень сложные функции
02
Минусы
Дорогая разработка. Разработчики нативных приложений более узкоспециализированны, их меньше и спрос на них выше. Высокий спрос вызывает увеличение стоимости.

Очень дорогая разработка. Чаще всего бизнесу нужно приложение на обе платформы: iOS и Android. Соответственно, нужно писать одно и то же приложение два раза: одно для iOS, другое для Android. Нужны две команды разработки. Поддерживать нужно тоже две версии приложения

Это сложно. Нужно, чтобы все было реализовано так, как задумано, было минимум багов, команда работала согласованно. А теперь умножьте эти проблемы на 2, ведь у вас будет две команды разработки и два приложения. Затем умножьте все проблемы еще на полтора, ведь вам нужно, чтобы два приложения разрабатывались примерно в одном темпе, вышли примерно в одно время, получали обновления примерно в одно время + имели одни и те же функции.
Это долго. В принципе, это ясно из предыдущего пункта без дополнительных комментариев.

Выбирайте нативную разработку, если у бизнеса действительно много денег на создание и поддержку приложений, если вам нужна максимальная производительность или максимально нативный вид

В остальных случаях рассмотрите кросс-платформенные решения

Наиболее популярный стек
React Native
Много крупных компаний используют эту технологию. Ее суть в том, что веб-разработчику для написания мобильного приложения не нужно учить новый язык и погружаться в кардинально другой стек. Он просто берет документацию, тратит на нее один день, а далее с помощью знакомых инструментов и языка пишет приложение, которое будет работать на iOS и Android.

Слово Native в названии технологии ― это некий маркетинговый ход. Ведь из описания выше мы знаем, что такое нативная разработка. И это явно не она. “Native” здесь присутствует, потому что по итогу приложение действительно будет использовать нативные компоненты системы. Как мы договаривались ранее, в технические нюансы погружаться не будем.
01
Плюсы
Относительно недорогая разработка
Быстро. Пишем один код, который делает приложения под обе платформы
Разработчики дешевле нативных, ведь они не узкоспециализированы, их много на рынке
Приложение действительно может выглядеть и работать как нативное.
02
Минусы
Есть проблемы с производительностью. Приложение может нагревать телефон, подвисать, вылетать

У разработчиков часто возникают различные труднорешаемые проблемы, которые могут приостановить процесс разработки

Приложения на iOS и Android будут иметь значительные визуальные различия. На самом деле, это спорный минус, потому что приложения для разных платформ априори выглядят по-разному в силу разных дизайн-систем. Но в последнее время бизнес старается делать приложения одинаковыми, чтобы не тратить лишние ресурсы на отрисовку двух дизайнов вместо одного и не путать пользователей, которые перешли с одной ОС на другую.

Создают в основном только React-разработчики. Также спорный минус. Дело в том, что слово React в названии технологии говорит о том, что приложение будет писаться с помощью веб-технологии React, которая, конечно, очень популярна, но если у вас команда Vue-разработчиков, им придется потратить больше времени для освоения технологии, нежели просто почитать документацию.

Не все идеи можно реализовать.
Тоже что и React Native, только универсальнее
NativeScript
По большому счету, это то же самое, что и React Native, только универсальнее в части написания приложения. Если React Native создан только для React-разработчиков, то на NativeScript может писать практически любой толковый фронтендер.
01
Плюсы
Легко найти разработчика
Приложения выглядят и работают практически как нативные
Высокая скорость разработки
02
Минусы
Могут быть проблемы с производительностью
Сложно сделать внешне одинаковое на обе платформы приложение
Большие приложения со сложной логикой и функционалом на NativeScript (да и на ReactNative) лучше не писать, потому что не все идеи можно реализовать.
Самый перспективный
Flutter
Это относительно новый подход в кроссплатформенной разработке, невероятно быстро набирающий популярность как у разработчиков, так и у бизнеса. Технология зарекомендовала себя настолько хорошо, что на ней уже пишут банковские приложения, где очень важна стабильность, скорость и надежность.

Чтобы начать кодить на Flutter, разработчику нужно выучить новый язык, который ранее большинству не встречался, погрузиться в новый стек. Почти как в нативе, да? Но все же нет.
01
Плюсы
Скорость работы приложений. Действительно, то, что написано на Flutter (если грамотно написано), будет работать очень быстро. Без нагрева телефона, без зависаний и вылетов приложения.

Скорость разработки. Благодаря прекрасному языку и очень качественным инструментам приложения пишутся действительно очень быстро

Стабильность. Такие приложения будут вести себя практически в 100% случаях предсказуемо.

Возможности. Flutter дает возможности реализации практически любых идей и функций. На нем можно писать даже игры
Легко написать одинаковые по дизайну приложения. Даже не так. По-умолчанию, приложения уже будут одинаковы по дизайну. Любые различия, если они вам нужны, привносит разработчик.
02
Минусы
Порог входа в разработку выше (из-за незнакомого языка), поэтому разработчиков может быть сложнее найти. Но в последнее время популярность технологии взлетела настолько, что проблем с наймом быть не должно.

Это все же не натив. Даже отдельные нативные компоненты в основном не используются. Весь интерфейс Flutter “рисует” сам. Поэтому сделать приложение, которое бы выглядело как нативное (особенно в iOS), практически невозможно.

Нужны грамотные разработчики. Кто бы что ни говорил, на flutter все плюсы про скорость и стабильность легко может нивелировать неопытный разработчик. Flutter дает много свободы действий и возможностей, что в свою очередь предоставляет простор для некорректных действий и практик.
Самый доступный
WebView
На самом деле, технологии разработки приложений с таким названием нет. Это собирательное название всех подходов, где суть сводится к тому, чтобы вместо написания приложения написать сайт, который можно “встроить” в нативное приложение. То есть все, что будет на экране пользователя: кнопки, окна, экраны — это все обычный веб-сайт. Он работает внутри нативного приложения, которое служит просто оберткой. 

На первый взгляд, выглядит странным решением с неясными выгодами. Но, как мы писали выше, нет правильного и неправильного подхода. Все они решают свои задачи.

WebView удобно и выгодно использовать, когда есть уже сайт с мобильной версией и нужно очень быстро выпустить свое приложение, на которое нет времени и бюджета. Сайт можно обернуть в натив буквально за несколько дней и отправить в сторы. Если приложению и веб-сайту нужен строго строго идентичный функционал, то WebView ― тоже выход из ситуации.
01
Плюсы
Скорость создания и дешевизна. Это практически бесплатный и моментальный способ заполучить приложение, если есть сайт.
Простота поиска разработчика. Точнее, его можно не искать, если уже есть веб-разработчик

Моментальные обновления приложения. В классических приложениях, которые мы рассмотрели выше, обновление отправляется и рассматривается в AppStore и GooglePlay от 1 до 7 дней. Иногда обновление могут отклонить. С WebView подходом обновления будут прилетать пользователю моментально, ведь достаточно обновить сайт.

Идентичный вид сайта и мобильного приложения. Потому что по сути это одно и то же.
02
Минусы
Нестабильное решение. Такое приложение не на всех устройствах может запуститься. Где-то оно может вылетать. Где-то может очень сильно нагревать устройство. Где-то будет очень тормозить. Здесь все непредсказуемо

Это очень далеко от натива. Даже самые неприхотливые пользователи на уровне ощущений будут понимать, что приложение “какое-то не такое”. Оно не будет работать и выглядеть как нативное, анимации не будут такими плавными, как в нативе.

Очень мало возможностей. По большому счету, там будет возможностей не более, чем в обычном сайте. О всех преимуществах “настоящих” приложений можно забыть.

Могут не пройти в AppStore и GooglePlay. На практике такое бывает очень редко, но теоретически такое приложение не соответствует правилам этих площадок. Приложение могут не пропустить либо удалить из стора уже существующее.

Не могут работать без интернета. Потому что сайт внутри приложения просто не откроется.
Самый компромиссный
PWA
Progressive Web Application. Последняя к рассмотрению технология написания приложений. Чем-то это похоже на WebView. Приложением здесь тоже становится веб-сайт, но иным способом.

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

PWA могут использовать камеру, распознавание речи, запись звука, доступ к файлам, отправлять Push уведомления и делать бейджи количества уведомлений на своем значке. И много чего еще. И при этом стабильно и быстро работать. А еще могут работать без интернета. Вишенкой на торте будет то, что эту технологию активно поддерживают как Google, так и Apple.
01
Плюсы
Дешевиза. Не нужны отдельные специалисты. Любой фронтендер справится.

Скорость. Любой уже существующий сайт можно превратить в PWA.
Быстродействие и стабильность. При грамотном подходе (как и всегда), такие приложения работают быстро и предсказуемо.

Неплохой набор функций и возможностей. Как и написано выше, в PWA можно много чего реализовать. Но не все, конкретный список нужно изучать бизнесу перед принятием решения.

Идентичный внешний вид и функционал в приложении и на сайте
Моментальные обновления (как и в WebView)

Можно не зависеть от AppStore и GooglePlay. PWA будет доступен для установки прямо с сайта как на iOS, так и на Android.

Может работать без интернета
02
Минусы
Никогда не будет работать и выглядеть как нативное

Не все функции можно реализовать. Список возможностей на iOS заметно короче, чем на Android

AppStore не принимает PWA. На данный момент, наверное, это самый очевидный и отталкивающий многих минус. Люди привыкли искать и устанавливать приложения в сторах. Особенно пользователи iOS, где альтернативных способов никогда не было. Части клиентов будет просто сложно донести, как установить приложение, а часть может подумать, что это какая-то “пиратская” установка, которая может навредить их устройству. Ведь Apple всегда заявляли, что установка приложений возможна только через AppStore.

Подходов много, нюансов еще больше, но если вы не готовы к инвестициям в нативное приложение, рассмотрите стек Flutter

В заключении
Выводы и резюме
Если вы знаете наверняка, что вам нужно нативное приложение, вы в теме, и ваш выбор осознанный — выбирайте действительно нативное. Альтернативы будут вас ограничивать.

В ином случае выбирайте Flutter. Пока что это самое универсальное, сбалансированное и качественное решение. Если на нем делают банковские приложения, то это о чем-то говорит.

Если вам нужно приложение очень быстро и очень дешево, но чтобы было стабильно и надежно ― выбирайте PWA. Если критически важно размещение в AppStore ― тогда, конечно, WebView, но не забудьте оценить все риски.

Если вам крайне важно, чтобы приложение выглядело как нативное, но вы не располагаете бюджетом и временем на настоящую нативную разработку — ваш выбор ReactNative/NativeScript, но будьте готовы столкнуться с проблемами при разработке или в финальном приложении.

Мы в mrktng.bz занимаемся разработкой любых приложений в рамках данных технологий и, с удовольствием, проконсультируем вас по оптимальному техническому решению для вашего бизнеса и предложим гибкий график реализации и финансирования разработки.

Будем рады поделиться опытом и предложить ряд технологий которые создадут серьезное технологическое преимущество для вашего бизнеса
Посмотрите статьи
Читайте также
Как развивать онлайн-продажи в 2024 году?
Онлайн маркетинг претерпевает значимые изменения. Продвижение становится все более массовым, а значит конкурентным. Делимся идеями о перспективных решения в наступающем году
Будущее
Продажи
AI
Читать далее
Дата публикации
15 декабря 2023 г.
Как развивать бизнес в условиях неопределенности?
Неопределенность становится нормой. Делимся идеями о том как двигаться вперед когда сложно оценить риски
Продажи
Бизнес
Читать далее
Дата публикации
15 ноября 2023 г.
hello@mrktng.bz
Ответим в тот же день
+7 (495) 090-77-28
На связи с 10.00 до 19.00
Работаем с 2015 года
Все права защищены ©
Политика конфиденциальности
Партнеры JetStyle
Поддержка
whatsapp