TGViewer
Андроидѣ | Михаил Белый Андроидѣ | Михаил Белый @foundout · 328 subscribers
Post #308 400
опыт, роль, зона ответственности

1. Расскажи про свой опыт мобильной разработки и конкретно про работу с KMP.
2. В чём состоит работа команды мобильной инфраструктуры, какие задачи она решает и где проходит граница её ответственности?
3. В каких проектах и в каком объёме использовался Compose Multiplatform и общий код?
4. Приходилось ли интегрировать общий KMP-код в iOS через Swift и какие трудности возникали?
5. Как распространялась KMP-библиотека между проектами, какие подходы пробовали и что выбрали?

архитектура и модули

6. Какие модули выделить при миграции на KMP и как разделить бизнес-логику, платформенный слой и UI?
7. Какие недостатки есть в текущей архитектуре (Activity, ViewModel, Repository) и как переработать структуру слоёв?
8. Как относишься к использованию Android-специфичных сущностей (Context, Color, Date, LiveData) в коде общего модуля?
9. Какие части проекта не вынести в KMP без адаптации и как ее организовать?
10. Как изменить работу с базой данных, чтобы она стала мультиплатформенной и работала на iOS и Android?

базы данных и хранилища

11. Какой движок хранения данных выбрать для KMP-проекта и почему?
12. Как организовать фабрику БД в KMP при разных драйверах и настройках платформ?
13. Как решать вопрос схемы, миграций и доступа к базе в KMP, чтобы код был единым на обеих платформах?
14. Как заменить SharedPreferences на KMP-совместимое хранилище?

DI и зависимости

15. Какой DI-фреймворк оптимален для KMP и почему?
16. Чем DI с кодогенерацией отличается от DI без неё и почему это важно в KMP?
17. Как внедрять зависимости в общий код и платформенные реализации без дублирования?

сетевой слой

18. Чем заменить Retrofit в KMP и почему предпочтителен Ktor?
19. Как организовать API, сериализацию и обработку ошибок, чтобы всё работало на обеих платформах?

UI и презентационный слой

20. Если UI на iOS остаётся нативным, а на Android – Compose или XML, как настроить общие ViewModel, чтобы их жизненный цикл согласовывался на обеих платформах?
21. Как связать жизненный цикл SwiftUI/UIViewController с жизненным циклом ViewModel?
22. Как организовать форматирование данных (дат, сумм, цветов, ресурсов), чтобы UI-логика не попадала в общий модуль?
23. Почему хранение UI-логики (строк и цветов) в модели данных – плохая практика и как это исправить?

expect/actual и платформенные зависимости

24. Какие зависимости стоит выносить в общий код через expect/actual, а какие – через DI?
25. Какие ограничения у expect/actual и когда этот механизм лучше не использовать?
26. Как передавать Android Context или iOS-специфичные объекты в общий модуль?
27. Какие best practices есть для организации платформенных реализаций?

Interop (Kotlin → iOS)

28. Какие основные проблемы есть в текущем Objective-C Interop?
29. Как преобразовать Kotlin enum в удобный Swift enum?
30. Как исправить ситуацию, когда generic из Kotlin становится nullable в Swift?
31. Когда нужна обёртка для Flow, чтобы корректно использовать его из Swift?
32. Какие готовые решения есть для безопасной работы с Flow и suspend-функциями в Swift?
33. Какие ограничения есть у suspend в Swift и как правильно передавать completion-callbacks?
34. Что такое Swift Export и какие задачи он решает по сравнению с interop?
35. Как подключать стороннюю iOS-библиотеку через cinterop и что он генерирует?
36. Какой формат у сгенерированных хедеров и как Kotlin-код получает доступ к Objective-C API?
37. В чём разница между статическим и динамическим iOS-фреймворком и какой вариант выбрать?
38. Зачем нужен XCFramework и какие проблемы он решает?

компиляция и память (Kotlin/Native)

39. Чем компиляция JVM отличается от Kotlin/Native на уровнях фронтенда и бэкенда?
40. Что такое FIR/IR и какую роль они играют при компиляции в Native?
41. Чем память Kotlin/Native отличается от JVM GC и iOS ARC?
42. Как решается проблема циклических ссылок между объектами Kotlin и Swift/Objective-C?
43. Какие риски возникают при смешении моделей GC и ARC в одном приложении?
44. Какие стратегии работы с памятью рекомендуются при interop и где нужно быть осторожным?

🐗 А здесь правильные ответы.
More from @foundout
  1. Sep 28, 2026Post #463
  2. Sep 9, 2026Истории про айфон Первый айфончик у меня появился в 24 года. К этим годам одни успевают пе…
  3. Sep 2, 2026Как правильно жить в Республике Бангладеш Жить в прекрасной стране Бангладеш – что может б…
  4. Sep 1, 2026Новые открытия Помню, как зимой, лежа на диване, ругался на концепт зимней арки. Как на оч…
  5. Aug 13, 2026Турецкий скам Я третий раз в Турции. За 4 года моего отсутствия покупательная способность…
  6. Aug 9, 2026Что делать в Черногории Шароебиться по горам. Всё, чем известна Черногория – сюда 20 лет н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →