Андерс Лассен, основатель и CEO проекта Fuse, на TechCrunch поделился своим видением тех изменений, которые привнесет React Native в индустрию разработки мобильных приложений.
Facebook только что запустил свой опенсорс фреймворк для создания мобильных приложений React Native. React Native позволит разработчикам писать приложения на JavaScript, предоставляя вместе с тем реальный нативный пользовательский интерфейс. От такого описания могут отмахнуться технически не подкованные читатели, но я уверен, что у этого анонса большие последствия. React Native скоро изменит существующий мир мобильной разработки и затронет каждого, у кого есть «умное» устройство.
Перемирие в войне HTML vs. Native
Многие годы разработчикам мобильных приложений приходилось делать невероятно трудный выбор: разрабатывать ли приложения, используя нативные инструменты от Apple и Google, или создавать их с помощью кроссплатформенных решений?
Считается, что нативные инструменты нужны разработчикам, чтобы создавать самые лучшие пользовательские впечатления. Приложения работают быстрее, выглядят аккуратнее и ведут себя так, как ожидают пользователи данной платформы. Обратная сторона Луны — научиться использовать эти инструменты довольно трудно, а работа с ними занимает много времени, особенно в сравнении с разработкой сайтов. Нативные инструменты также основываются на совершенно несовместимых языках программирования, что означает, что приложение необходимо разрабатывать два или более раз, чтобы запуститься на iOS, Android и других платформах. Это очевидно влияет на цену и является головной болью всей индустрии.
Кроссплатформенные решения, с другой стороны, обычно основаны на веб-технологиях, таких как HTML, CSS и JavaScript. Все мобильные платформы могут показывать веб-страницы, что значит, что вы можете разработать одну версию приложения на веб-инструментах, а рабочий процесс будет очень быстрым. В теории это так.
На практике этот подход критикуют за производительность и ограничения совместимости, часто неудовлетворительные пользовательские впечатления и энергозатратность приложений, которые греют устройство и истощают его батарею. Если вы когда-либо раздражались мобильным приложением, которое похоже на пеструю веб-страницу, то вот она причина.
React Native — новый инструмент, который совмещает эти два подхода. Позволяя разработчикам писать на JavaScript, очень популярном, доступном и совместимом со всеми мобильными устройствами языке, он реализует пользовательский интерфейс, содержащий реальные нативные элементы. Это очень привлекательная штука для разработчиков JavaScript. Многие из них с ужасом ждали дня, когда им наконец придется учить более сложные Objective-C, Swift или Java, чтобы попасть в мир нативных приложений.
Несмотря на то, что платформе еще многое придется доказать, React Native показывает, что нам еще долго не придется делать трудный выбор между HTML и нативностью пользовательских интерфейсов приложений. Качественный нативный UI наконец доступен для всех крепких орешков — разработчиков на JavaScript.
Больше креативных приложений
Если копнуть глубже, ReactNative нечто большее, чем обеспечение доступа к нативным интерфейсам разработчикам JavaScript. Презентация Facebook показывает совершенно новый рабочий процесс, который позволит значительно уменьшить количество необходимых на большой проект часов и даст разработчикам приложений куда более удовлетворительный опыт продакшна.
В то время как веб-разработчики могут менять код и видеть результат в веб-браузере, разработчикам нативных приложений нужно тратить минуты на то, чтобы их проекты скомпилировались, развернулись и запустились на мобильном устройстве. Это не просто потеря времени; это убивает все творчество и эксперименты с новыми идеями. Нужно делать дешевле и быстрее, так что разработчикам приходится довольствоваться результатами ниже среднего просто потому, что корректировка и тестирование занимают слишком много времени.
React Native разделяет нативный пользовательский интерфейс и логику управления используя «реактивный» подход. Пользовательский интерфейс работает только на мобильном устройстве, а логика — где угодно, например, в браузере или на компьютере разработчика. Это означает, что программисты могут использовать инструменты и рабочий процесс веб-разработки. Сделайте изменение, посмотрите на результат непосредственно на устройстве или в эмуляторе — делайте приложения быстрее или потратьте высвободившееся время на обкатку новых идей.
Только это не сможет заставить всех перейти на Javascript и браузерные инструменты, но что React Native точно под силу — это вдохновить разработчиков, использующих разные инструменты. С растущей индустрией мобильных приложений и высоким спросом на часы разработчиков, ожидание, пока компьютеры скомпилируют код, а приложения развернутся заново, реально уходит в прошлое.
Открытая вдохновляющая база кода в новой мобильной эре
Facebook выложил код React Native, он теперь бесплатен и доступен всем. Мы можем ожидать, что он и идеи, стоящие за ним, просочатся и в другие инструменты и платформы разработки. То же случилось с предшественником React Native, React.js, фреймворком для создания пользовательских интерфейсов. Это был очень популярный фреймфорк сам по себе, а его идеи и концепции тоже оказали большое влияние на другие фреймворки.
Что это все значит для конечного пользователя? В будущие годы ожидайте более чистых и быстро откликающихся приложений, даже если они написаны на коленке. Высококачественная разработка приложений станет дешевле, и разработчики приложений станут более продуктивными и творческими.
Индустрия приложения все еще страдает от тех же проблем, что и на заре распространения смартфонов: двойная работа на iOS и Android, сложные для использования инструменты и медленный ход разработки. Но теперь, благодаря Facebook, расчищена дорога в новую эру — с лучшими инструментами, новыми идеями и open source кодом.