Что такое нативная разработка
При нативной разработке программисты используют оригинальные языки программирования и инструменты мобильной операционной системы. Разработка iOS приложений ведется в интегрированной в OS X и iOS среде Xcode, на языках Objective-C, Swift, C и С++. Для разработки Android приложений используется среда Android Studio и язык Java. Среда разработки это специальный комплекс инструментов, созданный для максимально удобного написания кода, проектирования интерфейса, отладки, мониторинга и сборки приложения.
Что такое кроссплатформенная разработка
В кроссплатформенной разработке используются специальные инструменты (Unity, PhoneGap, Xamarin), которые позволяют создавать приложения сразу для нескольких мобильных операционных систем. Каркас и логика подобных приложений сначала программируются в кроссплатформенном инструменте, далее код интерпретируется в XCode или Android Studio проект.
Преимущества кроссплатформенной разработки
- Экономия бюджета — использование одной технологии и набора графики снижает количество рабочих часов и бюджет проекта;
- Время разработки — отсутствие уникальных элементов интерфейса и одна технологическая платформа сокращает сроки разработки;
- Поддержка и обновление продукта — добавление функционала или исправление ошибок сразу для всех платформ;
- Мобильная версия сайта — большинство кроссплатформенных решений позволяют генерировать мобильную версию сайта из приложения;
- Единая логика приложения — логика приложения будет одинаково работать для всех платформ. Написанная и отлаженная логика содержит потенциально меньшее количество ошибок и расхождений в своей работе.
Минусы кроссплатформенной разработки
- Медленная работа приложения;
- Не используются уникальные особенности платформы;
- Непривычный для пользователя интерфейс.
Преимущества нативной разработки
- Скорость работы приложения — скомпилированный код проекта оптимален для родной платформы. Приложение получает полную аппаратную поддержку устройства и использует многопоточность для сложных задач. В процессе разработки приложения программисты могут измерять скорость работы всех участков кода и при необходимости их оптимизировать;
- Гибкость в реализации — нативная разработка использует все возможности мобильной операционной системы;
- Новый программный и аппаратный функционал — доступен для реализации сразу после выпуска обновлений.
- Простота тестирования — в распоряжении разработчиков и тестировщиков есть целых комплекс технологий: все параметры системы в процессе работы приложения контролируются автоматически, например, если приложение стало использовать больше памяти или ресурсов процессора. В нативной разработке доступны широкие возможности автоматического тестирования для любого метода в приложении, например, если часть приложения перестанет корректно работать после изменений кода, новая версия не соберется, а программист сразу увидит причину. Для нативных проектов встроен функционал удаленного мониторинга ошибок, который позволяет увидеть ошибку и ее причину на устройстве пользователя.
- Поддержка приложений со стороны App Store и Google Play — Apple и Google предъявляют высокие требования к качеству приложений в сторах. Они заинтересованы в том, чтобы пользователи получали максимально положительный опыт, например, если у экрана высокое разрешение, а изображения расплывчаты, в App Store приложение не пропустят. Приложение должно быть красивым, удобным и быстро работать, если приложение соответствует, его не пропустят в магазин. Кроссплатформенное приложение никогда не будет рассмотрено для размещения в специальных рекламных разделах (Featured), кроме игровых приложений.
Заключение
Нативная разработка имеет гораздо больше плюсов, однако есть сферы, в которых кроссплатформенные технологии являются оправданными: это игровой сектор и тестовые проекты. Современные игры пишутся в подавляющем большинстве на кроссплатформенных технологиях, использование специальных графических фреймворков (Unity 3D) сильно ускоряет разработку без ущерба для качества.
Для не игровых проектов, направленных на долгосрочное развитие нативная разработка остается единственным вариантом.