Posts

Showing posts from September, 2017

VIPER and code generation problem

Image
Fade in... A lot of people think that VIPER has a lot of extra parts and that it's rather complex pattern. Others worship VIPER. Both points of view have right to live. My strong belief is that every mature developer comes up with their own VIPER. VIPER itself answers such questions as "Who is responsible for that part of my app? How do I call a class that is a lot like presenter but handles business logic?.. etc" Subject One of the obvious drawbacks of VIPER is a number of protocols and classes that only describe one module. Rambler team and some others handle this problem in their own way. I give you my own solution to a code generation problem. I was inspired by Raymond Law and his Clean Swift works. Now to create a new module does not seem like a big task. Xcode will prompt you to create a module! Xcode templates are under the hood of the solution. Create your VIPER module easily: The repository contains updated sample-project Download, in

VIPER и проблема кодогенерации

Image
Лирическое отступление Многие считают VIPER чем-то монструозным и избыточным. Многие возводят VIPER в культ и поклоняются ему. Обе стороны можно понять. Со временем к своему вайперу приходит любой зрелый разработчик, который беспокоится о своих проектах и их будущем. VIPER же, в каноничном его представлении, решает многие вопросы типа "а кто должен быть ответственным за этот код? Как мне назвать вот этот класс, который вроде уже вырос из презентера и работает с бизнес-логикой?.." Собственно, по делу К недостаткам VIPER'а действительно можно отнести большое количество протоколов и классов, которыми описывается всего один модуль. Этот вопрос поднимался и в книге от команды Rambler, этот вопрос решали и другие команды. Вашему вниманию предлагается мое решение в сфере кодогенерации для VIPER. Теперь генерировать модули не просто, а очень просто. Ведь Xcode будет иметь такую опцию при создании нового файла! На помощь приходят Xcode templates. Данной идеей я вдохновился