Сегодня у Crunch есть приложение в виде Progressive Web App (PWA). Это предлагает более широкий охват с большими возможностями и совместимостью, чем «родное» приложение.
PWA можно закрепить на главном экране вашего телефона и вести себя как родное приложение. Однако, поскольку в настоящее время PWA недоступны в Apple App Store, мы не представлены ни в App Store, ни в Google Play Store.
Почему это имеет значение? Есть три причины, по которым мы хотим распространять наше программное обеспечение через магазины приложений: охват рынка, предпочтения клиентов, удобство для клиентов.
Охват рынка
В настоящее время основным путем знакомства с нашим программным обеспечением для наших клиентов являются рефералы B2B и Google.
Однако есть еще один пул потенциальных пользователей, которых нам еще предстоит охватить, — энтузиасты App Store. Этот персонаж будет искать в Магазинах «Бухгалтерский учет» или «Бухгалтерский учет» (аналогично тому, как другие используют Google) и устанавливать приложения, никогда не посещая веб-сайт издателей и не изучая их программное обеспечение.
Хорошего рейтинга, описания и удобного процесса регистрации может быть достаточно, чтобы побудить потенциального пользователя установить приложение и воочию убедиться, насколько оно всеобъемлющее.
Предпочтения клиента
Несмотря на то, что наше PWA предлагает фантастический опыт работы на устройствах, на мобильное использование приходится только 7% нашего трафика. Мы считаем, что это результат того, что наш «типичный» клиентский профиль находится в цифровом секторе, поэтому, скорее всего, он будет проводить на рабочем столе в течение дня.
Однако недавнее появление нашего бесплатного программного обеспечения привело к огромному притоку новых пользователей Индивидуальных предпринимателей, которые с меньшей вероятностью проводят день в офисе.
Теоретически, предложение нескольких платформ на выбор поддержит нашу клиентскую базу, разнообразие которой растет.
Удобство для клиентов
Наш минимально жизнеспособный продукт будет предоставлять функции, которые мы считаем наиболее ценными, «на ходу». С первого дня родное приложение будет включать в себя расходы, выставление счетов и банковские операции, которые должны казаться законченным продуктом для новых пользователей, присоединившихся через App Store, в то время как существующие пользователи PWA (привыкшие к более полному набору функций) обнаружат, что эти три домена удовлетворяют их основные потребности. находясь вне офиса, дополняет PWA.
Как мы собираемся это сделать?
Благодаря новым технологиям сегодня существуют варианты, которые были немыслимы, когда мы в последний раз пытались предложить наш продукт на нескольких платформах.
Сегодня инструмент под названием Capacitor позволит нам встроить наше PWA в нативное приложение, подходящее для всех магазинов приложений. Их решение работает, расширяя веб-представление дополнительными функциями и непрямым доступом к полной собственной функциональности. По сути, они создали среду выполнения для веб-приложений, позволяющую нам сосредоточиться на нашей единой кодовой базе и просто построить ее для разных платформ.
Capacitor […] упрощает создание веб-приложений, которые работают на iOS, Android, настольных компьютерах и в Интернете как прогрессивные веб-приложения — все они основаны на единой кодовой базе. Capacitor соединяет Интернет с Native, позволяя использовать лучшее из обоих миров, предоставляя инструменты и среду выполнения, которые позволяют использовать любое современное PWA и развертывать его Native на всех платформах, которые вам интересны. —Справочник
Наша модульная архитектура означает, что мы можем легко включать, заменять или изменять функции для дизайна собственного приложения, чтобы исключить функции, которые не нужны для версии «на ходу». Сюда входит перенос вызовов интерфейсного API из нашего внутреннего API в наш общедоступный API. Это необходимо для обеспечения безопасности, но имеет дополнительное очищающее преимущество, поскольку делает нас клиентом нашего собственного общедоступного API, гарантируя, что сервис, который мы предлагаем сообществу разработчиков, является выдающимся.
Capacitor загружается почти 200 000 раз в неделю, и в настоящее время он используется в крупных производственных корпоративных приложениях с сотнями миллионов пользователей, таких как NBC, Microsoft и GE.
Не станет ли это дополнительной нагрузкой для нашей команды?
Что касается разработки,до того, как мы внедрили микросервисы, мы пытались создавать дублирующие области нашего программного обеспечения для создания новых (но похожих) коммерческих продуктов, однако мы просто не иметь размер команды или свободное пространство, чтобы сделать их привлекательными. По этой причине мы исключили создание нового приложения с нуля с использованием таких библиотек, как React Native.
Одним из руководящих принципов этой инициативы является «поддержание единой кодовой базы, что означает отсутствие разочаровывающего или дорогостоящего дублирования усилий разработчиков», и что «мы не должны уменьшать внимание к нашему флагманскому PWA». Наше исследование показало, что конденсаторный подход позволяет нам достичь и того, и другого.
Наше PWA уже ставит мобильных пользователей в центр внимания благодаря подходу Mobile First, поэтому результат сборки Capacitor должен обеспечивать отличный мобильный UX из коробки без необходимости переосмысления, перепроектирования или доработки. С точки зрения серверной части, у нас есть некоторые предпосылки для решения (обсуждены вкратце), но ничего, что мы бы считали излишним специально для этой инициативы.
Что касается развертывания, нам потребуется дополнительный процесс, чтобы сделать все правильно. В прошлом мы своими глазами видели, что отсутствие эффективного процесса развертывания приводило к устареванию продуктов; что в конечном итоге приводит к негативным отзывам в App Store, что искажает нашу репутацию.
Обновление нативного приложения зависит от трех сторон. Мы (Crunch), магазин приложений и клиент. Новую версию необходимо каждый раз отправлять в Магазин для проверки и утверждения. После утверждения пользователю необходимо обновить приложение, чтобы использовать последнюю версию. Клиент потенциально может отставать на несколько версий.
Мы можем использовать инструменты, чтобы максимально автоматизировать процесс. Чтобы выпустить обновление, мы будем синхронизироваться с PWA и использовать App Flow для автоматизации отправки в магазин приложений. App Flow — это платформа CI/CD для приложений Capacitor, позволяющая нам легко развертывать обновления и исправления, поддерживая актуальность нашего приложения.
Наши предпосылки
Покрытие общедоступных API
Чтобы расширить функциональные возможности собственных приложений, выходящие за рамки выставления счетов, банковских операций и расходов, мы зависим от расширения охвата нашего общедоступного API.
Потенциальным обходным решением может быть гибридный подход, включающий ссылки Nav в собственное приложение, которое открывает веб-браузер устройства и загружает PWA. В зависимости от устройства этот переход от собственного приложения к PWA может быть незаметным, и нам может потребоваться инвестировать в механизм, предотвращающий повторную аутентификацию пользователя. Ни один из них не хорош с точки зрения клиентского опыта.
Изменение мышления
Сегодня наши серверные микросервисы не получают надежного «версионирования» — это означает, что внешний интерфейс нашего программного обеспечения не подписывается на конкретную версию конечной точки. Это дает нам возможность быстро развиваться, но может привести к некоторой нестабильности и требует хорошего взаимодействия между разработчиками.
Родное приложение должно подписаться на установленную версию конечной точки API, потому что внешний интерфейс будет заморожен, и хотя мы сможем быстро развертывать обновления, мы не сможем контролировать когда обновление будет применяться. Разработчики должны сохранять бдительность при внесении каких-либо значительных изменений в API, поскольку им потребуется увеличить версию API или обеспечить обратную совместимость.
Поэтому нам нужно начать думать об API как о Продукте как таковом с новым для нас клиентом — внешними разработчиками. Это будет необходимо для достижения нашей цели по созданию оживленного рынка внешних интеграций в течение следующего года.
Заключение
В результате преобразования PWA, вероятно, возникнут некоторые упущения или особенности, которые необходимо устранить. Мы будем рады узнать о вашем опыте использования Capacitor или подобного инструмента.
В качестве первого этапа мы постараемся создать небольшой кусочек того, как будет выглядеть версия 1.0. Это может включать создание приложения, содержащего только функции расходов, но размещенного в App Store и доступного для внутренней аудитории. Переход от тонкой части к производству гарантирует, что мы столкнемся со всеми проблемами и рисками на ранних этапах проекта, например. конверсия, CX, аутентификация, совместимость устройств, управление версиями, одобрение App Store или внутренняя осведомленность.
Помимо набора функций MVP, мы будем стремиться развивать собственное приложение в соответствии с отзывами пользователей. Это может быть добавление дополнительных функций, которые в настоящее время доступны в PWA, или новый набор функций, специально предназначенных для мобильных пользователей, таких как включение фотосъемки квитанций, push-уведомлений, автономный режим, машинное обучение на основе географических данных. для создания транзакций и т. д.
Следите за маркетинговыми сообщениями о запуске в конце этого года!
Написано Джейми Холлисом (руководителем отдела разработки Crunch) и выражает огромную благодарность Бену Герберту, техническому вдохновителю этого захватывающего плана!