Кирилл разбирает код Open Source редактора изображений
🔗 Emcee abdev.by/UVz?/erid=LdtCK1WGs
🔗 TG Emcee abdev.by/uBc?/erid=LdtCK1WGs
🔗 Каналы "Android Broadcast" taplink.cc/android_broadcast
✉️ Написать Кириллу kirill@androidbroadcast.dev
🔗 GitHub Image Toolbox github.com/T8RIN/ImageToolbox
#codereview #androiddev #android #программирование #kotlin #КириллРозов #андроид #androidbroadcast
0:00 Ожидание
0:22 Начало
1:08 О приложении
3:08 Многомодульность, build скрипты, про статические анализаторы
4:10 Рутовый build.gradle
5:50 AndroidManifest
9:29 MainActivity
9:57 50+ параметров в конструкоре
10:43 Оптимизации Dagger
13:59 Compose State в ViewModel
14:46 Про init код, привязанный к открытию/созданию экрана/ приложения
17:20 Про прогрев гоев state с помощью Flow
21:15 Избыточность UseCases в Clean Architecture
23:14 Работа с IO
27:42 Как реализовать коллбеки onSuccess на Flow
31:19 Внешняя лямбда получения, константы, magic number, names params
32:45 Про вынос логики из ViewModel(VM) в UseCase
33:15 Jetpack Compose: про @Preview для code review
33:45 Про объявление переменных как можно ближе к логике
35:23 Замена больших when
40:55 О супер планировании на будущее
42:30 О нарушении Single Responsibility
43:15 Излишние withContext
44:22 О нарушении Open-closed Principle
49:10 Преобразования с null
50:20 Про точность деления чисел с плавающей точкой
51:08 Вынос в константы
51:42 Оптимизация IO буферов
53:40 Полезность Android StrictMode
54:47 Сложный код, о функции fold()
57:55 Не используйте Kotlin Pair
59:02 Inject Dispatchers
59:50 GlobalExceptionHandler
1:00:40 Про важность комментирования, особенно затычек
1:02:06 Compose, вынос код из переиспользуемых функций
1:05:20 Совет нумеровать последние аргументы-лямбды
1:06:42 Совет использовать Builder где возможно(Intent)
1:08:18 Не забывать о scope funs(apply, ...)
1:09:00 Что за ! может быть после типа (String! например) и чем опасен
1:09:30 Baseline Profile, прогрев гоев приложения и ускорение запуска
1:11:10 Про F-Droid
1:13:30 Улучшение разделения на модули
1:14:45 Про именование it
1:14:52 Снова про S и О в SOLID (или нет xD)
1:16:13 Улучшение разделения на модули 2
1:18:28 Kotlin String format
1:19:10 Рефактор кода поиска по индексу
1:21:00 Причесывание кода, взятого с Java
1:22:00 Копирование кода библиотек, их лицензии
1:23:20 Про комментирование 3 и документацию (пр. автора тайминга - ДОКИ СУПЕР ВАЖНЫ)
1:24:30 Копирование кода библиотек и их лицензии 2, воспоминания о старине
1:26:40 Смотрим рисовалку модуль: @Preview
1:28:45 @Preview issue
1:29:50 О создании private версию @Composable без привязки к VM для @Preview на простых параметрах
1:30:20 Небольшой рефактор, про сложность чтения кода
1:33:28 Про разбиение функции на более мелкие для читаемости
1:34:45 Modifier - последний неопциональный параметр
1:37:17 О @Singleton в Dagger, @Reusable
1:38:12 Конец кода, вопросы из чата
1:39:20 Вопрос автору приложения зачем делал и сколько времени ушло
1:40:04 О @Singleton в Dagger 2
1:41:01 Прощание
Негізгі бет Разбор кода Android приложения фоторедактора Image Toolbox
Пікірлер: 12