Создание сообщества с использованием React Native и Firebase noSQL

Вдохновение

Вдохновением для этого экспериментального проекта послужило открытие приложения Class Dojo для Интернета, iOS и Android. Короче говоря, приложение ClassDojo помогает учителям и родителям создавать сообщество в классе. Предоставляя веселую и простую социальную сеть со множеством полезных функций, она позволяет ученикам и родителям взаимодействовать и участвовать. С появлением COVID-19 такие инструменты стали более важными. Мой любимый аспект CD — это простота и доступность для детей младшего возраста.

Итак, взяв за основу ClassDojo, я подумал, что было бы интересно адаптировать некоторые из найденных там хороших идей к другим идеям, ориентированным на создание сообщества. Так родилась идея CommunityMojo.

По сути, CommunityMojo — это простая социальная сеть для групп, благодаря которой вклад в группу признается и вознаграждается. В процессе создания прототипа приложения я приобрел опыт работы с новыми инструментами и платформами, о которых подробно расскажу в этом посте. Поощрение студентов и представление рейтинга студентов — это идеи, которые я хотел включить в CommuntyMojo.

Первым инструментом, который следует выделить в процессе, является Figma.com, БЕСПЛАТНЫЙ онлайн-инструмент, который позволяет легко создавать макеты и прототипы мобильных приложений. Ниже приведен первый набор экранов с путями прототипирования, которые можно создать с помощью Figma. Возможности векторного рисования не уступают возможностям InkScape (тоже бесплатно) и Adobe Illustrator (не бесплатно).

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

Firebase: серверная часть без SQL

У меня есть некоторый опыт работы с MongoDB, но я хотел попробовать другую базу данных noSQL для CommunityMojo. Google Firebase хорошо сработал для проекта, и я ценю хорошо написанную документацию и большое количество хорошо подготовленных учебников на YouTube. Веб-интерфейс администрирования серверных данных очень удобен и прост в использовании. Я также смог поэкспериментировать с платформой, не тратя денег. Если приложение должно было стать коммерчески успешным с огромным трафиком, Firebase предназначен для обработки этого. Он создан для скорости.

Firebase создан для работы с мобильными приложениями. Поскольку я хотел, чтобы это приложение было создано с помощью React Native, Firebase был легким выбором. Как я уже упоминал, Firebase отдает предпочтение скорости/масштабируемости, а не целостности данных. Firebase — это не реляционная база данных, где одним из самых важных правил является не повторять данные.

В реляционной базе данных запрашиваются данные с использованием объединений для выбора необходимых данных из нескольких таблиц.

NoSql отличается. Это больше похоже на дерево узлов иерархических данных, организованных по потребностям приложения, оптимизированных для чтения. Точки данных повторяются там, где они должны быть. Например, пользовательский узел с повторяющимися атрибутами может существовать в нескольких точках дерева. Соединения не используются.

Когда данные необходимо синхронизировать внутри дерева, используются облачные функции, чтобы держать денормализованные (повторяющиеся данные) в порядке.

Реагировать на родной интерфейс

React Native — это фреймворк, который позволяет разработчикам писать код для приложения только один раз (на JavaScript). Затем код JavaScript компилируется в собственный код для устройств Android и iOS. Здесь вы можете увидеть код, скомпилированный для Android.

В этом опыте я обнаружил, что React Native работает довольно хорошо, и я могу заставить приложение постоянно обновляться и работать на моем телефоне. Я обнаружил, что подключение физического устройства Android к моему компьютеру было лучшей настройкой разработки. Есть и эмуляторы.

Я не исследовал сторону iOS.

Вот приложение в действии. Я иллюстрирую вход в качестве организатора группы и вознаграждаю члена группы за вклад.

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