Предисловие

Отдел iOS разработки в Rambler&Co начинался с четырех человек. За первый год отдел вырос в четыре раза. Еще через год нас было уже двадцать пять. Параллельно нами разрабатываются более десяти проектов, причем достаточно разноплановых - почтовое приложение, клиент для блогоплатформы, медийные проекты. Одной из самых важных задач, которые мы должны были решить, была стандартизация подходов к разработке приложений. Решением этого вопроса стал такой архитектурный подход, как VIPER.

VIPER помог нам как в решении административных задач - единообразный подход к архитектуре позволял практически безболезненно переключать людей между разными проектами и легко интегрировать новых сотрудников, так и в вопросе повышения качества наших поектов - высокая модульность позволяла разрабатывать абсолютно независимые друг от друга модули, изменения которых не затрагивали остальную часть кода, а четкая декомпозиция UIViewController на слои помогала в вопросе увеличения покрытия кода тестами.

Конечно, внедрение VIPER в наши проекты происходило постепенно. Основная проблема, с которой мы столкнулись, заключалась в отсутствии единой базы знаний и практических примеров. Интернет был полон простых примеров использования этого подхода - экраны авторизации, списки задач. Эти приложения кратко показывали основные принципы взаимосвязи компонентов модуля, но не отвечали на более сложные вопросы: "как переходить от одного модуля к другому", "как реализовывать композицию модулей", "где писать общую бизнес-логику". Любая пустующая ниша когда-нибудь будет заполнена, и конкретно эту задачу мы решили взять на себя. Каждый раз, сталкиваясь с каким-нибудь вопросом по VIPER, мы собирались тесной группой заинтересованных, яростно спорили, исписывали маркерные доски и в итоге приходили к общему решению. Результаты наших споров фиксировались - и в итоге они переросли в серию докладов про использование VIPER и эту книгу.

Книгу условно можно разделить на три части: теоретическая, практическая и приложения. В теоретической части освещена общая структура модуля, как каноническая, так и с нашими дополнениями, история возникновения VIPER, вопросы кодогенерации и автоматизации создания модулей. Практическая часть раскрывает те самые секреты, о которых умалчивают остальные источники информации - переходы между экранами, различные варианты композиции модулей, покрытие кода тестами, интеграцию VIPER с такими системными компонентами, как UIWebView и NSFetchedResultsController. А в приложения вошел наш взгляд на Code Style в рамках VIPER-модуля и подборки материалов для дальнейшего ознакомления с вопросом.

Как можно было заметить, во всем предисловии используется местоимение "мы" - и это не случайно. Создание этой книги - плод работы труда не одного человека, а всей нашей команды и большого количество внешних контрибьюторов. Практически все главы написаны разными людьми, которые, тем не менее, имеют общие взгляды на построение архитектуры мобильных приложений. Все идеи и подходы, предложенные нами, прошли проверку на десятках разноплановых приложений и используются командами как в России, так и по всему миру. Именно тот факт, что весь материал прошел проверку боем, является, на мой взгляд, одним из ключевых достоинств этой книги.

results matching ""

    No results matching ""