Книга VIPER


TL;DR
Останній рік відділ iOS розробки Rambler&Co збирав всі інструкції, кращі практики та поради щодо використання архітектурного підходу VIPER. Ціле, як водиться, вийшло більшим, ніж сума його складових — і на виході вийшла чудова книга. І тепер ми готові представити її перше видання!

Посилання на завантаження

Відділ iOS розробки Rambler&Co починався, по суті, з чотирьох осіб. За перший рік відділ зріс у чотири рази. Ще через рік нас було вже двадцять п'ять. Паралельно ми розробляємо більше десяти проектів, причому досить різнопланових — поштове додаток, клієнт для блогоплатформи, медійні проекти. Однією з найбільш важливих завдань, які ми повинні були вирішити під час фази швидкого зростання, була стандартизація підходів до розробки додатків.
Вирішенням цього питання став такий архітектурний підхід, як VIPER. VIPER допоміг нам у вирішенні адміністративних задач — однаковий підхід до архітектури дозволяв практично безболісно перемикати людей між різними проектами і легко інтегрувати нових співробітників, так і в питанні підвищення якості наших проектів — висока модульність дозволяла розробляти абсолютно незалежні один від одного модулі, зміни яких не зачіпали іншу частину коду, а чітка декомпозиція
UIViewController
на шари допомагала в питанні збільшення покриття коду тестами.
Звичайно, впровадження VIPER в наші проекти відбувалося поступово. Основна проблема, з якою ми зіткнулися, полягала у відсутності єдиної бази знань та практичних прикладів. Інтернет був сповнений простих прикладів використання цього підходу — екрани авторизації, списки завдань. Ці програми коротко показували основні принципи взаємозв'язку компонентів модуля, але не відповідали на більш складні питання: "як переходити від одного модуля до іншого", "як реалізовувати композицію модулів", "де писати загальну бізнес-логіку".
Будь-яка порожня ніша коли-небудь буде заповнена, і конкретно цю задачу ми вирішили взяти на себе. Кожного разу, стикаючись з яким-небудь питанням по VIPER, ми збиралися тісною групою зацікавлених, люто сперечалися, списували маркерні дошки і в підсумку приходили до спільного рішення. Результати наших суперечок фіксувалися — і в підсумку вони переросли в серію доповідей про використання VIPER і нашу книгу.

Книгу VIPER умовно можна розділити на три частини: теоретична, практична та додатки.
  • теоретичної частини висвітлена загальна структура модуля, як канонічна, так і з нашими доповненнями, історія виникнення VIPER, питання кодогенерации і автоматизації створення модулів.
  • Практична частина розкриває ті самі секрети, про які замовчують інші джерела інформації — переходи між екранами, різні варіанти композиції модулів, покриття коду тестами, інтеграцію VIPER з такими системними компонентами, як UIWebView і NSFetchedResultsController.
  • програми увійшов наш погляд на Code Style в рамках VIPER модуля і добірки матеріалів для подальшого ознайомлення з питанням.
Як можна було помітити, у всій статті використовується займенник "ми" — і це не випадково. Створення цієї книги — плід роботи праці не однієї людини, а всієї нашої команди і велику кількість зовнішніх контриб'юторів. Практично всі глави написані різними людьми, які, тим не менше, мають спільні погляди на побудову архітектури мобільних додатків. Всі ідеї і підходи, запропоновані нами, пройшли перевірку на десятки різнопланових програм та використовуються командами як в Росії, так і по всьому світу.
Перше видання Книги VIPER створювалося за допомогою сервісу GitBook і доступний відразу в декількох форматах:
Крім того, ми активно займаємося перекладом книги на інші мови (просить багато людей) і будемо вдячні за допомогу в цьому процесі.
Якщо у вас з'являться які-небудь питання, пропозиції чи помітите помилки — пишіть нам Issues.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.