Если вы новичок в разработке мобильных приложений (как и я), у вас есть множество вариантов. У каждого есть свои плюсы и минусы. Это обзор, и почему я выбрал Ionic.

Включая Ionic, вот множество популярных вариантов разработки приложений для iOS или Android. Все варианты прекрасны:

  • Написание "собственного" кода на устройство. Для iOS это означает, что вы пишете на Objective-C или Swift. Для Android это Java или Kotlin. Плюсы: ваш код будет работать максимально быстро на телефоне, поскольку у него есть прямой доступ к памяти и устройствам, например камерам. Минусы: наличие специального разработчика стоит дорого, если вы играете, чтобы выпустить приложение для обоих телефонов - вам придется разделять кодовые базы.
  • React Native. Это ответвление популярного фреймворка React от Facebook, специально разработанного для разработки мобильных приложений. Вы можете написать все свое приложение с помощью JavaScript, и оно будет компилироваться в собственный код для каждого телефона. Плюсы: если вы уже знаете JavaScript, вам не нужно изучать новый язык. Минусы: поскольку это не нативный код напрямую, он может иметь ограничения по эффективности по сравнению с кодом, написанным на Swift или Java. React и React Native определенно не 1: 1, и есть много различий в синтаксисе, поэтому вам, возможно, придется заново изучить некоторые вещи, если вы уже знакомы с React. Вы не можете использовать компоненты React, которые не были переработаны для React Native.
  • Флаттер. Там, где Facebook разработал React, Google разработал Flutter. Это комплект средств разработки для создания мобильных приложений и приложений для Google Fuchsia, новой операционной системы с открытым исходным кодом, которая находится в разработке. Разработчики, создающие приложения Flutter, используют язык под названием Dart, созданный Google. Плюсы: с горячей перезагрузкой вы можете сразу увидеть изменения при редактировании приложения. При использовании собственного кода вам придется подождать несколько минут, чтобы изменения вступили в силу. Вы можете создать одну базу кода без необходимости иметь отдельный код для каждого устройства. В отличие от React, вам не нужно использовать мост JavaScript, что повышает производительность. Dart является объектно-ориентированным и строгим, что может помочь уменьшить количество ошибок с самого начала. Минусы: это новый язык, поэтому нужно интегрировать меньше библиотек. Если вы знаете только JavaScript, вам нужно будет изучить Dart. (Изменить: я изначально сказал, что Flutter предназначен только для создания мобильных приложений, вы не можете использовать его для создания веб-сайтов, но комментарий прояснил это: С Flutter вы компилируете и развертываете свой Flutter приложение для iOS, Android, в Интернете и на компьютере (macOS, Linux и Windows)

Enter Ionic…

Для моей ситуации вот все плюсы и один минус:

  • Ionic - это фреймворк, который можно интегрировать со всеми популярными фреймворками JavaScript, такими как Angular, React или Vue (тогда как React Native привязан к React). Это позволяет разработчикам быть универсальными и строить в соответствии со своими потребностями, позволяя использовать библиотеки / компоненты для этих фреймворков годами. Вы в основном используете JavaScript? Это нормально!
  • Фреймворк Ionic работает, создавая оболочку, подобную браузеру, для мобильных приложений, в которой ваше приложение по сути функционирует как веб-приложение, но имеет более чистый интерфейс. Самым большим коммерческим аргументом для меня было то, что Ionic позволил бы использовать одну базу кода для браузеров iOS, Android, и. Я разрабатываю это приложение в команде из 1 человека (было бы здорово, если бы в ближайшее время в команде появилось больше), и я не мог позволить себе, чтобы меня слишком разбросали!
  • Большим преимуществом здесь является то, что Ionic может по-прежнему взаимодействовать с аппаратными интерфейсами телефона (такими как камера, акселерометр и т. Д.).
  • В нем есть поддержка Vue, которую я обожаю и разработал ранее. Я надеюсь использовать его в будущих приложениях Ionic, но поскольку их продукт React существует дольше и имеет отличную репутацию, я хотел попробовать его в первую очередь.
  • Против: поскольку он использует браузер-контейнер, аналогично тому, как Electron разрешает настольные приложения, вы потеряете некоторую эффективность. Для меня это был хороший компромисс, поскольку я не планировал разрабатывать игры с большим объемом памяти или что-то еще с 3D-рендерингом, где может потребоваться собственный код.

В следующем посте этой серии я расскажу (а) о том, каково было начать работу с Ionic React, и (б) в любом случае, что именно я создаю?

Если вы хотите связаться со мной и поговорить о мобильной и веб-разработке, сделайте это по электронной почте ([email protected]) или Twitter.