Абстракция, Инкапсуляция, Наследованное, Полиморфизм.
Каждый про них хоть раз говорил на собеседовании или обсуждал в компании друзей, но далеко не всегда можно встретить соблюдение данных принципов в реальной жизни.
В процессе разработки 11 экранов я обнаружил слишком много повторяющегося кода, не говоря о том, что со временем вьюмодели стали расширяться, где-то были реализованы блоки кода с Combine паблишерами, а в каждой вьюмодели реализовывался один и тот же метод observe для StateFlow из KMP. В этот момент и вступает в игру первый принцип ООП - Абстракция, где повторяющийся код объединяется в один общий модуль, откуда наследники могут брать реализацию.
В данной статье мы рассмотрим способы создания абстракции в iOS проекте на языке Swift, а также сравним методы с реализацией на языке Kotlin и узнаем, с какими подводными камнями можно столкнуться.