КАК СПРАВЛЯТЬСЯ СО СЛОЖНЫМИ СПИСКАМИ В iOS И ANDROID
И НЕ СОЙТИ С УМА
Сейдалин Султан
Android / iOS разработчик, Aviata / Chocotravel
НЕМНОГО ОБО МНЕ
Сейдалин Султан
Android + iOS разработчик
`
`
`
UITableView
+
UITableViewDataSource
+
UITableViewDelegate
RecyclerView
+
RecyclerView.Adapter
Chocotravel
Aviata Railways
Aviata (Bookings)
`
Теперь давайте рассмотрим что такое “сложные” списки в нашем понимании
“Сложные” списки
“Сложные” списки
“Сложные” списки
“Сложные” списки
Booking Information Cell
Passengers Information Cell
Total Sum Information Cell
Refund Cell
Разбивка по типам Cell
Flight Info Cell
Passengers Info Cell
Total Sum Cell
Refund Cell
Flight Info Cell
Fare Families Cell
Passenger Info Cell
Proceed Button Cell
Разбивка по типам Cell
Fare Families Cell
Flight Info Cell
Passenger Info Cell
Proceed Button Cell
Старое решение iOS
Старое решение Android
Старое решение Android
Минусы
Минусы
Минусы
Минусы
Минусы
Как нам справляться с такими “сложными” списками?
Проблема
Задачи
Задачи
Задачи
Мысли
Мысли
Мысли
Мысли
Решение
Cell View Models
Delegate Adapters
Cell View Models
Delegate Adapters
FlightInfoCellViewModel
PassengersCellViewModel
TotalSumCellViewModel
UITableViewCell
UITableViewCell
UITableViewCell
FlightInfoAdapterModel
PassengersAdapterModel
TotalSumAdapterModel
FlightInfoAdapter
PassengersInfoAdapter
TotalSumAdapter
FlightInfoAdapter
PassengersInfoAdapter
TotalSumAdapter
RefundAdapter
CompositeAdapter
Плюсы
Минусы
Cell View Models
Delegate Adapters
Полезные ссылки
https://habr.com/ru/post/341738/
http://hannesdorfmann.com/android/adapter-delegates
https://flawlessapp.io/blog/advanced-mvvm-tableview-tutorial/
Вопросы?
БЛАГОДАРЮ ЗА ВНИМАНИЕ!