Разработка гибридного JavaScript для мобильных устройств - Apache Cordova против конденсатора с Ionic против NativeScript против React Native - PullRequest
0 голосов
/ 04 ноября 2019

Прежде всего, надеюсь, поэтому этот вопрос не слишком широк. Исходя из внешнего интерфейса, я думаю начать изучать одну из связанных с JavaScript фреймворков для мобильной разработки. И вот первый вопрос, я пойду с Apache Cordova или Capacitor? Первый, который я использовал для разработки игр Phaser (HTML5) в качестве хобби-проекта, не самый лучший опыт, если честно. Я чувствовал, почему Apache Cordova является одной из самых ненавистных технологий в соответствии с годовыми отчетами Stack Overflow.

Тогда возникает второй вопрос, я должен пойти с Ionic, NativeScript или React Native? Reactэто единственная оболочка из «большой тройки», которая мне пока некомфортна. Мой опыт работы с Angular и Vue.js довольно позитивен, и я хотел бы использовать любой из них и в моих проектах мобильных приложений, поэтому я немного пристрастен к Ionic или NativeScript. С другой стороны, у React Native больше всего звезд GitHub. Я думаю, что для этого может быть причина.

И последнее, могу ли я объединить любое из: Apache Cordova / Capacitor с любым из: Ionic / NativeScript / React Native или есть некоторые вещи, которыеупрощает работу, например, комбинации конденсатора и ионной? Та же компания делает это, поэтому я предполагаю, что это должна быть относительно бесшовная комбинация.

Редактировать:

Последнее - для создания PWA из той же кодовой базы моего мобильного приложения я вынужден использовать только Ionic?

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Это верно, у NativeScript есть собственные нативные компоненты для iOS / Android. Это не обертка вокруг какой-то другой структуры. Telerik построил его с нуля. Это автономная экосистема, которая в настоящее время имеет версию 6.x. Так что он существует уже некоторое время и активно развивается и поддерживается (что не гарантирует, что он не исчезнет в какой-то момент).

Для чего-то вроде PWA, Ionic или Flutter - варианты,И сегодня утром я наткнулся на новый с помощью StackShare под названием Quasar, который выглядит интересно (https://quasar.dev/).). Но на самом деле вы можете создать PWA из той же кодовой базы NativeScript, которую используете для создания мобильных приложений (* 1006). * Так что, похоже, нет недостатка в инструментах, и это хорошо, потому что он дает вам возможность выбирать в зависимости от того, как вам нравится работать.

1 голос
/ 04 ноября 2019

В какой-то степени ответ будет зависеть от вашего личного опыта / знаний, личных предпочтений (как вы думаете и работаете) и, наконец, от любых требований к производительности, которые вы можете проектировать. Как и вы, я также изучил все эти фреймворки и использовал большинство из них. Любой из них в конечном итоге выполнит свою работу. Однако одна вещь, которую я обнаружил, состоит в том, что такие среды, как Cordova, которая запускает веб-представление, встроенное в собственное приложение, могут иметь некоторые заметные проблемы с производительностью, когда вы пытаетесь использовать его. Фреймворк, который использует реальные нативные компоненты и компилирует в нативный код, в конечном итоге будет более отзывчивым. Тем не менее, даже в этом случае вы можете найти случаи, когда он не соответствует изначально написанному коду. Например, я работал над проектом чуть более года назад, когда мы начали с React Native. Все было хорошо, пока мы не начали пытаться сделать анимацию карты в реальном времени с геолокацией и взаимодействием с пользователем. В этот момент мы начали видеть лаги и заикания даже на совершенно новых устройствах. Для этого проекта мы, в конечном счете, укусили пулю и начали все заново на чистом языке. Мы просто слишком много просили о фреймворке.

В настоящее время я работаю над проектом, использующим NativeScript с Vue. И до сих пор я довольно легкомысленен. Как и вы, я фанат VueJS, в основном потому, что мне нравится, как обрабатываются Vuex и привязка данных в целом. Были определенно некоторые кривые обучения и парадигмы, чтобы прийти в голову, но я начал стремительно развиваться через неделю или около того. При этом мне еще предстоит толкнуть фреймворк с помощью чего-то вроде сложной анимации. Но это зрелая структура, она хорошо документирована и имеет активное сообщество (я сразу же присоединился к рабочей области Slack). И мне очень нравится тот факт, что у него нет мнения о том, следует ли использовать какую-либо структуру. Vanilla JavaScript, React, Angular, Vue ... это просто не волнует.

Если вы вообще заинтересованы в том, чтобы привлечь других разработчиков к проекту, в будущем определенно будет больше людей. знакомы с React Native. С другой стороны, любой разработчик, достойный своей соли, должен иметь возможность без особых сложностей освоить новую платформу. Если вы рассматриваете NativeScript, я бы порекомендовал взглянуть на некоторые примеры в Playground и пролистать документацию. Я подозреваю, что это либо соблазнит вас, либо оттолкнет вас. При этом у меня нет никаких претензий по поводу любой другой структуры, которая существует. Некоторые из них больше подходят для определенных видов приложений, чем другие.

Удачи!

...