SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Flux
Предыстория
• Сделано в FB
• Хорош в работе с динамическими данными
Программа
• Что такое flux?
• Концепция
• Что есть для iOS?
Flux
• Архитектура приложения
• Flux - однонаправленный поток данных со
специфичными событиями и слушателями
Проблемы FB
• Проблема отображения непросмотренных тредов
и отображения списка тредов
• Изменение одной модели влечет за собой
изменение других
• MVC не понравилось
Поток данных
Dispatcher
Dispatcher
• Рассылает действия зарегистрированным
хранилищам
• Может управлять порядком
• Может ожидать ответа от предыдущего
хранилища
Dispatcher
Поток данных
Store
Store
• Что-то вроде модели
• Предлагается складывать коллекции
• Может храниться время и состояние
• VM?
• Можно сделать полноценным хранилищем?
Store
Поток данных
View
View
• Биндятся к своим хранилищам
• Используют React
View
Поток данных
Action
Action
• Содержит тип и данные
• Пересылаются Dispatcher'ом в Store
• Могут появляться как из UI, так и из
нотификаций, демонов и прочего
Action
Поток данных
Поток данных
Важные моменты
• Однонаправленность
• Состояние хранится в хранилищах
• Синхронное обновление
• Нет каскадных обновлений данных
Мир js
• Redux: ~20k звезд
• Refluxjs: ~5k звезд
• бесконечно их
Reflux
• Более функциональный
• Нет Dispatcher
• Хранилища могут слушать другие хранилища
• Поддерживаются параллельные потоки данных
Что есть под iOS?
• ReSwift: 2100 звезд
• SwiftFlux: 166 звезд
ReSwift
• Вдохновлялись Redux
• Тоже не имеет dispatcher
• Добавились reducer'ы
Схема
Преимущества
• Понятный однонаправленный поток данных
• Все кроме View реюзабельно
• Простота дебага по полученным экшенам
Итоги
• Flux - про однонаправленное течение данных в
приложении
• Есть стандартные компоненты: Action, Dispatcher,
Store, View
• Готовые реализации под iOS

Weitere ähnliche Inhalte

Was ist angesagt?

Drupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константинDrupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константин
drupalconf
 
Windows server 2012 r2 essentials rus
Windows server 2012 r2 essentials rusWindows server 2012 r2 essentials rus
Windows server 2012 r2 essentials rus
TechFunder
 
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио..."PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
Badoo Development
 

Was ist angesagt? (19)

Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
 
Опыт построения компании-разработчика Интернет проектов на Drupal
Опыт построения компании-разработчика Интернет проектов на DrupalОпыт построения компании-разработчика Интернет проектов на Drupal
Опыт построения компании-разработчика Интернет проектов на Drupal
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
03-Hibernate. Документация
03-Hibernate. Документация03-Hibernate. Документация
03-Hibernate. Документация
 
66 - Spring. Spring и JSF
66 - Spring. Spring и JSF66 - Spring. Spring и JSF
66 - Spring. Spring и JSF
 
SECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой APISECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой API
 
141 - Spring. Добавление контроллеров Spring MVC
141 - Spring. Добавление контроллеров Spring MVC141 - Spring. Добавление контроллеров Spring MVC
141 - Spring. Добавление контроллеров Spring MVC
 
Drupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константинDrupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константин
 
Drupal и мобильные устройства
Drupal и мобильные устройстваDrupal и мобильные устройства
Drupal и мобильные устройства
 
130 - Spring WebFlow. Создание проекта
130 - Spring WebFlow. Создание проекта130 - Spring WebFlow. Создание проекта
130 - Spring WebFlow. Создание проекта
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
131 - Spring. Переход между страницами
131 -  Spring. Переход между страницами 131 -  Spring. Переход между страницами
131 - Spring. Переход между страницами
 
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
 
Windows server 2012 r2 essentials rus
Windows server 2012 r2 essentials rusWindows server 2012 r2 essentials rus
Windows server 2012 r2 essentials rus
 
Особенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийОсобенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложений
 
MarionetteJS. Shall we dance?
MarionetteJS. Shall we dance?MarionetteJS. Shall we dance?
MarionetteJS. Shall we dance?
 
Microsoft , Azure и Drupal
Microsoft , Azure и DrupalMicrosoft , Azure и Drupal
Microsoft , Azure и Drupal
 
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио..."PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
 

Ähnlich wie RDSDataSource: Flux, Redux, ReSwift

Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5
Docsvision
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQL
Andrey Korshikov
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа Docsvision
Docsvision
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
Stanfy
 

Ähnlich wie RDSDataSource: Flux, Redux, ReSwift (20)

Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
VIPER architecture
VIPER architectureVIPER architecture
VIPER architecture
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic apps
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
 
Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQL
 
Использование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложенииИспользование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложении
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа Docsvision
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Управление данными (распределенная обработка)
Управление данными (распределенная обработка)Управление данными (распределенная обработка)
Управление данными (распределенная обработка)
 
Meet up windows-workflow_foundation
Meet up windows-workflow_foundationMeet up windows-workflow_foundation
Meet up windows-workflow_foundation
 
Sivko
SivkoSivko
Sivko
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows Azure
 
Databases on Client Side
Databases on Client SideDatabases on Client Side
Databases on Client Side
 
Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014
 

Mehr von RAMBLER&Co

Mehr von RAMBLER&Co (20)

RDSDataSource: Основы LLVM
RDSDataSource: Основы LLVMRDSDataSource: Основы LLVM
RDSDataSource: Основы LLVM
 
Rambler.iOS #9: Анализируй это!
Rambler.iOS #9: Анализируй это!Rambler.iOS #9: Анализируй это!
Rambler.iOS #9: Анализируй это!
 
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
 
Rambler.iOS #9: Life with out of memory
Rambler.iOS #9: Life with out of memoryRambler.iOS #9: Life with out of memory
Rambler.iOS #9: Life with out of memory
 
RDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на SwiftRDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на Swift
 
RDSDataSource: OCLint
RDSDataSource: OCLintRDSDataSource: OCLint
RDSDataSource: OCLint
 
RDSDataSource: Построение UML диаграмм
RDSDataSource: Построение UML диаграммRDSDataSource: Построение UML диаграмм
RDSDataSource: Построение UML диаграмм
 
RDSDataSource: App Thinning
RDSDataSource: App ThinningRDSDataSource: App Thinning
RDSDataSource: App Thinning
 
RDSDataSource: Мастер-класс по Dip
RDSDataSource: Мастер-класс по DipRDSDataSource: Мастер-класс по Dip
RDSDataSource: Мастер-класс по Dip
 
RDSDataSource: YapDatabase
RDSDataSource: YapDatabaseRDSDataSource: YapDatabase
RDSDataSource: YapDatabase
 
Rambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Чистые unit-тестыRambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Чистые unit-тесты
 
Rambler.iOS #8: Сервис-ориентированная архитектура
Rambler.iOS #8: Сервис-ориентированная архитектураRambler.iOS #8: Сервис-ориентированная архитектура
Rambler.iOS #8: Сервис-ориентированная архитектура
 
Rambler.iOS #8: Make your app extensible with JavaScriptCore
Rambler.iOS #8: Make your app extensible with JavaScriptCoreRambler.iOS #8: Make your app extensible with JavaScriptCore
Rambler.iOS #8: Make your app extensible with JavaScriptCore
 
Rambler.iOS #8: Как не стать жертвой бэкендеров
Rambler.iOS #8: Как не стать жертвой бэкендеровRambler.iOS #8: Как не стать жертвой бэкендеров
Rambler.iOS #8: Как не стать жертвой бэкендеров
 
RDSDataSource: iOS Reverse Engineering for inexperienced
RDSDataSource: iOS Reverse Engineering for inexperiencedRDSDataSource: iOS Reverse Engineering for inexperienced
RDSDataSource: iOS Reverse Engineering for inexperienced
 
RDSDataSource: Автогенерация документации для SDK
RDSDataSource: Автогенерация документации для SDKRDSDataSource: Автогенерация документации для SDK
RDSDataSource: Автогенерация документации для SDK
 
RDSDataSource: Плюрализация в iOS
RDSDataSource: Плюрализация в iOSRDSDataSource: Плюрализация в iOS
RDSDataSource: Плюрализация в iOS
 
RDSDataSource: Promises
RDSDataSource: PromisesRDSDataSource: Promises
RDSDataSource: Promises
 
Rambler.iOS #7: Построение сложного табличного интерфейса
Rambler.iOS #7: Построение сложного табличного интерфейсаRambler.iOS #7: Построение сложного табличного интерфейса
Rambler.iOS #7: Построение сложного табличного интерфейса
 
Rambler.iOS #7: Прием платежей по банковским картам в iOS приложении
Rambler.iOS #7: Прием платежей по банковским картам в iOS приложенииRambler.iOS #7: Прием платежей по банковским картам в iOS приложении
Rambler.iOS #7: Прием платежей по банковским картам в iOS приложении
 

Kürzlich hochgeladen

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 

Kürzlich hochgeladen (9)

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 

RDSDataSource: Flux, Redux, ReSwift