Похожие презентации:
Навигация в Android с Kotlin. GDG Mobile Meetup Izhevsk, 20/02
1.
GDG Mobile MeetupIzhevsk, 20/02
2.
Навигация в Androidс Kotlin
/
Упоров Дмитрий
Руководитель отдела мобильной разработки, ЦВТ
3.
Master-details4.
Java - Junior wayМинусы:
-
Дублирование, многословность
-
Неочевиден контракт передачи данных
5.
Java - The way: Factory-method6.
Java - The wayПлюсы:
● Лаконичность вызова
Минусы:
-
Неочевидность
Boilerplate code
Нагрузка статикой, нарушение SR
start(this)???
7.
Java -> Kotlin8.
Java -> Kotlin9.
Kotlin - a way-
̶ ̶е̶о̶ч̶е̶в̶и̶д̶н̶о̶с̶т̶ь̶
Н
Boilerplate code
Нагрузка статикой, нарушение SR
10.
Kotlin - better way-
Boilerplate code
̶Н̶а̶г̶р̶у̶з̶к̶а̶ ̶с̶т̶а̶т̶и̶к̶о̶й̶,̶ ̶н̶а̶р̶у̶ш̶е̶н̶и̶е̶ ̶S̶R̶
11.
Kotlin - better way12.
Kotlin - better way13.
Kotlin - The best wayDecompiled byte-code:
14.
Intentdelivery
15.
16.
Model wrapping - pervy’ blin komomОбертка над каждой моделью:
Плюсы:
-
Инкапсуляция
Читабельность
Минусы:
-
Boilerplate
Несколько объектов одного типа
17.
Model wrapping - pervy’ blin komomПлюсы:
-
Единая точка обработки
Расширяемость (ха-ха)
Минусы:
-
Необходимость расширения
RuntimeException
Неоформляемо
18.
19.
20.
КОДОГЕНЕРАЦИЯ!!1! >:D
21.
22.
Model wrapping - Wrong way23.
Annotation processor24.
Model wrapping - Wrong way25.
Java Mirror API26.
APT == MirrorAPI != Reflection-
Нет информации о реализованных интерфейсах
-
Нет ограничения реализации “Или то, или другое”
Нет гарантии, что пользователь подставит в аннотацию свой класс
Невозможно явно сказать пользователю, что мы хотим от него
реализации интерфейса
27.
28.
“Используй дженерики..”29.
Kotlin - Wrapped model getting-
RuntimeException
30.
There is way to avoid RuntimeException?No way, but...
31.
InputAny?
Parcelable
Serializable
32.
Model wrapping - Kotlin better way33.
How to filter Serializable orParcelable?
-
Перегрузка метода == ограничение всех параметров одним
интерфейсом
Ограничения реализации “Или то, или другое” (невозможно)
2 массива: Serializable и Parcelable. Ограниченный порядок аргументов
34.
Model wrapping - Kotlin the best way35.
Model wrapping - Kotlin the best way36.
Improvements time37.
Improvements time38.
Improvements time39.
Improvements time40.
Kotlin magic time41.
Improvements time42.
Success!43.
Improvements time 244.
Improvements time 245.
Success 2!46.
Improvements time 3 - ArgumentWithKey47.
Improvements time 4: Intent.() -> Unit48.
Improvements time 5: Other componentsFragment way:
Service way:
to be continued..
49.
50.
51.
Спасибо за внимание!/
Упоров Дмитрий
Руководитель отдела мобильной разработки, ЦВТ