Атипичный Генератор Документации

42
АТИПИЧНЫЙ ГЕНЕРАТОР ДОКУМЕНТАЦИИ ПАВЕЛ ШАРАНДА

Upload: pavel-sharanda

Post on 13-Apr-2017

142 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Атипичный Генератор Документации

АТИПИЧНЫЙ ГЕНЕРАТОР ДОКУМЕНТАЦИИ

ПАВЕЛ ШАРАНДА

Page 2: Атипичный Генератор Документации

ОК.. А ЧТО СЧИТАТЬ "ТИПИЧНЫМ" ГЕНЕРАТОРОМ ДОКУМЕНТАЦИИ

Page 3: Атипичный Генератор Документации

APPLEDOC

OBJECTIVE C

Page 4: Атипичный Генератор Документации
Page 5: Атипичный Генератор Документации

JAZZY

SWIFT

Page 6: Атипичный Генератор Документации
Page 7: Атипичный Генератор Документации

А ЧТО ЕСЛИ МЫ ХОТИМ БОЛЬШЕГО?

Иннокентий, iOS Developer

RE: RE: RE: PROJECT DOCUMENTATION. URGENT!!!

Page 8: Атипичный Генератор Документации

ЧТОБЫ ТАКОЙ КОД

Page 9: Атипичный Генератор Документации

ТАКАЯ МОДЕЛЬ

Page 10: Атипичный Генератор Документации

В ТАКОМ UI

Page 11: Атипичный Генератор Документации

ПРЕВРАЩАЛИСЬ В ТАКОЙ ДОКУМЕНТ

Page 12: Атипичный Генератор Документации

ГЕНЕРАЦИЯ ДОКУМЕНТАЦИИ САМОЙ ПРОГРАММОЙ

"АТИПИЧНЫЙ" ПОДХОД

Page 13: Атипичный Генератор Документации

WE NEED INSTRUMENTS*

INSTRUMENTS

*for Swift

Page 14: Атипичный Генератор Документации

SOURCEKITTENSWIFT CODE PARSER

Page 15: Атипичный Генератор Документации

SOURCEKITTEN

ЧТО МОЖНО ПОЛУЧИТЬ C ПОМОЩЬЮ SOURCEKITTEN

▸ список членов класса (свойства, методы) и их тип

▸ строка документации для класса, свойства или метода!

▸ родительские объекты, в том числе протоколы

▸ и много чего другого

Page 16: Атипичный Генератор Документации

$ sourcekitten doc --single-file CellModel.swift -- -j4 CellModel.swift

Page 17: Атипичный Генератор Документации

ТИПИЧНЫЙ OUTPUT SOURCEKITTEN

Page 18: Атипичный Генератор Документации

УБИРАЕМ НЕНУЖНОЕ

Page 19: Атипичный Генератор Документации

MIRRORSWIFT REFLECTION

Page 20: Атипичный Генератор Документации

MIRROR

ЧТО МОЖНО ПОЛУЧИТЬ С ПОМОЩЬЮ MIRROR

▸ имя список членов класса (свойства, методы) и их тип

▸ значение каждого из членов (для default)! + тип

▸ родительский класс

Page 21: Атипичный Генератор Документации

MIRROR IN ACTION

Page 22: Атипичный Генератор Документации

FACTORYJSON OBJECT -> SWIFT CLASS

БОНУС

Page 23: Атипичный Генератор Документации

ПАТТЕРН ФАБРИКА НА SWIFT

Page 24: Атипичный Генератор Документации

НАСТРАИВАЕМ ФАБРИКУ КРАСИВО. СООТВЕТСТВИЕ JSON ТИПА И SWIFT КЛАССА ТЕПЕРЬ УСТАНОВЛЕНО

Page 25: Атипичный Генератор Документации

SNIPPETS GENERATOR

JSON SAMPLES + SNAPSHOTS

Page 26: Атипичный Генератор Документации

SNIPPETS GENERATOR

АЛГОРИТМ ГЕНЕРАЦИИ СНИППЕТОВ

▸ загружаем тестовый json

▸ по одному показываем view

▸ рендерим view в картинку drawViewHierarchyInRect

▸ ассоцируем картинку и json код

▸ передаем всю структуру дальше

Page 27: Атипичный Генератор Документации

ВСЁ ГОТОВО. ГЕНЕРИРУЕМ

ДОКУМЕНТАЦИЮ!

Page 28: Атипичный Генератор Документации

GRMUSTACHE.SWIFTHTML RENDERING

Page 29: Атипичный Генератор Документации

ШАБЛОН ДЛЯ GRMUSTACHE

Page 30: Атипичный Генератор Документации

ШАБЛОН ДЛЯ GRMUSTACHE 2

Page 31: Атипичный Генератор Документации

DEMO TIME

Page 32: Атипичный Генератор Документации

$ git clone https://github.com/psharanda/adocgen

Page 33: Атипичный Генератор Документации

$ brew install sourcekitten

Page 34: Атипичный Генератор Документации

$ carthage update

Page 35: Атипичный Генератор Документации

open & build & run project в симуляторе

Page 36: Атипичный Генератор Документации

копируем путь из консоли

Page 37: Атипичный Генератор Документации

Finder -> Go -> Go to folder и вставить скопированный путь

Page 38: Атипичный Генератор Документации

открываем index.html

Page 39: Атипичный Генератор Документации
Page 40: Атипичный Генератор Документации
Page 41: Атипичный Генератор Документации
Page 42: Атипичный Генератор Документации

ВОПРОСЫ? ВОПРОСЫ? ВОПРОСЫ?