Домой Статьи No-code, веб или нативка? Разбираемся в подходах к разработке мобильных приложений

No-code, веб или нативка? Разбираемся в подходах к разработке мобильных приложений

No-code, веб или нативка? Разбираемся в подходах к разработке мобильных приложений
PZ 400:06 Inv 4214 Viktor Vasnetsov: Warrior at the Crossroads, 1882 The Russian Museum

No-code, веб или нативка? Разбираемся в подходах к разработке мобильных приложений

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

Нативная разработка

Здесь подразумевается создание софта для определённой платформы. Если вы хотите сделать приложение для пользователей iOS и Android, для каждой операционной системы пишется своя версия.

Одно из основных преимуществ нативной разработки — высокая производительность приложения. Оно напрямую (насколько это возможно) обращается ко всем ресурсам устройств и имеет доступ к большинству функций, предусмотренных авторами ОС, таких как фотовидеосъёмка, геолокация и использование датчиков.

Это способ делать лучшие и самые сложные проекты. Но и он имеет недостатки. Создание нативных приложений для нескольких платформ может быть затратным и длительным процессом. Они нуждаются в постоянной поддержке и обновлениях, многие из которых связаны с подгонкой софта под свежие требования операционных систем. Для каждой системы в отдельности. Нативка подходит тем, кто готов браться за дело всерьёз, качественно и надолго и понимает, как окупить затраты.

Кроссплатформенная разработка

Кроссплатформенная разработка — это подход создания программного обеспечения под несколько платформ с общей кодовой базой. Здесь используются фреймворки, такие как Unity, Cordova, React Native или Xamarin.

Основное преимущество кроссплатформенной разработки заключается в том, что приложение создаётся однократно для нескольких ОС. Это сокращает время производства и затраты на поддержку, ведь и поддерживать теперь нужно что-то одно с одним семейством инструментов. Публикация тоже облегчается — хотя бы объединением этого процесса для разных магазинов.

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

Желание сохранить хотя бы частичную унификацию, скорость разработки и гибкость одновременно подводит нас к ещё одному подходу — гибридному.

Гибридная разработка с WebView

Данный метод позволяет создавать приложения, используя веб-технологии, такие как HTML, CSS и JavaScript, и оборачивать их в WebView-компонент для встраивания в приложение. Представьте, что вы идёте по быстрому нативному софту, заходите в какую-нибудь форму, а она грузится не нативно, а как веб-элемент. Неплохой способ унифицировать некоторые вещи, особенно если они часто меняются.

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

Главное преимущество гибридной разработки в объединении лучших элементов нативного и кроссплатформенного подходов. Гибриды могут использовать все функции устройства и работают на разных платформах с частично единой кодовой базой.

Вот только веб-элементы и части их кроссплатформенных фреймворков будут медленнее нативных. Если вам это не принципиально, этот подход ваш. Не стоит также забывать, что в стек ваших сотрудников придётся добавить веб. А ещё нужно соблюдать правильное соотношение разных типов контента. Apple и Google иногда не допускают в свои магазины проекты с большой долей WebView.

Прогрессивное веб-приложение (Progressive Web Application, PWA)

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

PWA не может полностью повторить функции нативного или кроссплатформенного аналога. В вашем распоряжении ярлык, Push-уведомления, частичный офлайн, обновление без загрузки, трафик на ваш сайт, загрузка в обход магазина с вашего ресурса, относительная дешевизна и высокая скорость time to market.

За «видимость приложения» придётся платить. Производительность и функциональность PWA гораздо меньше, чем у нативных приложений. Ограничен доступ к некоторым функциям устройства, таким как работа с файловой системой. Веб-приложения фактически работают через браузер и зависят от его возможностей и качества интернет-соединения (хотя это можно сказать про любые клиент-серверные проекты). И там, где Android справляется хорошо, iOS выкатывает массу ограничений по совместимости.

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

No-code и low-code

No-code и low-code — это подходы с применением готовых решений, которые позволяют работать без необходимости писать код вообще или с возможностью делать это в значительно меньших объёмах. Платформы для создания приложений без кодинга стали популярными направлениями венчурного инвестирования, делают большое дело снижения порога входа на рынок, являются отличными решениями для прототипирования и одновременно опасной ловушкой для тех, кто не продумывает проекты заранее.

No-code подразумевает наличие некой программной платформы, которая в виде графического интерфейса предлагает инструменты программирования из готовых блоков. Преимуществом здесь является простота и скорость в использовании. No-code также значительно сокращает мгновенные затраты на разработку, потому что сокращается нужный штат (иногда до одного человека), сокращается инструментарий. Осталось посчитать стоимость тарифа на нужной платформе.

Low-code тоже даёт готовые компоненты и модули, но позволяет дополнять их произвольным кодом. Здесь можно начать без программирования, а затем подтянуть хвосты с его помощью, если появится необходимость и авторы платформы разрешили сделать это в конкретной части решения. В сухом остатке, нужно чуть больше знать, тратить чуть больше времени и взамен можно пользоваться чуть большими возможностями.

Выбор, как всегда, зависит от потребностей проекта. No-code подходит для создания простых приложений, которые не планируется сильно развивать в плане функций, UI и UX. Low-code позволяет вести более сложные проекты, но всё равно потребуется программировать.

Оба подхода ограничивают бизнес возможностями платформ для разработки, поэтому проект может быстро упереться в потолок функциональности, для преодоления которого придётся переписывать софт. Обычно, больно ударившись об ограничения, проекты сразу съезжают на нативную разработку. Поэтому low- и no-code отлично подходит для проверки гипотез и прототипирования, после которого придут деньги на правильную реализацию.

No-code, веб или нативка? Разбираемся в подходах к разработке мобильных приложений
Умная коала поднимает кубок за тех, кто приходит к разработчикам с пониманием своего бизнеса

Совет вместо вывода

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

  • Если вы делаете относительно простой стартап и больше заинтересованы в проверке гипотезы, чем в создании бизнеса на века, берите no- и low-code
  • Если вам вообще не важна производительность и куча функций, а нужно просто превратить сайт в приложение, потому что нужно быть на устройствах пользователей именно в таком виде, да ещё сэкономив (или просто нет выхода из-за внешних обстоятельств) — это в PWA
  • Если у вас есть веб-ресурс с постоянными изменениями или элементами, производительность которых второстепенна по отношению к трудозатратам на обновления и тестирование под все платформы присутствия, обратите внимание на гибрид
  • Если проект посложнее и задуман надолго, а вы хотите захватить широкую аудиторию, сэкономив деньги и время, присмотритесь к кроссплатформе
  • Если вы делаете большой проект, вам важны производительность и хорошее отношение пользователей (представим, что они немного привередливы), важен индивидуальный, неповторимый дизайн, а также функциональность, включая незаметные вещи под капотом, вроде датчиков, удобных платежей и так далее, делайте нативные приложения

Так получилось, что Spider Group работает со средними и крупными предприятиями, это основная часть наших заказчиков. Такие клиенты чаще всего требовательны. Это может быть связано и с личным желанием заказчика сделать лучшее, и с требованиями бизнеса, сложность и размеры которого просто не оставляют места для манёвра. Поэтому нативная разработка является основной рекомендацией. С ней можно добиться любых результатов, не испытывая ограничений в борьбе с конкурентами.

Далее: Секреты успеха: как анализ данных развивает компании и продукты

В Spider Group на вас работает более чем двадцатилетний опыт в разработке мобильных приложений, веб-разработке сайтов, серверных проектов, дополненной реальности, искусственного интеллекта и Интернета вещей.

No-code, веб или нативка? Разбираемся в подходах к разработке мобильных приложений