Кросс-платформенная разработка. Преимущества
Что такое кросс-платформенная разработка?
Эта концепция относится к разработке мобильных приложений, которые могут быть использованы на нескольких мобильных платформах. В деловом мире растет 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% кода можно использовать повторно для реализации на разных платформах
· Такая разработка имеет больше преимуществ в обслуживании
· Модульные тесты пишутся один раз для общего кода
· Не нужно изучать специфические языки программирования, а можно использовать те, которые уже имеются в арсенале разработчиков
· Кросс-платформенные приложения идеально подходят для автоматизации бизнес-процессов, где время развертывания и эффективность использования является критичными вопросами
react native это не html5 видно что люди не разбирающие в кросс платформенной разработке писали
Выгоды в статье описали
а недостатков типа нет?
ну нельзя же так тупо "впаривать" свои услуги
Не уверен что Xamarin нуждается в рекламе. Это все-равно что про Андройд статью написать, и все будут визжать что это реклама)
Статья о выгодах :-)
неполная правда - это ложь
ок, будет отдельная статья о недостатках)
Я Вас умоляю! На том Xamarin разработка только и называется что кросс-платформенной, по факту 80% кода пишется разным под разные os. При этом масса ограничений с библиотеками, визуалом и работой с БД. ЧТо уж говорить о кривом кешировании, о подчас невозможности пользоваться сторонними библиотеками.
Кросс-платформенность - это для очень небольших и нетребовательных проектов, которые нужно запустить быстро или они по сути не представляют особой значимости. Возможно кросс-платформенно можно разрабатывать для внутренних нужд компаний. Но так ли это нужно, когда хороший нативщик может сделать все то же самое, и приложения будут выигрывать в скорости и функциональности.
Открою секрет, можно сделать хорошее гибридное приложение, практически без натива. Оно будет выполнять все основные функции. Нет уже смысла делать приложения на нативе, так как это в десятки раз дороже и разработка будет вестись дольше. Кроме того, гибрид под ios и Android делается сразу, что удобно.
Как?
Действитель, Как?))
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) под каждую платформу, минусы под каждую платформу нужно дорабатывать
В целом верно, но есть пара замечаний. Html5 использует для рисования не браузер, а его «движок» - web view. Гибридные - это Hybrid все таки на американском. OpenGL правильно, а то у вас вышла некая помесь с graphQL.
Compile - это вы так native приложения назвали? Ну ок. Хотя в отношении Android/Java говорить compile - некоторая натяжка.
Спс
А где Flutter, Kivy, Kotlin Native? Под Mobile Angular UI имеется в виду Ionic или NativeScript? Статья из 2013го года?