В настоящее время, если вы хотите создать малобюджетное мобильное приложение, вы определенно пройдете мимо одной из гибридных платформ мобильных приложений, давайте процитируем некоторые из них:

Ionic, любой веб-разработчик хочет создать мобильное приложение, у него возникнет этот фреймворк, почему? Поскольку Ionic построен на основе Apache Cordova с использованием Angular и WebView, команда Ionic сделала Ionic1 с Angularjs 1. * и Ionic 2 и 3 с Angular 2+, чтобы узнать больше: ionicframework.com

Nativescript (мой любимый, продолжайте читать, чтобы узнать почему): - это способ создания кроссплатформенных приложений для iOS и Android без веб-представлений. (https://www.nativescript.org/about), с Nativescript вы получаете доступ к собственным API через JavaScript, также вы можете использовать пакеты npmjs.com, CocoaPods (iOS) и Gradle (Android ) Я объясню как (следующая статья).

Xamarin Я не использовал его до сих пор, но вот что они сказали об этом: платформа разработки мобильных приложений Xamarin с собственными пользовательскими интерфейсами позволяет делиться кодом на всех платформах с помощью одного Кодовая база C # (www.xamarin.com/platform)

ReactNative, созданный Facebook на основе философии React.js, такой же, как Nativescript, но требовал некоторых навыков Objective-C или Swift для iOS и / или Java для Android для написания Bridge (ReactNative Bridge), и это основной разница между Nativescript и ReactNative, первый не требует написания мостов, второй не требует.

Если вы знаете другие мобильные фреймворки, оставьте их в комментариях…

Есть две основные стороны: первая сторона имеет Nativescript & Reactnative & Xamarin, а другая сторона - только Ionic, первая использует собственный пользовательский интерфейс, такой как UILabel (iOS) TextView (Android ) с одним тегом XML text-view, на другой стороне используется WebView (HTML-ввод и теги), которые делают первую сторону намного лучше и плавнее для сложного пользовательского интерфейса и даже высокой производительности для простого пользовательского интерфейса.

И, конечно же, я определенно предпочитаю собственный интерфейс веб-интерфейсу.

Давайте поговорим о том, почему я выбрал Nativescript, и поговорим о моем опыте.

Android и iOS, каждая мобильная платформа имеет свою собственную экосистему и предлагает совершенно разные инструменты разработки и языки, чтобы переводить код JavaScript в соответствующие собственные API-интерфейсы, чтобы они создавали среду выполнения для каждой платформы, назовем ее Мостом

Давайте возьмем пример, если мы хотим использовать sentry.io (отслеживание ошибок с открытым исходным кодом) для отслеживания ошибок на мобильных устройствах в режиме реального времени, мы можем использовать этот плагин npmjs.com/package/nativescript-sentry.io , Который размещен на npmjs , и сразу же мы можем начать использовать его в Javascript или Typescript.

Итак, как этот плагин сделан?

Этот плагин добавляет некоторые зависимости с Gradle в Android и CocoaPods в iOS, а с мостом мы можем сразу начать использовать их в простом коде Javascript без каких-либо настроек, ( это основная часть, почему я люблю Nativescript над всеми другими платформами / фреймворками), тогда у нас есть части реализации, которые сделаны с помощью javascript, никаких других языков или навыков не требуется.

Мой опыт

Сборщик мусора: я написал два приложения с NativeScript, одно из них сейчас находится в разработке, с iOS всегда работает как шарм, но версия Android с машиной Google V8 у меня есть некоторые лаги, и это потому, что синхронизацию между сборщиком мусора JavaScript и сборщиком мусора Java (GC), они объявляют об исправлении этого в версии 3.2 Nativescript (Объявление о выпуске NativeScript 3.2 и новом экспериментальном режиме GC для Android), они добавляют экспериментальный флаг, и он пока решает лаги.

Карты Google: Кроме того, когда я использовал плагин Google Maps, у меня возникли некоторые проблемы, одна из них (конечно, это работает как шарм на iOS, у меня проблема на Android), когда вы создаете страницу, которая содержит карту Google map, и вы входите в дочерний маршрут (я использую Angular с Nativescript), и вы нажимаете кнопку возврата, и приложение вылетает, поэтому я переключаюсь на MapBox.

Я начал делать плагины для Nativescript, вы можете следить за ними на Github.com/labidiaymen

Если вы хотите внести свой вклад в эту статью или один из моих плагинов, вы можете оставить комментарий или связаться со мной: labidi {at} aymen.co

Спасибо