WebView в мобильном приложении: плюсы, минусы и экономия денег
Следующий пример уже личной мой – отечественный фудтех-стартап Postilla. Имея потрясающий опыт в Jiffy, запуская Постиллу мы тоже выбрали использовать WebView.
Почему? Как и в случае кейсе Jiffy, нам важно было очень быстро запустить продукт, что, в принципе, логично для любого стартапа. Мы создали удобную систему для быстрого запуска мобильных приложений кафе и ресторанов на нашей платформе и централизованной доставки обновлений сразу во все приложения наших клиентов – таким образом, обновляя фронтенд, это обновление получают автоматически пользователи всех приложений, работающих на платформе Postilla.
И точно так же, как и в случае с Jiffy, это позволило без разработки с нуля масштабировать фронтенд до веб версии. И расти дальше.
Знаю, пара собственных примеров может звучать не очень убедительно и объективно. Как в детстве, на рынке, когда тебе мама выбирает джинсы, а продавец говорит «Хорошие джинсы, сам такие ношу!». Поэтому, идем дальше.
Можно посмотреть на пример самой авторитетной айти-компании страны – Яндекс. Начав с WebView, они пришли к своему собственному server-driven UI фреймворку, который позволяет примерно то же самое: централизованно в облаке управлять интерфейсом приложения, без необходимости нативной разработки фронтенда.
Сейчас на этой технологии работает большинство продуктов Яндекса: от Лавки до ТВ.
Как запустить приложение на WebView?
Здесь все предельно просто и умещается в несколько шагов.
- Создать приложение-контейнер. Универсальным будет выбор React Native: один код под все платформы и поддерживать может любой TypeScript разработчик – то есть, ваш штатный фронтендер. Простейший код приложения-контейнера выглядит так, покажите это вашему фронтендеру.
- Разработать обычное веб-приложение на любом привычном для вашей команды фреймворке и разместить его где-нибудь на сервере. Важно учесть нюансы UX мобильных приложений: например, блокировать свайп назад в определенных экранах. И чтобы код веб-приложения кешировался и пользователям не приходилось ждать загрузки каждый раз.
- В приложении-контейнере сделать методы для взаимодействия веб-приложения и приложением-контейнером. Например, для передачи методов аналитики и методов тактильной отдачи (Haptic Feedback).
- Опубликовать в магазины приложений.
Всё достаточно просто, но если вдруг кажется, что нет – в конце статьи я оставил свои контакты, мне можно написать и я поделюсь с вами опытом.
В итоге, что выбрать: нативное приложение или WebView?
Самый важный вопрос для тех, кто пришел в эту статью за помощью в принятии решения. Для этого еще раз сравним Native vs WebView:
WebView:
- Быстрая разработка: Один и тот же код может быть использован для различных платформ (Android, iOS), что сокращает время разработки.
- Обновления: Легче и быстрее проводить обновления, поскольку в большинстве случаев не требуется выпускать новую версию приложения через магазины приложений.
- Ресурсы: Меньше нужно специализированных разработчиков (нет необходимости в Android- и iOS-разработчиках).
Нативная разработка:
- Длительная разработка: Необходимость писать код для каждой платформы отдельно увеличивает время разработки.
- Обновления: Каждое обновление требует прохождения через процесс утверждения в магазинах приложений, что может занять время.
- Ресурсы: Необходимы специализированные разработчики для каждой платформы, что также влияет на скорость выхода продукта на рынок.
Объективно видно, что запуск на WebView дешевле и быстрее. Если вы готовитесь начать разработку вашего первого мобильного приложения и быстро протестировать гипотезы, не вкладывая много ресурсов – выбор предельно очевиден, вебвью вам в два-три раза сэкономит деньги и время.
Если у вашего бизнеса уже есть нативное мобильное приложение, команда, которая его поддерживает и вы собираетесь продолжать развивать его – можно оставаться на нативке.
Когда писал статью, нашел еще прекрасный кейс компании Циан, как и для чего они используют вебвью у себя:
Выбор между нативной разработкой и WebView очень важен в процессе разработки нового продукта, потому что последствия выбора будут ощущаться и далее.
В статье я специально не сравнивал с React Native, Flutter и в целом кросс-платформенными фреймворками, хотя они тоже позволяют ускорить запуск и time to market новых функций – просто для Flutter все еще нужно нанимать специальных людей и обычный фронтендер там не справится, а это не подходит.
Расскажите, какую технологию вы используете в вашей компании и почему? Согласны ли с тезисом, что MVP лучше делать на WebView, потому что это позволяет запустить первую версию дешевле и быстрее?
Буду рад, будучи фаундером нескольких айти компаний и автором телеграм-канала Директор айти компании, абсолютно бесплатно проконсультировать на тему выбора технологии для вашего мобильного приложения! Просто напишите мне в Telegram: @lupikovoleg.
Другие мои материалы:
Дохерищи необоснованных англицизмов. Так можно в курилке с разработчиками базарить за "косты" и "кейсы" и всякие "ачивки".
Нет, спасибо! Нам за 4000 руб делают с кворка! Разница- почти в 1000 раз! А на разницу в цене можно заказать еще 1000 придожений, ну или 900 🤣
Удачи с приложением за 4000 руб 😄
а сколько стоит у вас приложение вебвью для андроида и ios?
Хей, от 3млн рублей
Напиши мне, расскажу
Колхоз. Ноль упоминаний кросснатива в статье.
Умышленно дается выбор между нативом и вебвьюхой. Еще и за нее от 3 лямов просят тут ниже, в комментах 😂😂😂😂
В статье утверждается, что вебвью дешево, не нужны дорогие разрабы, сделал сайт и вперед. А потом «приложение», что не так, три ляма.
Плюс, никак не указан один из главных минусов: ограниченность масштабирования под любой размер экрана, баги, когда верстка выезжает за ширину экрана и тд. Когда ты свою вебвьюху смотришь на 14-15 айфоне вроде выглядит норм, как только начинается хоть чуть-чуть нестандартное разрешение экрана — могут начаться проблемы.
Вывод: автор - колхозан и умышленно скрывает важные нюансы, продвигая устаревшее решение как современное.
Пы.Сы. Да, да, в своей статье пару лет назад про русский биханс автор необоснованно потешил свое эго и чсв, назвав меня колхозном, прошло пару лет и я теперь тешу обоснованно)