Начнём с основ — разберём какие типы мобильных приложений бывают, это база, которая пригодится каждому мобильному тестировщику.
Я описала самые основные типы, но и добавила интересные варианты, которые можно встретить реже (например, amp или Google Play Instant Apps).
Нативные приложения
Нативные приложения разрабатываются на ‘родном’ для платформы языке для Android это Kotlin и Java, а для iOS — Objective-C и Swift.
Преимущества:
Высокая производительность: приложения работают быстро и плавно, потому что используют все возможности и мощности девайса
Поддержка сложных проектов: легко масштабируются и подходят для разработки сложной логики
Расширенные интерфейсы: можно кастомизировать элементы интерфейса
Удобство для пользователей: приложения создаются с учётом гайдлайнов, а значит, они соответствуют всем стандартам платформы и пользователю будет интуитивно понятно, как пользоваться приложением
Недостатки:
Высокая стоимость: так как это две разные платформы, два разных языка, то потребуется две команды разработки для каждой из платформ
Длительность разработки: на начальном этапе для создания базового функционала и элементов потребуется больше времени, так как опять же два разных языка - две разные команды
Необходимость регулярных обновлений: любая новая фича требует релиза новой версии через стор
Примеры:
Android: Instagram (нативное, но использует WebView для отдельных функций), WhatsApp, TikTok
iOS: Apple Maps, iMessage
Мобильные веб-приложения
Мобильные веб-приложения - это приложения, которые работают через браузер. То есть пользователю достаточно ввести URL в адресной строке или перейти по ссылке, без необходимости установки.
Иногда веб-приложения могут быть встроены в контейнер через WebView для интеграции с функциями устройства (чаще всего можно встретить в гибридных приложениях).
Преимущества:
Кроссплатформенность: одно приложение, которое будет работать на всех платформах
Экономия времени и денег: разработка проще и дешевле, так как используется единый стек HTML, CSS, JavaScript, с котором работает вся команда
Недостатки:
Зависимость от интернета: офлайн работать не будет
Меньший контроль над интерфейсом: интерфейс не всегда будет выглядеть нативно
Ограничения производительности: скорость работы ниже, чем у нативных приложений
Примеры:
Google Docs: Полноценное веб-приложение для работы с документами
Canva: Графический редактор, доступный через браузер
Гибридные приложения
В этих приложениях основной контент разрабатывается как веб-приложение, но доступ к устройству осуществляется через нативные оболочки. Эти оболочки выступают в роли мостов между веб-контентом и аппаратными функциями устройства, благодаря чему у приложения есть доступ к камере, GPS, уведомлениям и тд.
Преимущества:
Экономия времени: используется одна кодовая база, а значит, разработка будет быстрее
Обновления без магазина: так как часть приложения - это веб, то обновление этого функционала происходит без необходимости выпускать новую версию через App Store или Google Play
Доступ к устройству: приложения взаимодействуют с камерой, GPS и другими функциями
Недостатки:
Проблемы с производительностью: работают медленнее нативных приложений
Ограничения дизайна: не всегда соответствуют гайдлайнам платформы
Примеры:
Uber: Использует гибридную модель для отображения интерфейса в WebView и работы с картами
Twitter: Частично гибридное приложение для упрощения разработки и обновлений
Кроссплатформенные приложения
Эти приложения разрабатывается с помощью фреймворков - React Native (JavaScript), Flutter (Dart), Xamarin (C#), они позволяют использовать один код для нескольких платформ (iOS и Android). Они компилируются (= превращаются) в нативный код для каждой операционной системы, что обеспечивает близкую к нативным приложениям производительность.
Преимущества:
Единая кодовая база: меньше времени на разработку и поддержание
Производительность: выше, чем у гибридных приложений, так как происходит компиляция в нативный код
Доступ к функциям устройства: полный доступ к аппаратным возможностям
Недостатки:
Ограничения фреймворков: несмотря на то, что код компилируется в нативный, не все возможности нативных API могут быть поддержаны
Размер приложения: может быть больше из-за необходимости включения всех библиотек фреймворка
Примеры:
Airbnb: Использует React Native для некоторых компонентов
Alibaba: Работает на Flutter
Аналоги инсталлируемых приложений
Progressive Web Apps (PWA)
PWA - это улучшенная версия веб-приложения, данное приложение вы можете скачать из браузера к себе на телефон(ну или десктоп). PWA поддерживают такие функции как оффлайн-доступ, push-уведомления и тд.
Преимущества:
Простота установки: пользователь открывает сайт в браузере и добавляет его на главный экран устройства через меню браузера
Работа оффлайн: могут функционировать без интернета
Недостатки:
Ограниченный доступ к устройству: например, нет доступа к Bluetooth
Скорость: работают медленнее нативных приложений
Примеры: Starbucks, Twitter Lite, Forbes.
Google Play Instant / Android Instant Apps (AIA)
Instant Apps дают возможность протестировать ключевые функции без установки. Пользователь кликает на ссылку, и приложение загружается в память устройства временно.
Instant Apps используются для продвижения приложений через рекламные кампании. Пользователь, увидев рекламу, может сразу "попробовать" приложение, что увеличивает вероятность его последующей установки.
Преимущества:
Быстрая демонстрация функционала апки
Экономия памяти устройства
Недостатки:
Ограниченная функциональность (нет пушей, Bluetooth), только базовый функционал
Не работают офлайн
Не поддерживаются сложные модели монетизации, например покупки внутри приложения или подписки
Примеры: BuzzFeed, Skyscanner
Accelerated Mobile Pages (AMP)
AMP - технология, разработанная Google для ускоренной загрузки веб-страниц. Используется чаще всего для новостных сайтов и других ресурсов с большим объёмом контента. AMP-страницы не требуют скачивания, тк работают прямо в браузере.
Преимущества:
Мгновенная загрузка страниц
Оптимизация для мобильных устройств, автоматически адаптируется под различные размеры экранов и устройства
Недостатки:
Ограниченные возможности для кастомизации, поэтому часто такие страницы выглядят одинаково
В AMP запрещено использование JavaScript (кроме заранее определённых компонентов AMP), из-за этого усложняется реализация сложной функциональности
Примеры: The Washington Post, BBC News, CNBC
Если ты готовишься к собесу или только начинаешь свой путь, то знание типов мобильных приложений - это именно то, с чего стоит начать. Разобрав основные типы, их некоторые плюсы, минусы и примеры, будет понимание того на что обратить внимание при тестировании.