Что лучше для бизнеса: кроссплатформенное или нативное приложение
Статья разделена на две части. Первая – это своеобразное небольшое введение в терминологию, чтобы читателю было понятно о чем сейчас идет речь. Вторая часть дает много материала для размышления и поможет читателю в будущем определиться с выбором.
Не рекомендуем пролистывать статью или читать отрывками, так как тут достаточно технического материала, поэтому, возможно, Вы потеряете нить повествования.
Что такое нативное приложение
Нативное приложение – это программа, разработанная с помощью определенных технологий предусматривающих работу только в рамках какой-то конкретной операционной системы.
Если нужны примеры…
Есть язык программирования Kotlin, он предназначен для написания программ под Android. Т.е запустить программу, написанную на Kotlin на Ubuntu, Windows, iOS или MacOS, невозможно (эмуляцию не берем в счет). Есть язык программирования Swift, он работает по такой же логике как и Kotlin, только предназначен для iOS (iPad, IPhone) и MacOs (iMac, MacBook). Один код – одно приложение.
Что такое кроссплатформенное приложение
Кроссплатформенное приложение – это программа, способная запускаться на нескольких операционных системах.
Если нужны примеры
Есть язык программирования Dart, с помощью фреймворка (читать как инструмента) Flutter можно разрабатывать кроссплатформенные приложения под iOS и Android. Например, приложение Яндекс Такси является как раз такой кроссплатформенной разработкой. Яндекс Такси запускается на IPhone и Android. Один код – два приложения.
Есть еще язык программирования JavaScript, с помощью фреймворков Cordova и Electron создаются мобильные и десктопные приложения. Skype является приложением созданным с помощью этих инструментов. Skype запускается на iPhone, Android, Windows, iMac, MacBook, Linux, Xbox. Один код – много приложений.
Разница между нативным и кроссплатформенным приложением
Так как это статья больше для предпринимателей, а не программистов, мы опустим сложные технические вещи и перейдем к тому что всех интересует – какая выгода и какие подводные камни есть в каждом из подходов.
Нативные приложения
Нативные приложения разработаны на языке программирования “системы”. Поэтому им полностью доступны все вычислительные возможности и системные функции того устройства, на котором они работают.
Например, вход в приложение через Face и Touch ID на IPhone это как раз конкретный пример системной функции.
Плюс нативного подхода
Программист не имеет ограничений в своей работе. Он может реализовать любую вещь в программе, поэтому фразу “это невозможно” Вы почти никогда не услышите.
Стоит еще обязательно отметить, что нативные приложения всегда работают быстрее чем кроссплатформенные аналоги. Поэтому, если для работы программы нужна максимальная скорость для каких-либо математический вычислений, это огромный плюс.
Минусы нативного подхода
Главный минус это цена. Если Вам нужно приложение на iOS (iPhone, iPad) и Android, то придется нанимать минимум двух программистов. Один будет писать на Kotlin (для Android), другой на Swift (для iOS).
Ах да, это с учетом того, что каждому программисту будет “по зубам” написать приложение самостоятельно. Обычно программисты работают в командах по 2-3 человека. Две команды это уже как-то больно для кошелька.
И если Вам нужно еще десктопное приложение под Windows, то придется нанять дополнительно одну команду разработчиков на языке программирования C#.
Второй минус это время. Обычно языки программирования, которые используют для нативного подхода, сами по себе сложные поэтому требуют чуть больше времени на написание какого-то функционала. Например, сделать интерфейс приложения быстрее всего будет с помощью JavaScript, а не C# или Swift. А вот сам JavaScript, к сожалению, не подходит для нативной разработки (потому что это не язык “системы”).
Кроссплатформенные приложения
Кроссплатформенные приложения разработаны на каком-либо одном языке программирования, который не является “системным” для всех платформ. Поэтому данный язык имеет некоторые ограничения внутри других систем. Или этот язык изначально создавался под очень узкую задачу и впоследствии эволюционировал и стал использоваться повсеместно (т.е никогда не являлся “системным” ни для кого).
Сложно? Сложно! Давайте на трех примерах.
Пример первый. С помощью фреймворка (инструмента) .NET языка программирования C# (это который для Windows) можно создать приложение для iOS и Android.
Пример второй. Также есть язык программирования JavaScript, он вообще изначально был создан только для работы в браузерах, но из-за своей популярности (и возможности благодаря браузерам запускаться везде где есть браузеры) впоследствии эволюционировал и теперь может работать даже в телефоне в виде приложений.
Пример третий. Язык программирования Dart. Он относительно молодой и менее популярный чем JavaScript, изначально он должен был стать заменой последнего, но не получилось. Язык Dart создавался для программирования веб-серверов и создания веб-приложений. Сам язык перед “запуском” может себя переписать в JavaScript.
Плюсы кроссплатформенного подхода
Самый главный плюс – это стоимость. Для создания четырех элементарных приложений для iOS, MacOS, Windows, Android понадобится минимум один разработчик на JavaScript. Естественно для какой-то разработки сложнее калькулятора всего одна команда.
Второй плюс связан со временем. Какое-нибудь приложение для интернет-магазина будет намного быстрее написать на JavaScript, ведь изначально этот язык создавался для создания сайтов, поэтому узкоспециализированную задачу по работе с интерфейсами он закрывает на ура.
Минусы кроссплатформенного подхода
Основной минус такого подхода – это ограниченный функционал используемых инструментов и языков. Помните мы говорили, что изначально языки программирования на которых делаются кроссплатформенные приложения создавались для других целей? (если вы не пролистнули половину контента конечно). Так вот, у этих языков нет доступа к системным функциям операционной системы, которая для него не является “родной”.
Поэтому, с такими приложениями Вам навсегда придется забыть о Face и Touch ID, будут проблемы при работе с Bluetooth, не будет возможности работать с дисководом, нельзя будет сохранять большое количество файлов на компьютер и телефон пользователя.
Второй минус – это скорость работы. Кроссплатформенные приложения довольно медленные. Например, производить в них разные сложные математические вычисления для обработки фото – дурная идея.
Подведем итог
Если Ваше приложение должно хранить много данных внутри устройства, отправлять файлы в iCloud, синхронизироваться c iTunes, использовать Face и Touch ID, определять находится ли устройство в режиме энергосбережения, использовать дисковод, Bluetooth, видеокамеру, вычислительные мощности процессора, тогда здесь стоит обратить внимание на нативных подход. Даже если Вам нужна всего одна конкретная вещь из этого списка.
Хотите создать мобильный банк, свой аналог Photoshop или какой-нибудь видеоредактор? А может быть сложную 3D игру как GTA? Тогда обратите внимание на нативный подход.
Если Ваше приложение должно быть как интернет-магазин, простая мобильная игра или простой мессенджер – то для таких целей вполне подойдет кроссплатформенный подход.
Хотите сделать своему ресторану приложения для заказа еды? А может быть у Вашего магазина большая аудитория с телефонов и хотите собрать всех клиентов в одном месте для информирования о новых акций? Тогда обратите внимание на кроссплатформенный подход.
Оставьте комментарий