Нативная или кроссплатформенная: как выбрать подходящую платформу
Есть мнение, что разработка на кроссплатформенном движке, универсальном для всех мобильных платформ, намного лучше, чем нативная разработка. Основные доводы - быстрее, дешевле, без разницы. Но есть и те, кто за разработку нативную, “родную” для каждой операционной системы.
Оба подхода имеют свои плюсы и минусы, список которых зависит от того, какое приложение вы хотите. Мы, в mobile.SimbirSoft, пробовали оба подхода и решили поделиться некоторыми своими наблюдениями и тенденциями.
Сильные стороны нативной разработки:
- Стабильность и высокая скорость работы:
В разработке используются инструменты, заточенные под конкретную платформу: Xcode и Swift/Objective-C для iOS, Android Studio и Java – для Android. Здесь мы разрабатываем на «родном» языке платформы, и преимущества каждой из них используются в полной мере, тем самым обеспечивая лучшую производительность приложения. - Больше возможностей в реализации требуемого функционала:
Разработка ведется под каждую платформу соответствующими инструментами, поэтому мы имеем возможность максимально использовать особенности той или иной платформы, что позволяет сделать приложение более гибким и масштабируемым.Для вас это возможность безболезненно добавлять функционал и улучшать приложение в будущем. - Нет ограничений сторонних библиотек при написании кода, возможность избежать компромиссных решений:
Архитектуры операционных систем мобильных устройств сильно отличаются, поэтому каждое универсальное кроссплатформенное решение накладывает существенные ограничения на процесс разработки. Если ваше приложение обладает сложной архитектурой или нестандартным функционалом, лучшее решение - нативная разработка. - Доступность стандартных решений в UI/UX, не требуется тратить время на подгонку:
Приложения под iOS и Android имеют существенные различия не только в плане архитектуры, но и в особенностях пользовательского интерфейса, поведенческие шаблоны пользователей каждой платформы отличаются. Нативные приложения удобнее пользователям, а вы экономите время на проектировании единого внешнего вида приложения.
Мы всегда рекомендуем нативную разработку, если:
- Производительность приложения и удобство интерфейса имеют значение
- Предполагается постоянное использование системных ресурсов и функций мобильных устройств: камер, GPS, акселерометра и прочих датчиков
- Важно низкое энергопотребление приложения
- Требуется сложный интерфейс и/или сложная анимация
- Требуется интеграция со сторонними ресурсами (API и т.д.)
Сильные стороны кроссплатформенной разработки:
- Скорость разработки немного выше, а времени и ресурсов требуется меньше – это основной плюс кроссплатформенной разработки.
Приложение подгоняется сразу под несколько операционных систем, поэтому нет необходимости в подготовке уникальных элементов для каждой платформы. Специалистов также требуется меньше, что дает возможность начать разработку с меньшим бюджетом. - Возможность использовать одну и ту же базу кода для разных платформ:
Бизнес-логика приложения работает одинаково на всех платформах, что позволяет избежать потенциальные ошибки и существенно упростить изменения логики приложения – не придется проделывать двойную, а то и тройную работу. - Возможность использовать одну базу кода для двух платформ также экономит время на разработку.
- Обновления и поддержка:
Следует заметить, что преимущества кроссплатформенных решений и экономия бюджета имеет место только, если не требуется дополнительная подгонка под каждую платформу, логика приложения простая, пользовательский интерфейс аскетичен, и вы не планируете добавлять новый функционал и изменять логику в будущем – иначе все преимущества кроссплатформенной разработки сходят на нет, а время на разработку увеличивается до двух раз.
Кроссплатформенные решения выгодны в случаях, если:
- Требуется написать прототип приложения под несколько платформ за сжатые сроки, но при этом не планируется этот прототип развивать дальше
- При разработке сложных игр есть мощные кроссплатформенные решения вроде Unity3D, которые имеют богатый встроенный функционал для разработчиков
- Если приложение берет всю информацию с сервера, анимация и интерфейс не очень важны, а логика уже реализована на сервере
- Если вы можете мириться со скромной производительностью, а контент подгружается из интернета
Нашим клиентам мы всегда рекомендуем нативную разработку как максимально близкое пользователю решение, которое можно развивать и дорабатывать без ожидания неприятных “сюрпризов”. Что ни говори, а костюм на заказ сидит лучше, чем фабричный, массового производства.
Какое бы решение вы ни выбрали, обращайтесь к проверенному разработчику мобильных решений, который на практике испытал преимущества и подводные камни каждого из них.