Авторский канал про разработку. Путь продуктовых самураев в MAANG.
Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
лектор ВШЭ и тп
про ai тут: @aimakesmehate
Самое большое сообщество практиков: https://boosty.to/lionbond
Сайт iosmakesmehate.tech
Post #3892
1.94K
MVVM в SwiftUI
Читаю книгу и в ней автор первые главы разбирает MVVM в SwiftUI. Вкратце буду писать, на мой взгляд, интересные мысли. В книге много сравнений с react и net, но я думаю это вам пока неинтересно.
1️⃣ MVVM плохо масштабируется в SwiftUI
Делать одну ViewModel на несколько экранов технически можно, но на практике это вредно. Объем кодовой базы и связей может быть слишком большой. В какой-то момент все равно придется разделять огромную модель на подмодели
2️⃣ Разработчики любят усложнять
Разрабы чаще принимают сложность, чем пытаются ее устранить. Чаще из-за иллюзии контроля и ощущения "серьезной инженерии". Страшно сломать уже рабочее, чем пересобрать и потерять понимание уже построенной системы.
3️⃣ Лишние абстракции убивают производительность
Разрабы из SoundCloud сделали приложение на VIPER и своих абстракциях, но оно было настолько медленным, что его пришлось удалить из стора. Они переписали на SwiftUI и избавились от своих прослоек. Сильно импрувнули скорость.
Забавно, что разрабы SoundCloud уже удалили свой доклад... Но все равно поискал корни.
Также понравилась мысль "если ты борешься с фреймворком — ты уже проиграл архитектурно". Очень много историй, когда множество разработчиков придумывают архитектуры, которые мешают разработке больше, чем помогают.
Mjtsai Michael Tsai - Blog - Rewriting SoundCloud in SwiftUI Читаю книгу и в ней автор первые главы разбирает MVVM в SwiftUI. Вкратце буду писать, на мой взгляд, интересные мысли. В книге много сравнений с react и net, но я думаю это вам пока неинтересно.
Архитектурные споры — это чаще личные срачи, где люди защищают не техники, а годы своего опыта. Новые подходы воспринимаются как атака на их компетентность
1️⃣ MVVM плохо масштабируется в SwiftUI
Делать одну ViewModel на несколько экранов технически можно, но на практике это вредно. Объем кодовой базы и связей может быть слишком большой. В какой-то момент все равно придется разделять огромную модель на подмодели
2️⃣ Разработчики любят усложнять
Разрабы чаще принимают сложность, чем пытаются ее устранить. Чаще из-за иллюзии контроля и ощущения "серьезной инженерии". Страшно сломать уже рабочее, чем пересобрать и потерять понимание уже построенной системы.
3️⃣ Лишние абстракции убивают производительность
Разрабы из SoundCloud сделали приложение на VIPER и своих абстракциях, но оно было настолько медленным, что его пришлось удалить из стора. Они переписали на SwiftUI и избавились от своих прослоек. Сильно импрувнули скорость.
Забавно, что разрабы SoundCloud уже удалили свой доклад... Но все равно поискал корни.
Также понравилась мысль "если ты борешься с фреймворком — ты уже проиграл архитектурно". Очень много историй, когда множество разработчиков придумывают архитектуры, которые мешают разработке больше, чем помогают.













