Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Генерамба и прочие аспекты кодогенерации в VIPER

Egor Tolstoy
December 22, 2015

Генерамба и прочие аспекты кодогенерации в VIPER

Выступление на Rambler.iOS #5:
Видео: http://www.youtube.com/watch?v=NXNiN9FaUnY
Генерамба: https://github.com/rambler-ios/Generamba

Egor Tolstoy

December 22, 2015
Tweet

More Decks by Egor Tolstoy

Other Decks in Technology

Transcript

  1. Классы: Assembly.h Assembly.m ViewController.h ViewController.m Presenter.h Presenter.m Interactor.h Interactor.m Router.h

    Router.m Протоколы: ViewInput.h ViewOutput.h InteractorInput.h InteractorOutput.h RouterInput.h ModuleInput.h Тесты: AssemblyTests.m ViewControllerTests.m PresenterTests.m InteractorTests.m RouterTests.m
  2. #import "{{ prefix }}{{ module_info.name }}Presenter.h" @implementation {{ prefix }}{{

    module_info.name }}Presenter #pragma mark - Методы {{ prefix }}{{ module_info.name }}ViewOutput - (void)didTriggerViewReadyEvent { [self.view setupInitialState]; } @end
  3. • Project/Rambafile • Project/Templates/ • ~/.generamba/ user- preferences.yml • Локальные

    шаблоны • Удаленные шаблоны • Шаблоны каталога Проект Пользователь Внешние ресурсы
  4. {% if user.name == 'tobi' %} Hello tobi {% elsif

    user.name == 'bob' %} Hello bob {% endif %} if/else liquid
  5. {% for item in array %} {{ item }} {%

    endfor %} for loop liquid
  6. • {{ "a~b" | split:"~" }} #=> ['a','b'] • {{

    'barbar' | remove_first:'bar' }} #=> 'bar' • {{ 3 | pluralize: 'item', 'items' }} #=> 'items' работа со строками liquid
  7. •Ruby - отличный выбор для подобных утилит, •Автоматизация любых процессов

    - ценное вложение труда и времени, •rails-way для iOS приложений. Выводы