{"id":14273,"url":"\/distributions\/14273\/click?bit=1&hash=820b8263d671ab6655e501acd951cbc8b9f5e0cc8bbf6a21ebfe51432dc9b2de","title":"\u0416\u0438\u0437\u043d\u044c \u043f\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435 \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0440\u0435\u043d\u0434\u044b \u0440\u044b\u043d\u043a\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438","buttonText":"","imageUuid":""}

Кросс-платформенная разработка. Преимущества

Лена Бардина. Head of marketing Bacca

Что такое кросс-платформенная разработка?

Эта концепция относится к разработке мобильных приложений, которые могут быть использованы на нескольких мобильных платформах. В деловом мире растет BYOD (Bring Your Own Device) тенденция. BYOD подход применим к сотрудникам, приносящим свое личное мобильное устройство на рабочее место, вместо использования настольных компьютеров или предоставленных компанией мобильных устройств для доступа к приложениям и корпоративным данным. Из-за BYOD компаниям стало необходимо разрабатывать собственные мобильные приложения и отправлять их на множество различных устройств, которые используют разные операционные системы.

Кросс-платформенная мобильная разработка - это разработка приложений одновременно для самых популярных платформ и адаптированных под большинство устройств. Этот инструмент полезен, поскольку он существенно снижает затраты и существенно увеличивает скорость разработки приложений. Кроме того, благодаря этой модели существенно увеличивается охват аудитории. Кросс-платформенные инструменты, как правило, довольно просты в использовании, поскольку основаны на общепринятых языках программирования.

Однако, кросс-платформенная разработка имеет несколько недостатков. Во-первых, мобильные операционные системы часто обновляются, а это значит, что приложения должны быть также обновлены для совместимости с новой системой. Во-вторых, рендеринг при кросс-платформенной мобильной разработке может занимать больше времени, так как каждой операционной системы требуется отдельная среда исполнения.

В идеальном сценарии эти приложения работают в нескольких ОС с одной кодовой базой.

Существует 2 типа кросс-платформенных приложений:

1. Собственные (Xamarin, Marmelade)

2. Гибрид ‘HTML5’ (ReactNative, Mobile Angular UI)

Собственные кросс-платформенные приложения

Каждая крупная мобильная операционка имеет свой SDK (Software Development Kit) для создания мобильных приложений. У этих пакетов SDK есть предпочтительные языки программирования, поддерживаемые поставщиком ОС. Например, для iOS - Objective-C и Swift, в то время как для Android предпочтительными языками являются Java и Kotlin. Приложения, созданные на этих языках с помощью официального SDK, называются нативными.

Однако можно использовать API (Application Programming Interface), предоставляемые собственным SDK, на других языках программирования, которые не поддерживаются поставщиком ОС. Так создаются ”кросс-платформенные" приложения.

Как правило, сторонний поставщик выбирает язык программирования и создает единый API поверх пакетов SDK, предоставляемых различными поставщиками ОС. Используя этот унифицированный API, можно поддерживать несколько операционных систем с единой кодовой базой. Сторонний поставщик предоставляет набор инструментов, которые обрабатывают процесс создания собственного пакета приложений для iOS и Android из одной кросс-платформенной кодовой базы.

Поскольку конечное приложение по-прежнему использует собственные API, кросс-платформенные приложения могут достичь хорошей производительности без видимого отставания для пользователя.

Гибрид ‘HTML5’ с кросс-платформенных приложений

Большинство мобильных приложений во многом зависят от серверных веб-служб. Грубо говоря, в мобильных приложениях, особенно в области автоматизации бизнес-процессов, почти 60% кода связаны с взаимодействием с сервером. Это огромный выигрыш, так как код пишется только один раз.

iOS, Android и Windows Phone имеют очень продвинутый компонент браузера в своих SDK. Например, в некоторых случаях, используя компонент WebView, программисты могут использовать стандартные веб-технологии HTML5 для разработки и программирования частей своего приложения. Таким образом, приложение состоит по крайней мере из собственного фрейма и HTML/JavaScript, выполняемых в WebView, поэтому они называются “гибридными”. Функции приложения, которым требуются входы датчиков, такие как геолокация, камера или функции более низкого уровня, такие как доступ к файловой системе, обычно используют некоторый мост JavaScript-native, предоставляемый гибридной платформой приложений.

Выгоды внедрения кросс-платформенных приложений

· При тщательном планировании, около 50-80% кода можно использовать повторно для реализации на разных платформах

· Такая разработка имеет больше преимуществ в обслуживании

· Модульные тесты пишутся один раз для общего кода

· Не нужно изучать специфические языки программирования, а можно использовать те, которые уже имеются в арсенале разработчиков

· Кросс-платформенные приложения идеально подходят для автоматизации бизнес-процессов, где время развертывания и эффективность использования является критичными вопросами

0
15 комментариев
Написать комментарий...
бай оконешников

react native это не html5 видно что люди не разбирающие в кросс платформенной разработке писали

Ответить
Развернуть ветку
Сослан Сакшин

Выгоды в статье описали
а недостатков типа нет?
ну нельзя же так тупо "впаривать" свои услуги

Ответить
Развернуть ветку
Антон Тихомиров

Не уверен что Xamarin нуждается в рекламе. Это все-равно что про Андройд статью написать, и все будут визжать что это реклама)

Ответить
Развернуть ветку
Lena Bardina
Автор

Статья о выгодах :-)

Ответить
Развернуть ветку
Сослан Сакшин

неполная правда - это ложь

Ответить
Развернуть ветку
Lena Bardina
Автор

ок, будет отдельная статья о недостатках)

Ответить
Развернуть ветку
davyd roma

Я Вас умоляю! На том Xamarin разработка только и называется что кросс-платформенной, по факту 80% кода пишется разным под разные os. При этом масса ограничений с библиотеками, визуалом и работой с БД. ЧТо уж говорить о кривом кешировании, о подчас невозможности пользоваться сторонними библиотеками.
Кросс-платформенность - это для очень небольших и нетребовательных проектов, которые нужно запустить быстро или они по сути не представляют особой значимости. Возможно кросс-платформенно можно разрабатывать для внутренних нужд компаний. Но так ли это нужно, когда хороший нативщик может сделать все то же самое, и приложения будут выигрывать в скорости и функциональности.

Ответить
Развернуть ветку
Dima Lyk

Открою секрет, можно сделать хорошее гибридное приложение, практически без натива. Оно будет выполнять все основные функции. Нет уже смысла делать приложения на нативе, так как это в десятки раз дороже и разработка будет вестись дольше. Кроме того, гибрид под ios и Android делается сразу, что удобно.

Ответить
Развернуть ветку
Алексис Второй

Как?

Ответить
Развернуть ветку
davyd roma

Действитель, Как?))

Ответить
Развернуть ветку
Denis Kiselev

React Native хорошо подходит под обычные приложения, да

Ответить
Развернуть ветку
бай оконешников

html5(phonegap, ionic, итд), gybrid(react native, nativescript, итд), gpu(fusetools, flutter, итд), compile(xamarin, итд).

html5 - использует для рендера browser(html) этим всё сказано просто сайт под оберткой

gybrid - использует для рендера нативный движок платформы но общается с ним через bridge(мост) в этом подходе узким местом является bridge динамичный ui, супер пупер анимации не сделаешь

gpu - для рендера используют opengql(cross), metal(ios), vulkan(android) любые виды анимации свисто перделки на любой вкус минусы жрёт много (если честно не пробовал так что минусов не знаю)

compile - компилится (llvm) под каждую платформу, минусы под каждую платформу нужно дорабатывать

Ответить
Развернуть ветку
Denis Kiselev

В целом верно, но есть пара замечаний. Html5 использует для рисования не браузер, а его «движок» - web view. Гибридные - это Hybrid все таки на американском. OpenGL правильно, а то у вас вышла некая помесь с graphQL.

Compile - это вы так native приложения назвали? Ну ок. Хотя в отношении Android/Java говорить compile - некоторая натяжка.

Ответить
Развернуть ветку
бай оконешников

Спс

Ответить
Развернуть ветку
Евгений Гагарин

А где Flutter, Kivy, Kotlin Native? Под Mobile Angular UI имеется в виду Ionic или NativeScript? Статья из 2013го года?

Ответить
Развернуть ветку
12 комментариев
Раскрывать всегда