Как обычно, на такие вопросы нет простого ответа. Оба они помогут вам создать отличное мобильное приложение за небольшой промежуток времени, если вы хорошо разбираетесь в JavaScript. Ваше приложение будет без проблем работать на iOS и Android, и вам не нужно изучать нативную разработку с помощью ObjectiveC, Swift или Java. На самом деле, я думаю, 90% мобильных приложений могут быть гибридами, по крайней мере, для меня это легкая победа.
ионный
У меня был большой опыт работы с Ionic, мне удалось запустить приличное приложение с чатами, загрузкой изображений, аутентификацией, push-уведомлениями и списками примерно за месяц, начиная с нуля. Однако я работал с Angular 1 уже около 2 лет… почти каждый день. Было бы еще проще, если бы я работал с Cordova раньше.
Что мне понравилось в Ionic, так это то, что существует множество руководств, которые помогут вам ускориться, а их официальные документы и примеры потрясающие. Все в одном месте, демонстрации везде, и вы также получаете правильный шаблон со стилями по умолчанию при запуске вашего проекта. Все прямо там, все, что вам нужно сделать, это просто соединить все части вместе. Кстати, Ionic Creator и Ionic Viewer — отличные инструменты для начинающих. Я бы также рекомендовал заглянуть в PushWoosh и другие сторонние сервисы для получения уведомлений, иначе вам придется бороться с болью наследия безопасности iOS и Android.
Реагировать на родной
С другой стороны, React Native предоставляет лучшие инструменты для разработки и не основан на Cordova.
«С React Native вы не создаете «мобильное веб-приложение», «приложение HTML5» или «гибридное приложение». Вы создаете настоящее мобильное приложение, которое неотличимо от приложения, созданного с использованием Objective-C или Java. React Native использует те же основные строительные блоки пользовательского интерфейса, что и обычные приложения для iOS и Android. Вы просто соединяете эти строительные блоки с помощью JavaScript и React».
Да, это именно то, что есть — гибрид, но не совсем гибрид… Пользовательский интерфейс и анимация кажутся намного более плавными, и у вас нет багов от Cordova. Официальные документы довольно хороши, но, я думаю, не лучше, чем те, что есть на Ionic. Начальная загрузка вашего первого приложения тоже не сложна.
Что раздражает в React Native, так это то, что у вас нет всех этих предварительно стилизованных компонентов, поэтому вам нужно все создавать самостоятельно. В начале это может быть страшно. Маршрутизатор также может быть сложнее настроить должным образом. Определенно требуется больше времени, чтобы выпустить приличное приложение в качестве первого таймера.
Но если вы хотите ускорить работу своего приложения, самый простой способ — подключить пользовательские компоненты. Я нашел Native Base довольно хорошей платформой для этого. На самом деле, если вы подключите Native Base и добавите к нему React Templates — вы получите настройку Angular/Ionic. Так что не беспокойтесь, у вас есть все необходимое, чтобы начать создавать свой пользовательский интерфейс. О, Redux поставляется с уже предварительно настроенной Native Base (ура!).
Учебники
Помимо официальной документации мне нравятся курсы от egghead.io. Уроки React Native просто великолепны для начала. Курс по Ionic тоже хорош для начала.
Вывод
Нет, вывода нет, пожалуйста, решите сами, какой язык/инструмент вам подходит :p, мне нравятся оба фреймворка, и я рад, что у нас есть эти потрясающие платформы с открытым исходным кодом. Пишите свои приложения и запускайте их везде, больше не тратьте время на написание ObjectiveC/Swift или Java!