Технологический прогресс в отрасли мобильной разработки становится все заметнее. Однако разделение между разработкой приложений для iOS и Android является существенным сдерживающим фактором.

Между тем, обе операционные системы широко распространены во всем мире. Разработчики приложений не должны упускать это из виду, чтобы не упустить ни одного из своих рынков. Flutter готов расширить их возможности.

Когда в 2018 году Google объявила о выпуске первой стабильной версии Flutter (1.0), я не могла справиться с соблазном проверить, на что годится этот инструмент.

Знаю, многие из вас недоумевают: почему растет популярность Flutter среди разработчиков приложений? Ведь его смысл ничем не отличался от любого другого кроссплатформенного инструмента, созданного для разработки нативных приложений для iOS и Android  —  создай раз, используй везде!

В отличие от многих других, я не слишком доверяю красивым фразам. Поэтому приведу факты:

  • только в течение последнего года появилось более 4000 библиотек, поддерживающих приложения Flutter;
  • Medium, YouTube, Stack Overflow и другие ресурсы переполнены контентом, информирующим о том, что Flutter помогает в разработке широкого спектра приложений для различных бизнес-ниш;
  • Flutter — король, или, по крайней мере, будет королем в решениях по разработке корпоративных приложений (и это не только мое мнение — так думает подавляющее большинство представителей отрасли мобильных приложений);
  • по данным Google, 500,000 специалистов ежемесячно используют комплект Flutter для разработки программного обеспечения;
  • SDK Flutter — второй из быстро развивающихся проектов на GitHub — позволяет ему затмевать своих конкурентов в отрасли.

Все это указывает на появление сообщества, которое стремится к взаимодействию, росту и улучшению Flutter!

С учетом вышесказанного, пришло время определить, готовы ли Flutter и его библиотеки к разработке корпоративных мобильных приложений в 2021 году.

Сейчас мы перейдем непосредственно к техническим требованиям, которые могут вам понадобиться для разработки корпоративных Android-приложений (именно этими приложениями занималась я). Но прежде предлагаю оценить хотя бы по одному решению Flutter для каждого требования. Надеюсь, это заставит вас поверить в то, что Flutter действительно готов создавать корпоративные приложения, практически игнорируя требования к гибридному коду.

Конечно, требования к бизнес-приложениям варьируются в зависимости от проектов, поэтому не стоит ожидать одинаковых итоговых результатов.

Давайте начнем с краткой вводной части о Flutter.


Обзор фреймворка

Flutter — это комплект для разработки программного обеспечения с открытым исходным кодом, широко используемый для создания кроссплатформенных приложений. Применяя единую кодовую базу, компании, занимающиеся разработкой мобильных приложений, могут создавать различные типы продуктов: от простых чат-приложений до приложений по заказу товаров повседневного спроса. Главное отличие Flutter от других фреймворков заключается в том, что все его приложения написаны на объектно-ориентированном языке программирования Google под названием Dart.

Причины, по которым Google выбрал Dart:

  • продуктивность;
  • более быстрое распределение;
  • объектная ориентированность;
  • высокая производительность.

Благодаря всему этому, Flutter помогает разработчикам создавать нативные приложения для iOS, Android и веб-приложения, легко работающие на нескольких платформах.

Производительность пользовательского интерфейса, сроки выполнения исходного кода, тесты безопасности и функциональные возможности — вот основные проблемы, с которыми сталкиваются при разработке кроссплатформенных приложений. Разработка приложений с Flutter поможет решить их с чрезвычайной легкостью.

Итак, что же такое корпоративное приложение, каковы основные требования для его создания и какой вклад в этот процесс вносит Flutter?


Мобильные приложения корпоративного уровня

Начнем с предназначения корпоративных приложений. Только ли для развития ведущих брендов они разрабатываются? Нет.

Корпоративные приложения создаются для всех организаций, будь то прогрессивный стартап или солидная компания. Их спецназначение — обеспечение ограниченного и безопасного доступа сотрудников предприятия к корпоративной информации. С помощью таких приложений администраторы могут:

  • централизованно обрабатывать данные;
  • осуществлять широкомасштабную автоматизацию;
  • поддерживать бесперебойный рабочий процесс.

Чтобы корпоративные приложения были эффективными, они должны:

  • обладать множеством функций;
  • гарантировать высокий уровень безопасности;
  • отличаться безупречным дизайном пользовательского интерфейса с надежной структурой, обеспечивающей высокую производительность.

Давайте разберемся в конкретных требованиях к созданию корпоративных приложений и посмотрим, готовы ли Flutter и его экосистема библиотечных пакетов к выполнению этих задач.

Итак, вот требования, на которые я хочу обратить ваше внимание:

  • многоуровневая архитектура;
  • среда разработки;
  • пользовательский интерфейс;
  • аппаратные особенности;
  • безопасность приложений;
  • прочие требования.

Каждую категорию требований невозможно полностью охватить. Я попытался кратко изложить самую суть в расчете на то, что читатель уже знаком с основными функциями Flutter.


1. Многоуровневая архитектура для обеспечения оптимальной функциональности

Многоуровневая архитектура корпоративного приложения обеспечивает его бесперебойную функциональность и повышает производительность. Это требование должно выполняться даже при объединении усилий разработчиков, отличающихся уровнем квалификации и специализацией.

При наложении слоев необходимо решить следующие задачи:

  • обеспечить оптимальный доступ к точно задокументированным шаблонам проектирования;
  • организовать одновременную работу большой и разнородной команды разработчиков над базой кода;
  • освоить широкий спектр функций приложения.

Преимущество Flutter в том, что он предоставляет простую и безопасную сеть для веб-ресурсов, локального хранения, баз данных SQLite и доступа к оборудованию через библиотечные плагины.

Теперь выясним способы решения обозначенных задач:

  1. Управление состоянием. Это ключевая задача при разработке архитектуры приложений Flutter. Именно поэтому Google недавно порекомендовала разработчикам платформу Provider, которую легче всего освоить и использовать. Другие подходы к управлению состоянием — Redux, BLoC, InheritedWidget, setState и т.п. — также доступны и могут быть использованы при необходимости.
  2. RxDart. Если потоков Dart и асинхронного пакета будет недостаточно для ваших потребностей в асинхронном программировании, использование RxDart станет мудрым решением. Он без проблем интегрируется с Flutter и платформами управления состоянием.
  3. Фоновое выполнение задач. Речь идет об обеспечении интенсивных вычислительных процессов, проходящих в приложении с сохранением реагирования пользовательского интерфейса. В зависимости от сложности требований к фоновому выполнению задач, может возникнуть потребность в использовании нативных функций платформы, что выходит за рамки реализации Dart.
  4. Внедрение зависимости. Чтобы сделать кодовые единицы приложения независимыми и многоразовыми, разработчики могут использовать внедрение зависимости. Этот шаблон проектирования облегчает тестирование кода. Локатор GetIt— простая в использовании DI-библиотека, которая легко взаимодействует с платформой управления состоянием, обеспечивая разделение слоев приложений.
  5. Сериализация / десериализация JSON. Это важно для клиента с сетевой архитектурой REST и необходимо для большинства корпоративных приложений.
  6. Диплинкинг. Создание глубинных ссылок гарантирует корректную навигацию с веб-сайта или получение push-уведомлений для запуска определенных областей в приложении.
  7. Локальные области хранения. Flutter обеспечивает локальное хранение небольшого количества данных о ключах / значениях и обеспечивает работу приложения, даже когда оно находится в фоновом режиме или выключено.
  8. SQLite. Эту библиотеку можно использовать для работы с большими объемами структурированных данных.
  9. Push-уведомления. В приложениях корпоративного типа данная технология обычно требует интеграции с бэкенд-частью сервиса, чтобы информировать пользователей о конкретных датах, напоминать об услугах и многом другом. Универсальным решением является Firebase Messaging.

2. Среда разработки нативных приложений Android и iOS

В качестве интерактивной среды разработки с Flutter программист может выбрать Android Studio/IntelliJ либо Visual Studio Code. Все эти системы хорошо поддерживаются на Mac, PC, Linux и Chromebook. Все, что вам нужно, — это нанять разработчика приложений с соответствующим опытом.

В рамках интерактивной среды разработки специалисты могут выполнять построение, развертывание на устройствах, отладку и профилирование производительности. Но для того, чтобы создать среду разработки / развертывания для нативной iOS, потребуется Xcode на Mac.

Масштабируемость

Приложения, созданные с помощью Flutter, легко масштабируются, так как основаны на экосистеме Dart, которая импортирует Dart-пакеты для обеспечения функциональности внешних библиотек. Проекты Flutter могут быть преобразованы в пакеты Flutter Dart. Это дает возможность разделить обязанности между большими командами разработчиков и упростить масштабирование приложения.

Тестируемость

Независимо от того, что вы используете — модульные тесты, тесты виджетов или интеграционные тесты, — можете легко протестировать каждый виджет Flutter. Эти испытательные инструменты обеспечивают всеобъемлющее тестирование, а их возможности ограничены только имеющимися в запасе временем и ресурсами.

Непрерывная интеграция / непрерывная поставка

Flutter использует набор передовых инструментов Android и iOS для развертывания приложений в Google Play Store или Apple Store. Это позволяет сделать их доступными с любого корпоративного мобильного устройства на базе технологии CI/CD.

Сотрудники компаний по разработке мобильных приложений, занимающиеся Flutter, подчас проводят большую часть времени в среде Flutter/Dart, развертывая приложения на Flutter на устройствах Android и iOS. Знание того, как создавать и подписывать приложения, профили инициализации и т. д. необходимо для успешной реализации приложений на базе Flutter.


3. Пользовательский интерфейс

Интерфейс приложения играет важную роль в создании опыта пользователя. Разработчики корпоративных мобильных приложений стремятся сосредоточиться исключительно на предоставлении превосходного пользовательского интерфейса. Для того, чтобы удовлетворить ожидания клиентов, специалисты оснастили Flutter полным набором высокоточных функций как для Android, так и для iOS.

Вот функции, которые придадут вашему пользовательскому интерфейсу больше привлекательности:

  1. Анимация. Вы легко научитесь обращаться с функцией анимации. Такие объекты можно масштабировать до любого уровня сложности. Если вы хотите использовать Flutter по максимуму, обратите внимание на Flare — полноценную библиотеку векторной анимации 2D. Компании, занимающиеся разработкой приложений, широко используют этот инструмент для кастомизации корпоративных приложений с цельнокроенным интерфейсом.
  2. Переходы страниц. Это отличный пример для изучения того, как можно осуществлять навигацию между страницами приложения с использованием анимации.
  3. Пагинация или бесконечный скроллинг. Это стало обычным требованием, когда требуется отобразить большой объем данных без перегрузки памяти устройства. Это самый свежий тренд в сфере услуг по разработке мобильных приложений. Flutter предлагает функцию бесконечного скроллинга для просмотра богатых хранилищ контента.
  4. Библиотека загрузки / кэширования изображений. Она обеспечивает быстрый и простой способ обработки множества картинок, включая кэширование, если качество базового изображения или изображения в формате SVG не подходит для использования. Поэтому разработчики приложений на базе Flutter могут легко управлять изображениями с помощью библиотек загрузки и кэширования.

Наконец, в мобильном приложении на базе Flutter вы можете предоставить доступ к Google и Apple Maps.


4. Требования к аппаратным функциям

Независимо от того, насколько блестяще вы кастомизировали свое приложение с помощью обширного набора функций, оно, как и любое другое, требует поддержки аппаратных функций.

Поэтому, когда вы нанимаете разработчика и поручаете ему создать корпоративное приложение для сотрудников / пользователей / работников предприятия, вам понадобится поддержка аппаратных и программных функций:

  • камера;
  • акселерометр;
  • GPS;
  • биометрическая аутентификация, включая идентификацию отпечатков пальцев и лица;
  • микрофон.

5. Безопасность мобильных приложений

Безопасность — это сфера, к которой любая организация должна подходить с особой щепетильностью. И неважно, идет ли речь о базовом корпоративном приложении или продукте более продвинутого уровня. Защита данных приложений — одна из главных забот бизнеса. Поэтому при создании корпоративных приложений необходимо учитывать различные факторы. Несомненно, это очень обширная тема, но я постараюсь сузить ее до нескольких конкретных моментов для более понятного объяснения.

Итак, насколько нам известно, приложения на базе Flutter построены в средах-песочницах Android и iOS. Поэтому каждое такое приложение имеет неотъемлемые аспекты безопасности в отношении нативных приложений iOS и Android.

Самые важные требования, такие, например, как аутентификация (биометрия, отпечаток большого пальца, двухуровневый пароль), успешно реализуются с помощью функции Simple Auth от Flutter.

Обратите внимание на то, что есть и другие поставщики аутентификации:

  • Amazon;
  • Facebook;
  • GitHub;
  • Google;
  • Dropbox;
  • Azure Active Directory;
  • LinkedIn;
  • Instagram;
  • Microsoft Live Connect.

Важно также подумать о закреплении SSL-сертификата, чтобы снизить вероятность атак в общих серверах. Это обеспечит защиту веб-запросам (HTTPS) и будет поддерживаться приложением.

Защищенное хранилище обеспечивает возможность безопасного размещения небольшого количества ключей или ценной информации на устройстве и позволяет приложению работать даже при отсутствии подключения к Интернету.


6. Прочие требования

Помимо всех вышеперечисленных требований, при разработке корпоративных приложений обязательно учитываются еще несколько моментов:

  1. Аналитика. Для выполнения аналитических функций Flutter располагает библиотеками Adobe или Firebase Analytics.
  2. Отчеты об ошибках. Разработчики могут использовать библиотеку Sentry от Flutter.
  3. Сторонние библиотеки или библиотеки с открытым исходным кодом. Просмотрите этот список сторонних библиотек и лицензий, чтобы сделать правильный выбор для использования в своем приложении.
  4. Генерация QR-кодов. Идет ли речь о продвинутом уровне функционирования вашего приложения или об аспектах безопасности, сканирование QR-кодов имеет большое значение.

Следует также обеспечить:


7. Кроссплатформенная поддержка Flutter помимо iOS и Android

Мы говорили только о поддержке Flutter для нативных приложений iOS и Android, но в настоящее время Flutter значительно расширяет свои возможности поддержки для web, macOS, Windows и Linux. Создание приложения, которое легко развертывается и работает на всех этих платформах с использованием одного кода, — это то, к чему стремится большинство разработчиков.

В то же время вы должны понимать, что поддержка одних и тех же функции не будут осуществляться на всех платформах. Например, Google Maps сейчас поддерживается только на Android, iOS и в веб-пространстве. С другой стороны, это основные платформы, которые в данный момент используют пользователи.

С помощью потенциала Flutter и его широкого выбора виджетов вы можете создавать проекты как для мобильных устройств, так и для веб-пространства. Кстати, лучше иметь адаптивные экраны в приложениях на базе Flutter, поскольку эти приложения выглядят по-разному на разных устройствах в зависимости от экрана пользователя.

Всех этих результатов можно легко достичь с помощью единой кодовой базы.


Заключение

Flutter уже вовсю набирает обороты популярности в качестве инструмента разработки приложений. Благодаря широкой поддержке библиотек, он превратился в практичный инструмент для оперативного создания корпоративных приложений, необходимых представителям бизнеса.

Теперь коммерческие организации и высокотехнологичные фирмы, стартапы и отдельные программисты в любой отраслевой нише смогут усилить свой потенциал, воспользовавшись услугами компании-разработчика мобильных приложений.

Используя жизнеспособную и развивающуюся экосистему пакетов библиотек Flutter, hi-tech предприятия смогут мощно заявить о себе на конкурентном рынке и закрепиться в отрасли на следующее десятилетие.

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен


Перевод статьи Sophia Martin: Here’s Why Flutter Is Now Ready for Enterprise App Development

Предыдущая статьяКак дизассемблировать код Python и повысить его производительность
Следующая статьяВ чем Windows превосходит Linux