Приложения… приложения…
Итак. Мобильные приложения. Целью любого приложения является решение проблем — пользовательских или же бизнеса. Мы пользуемся приложениями, потому что они для нас полезны, решают наши задачи, экономят время и… как ни странно, это приносит компаниям-владельцам приложений огромную прибыль. Когда бизнес решает создавать мобильное приложение, появляется выбор: что, как, на чем и т.д.
И вот тут… понеслась телега в пляс:
Нативные приложения. Звучит круто: максимально интегрируются в систему, плавный интерфейс, доступ ко всем возможностям платформы, ощущение, что всё работает как надо. Но разрабатывать их долго и дорого. Плюс каждое обновление идёт через стор — а это ревью, задержки и куча бюрократии. И остаётся зависимость от Apple и Google: если что-то блокируется или накладываются ограничения — приложение фиг обновишь. А уведомления… А что уведомления? У всего есть своя кончина.
Хорошо, не натив. Тогда что? Нам нужно быстро накидать прототипчик или же на коленке собрать “лишь бы было”? Кроссплатформа — вот что нам нужно. Хороший подход: пиши один раз — собирай под всё (честно-честно). И вот что мы имеем:
Kotlin Multiplatform. Красавец, что позволяет нам писать всё на, как вы уже догадались, котлине. Он даёт возможность писать общий код для логики, но интерфейс всё равно пишется нативно. Но это было до Compose Multiplatform. Теперь пиши всё на котлине и радуйся. Это экономит силы, но команды на iOS и Android нужны. Ну или хотя бы тот, кто хорошо шарит в котлин и понимает специфику работы платформ.
Flutter. Позволяет писать один код и запускать его сразу везде. Тут нам помогает красавец Dart. Интерфейс выглядит одинаково, разработка идёт быстрее. Плюс ещё и работает это довольно шустро. Но это не системные элементы, а их имитация — и это иногда заметно. Хотя во многих случаях это даже плюс бизнесу: можно создавать интересные штуки там, где это реально сложно (тени на Android нативно - милости просим).
Это всё хорошо, но при этом ограничения сторов никуда не исчезают.
React Native. О, его многие не любят, некоторые даже думают, что это прокачанный WebView. Но он работает иначе. Сильно иначе. Под капотом он использует настоящие нативные компоненты, поэтому интерфейс ощущается ближе к нативному. Правда, управляется эта бравада через JS, bridge, что не делает погоды в пользу производительности. Хотя с новой архитектурой дела пошли получше. Плюс есть киллер-фича — возможность обновлять приложение напрямую через CodePush, не дожидаясь одобрения стора. Для бизнеса это ускоряет всё в разы. Но здесь есть и обратная сторона: часто приходится лезть в нативный код. Без знаний iOS и Android далеко не уедешь (с лишними волосами на голове тоже, но тут тссс…).
И вот теперь мы плавно подходим к PWA. Ссылку открыл, сделал парочку простых действий — и у тебя уже приложение на главном экране. Обновляется мгновенно, сторы не нужны. Но ощущается это довольно ненативно. Но я бы хотел, чтобы в будущем это развивалось. Ведь реально прекрасная технология, которая имеет все шансы закопать остальные способы разработки мобильных приложений. Но это моё имхо, так сказать (ну и немножко злорадство фронтендера во мне, хи-хи)
Кстати, тут есть ещё один подход, который можно использовать в приложениях — backend-driven UI. Когда интерфейс задаётся на сервере в виде некоторой схемы, а клиент просто его отрисовывает, используя уже реальные компоненты. Для бизнеса это удобно: можно довольно быстро менять содержимое экранов, запускать эксперименты, тестировать гипотезы без релизов. Но если архитектура выстроена плохо, то всё превращается в хаос, где никто не понимает, что происходит.
Казалось бы, всё? Нет, не всё. Что, если мы не будем держаться только одной из этих сторон? Есть много приложений, к примеру, которые по сути просто WebView с сайтом внутри. Даже без натива — просто берут Flutter или RN и вставляют туда веб.
Я говорю про другое. Мы делаем полноценное приложение, но часть функционала выносим в PWA и загружаем через WebView…. (продолжение в комментах)
· 24.09.2025
В итоге пользователи получают фичу, которая обновляется независимо от стора. Например, это может быть страница статистики с графиками или магазин внутри приложения (но тут при правильной организации и backend-driven UI тоже можно применить). Всё, что часто меняется и не требует глубокого доступа к системе, можно вынести в веб и обновлять хоть каждый день, пока остальная часть приложения остаётся стабильной.
Есть ещё множество способов и технологий: например, та же Cordova, Electron и т.д. Но это уже реально WebView на стероидах.
Что же из этого можно для себя решить? А ничего. Решать нужно из того, что реально требуется, и какие ресурсы есть. Даже больше скажу: иногда о приложении вообще рано думать, и можно обойтись существующими инструментами — начиная от всяких конструкторов, заканчивая простыми соцсетями и телефонной связью, когда вы держите тесную голосовую связь со своими любимыми клиентами.
Мобильные приложения — это инструмент, а не цель. Вот что нужно помнить.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 29.07
Да, очень часто когда ко мне знакомые обращались за консультацией по поводу мобильного приложения для бизнеса, оказывалось что всю задачу покрывают телеграм+лендинг))
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 11 ч
Это жиза)) Тут скорее просто непонимание) Хороший и добрый человек покажет на простое решение, а вот нехороший… Напишет приложение за большие деньги😁
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён