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

Как альтернатива нативной разработке существует кроссплатформенная. Её суть заключается в том, что после написания приложения на определенном языке исходный код преобразуют в нативный, благодаря чему приложение сможет работать на устройствах с разными операционными системами.
Главные достоинства нативной разработки:
- Полная аппаратная поддержка мобильной платформы позволяет нативным приложениям работать быстро и бесперебойно;
- Все проблемы, связанные со скоростью работы кода, можно отследить на этапе разработки. Обнаружить тормозящие процесс участки и оптимизировать их;
- В процессе разработки также можно отследить, в какой момент приложение начинает требовать большего объёма памяти или ресурсов процессора;
Основные недостатки кроссплатформенной разработки:
1. Непредсказуемый UX
Поскольку каждая платформа использует уникальные элементы пользовательского интерфейса, кроссплатформенная разработка не может полностью подстроить приложение под требования системы.
К примеру, разработчики приложений Apple вынуждены соблюдать требования корпорации, чтобы попасть в App Store. В этом случае временные затраты на написание кода пользовательского интерфейса под конкретную платформу могут перевесить все преимущества программ для разработки кроссплатформенных приложений.
К тому же, приложение, которое на всех платформах выглядит одинаково, вводит пользователя в ступор. Вы же лишили его половины привычных методов управления! Поэтому ему не остаётся ничего другого, как оставить гневный комментарий в магазине приложений и оценить ваш труд на ноль звёзд.
2. Проблемы с внедрением новых функций
Кроссплатформенные решения не могут обеспечить немедленную поддержку последних обновлений iOS и Android, так как являются сторонним ПО. Вам остаётся только ждать выхода подходящего плагина и в очередной раз переносить дату релиза.

3. Большой вес приложений
В зависимости от набора функций и уровня сложности кроссплатформенные приложения обычно тяжелее нативных. Иногда разница в числах просто невероятная.
Пользователь VinirShah с форума разработчиков Xamarin демонстрирует это на собственном примере: приложение, которое его команда создала на этой платформе, весит 3 Мб, а его полный аналог, написанный на Objective-C – всего 172 Кб. Вывод: придётся искать дополнительные способы оптимизации, чтобы удержать размер установочного файла в пределах разумного.
4. Нет устойчивой поддержки
Сообщества разработчиков кроссплатформенных приложений в разы меньше, чем iOS- и Android-комьюнити. Но с поиском подходящих специалистов проблемы не заканчиваются. Поскольку экосистемы фреймворков постоянно развиваются, а обновления библиотек выходят едва ли не каждый месяц, вам придётся вложить много времени и сил в изучение документации. Слишком много.
Более того, в некоторых случаях недостаток пользовательских компонентов приводит к тому, что разработчикам приходится искать отдельное решение. С этой проблемой столкнулась, например, команда Netguru. Бета-версия библиотеки кроссплатформенной среды React Native не позволяла установить тени. Пришлось создавать модуль «с нуля».

Почему же мы стоим на стороне нативной разработки?
Есть четыре веских причины.
1. Можно выпустить приложения с перерывом
Вписать два приложения в вашу digital-стратегию проще, чем кажется. Надо только определить, какая платформа у ваших клиентов в приоритете.

Предположим, приложение для iOS должно попасть в App Store как можно скорее. А версия для Android может подождать. В таком случае, выбор в пользу нативной разработки очевиден. Кстати, язык программирования Swift от Apple выигрывает в скорости у себе подобных. Да и осваивать его не так трудно. Команды вроде «add» и «remove» легко запоминаются, а посмотреть, как будет выглядеть приложение, можно почти моментально.
Не забудьте про грамотную PR-кампанию и обновление email-рассылки. Чтобы пользователи, которых вы держите в режиме ожидания, могли установить нужную им версию сразу после её появления в магазине.
2. Больше технических возможностей
Если вы строите бизнес вокруг мобильного приложения или, скажем, собираетесь включать в него сложную анимацию и «тяжёлую» графику, выбирайте нативную разработку. Она позволяет максимально быстро вносить изменения в исходный код. А так же получить доступ ко всем службам устройства, автоматически отслеживать производительность приложения и повысить качество воспроизведения анимации и рендера.
Среди компаний, выбравших путь нативной разработки для улучшения своих приложений, можно увидеть, например, LinkedIn. Благодаря этому сервис дал пользователям больший объём памяти, добавил программы-отладчики и поправил анимацию.
3. Никаких дополнительных расходов
Чтобы выбрать оптимальную платформу, надо оценивать не текущие вложения в проект, а сумму издержек по отношению к затраченному времени.
На первый взгляд разработка кроссплатформенных приложений кажется дешевле, но дополнительные расходы могут накопиться как снежный ком. Так как инструменты для их создания – относительно новые, вам потребуется больше времени и денег, чтобы найти достаточно опытных специалистов.

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

Конечно, если количество владельцев Android-смартфонов среди них примерно равняется числу обладателей гаджетов на iOS, придётся выпускать сразу два приложения. Но, как мы уже сказали в первом пункте этого списка, делать это одновременно совсем не обязательно. К тому же, клиенты будут вдвойне благодарны за то, что вы не стали разделять их по принципу приверженности тем или иным гаджетам, а постарались удовлетворить потребности обеих сторон по максимуму. И, скорее всего, не откажутся совершить «in-app purchases».
Если вам нужна разработка мобильного приложения интернет магазина, например, то мы всегда готовы помочь. А в нашем блоге мы уже писали о цене разработки приложений на заказ, эта статья тоже может оказаться вам интересной :)

Следующая статья
Google Play: доминируй, властвуй, унижай
Хорошая идея мобильного приложения – это только первый шаг к успеху. Как сделать второй? Как понять, что проект сможет удовлетворить потребности достаточного количества пользователей?
Читать далее