Атипичный Генератор Документации
TRANSCRIPT
АТИПИЧНЫЙ ГЕНЕРАТОР ДОКУМЕНТАЦИИ
ПАВЕЛ ШАРАНДА
ОК.. А ЧТО СЧИТАТЬ "ТИПИЧНЫМ" ГЕНЕРАТОРОМ ДОКУМЕНТАЦИИ
APPLEDOC
OBJECTIVE C
JAZZY
SWIFT
А ЧТО ЕСЛИ МЫ ХОТИМ БОЛЬШЕГО?
Иннокентий, iOS Developer
RE: RE: RE: PROJECT DOCUMENTATION. URGENT!!!
ЧТОБЫ ТАКОЙ КОД
ТАКАЯ МОДЕЛЬ
В ТАКОМ UI
ПРЕВРАЩАЛИСЬ В ТАКОЙ ДОКУМЕНТ
ГЕНЕРАЦИЯ ДОКУМЕНТАЦИИ САМОЙ ПРОГРАММОЙ
"АТИПИЧНЫЙ" ПОДХОД
WE NEED INSTRUMENTS*
INSTRUMENTS
*for Swift
SOURCEKITTENSWIFT CODE PARSER
SOURCEKITTEN
ЧТО МОЖНО ПОЛУЧИТЬ C ПОМОЩЬЮ SOURCEKITTEN
▸ список членов класса (свойства, методы) и их тип
▸ строка документации для класса, свойства или метода!
▸ родительские объекты, в том числе протоколы
▸ и много чего другого
$ sourcekitten doc --single-file CellModel.swift -- -j4 CellModel.swift
ТИПИЧНЫЙ OUTPUT SOURCEKITTEN
УБИРАЕМ НЕНУЖНОЕ
MIRRORSWIFT REFLECTION
MIRROR
ЧТО МОЖНО ПОЛУЧИТЬ С ПОМОЩЬЮ MIRROR
▸ имя список членов класса (свойства, методы) и их тип
▸ значение каждого из членов (для default)! + тип
▸ родительский класс
MIRROR IN ACTION
FACTORYJSON OBJECT -> SWIFT CLASS
БОНУС
ПАТТЕРН ФАБРИКА НА SWIFT
НАСТРАИВАЕМ ФАБРИКУ КРАСИВО. СООТВЕТСТВИЕ JSON ТИПА И SWIFT КЛАССА ТЕПЕРЬ УСТАНОВЛЕНО
SNIPPETS GENERATOR
JSON SAMPLES + SNAPSHOTS
SNIPPETS GENERATOR
АЛГОРИТМ ГЕНЕРАЦИИ СНИППЕТОВ
▸ загружаем тестовый json
▸ по одному показываем view
▸ рендерим view в картинку drawViewHierarchyInRect
▸ ассоцируем картинку и json код
▸ передаем всю структуру дальше
ВСЁ ГОТОВО. ГЕНЕРИРУЕМ
ДОКУМЕНТАЦИЮ!
GRMUSTACHE.SWIFTHTML RENDERING
ШАБЛОН ДЛЯ GRMUSTACHE
ШАБЛОН ДЛЯ GRMUSTACHE 2
DEMO TIME
$ git clone https://github.com/psharanda/adocgen
$ brew install sourcekitten
$ carthage update
open & build & run project в симуляторе
копируем путь из консоли
Finder -> Go -> Go to folder и вставить скопированный путь
открываем index.html
ВОПРОСЫ? ВОПРОСЫ? ВОПРОСЫ?