Мы потратили много времени на изучение React Native, и теперь, когда мы отправляем его, мы хотели бы поделиться ответами на некоторые из наших первоначальных вопросов.

Наша команда в Infinite Red разрабатывает мультиплатформенные приложения в различных наборах инструментов. Когда мы услышали о React Native, мы отнеслись к нему с уважением скептически. Надеюсь, это не звучит как культ, но мы увидели свет.

Программное обеспечение продолжает развиваться, и мы должны; никто не влезал в программы, чтобы смотреть, как мир проходит мимо них. - Знаменитая моя цитата только что.

Вот 5 причин, по которым вашей команде следует использовать / перейти на React-Native.

Причина 1. Кросс-платформенность - (Действительно ли?)

Ужасный ответ - да и нет, но в основном да. Есть веская причина, по которой вы получаете этот ответ все время. Оставайся со мной на минутку.

Давайте ответим под другим углом. Вы можете написать код Swift, Objective-C и Java и связать его с JavaScriptCore, чтобы использовать его в своем приложении!

«Означает ли это, что я все еще могу писать собственный код вместе с React-Native?»
Верно.

Другая сторона этого лезвия означает, что для каждой функции React-Native потребуется как минимум две кодовые базы, которые будут выровнены для надежной кросс-платформенной надежности. Взглянув на проект на Github, вы увидите, как сообщество старается поддерживать согласованность функций.

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

Доля общего кода растет с каждым днем. Если вы планируете соответственно, вы можете поделиться более 50% своей кодовой базы. Кроме того, появляются кроссплатформенные инструменты управления, такие как rnpm, которые помогают контролировать ваши зависимости.

Причина 2 - Быстрые циклы разработки

Люди говорят о цикле обратной связи React Native, но ничто не объясняет его лучше, чем сам опыт.

Здесь я сохраняю файл в своем проекте:

Мгновенная обратная связь, которую вы получаете от современных веб-фреймворков, отлично переносится. Разработчики и дизайнеры могут решить проблемы с помощью работающего кода.

«Симуляторы и эмуляторы - это хорошо, но как насчет реальной сделки?»
Их тоже легко протестировать на устройствах.

Вы можете выполнить сборку на свое устройство, которое подключается к вашему локальному диспетчеру пакетов, или вы даже можете использовать фантастическую систему обмена приложениями, такую ​​как Exponent, которая позволяет вам делиться своим живым приложением для перезагрузки по всему миру, публиковать его или даже просматривать другие опубликованные Приложения.

Все больше и больше людей оставляют URL-адреса экспонентов в своих репозиториях на GitHub, чтобы люди могли быстро протестировать их. Это отлично подходит для разработчиков, но если вам нужно готовое к производству решение, вы можете использовать то же самое с Microsoft's CodePush. На данный момент 100% БЕСПЛАТНО!

Причина 3 - Быстрое наращивание

Я никогда раньше не видел, чтобы младшие разработчики так быстро становились продуктивными. НИКОГДА. Мы смогли повысить продуктивность людей за считанные дни, а не недели. Частично это происходит из-за простоты атомарного модуля React, компонента.

На объяснение компонента уходит совсем немного времени. Как только разработчик понимает, что такое компонент, он обычно может мгновенно создавать простые компоненты. Получение ваших строительных блоков от младшего разработчика не только продуктивно, но и позволяет легко проверять код.

Разумно, в полном объеме приложения могут возникать довольно сложные вопросы, от которых вы никогда не уйдете, но из-за атомарной структуры у остальной команды не должно быть узких мест.

Другими словами, это совсем не похоже на адскую хоккейную клюшку, которую люди испытывают в AngularJS. (Без обид, народ Angular, но вы знаете, что это правда).

Причина 4 - Ведение государственных дебатов

Большой вопрос, связанный с React Native, заключается в том, как управлять состоянием приложения и как это работает с каждым компонентом?

Если этот вопрос не имеет для вас смысла, ничего страшного. Он также не имел смысла для нас. Но это потому, что нам нужен был React, чтобы задать нам вопрос. Отличные концепции были разработаны в Elm, Ember, ReactJS и др. и как только вы поймете вопрос, вы поймете, что все места, о которых никогда раньше не спрашивали, укусили вас.

Чтобы решить эту проблему, Facebook использует Flux, но благодаря красоте открытого исходного кода появился великий претендент по имени Redux. Эти концепции настолько новаторские, что заставляют другие языки пробуждаться и развиваться.

Как раз на прошедшем RubyConf мы видим, как Redux нашел свой путь в Ruby (объяснил, что в конце это Redux).

Причина 5 - Кодируйте, как вы хотите, он же Великий плавильный котел

Если вы не являетесь поклонником JavaScript, вы не одиноки. Все мы знакомы со знаменитым WAT Lightning Talk. Но вы больше не зацикливаетесь на поддержке IE6. Вы снова пишете код, и вот вам помощь.

Вавилон 6 - ES2015

React Native читает ES2015, поэтому вы можете использовать последний и лучший JavaScript, который появляется в Babel. Вам не нужно заполнять свой код строками и строками шаблонного шума. На ES2015 есть масса курсов, и их действительно легко освоить.

Подчеркивание и Лодаш

Возможно, вы пришли из причудливого языка, в котором было много полезных функций. Я лично лучше всего кодирую на Ruby, и я рад сказать, что могу перенести почти все методы, которые когда-то знал, добавив красивую библиотеку, такую ​​как lodash. Конечно, `includes` будет в ES7, но вам не нужно ждать.

Функциональные парадигмы

Для тех из вас, кто пытается изучить или реализовать функциональные парадигмы, вы можете продолжить писать свой JavaScript с помощью функционального дизайна в Ramda и Facebook's Immutable JS. Некоторые могут назвать это святотатством, но смешивание этих библиотек позволяет преодолеть разрыв от объектно-ориентированного подхода к функциональному с помощью гибридной кодовой базы. Вы можете учиться понемногу.

Мир NPM

Если вам этого недостаточно, наслаждайтесь огромным миром кода JavaScript, управляемым с помощью диспетчера пакетов узлов: https://www.npmjs.com/

Заключение

Как и любой набор инструментов, будет причина не использовать его, но в случае React Native этот список очень короткий. Если вы все еще настроены скептически, я предлагаю вам прочитать книгу Стива Келлока - Руководство для скептиков по React Native.

Если вы откладываете React Native, самое время потратить неделю на его изучение и создать свое первое приложение. Шумиха реальна.

О Ганте

Гант - технический руководитель в Infinite Red, опубликованный автор, оратор и безумный ученый в процессе обучения. Если вы хотите обсудить ботанические технологии, я всем внимателен.