Нативная разработка
Нативные приложения написаны для конкретной мобильной платформы: iOS, Android, Windows. Язык программирования, который используется для написания таких сервисов, поддерживается только одной платформой. Например, Swift и Objective-C понимает только iOS, а Java или Kotlin – только Android.
Делайте нативное приложение, если оно должно стать важной частью бизнеса и влиять на продажи.
Нативное приложение может максимально использовать аппаратные и функциональные возможности смартфона или планшета, благодаря чему им очень удобно пользоваться. Но вместе с тем можно использовать оригинальные компоненты и шаблоны.
Плюсы нативных приложений:
• наиболее производительны;
• получают полную поддержку от сторов;
• интуитивно понятны, работают более плавно, привычны для пользователя и дарят больше эмоций;
• пользовательский интерфейс более удобный, чем у кроссплатформенных приложений;
• позволяют разработчикам получить доступ к полному набору функций операционной системы.
Минусы нативных приложений:
• требуют больших затрат на старте и при дальнейшей поддержке, чем кроссплатформенные приложения;
• не лучший вариант для простых приложений.
Кроссплатформенная разработка
При создании таких приложений используются общие наборы средств разработки (SDK). Из-за этого кроссплатформенные сервисы не используют все нативные преимущества каждой платформы. Зато сделать такое приложение дешевле – это оптимальный вариант для проектов с ограниченным бюджетом.
Делайте кроссплатформенное приложение, если нужно быстро проверить гипотезу или протестировать новый продукт.
Плюсы кроссплатформенных приложений:
• разработка и поддержка дешевле, чем у нативных приложений;
• использование одного и того же кода для создания сервисов для разных платформ.
Минусы кроссплатформенных приложений:
• низкие производительность и отзывчивость;
• для качественного продукта нужны высококвалифицированные разработчики – их мало и они дорого стоят;
• требуют у разработчиков больше сил и времени, чтобы адаптировать сервис под разные платформы и устройства;
• обновления операционных систем и новые функции можно использовать не так быстро, как в случае с нативными приложениями.
Чек-лист: как выбрать тип приложения
Исходите из своих бизнес-целей и ответьте на следующие вопросы:
• Насколько быстрое и отзывчивое приложение вам нужно?
• Насколько важны бизнес-процессы, которые встроены в приложение?
• Насколько сложные функции будет выполнять ваше приложение?
Рустам Мухамедьянов, руководитель студии WINFOX:
«Главное отличие между нативным и кроссплатформенным приложением – в скорости и отзывчивости работы. Это как проехаться на Porsche Cayenne и Hyundai Solaris. Оба авто едут по дороге, разгоняются, маневрируют и входят в повороты. Но разница чувствуется сразу».
Бэкенд
После того, как вы определились, какое приложение будете делать – нативное или кроссплатформенное – надо разобраться с серверной частью.
Любое приложение отображает данные: показывает, какие товары есть в наличии в интернет-магазине, сколько запасов лежит на складе и кто из контрагентов должен вам денег. Все эти данные хранятся на сервере. Чтобы создать сервер, который эффективно обменивается данными с внешним интерфейсом приложения, надо его тщательно продумать.
Александр Хрущев, технический директор студии WINFOX:
«На этапе бэкенда участие заказчика минимальное. Вам не надо думать, где хранить данные и нужно ли использовать бессерверную архитектуру – это решают разработчики. Мы в WINFOX всегда выбираем оптимальные для клиента решения. Единственное исключение – это когда надо вписать приложение в уже существующую среду. Тогда вы можете сказать: “Делайте на PHP, а не на Java”».
Этап 5. Тестирование и стабилизация
Тестирование – это процесс поиска ошибок в работе приложения, а стабилизация – процесс их исправления.
Тестирование
Некоторые заказчики пренебрегают тестированием: «Давайте скорее запускаться! Если будут баги, поправим по ходу». Но чем дальше вы идете в цикл разработки без тестирования, тем дороже будет исправление ошибок.
Мы тестируем приложение на всех этапах. Проверяем его на удобство использования, совместимость с различными устройствами и платформами, тестируем интерфейс, нагрузку, безопасность и производительность. Все это позволяет вовремя исправить недочеты и на выходе получить полностью рабочий продукт.