3 шага, чтобы построить AI-стратегию для бизнеса
AI-решения в бизнес-стратегии помогают прогнозировать потенциальные проблемы, на основе на больших данных. Это происходит быстро и стратегически точнее, а еще помогает посмотреть на ситуацию "сверху"
February 9, 2020
4 мин
Когда дело доходит до разработки мобильного приложения схожей функциональности одновременно под iOS и Android и Windows Mobile, один из первых вопросов, с которым, как правило, встречается заказчик это — стоит ли разрабатывать приложение нативно, т.е. индивидуально под каждую платформу или следует разработать приложение единоразово, с помощью кроссплатформенного решения, а потом автоматически получить версию такого приложения и на iOS и на Android? Что ж, давайте разберемся в этом вопросе, и рассмотрим плюсы и минусы обоих методов.
В первую очередь, речь о кроссплатформенной разработке заходит из естественного желания сокращения ресурсов на разработку. Поскольку ни один заказчик не хочет терять потенциальную аудиторию другой платформы, а писать код дважды — звучит как необоснованное удорожание цены разработки примерно в два раза. Чтобы все-таки разобраться в целесообразности того или иного подхода, давайте сначала разберем, что такое нативная, а что такое кроссплатформенная разработка и чем они отличаются.
Основным языком платформы iOS является Swift, язык, который Apple выпустила в 2014 году и форсирует в качестве основного языка разработки под все продукты Apple (ранее таким языком являлся всё ещё поддерживаемый платформой Objective-C). У Android тоже два основных языка — это классическая и покорившая в своё время технологический мир Java и новый язык программирования от Google, который активно проталкивается и развивается, Kotlin. Так вот, когда речь идет о программировании на Java или Kotlin для Android или же о Swift или Objective-C для iOS, такой подход называется нативным (нативный, от английского native — природный, естественный). “Естественный” язык для каждой платформы нужен, потому что библиотека всех компонентов операционной системы, которые используются при разработке мобильного приложения использует этот нативный язык, и как следствие, обращаться к этим компонентам возможно только на этом нативном языке. Причем Kotlin разработан на языке Java, а Swift разработан на языке Objective-C, что обеспечивает языкам совместимость на своих операционных системах и делает их нативными.
Давайте теперь разберем, что такое кроссплатформенная разработка и как так получается, что на самом деле программировать под мобильные платформы можно не только на их родных языках.
Тут есть два основных подхода, с очень простой идеей каждый:
Перевести ненативный код в нативный.
Идея этого подхода заключается в том, что создается единый исходный код, который дополняется некоторой оберткой, различной для каждой платформы, которая, в свою очередь, использует родные для платформы функциональные возможности.
Давайте сразу на примере. Допустим, вы хотите запустить камеру устройства, чтобы сделать фото внутри мобильного приложения. Принципиального отличия в этом смысле между платформами нет, обе мобильные платформы подразумевают наличие и фронтальной, и задней камеры у устройства. Зачем же тогда запускать камеру с помощью одного кода на Android и с помощью другого кода на iOS, если функция одна и та же? Эта проблема решается у кроссплатформенных решений следующим образом: пишется единый код, запускающий камеру, который, в свою очередь, в зависимости от платформы, вызывает внутренние функции самой платформы. Эти внутренние функции объединены в единый пакет, который называется SDK (Software Development Kit), и у каждой платформы он свой.
Типичные представители этого “нативно-ненативного” подхода: Xamarin, React Native, Flutter.
HTML5.
Название этого подхода говорит само за себя. Его идея заключается в том, чтобы вести разработку мобильного приложения как сайта. В этом случае мобильное приложение представляет из себя фактически окно браузера, спрятанное в обертку приложения. Такой подход связан с некоторыми очевидными преимуществами и недостатками.
Типичные представители этого совсем ненативного подхода: PWA, PhoneGap, WebSocket.
Кроссплатформенная разработка это не панацея. Основными преимуществами такого подхода являются уменьшение размера кодовой базы при разработке приложения под две платформы, а значит и уменьшение стоимости и сроков. А там, где преимущества, там и недостатки. Основными являются возможное снижение производительности и стабильности работы приложений, в отдельных случаях доступна меньшая функциональность и ненативность пользовательского опыта. Главное — это помнить, что при обоих подходах есть и другие способы снижения издержек и сокращения сроков разработки, такие как полнота технического задания и оперативная обратная связь при общении с командой разработки и менеджером проекта.
Если Вы не уверены какой стек технологий лучше всего подходит именно для Вашего проекта, наши менеджеры проектов будут рады проконсультировать Вас бесплатно.
Sixhands GPT Alpha