Программное обеспечение сложное, и создание программного обеспечения требует времени и усилий. Но создание приложения сначала офлайн занимает больше времени, чем вы думали. Раньше я создавал приложение. Один из моих больших интересов - создание приложения, которое синхронизируется. То есть вы можете использовать, когда вы не в сети, все данные будут синхронизироваться в фоновом режиме естественным образом при подключении к Интернету. Вы можете использовать приложение, не беспокоясь о нестабильной сети. Многие популярные приложения для 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.
- Интерфейс: наш интерфейс будет полностью построен на React / Redux. Где React для создания пользовательского интерфейса, все данные будут из Redux. При изменении данных в Redux пользовательский интерфейс React изменится автоматически. React относится только к Redux.
- Клиентская база данных: мы используем CouchDB / PouchDB для обработки автономной базы данных синхронизации через платформы. PouchDB - это локальная клиентская база данных, CouchDB - это удаленная база данных.
- Разговор с кешами: все данные в хранилище Redux взяты из локальной базы данных PouchDB. Итак, нам нужно синхронизировать наш магазин Redux с базой данных PouchDB. Затем, если есть какие-либо изменения в базе данных PouchDB, они будут синхронизироваться с Redux, и пользовательский интерфейс React будет изменен.
- Сервер: Нам также нужен сервер, построенный с помощью 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.
Заключительные мысли
* Оглавление может измениться во время записи.