Что ж, в прошлом я занимался разработкой javascript (node.js), но javascript сильно изменился после ES-6. На данный момент мое основное внимание было сосредоточено на бэкэнд-разработке на java и ruby ​​(в основном, RoR). Я собираюсь поделиться своим опытом написания своего первого нативного приложения с реакцией.

Я решил изучить нативную реакцию и создать что-то полезное, поэтому решил переписать одно из популярных приложений Croma, которое я и мой друг Satyajit Sahoo разработали еще в 2014 году. Croma - это приложение для организации, генерации и сохраните цветовые палитры, сделав упор на простой и удобный дизайн. У нас не было времени на его поддержку, и он был написан с использованием веб-интерфейса и собственного Android. Поскольку Сатьяджит Саху предложил переписать его на react native, я подумал, что это хорошая возможность научиться реагировать на native. Посмотрим, как я создаю начальную версию

Пачкайте руки

Лучший способ изучить новый фреймворк или язык - это начать что-то создавать, изучать и учиться на этом пути. Итак, я начал с шаблонного нативного приложения для реагирования с использованием expo, поскольку в документации сказано, что с expo проще начать.

expo init 

Я запустил пример приложения hello word, в котором уже есть некоторые базовые функции, так что я могу сразу же начать экспериментировать.

Начать Expo действительно легко, так как вы можете настроить рабочий пример приложения за 5 минут и видеть изменения в реальном времени в приложении expo.

Правило 80–20%

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

  1. В мобильном браузере не работала прокрутка (Проблема)
  2. Мне потребовалось время, чтобы заставить его выглядеть хорошо и понять стиль.
  3. Хранилище, значки и т. Д. Также потребовали некоторой отладки

Завершить что-то на 100% сложнее, чем кажется, и последние 20% работы отнимают 80% времени.

Удачи

Изучение нового языка или фреймворка может быть неприятным вначале, поэтому очень важно не задумываться и получать от этого удовольствие. Не беспокойтесь о том, чтобы уточнить все детали. Я получаю удовольствие от создания Croma, и я сделал его с открытым исходным кодом, поэтому не стесняйтесь вносить исправления в какой-то код, который я напортачил. Будем рады учиться у сообщества

Первое впечатление от реакции носителей и обучения

  • С expo очень легко начать работу
  • Концепция компонента имеет смысл, так что легко писать повторно используемый код
  • С такими функциями ES6, как async wait и JSX, писать javascript действительно стало веселее.
  • Не все можно сделать с помощью react native, поскольку я пытался реализовать палитру цветов в реальном времени с помощью камеры, но производительность оказалась действительно узким местом. Так что в конечном итоге мне придется покинуть выставку, чтобы реализовать эту функцию в родном.
  • Состояние React-native в Интернете не очень хорошее, и многие вещи в Интернете просто не работают. Мне все же удалось исправить большинство проблем, но вам нужно приложить дополнительные усилия, чтобы все работало в Интернете.
  • Действия Github отлично подходят для автоматизации процесса сборки и выпуска. Мне удалось автоматизировать веб-выпуск с помощью страниц Github и выпуск Android с помощью expo publish. Посмотрите на эти рабочие процессы, если вы тоже пытаетесь сделать то же самое.
  • Я так много узнаю о цветах и ​​дизайне, создавая это приложение, что у меня было очень мало шансов поработать, пока я занимался бэкэнд-разработкой.
  • Вы также можете реализовать алгоритмы машинного обучения в javascript. Я реализовал алгоритм кластеризации, чтобы определить наиболее заметные цвета изображения, и он работает хорошо. Попробуйте здесь.

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

Ваше здоровье!