Программное обеспечение сложное, и создание программного обеспечения требует времени и усилий. Но создание приложения сначала офлайн занимает больше времени, чем вы думали. Раньше я создавал приложение. Один из моих больших интересов - создание приложения, которое синхронизируется. То есть вы можете использовать, когда вы не в сети, все данные будут синхронизироваться в фоновом режиме естественным образом при подключении к Интернету. Вы можете использовать приложение, не беспокоясь о нестабильной сети. Многие популярные приложения для iOS и Android работают в автономном режиме. Было бы здорово, если бы сайт тоже поддерживал offline-first. Многие технологии сегодня поддерживают нас в создании, но нигде не даны инструкции по созданию непрерывного автономного программного обеспечения, которое мы могли бы естественным образом использовать в Интернете, приложениях для iOS и Android. В этой серии статей я попытался рассказать вам, как создать автономное приложение.

Для меня программное обеспечение сложно, поэтому оно должно быть явным. Даже мы будем использовать много технологий, но я постараюсь сделать это понятным и легким для изучения. Мы будем использовать React / Redux на интерфейсе, ReactNative на мобильных устройствах, Elixir на серверной части, CouchDB / PouchDB для автономной синхронизации базы данных. Вам не нужно знать все эти фреймворки или языки, чтобы читать его, потому что мы будем создавать программное обеспечение с учетом DDD. Это компонентная база, которую можно легко компоновать и заменять. Таким образом, вы можете заменить React / Redux на ваши любимые UI-фреймворки: Angular, Ember,… .. ReactNative на ваш собственный стек: iOS, Android. Elixir для API с вашими любимыми языками, такими как: Ruby, Python, Scala, Clojure, Haskell…, CouchDB / PouchDB с Firebase или ваш сервер, поддерживающий синхронизацию.

Большая картинка.

oops! No picture here.

  1. Интерфейс: наш интерфейс будет полностью построен на React / Redux. Где React для создания пользовательского интерфейса, все данные будут из Redux. При изменении данных в Redux пользовательский интерфейс React изменится автоматически. React относится только к Redux.
  2. Клиентская база данных: мы используем CouchDB / PouchDB для обработки автономной базы данных синхронизации через платформы. PouchDB - это локальная клиентская база данных, CouchDB - это удаленная база данных.
  3. Разговор с кешами: все данные в хранилище Redux взяты из локальной базы данных PouchDB. Итак, нам нужно синхронизировать наш магазин Redux с базой данных PouchDB. Затем, если есть какие-либо изменения в базе данных PouchDB, они будут синхронизироваться с Redux, и пользовательский интерфейс React будет изменен.
  4. Сервер: Нам также нужен сервер, построенный с помощью Elixir / Phoenix, для обработки входа / выхода, частей аутентификации и других функций, не требующих автономной работы, таких как: подписки, обновление учетной записи,….

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

Оглавление:

Часть 1: Мир мнений.

Глава 1: Реагировать

Урок 1: Реагировать дистиллированный

Урок 2: создание более сложного пользовательского интерфейса с помощью React

Глава 2: Redux

Урок 3: дистиллированный Redux

Урок 4: RxJS - встречайте свой первый побочный эффект

Глава 3: PouchDB

Урок 5: куда поместить PouchDB в пул react-redux

Урок 6: Завершите часть общей картины

Часть 2: Ваш собственный сервер

Урок 7: API для регистрации

Урок 8: API для входа в систему

Урок 9: Синхронизация PouchDB и CouchDB

Часть 3: Готово к производству

Урок 10: Cloudant для победы

Урок 11: Phoenix на Heroku

Урок 12: Наш интерфейс на Firebase

Урок 13: Сделай сам

Приложение

Урок 14: Config redux.

Урок 15: Настройка Redux-Observable.

Заключительные мысли

* Оглавление может измениться во время записи.