Оглавление

    Кроссплатформенная разработка мобильных приложений: два приложения для iOS и Android из одной базы кода

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

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

    Четыре способа создать мобильное приложение

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

    №1. Конструктор или коробочный продукт. С помощью набора стандартных функций можно создать минимально рабочий прототип (MVP). Такой вариант разработки подойдёт для стартапов или тестирования продуктовых гипотез, но не будет гибким и его нельзя кастомизировать под потребности конкретной компании.

    №2. PWA. Progressive Web App или прогрессивное веб-приложение повторяет функциональность мобильного приложения, но его ядром является веб-сайт. Для создания используют фреймворки React и Angular. PWA-приложение может стать выходом, если ваше приложение удалили из сторов. Такой опцией воспользовались некоторые наши клиенты-банки.

    №3. Нативная разработка для Android и iOS. В этом случае нужно писать две кодовые базы для двух операционных систем. Для Android — на языке программирования Kotlin, для iOS — на Swift.

    №4. Кроссплатформенная мобильная разработка — это создание приложения на единой кодовой базе сразу для двух операционных систем, с помощью готовых библиотек и компонентов. Для такой разработки используются универсальные фреймворки: Flutter, React Native, Apache Cordova, Ionic и другие.

    Узнайте больше о преимуществах кроссплатформенной разработки.
    Читать

    Кроссплатформенные приложения

    Кроссплатформенную разработку ценят владельцы бизнеса, потому что за счёт создания единой кодовой базы сразу для iOS и Android можно сэкономить до 40% бюджета.

    В каких случаях нужен кроссплатформенный подход

    Разработка на кроссплатформе подойдёт для проектов, для которых важно:

    • Высокое качество по приемлемой цене. В среднем, для создания нативного приложения требуется 8–9 специалистов, в то время как для реализации аналогичного проекта на Flutter достаточно 5–6 человек. Так проект сэкономит около 40% бюджета в сравнении с нативной разработкой.
    • Прозрачное управление командой. Работать с одной кроссплатформенной командой разработки проще, чем переключаться между программистами для двух разных ОС. Менеджеру не нужно синхронизировать несколько команд и переживать, что часть информации может быть утеряна при дискоммуникации.
    • Высокая производительность и продуманный UI. Кроссплатформенные приложения меньше нагружают систему, в отличие от нативных. Так, кроссплатформенная технология Flutter поддерживает частотность воспроизведения видео до 120 кадров в секунду, что устраняет торможение и потерю кадров.

    Пример кроссплатформенного приложения для банка

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

    За 9 месяцев мы разработали новое кроссплатформенное банковское приложение. Уложиться в сжатые сроки помогли автотесты Flutter, которые покрыли 65% кода. Пользователи оценили приложение за современный дизайн и удобную навигацию. Сейчас развитие проекта продолжается: в период санкций мы предложили быстрое решение, чтобы вернуть приложение в сторы: перевели проект в формат PWA — и тоже с помощью Flutter. На базе исходного кода приложения мы также реализовали приложение для Мособлбанка, входящего в группу компаний СМП Банка.

    Пример кроссплатформенного приложения для видеостриминговой платформы

    В приложении для The Hole, видеостриминговой платформы Medium Quality, было крайне важно добиться плавной анимации перехода между экранами и отзывчивый пользовательский интерфейс. Для создания фронтенда мы приняли решение использовать Flutter, а для бэкенда: Kotlin, Spring Boot и Kubernetes. 

    Работа над первой версией приложения заняла 4 месяца, а результат оправдал выбор кросс-платформы. Flutter отлично справился с задачей создания видеоплеера — российского аналога YouTube, а кроссплатформенное приложение The Hole заняло первую строчку в категории «Развлечения» в App Store.

    Пример кроссплатформенных приложений для аптечной сети

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

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

    Инструменты для кроссплатформенной разработки

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

    Какую кроссплатформу выбрать

    Чтобы определиться с кроссплатформенным фреймворком, ответьте на следующие вопросы:

    • Какими функциями и возможностями должно обладать будущее приложение.
    • Для каких устройств оно будет доступно — десктоп, смартфоны на iOS и Android.
    • Какое приложение должно быть по объёму занимаемой памяти.

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

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

    Разработка на Flutter позволяет:

    • Запустить сразу три канала продаж: десктоп, мобильную и веб-версию продукта на единой кодовой базе.
    • Создать любой дизайн в сжатые сроки с помощью набора кастомизируемых виджетов.
    • Сделать плавные анимации и переходы между экранами за счёт мощного графического движка.
    • Ускорить процесс кроссплатформенной разработки, благодаря Hot Reload — функции обновления приложения после внесения правок в код без его полной перезагрузки.

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

    Узнайте, какие компании делают приложения на Flutter.
    Смотреть

    React Native, чтобы получить нативную производительность

    Один из самых популярных фреймворков для разработки кроссплатформенных приложений. React Native способен обеспечить высокую производительность, но с одной оговоркой: ни одна кроссплатформа не сравнится в этом параметре с нативными технологиями. Однако с точки зрения пользователей существенных различий с нативными приложениями не будет, так как React Native, как и Flutter, обеспечивает плавную прокрутку экранов, анимацию и переходы. Читайте подробнее о различиях между Flutter и React Native, чтобы выбрать подходящую технологию для мобильного приложения.

    Apache Cordova, чтобы сделать веб-приложение с гибкой настройкой визуального стиля

    Один из старейших кроссплатформенных фреймворков, созданный в 2009 году. По сути, это среда разработки с открытым исходным кодом, работающая на стандартных веб-технологиях. Мобильное приложение, созданное на Cordova, представляет собой несколько HTML-страниц в «оболочке» платформы и использует специальный виджет, который выполняет все действия. Так, приложение становится максимально похожим на нативное. Эта технология подойдёт, если вам в короткие сроки нужно создать прототип. Однако, если вашему приложению важна требуется хорошая производительность из-за обилия графики и анимаций, лучше присмотреться к более современной кроссплатформе, например, Flutter. Читайтесь больше о различиях Flutter и Apache Cordova для разработки мобильного приложения.

    Xamarin для отличной интеграции в .NET экосистему

    Кроссплатформенный фреймворк Xamarin разработан в 2011 году. Xamarin позволяет разрабатывать приложения для iOS, Android и Windows, используя C# и .NET Framework. Он предоставляет доступ к нативным API платформ, что позволяет создавать приложения с высокой производительностью. Xamarin.Forms, часть экосистемы Xamarin, позволяет разрабатывать пользовательский интерфейс, который может быть общим для всех платформ, что значительно ускоряет процесс разработки.

    При этом, в отличие от Flutter, Xamarin не является бесплатным для коммерческого использования. Учитывая проработанную интеграцию с Visual Studio, активное сообщество и богатую библиотеку плагинов, Xamarin может быть оптимальной технологией для кроссплатформенной разработки для тех, кто уже работает в экосистеме Microsoft, или когда большая часть технологического стека написана на языках семейства .NET. Читайте подробнее о том, как выбрать Flutter или Xamarin для кроссплатформенной разработки.

    Где узнать больше о кроссплатформенной разработке

    Наши разработчики развивают кроссплатформенные технологии. В открытом репозитории на GitHub мы регулярно обновляем базы готовых решений для Flutter. Кроме того, мы публикуем технические кейсы и статьи на Хабре, записываем подкасты и ведём собственное YouTube-шоу. Мы создали первый банк в Европе на кроссплатформенном фреймворке и являемся сооснователями первого в России официального сообщества экспертов по разработке на Flutter.