Что ж, в прошлом я занимался разработкой 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%
Я смог создать большую часть функциональности за несколько дней, но завершить весь проект оказалось непросто, так как я столкнулся с проблемами и окончательным стилем, заставить его работать с Интернетом оказалось сложнее, чем казалось. В основном я боролся с сетью.
- В мобильном браузере не работала прокрутка (Проблема)
- Мне потребовалось время, чтобы заставить его выглядеть хорошо и понять стиль.
- Хранилище, значки и т. Д. Также потребовали некоторой отладки
Завершить что-то на 100% сложнее, чем кажется, и последние 20% работы отнимают 80% времени.
Удачи
Изучение нового языка или фреймворка может быть неприятным вначале, поэтому очень важно не задумываться и получать от этого удовольствие. Не беспокойтесь о том, чтобы уточнить все детали. Я получаю удовольствие от создания Croma, и я сделал его с открытым исходным кодом, поэтому не стесняйтесь вносить исправления в какой-то код, который я напортачил. Будем рады учиться у сообщества
Первое впечатление от реакции носителей и обучения
- С expo очень легко начать работу
- Концепция компонента имеет смысл, так что легко писать повторно используемый код
- С такими функциями ES6, как async wait и JSX, писать javascript действительно стало веселее.
- Не все можно сделать с помощью react native, поскольку я пытался реализовать палитру цветов в реальном времени с помощью камеры, но производительность оказалась действительно узким местом. Так что в конечном итоге мне придется покинуть выставку, чтобы реализовать эту функцию в родном.
- Состояние React-native в Интернете не очень хорошее, и многие вещи в Интернете просто не работают. Мне все же удалось исправить большинство проблем, но вам нужно приложить дополнительные усилия, чтобы все работало в Интернете.
- Действия Github отлично подходят для автоматизации процесса сборки и выпуска. Мне удалось автоматизировать веб-выпуск с помощью страниц Github и выпуск Android с помощью expo publish. Посмотрите на эти рабочие процессы, если вы тоже пытаетесь сделать то же самое.
- Я так много узнаю о цветах и дизайне, создавая это приложение, что у меня было очень мало шансов поработать, пока я занимался бэкэнд-разработкой.
- Вы также можете реализовать алгоритмы машинного обучения в javascript. Я реализовал алгоритм кластеризации, чтобы определить наиболее заметные цвета изображения, и он работает хорошо. Попробуйте здесь.
Будем рады видеть, как люди используют приложение. Пожалуйста, попробуйте здесь или загрузите его из playstore и не стесняйтесь присылать PR и поднимать вопрос. Очень взволнован своим реакционным путешествием и с нетерпением жду возможности поучиться у сообщества. Спасибо Сатьяджиту Саху и Бхувану Джоши за всю помощь.
Ваше здоровье!