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

# Просто о разработке
Декабрь 2016 г

SimbirSoftMobile

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

Оба подхода имеют свои плюсы и минусы, список которых зависит от того, какое приложение вы хотите. Мы, в mobile.SimbirSoft, пробовали оба подхода и решили поделиться некоторыми своими наблюдениями и тенденциями.

Сильные стороны нативной разработки:

  1. Стабильность и высокая скорость работы:
    В разработке используются инструменты, заточенные под конкретную платформу: Xcode и Swift/Objective-C для iOS, Android Studio и Java – для Android. Здесь мы разрабатываем на «родном» языке платформы, и преимущества каждой из них используются в полной мере, тем самым обеспечивая лучшую производительность приложения.
  2. Больше возможностей в реализации требуемого функционала:
    Разработка ведется под каждую платформу соответствующими инструментами, поэтому мы имеем возможность максимально использовать особенности той или иной платформы, что позволяет сделать приложение более гибким и масштабируемым.Для вас это возможность безболезненно добавлять функционал и улучшать приложение в будущем.
  3. Нет ограничений сторонних библиотек при написании кода, возможность избежать компромиссных решений:
    Архитектуры операционных систем мобильных устройств сильно отличаются, поэтому каждое универсальное кроссплатформенное решение накладывает существенные ограничения на процесс разработки. Если ваше приложение обладает сложной архитектурой или нестандартным функционалом, лучшее решение - нативная разработка.
  4. Доступность стандартных решений в UI/UX, не требуется тратить время на подгонку:
    Приложения под iOS и Android имеют существенные различия не только в плане архитектуры, но и в особенностях пользовательского интерфейса, поведенческие шаблоны пользователей каждой платформы отличаются. Нативные приложения удобнее пользователям, а вы экономите время на проектировании единого внешнего вида приложения.

Мы всегда рекомендуем нативную разработку, если:

  • Производительность приложения и удобство интерфейса имеют значение
  • Предполагается постоянное использование системных ресурсов и функций мобильных устройств: камер, GPS, акселерометра и прочих датчиков
  • Важно низкое энергопотребление приложения
  • Требуется сложный интерфейс и/или сложная анимация
  • Требуется интеграция со сторонними ресурсами (API и т.д.)

Сильные стороны кроссплатформенной разработки:

  1. Скорость разработки немного выше, а времени и ресурсов требуется меньше – это основной плюс кроссплатформенной разработки.
    Приложение подгоняется сразу под несколько операционных систем, поэтому нет необходимости в подготовке уникальных элементов для каждой платформы. Специалистов также требуется меньше, что дает возможность начать разработку с меньшим бюджетом.
  2. Возможность использовать одну и ту же базу кода для разных платформ:
    Бизнес-логика приложения работает одинаково на всех платформах, что позволяет избежать потенциальные ошибки и существенно упростить изменения логики приложения – не придется проделывать двойную, а то и тройную работу.
  3. Возможность использовать одну базу кода для двух платформ также экономит время на разработку.
  4. Обновления и поддержка:
    Следует заметить, что преимущества кроссплатформенных решений и экономия бюджета имеет место только, если не требуется дополнительная подгонка под каждую платформу, логика приложения простая, пользовательский интерфейс аскетичен, и вы не планируете добавлять новый функционал и изменять логику в будущем – иначе все преимущества кроссплатформенной разработки сходят на нет, а время на разработку увеличивается до двух раз.

Кроссплатформенные решения выгодны в случаях, если:

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

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

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