Документация кода
План
• Источники API документации
• Обзор систем для создания API документации
• Выберем систему
• Процесс создания документации
• Процесс создания гайдов
Источники API
документации
• Исходный код, публичный интерфейс
• Quick Help
• Xcode Documentation
• Внешние источники
Внешние источники
• Не нужно скачивать исходный код
• Не нужно искать исходный код на репозитории
проекта
• Вся документация в одном месте
• Можно ссылаться на документацию при описании
гайдов (html)
Способы создания API
документации
• headerdoc
• appledoc
• jazzy
Способы создания API
документации
Удобство
работы
Поддержка
objective-c
Поддержка
swift
Активно
поддержива
ется
Красивая
документация
Свои
шаблоны
Документация
генерируется
сразу для
двух языков
headerdoc - + - - - - -
appledoc + + - - + + -
jazzy +
+
(есть
проблемы)
+ + + + +
headerdoc
headerdoc
appledoc
appledoc
jazzy
jazzy (+)
• Поддержка swift/objective-c
• Документация генерируется для двух языков
• Поддержка dash
• Документация похожа на apple
• Есть ссылки на исходники метода в github/gitlab
• Активно развивается, разрабатывают realm
• Оптимизирован для генерации документации под SDK. Умеет
генерировать документацию только для публичных классов
jazzy (-)
• Для objective-с генерирует документацию по
umbrella header
• Не умеет находить файлы objective-c в
поддиректориях
• В редких случаях не генерирует доки для swift
Dash
• Программа для просмотра и навигации по
документации
• Библиотека содежит 150+ API
• Поддержка macOS и iOS
Dash
Как мы работаем с jazzy?
fastlane - create_docs
Environment
• SOURCE_DIR - Папка исходного кода
• SOURCE_URL - Адрес репозитория
• MODULE_NAME - Отображаемое имя SDK
• UMBRELLA_HEADER - Umbrella header SDK
fastlane - create_docs
Параметры
• branch - Ветка
• version - Отображаемая версия
fastlane
create_docs
create_develop_docs
Настроен для сборки из
develop рабочей
документации.
create_release_docs
Собирает документацию для
релизной версии. Является
одним из этапа деплоя релиза.
Создание гайдов
Confluence + API доки (как нужно)
1. Сделали много фич
2. Создали релиз ветку
3. Исправили баги
4. Написали документацию
5. Релиз
Confluence +  API доки
(как получается)
1. Сделали фичу
2. Слили в develop
3. Написали документацию, ссылаясь на develop версию
4. Время релиза
5. Исправили ссылки в confluence на релизную версию
6. Исправили несоответствия документации
7. Релиз
Confluence
Confluence
Какие планы по развитию?
• pull request залить lane на наш репозиторий
• diff версий
• Автоматически заменять ссылки в confluence из
develop версии на конкретный релиз
Где посмотреть
• https://appdistribution.rambler.ru/doc/index.html
Конец

More Related Content

PDF
RDSDataSource: App Thinning
PDF
Command Line PLugin for IntelliJ IDEA
PPTX
Heroku for Java developer
PPTX
Docker + Selenium Webdriver в рамках Continuous Integration
PDF
1. RAD Studio Tokyo What's new Введение (К.Раннев)
PDF
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
PDF
3. Разработка на Delphi для Linux
PDF
«Composer vs. копипаст модулей битрикса из проекта в проект»
RDSDataSource: App Thinning
Command Line PLugin for IntelliJ IDEA
Heroku for Java developer
Docker + Selenium Webdriver в рамках Continuous Integration
1. RAD Studio Tokyo What's new Введение (К.Раннев)
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
3. Разработка на Delphi для Linux
«Composer vs. копипаст модулей битрикса из проекта в проект»

What's hot (20)

PDF
Copy of презентация
PPTX
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
PPT
Apache maven in java projects
PPTX
WordPress REST API
PPTX
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
PPTX
Использование Visual Studio Tools for Apache Cordova в реальных проектах
PDF
"Девопс - это не только для программистов. Практические примеры из жизни одно...
PDF
Форум на полном БЭМ-стеке — Николай Ильченко, Яндекс
PDF
CI/CD with Fastlane and Telegram
PDF
Отладка приложений под iOS
PDF
Наиболее интересные технологические нововведения IBM i
PDF
Максим Пугачев
PPTX
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
PPTX
Calabash. Автоматизированное тестирование мобильных приложений
PPTX
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
PPTX
Codeception + Docker + Robo и что из этого вышло
PDF
Seminar: Установка и настройка рабочего стенда разработчика Android-приложени...
PPTX
QA Fest 2014. Катерина Овеченко. Google hacking: удивительное рядом
PPTX
Роль интеграции в разработке ПО
PDF
Webinar: Основные компоненты для разработки мобильных приложений в Delphi
Copy of презентация
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
Apache maven in java projects
WordPress REST API
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Использование Visual Studio Tools for Apache Cordova в реальных проектах
"Девопс - это не только для программистов. Практические примеры из жизни одно...
Форум на полном БЭМ-стеке — Николай Ильченко, Яндекс
CI/CD with Fastlane and Telegram
Отладка приложений под iOS
Наиболее интересные технологические нововведения IBM i
Максим Пугачев
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
Calabash. Автоматизированное тестирование мобильных приложений
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Codeception + Docker + Robo и что из этого вышло
Seminar: Установка и настройка рабочего стенда разработчика Android-приложени...
QA Fest 2014. Катерина Овеченко. Google hacking: удивительное рядом
Роль интеграции в разработке ПО
Webinar: Основные компоненты для разработки мобильных приложений в Delphi
Ad

Viewers also liked (16)

PDF
Rambler.iOS #8: Как не стать жертвой бэкендеров
PDF
RDSDataSource: iOS Reverse Engineering for inexperienced
PPTX
automation is iOS development
PDF
RDSDataSource: Мастер-класс по Dip
PDF
Rambler.iOS #7: Прием платежей по банковским картам в iOS приложении
PDF
RDSDataSource: OCLint
PDF
Rambler.iOS #7: Интернет-эквайринг 101
PDF
RDSDataSource: Promises
PDF
Rambler.iOS #6: Не рычите на pbxproj
PDF
Rambler.iOS #5: Разбираем Massive View Controller
PDF
RDSDataSource: YapDatabase
PDF
Rambler.iOS #5: Подмодули в VIPER
PDF
Rambler.iOS #7: Построение сложного табличного интерфейса
PDF
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
PDF
RDSDataSource: Чистые тесты на Swift
PDF
Rambler.iOS #5: VIPER и Swift
Rambler.iOS #8: Как не стать жертвой бэкендеров
RDSDataSource: iOS Reverse Engineering for inexperienced
automation is iOS development
RDSDataSource: Мастер-класс по Dip
Rambler.iOS #7: Прием платежей по банковским картам в iOS приложении
RDSDataSource: OCLint
Rambler.iOS #7: Интернет-эквайринг 101
RDSDataSource: Promises
Rambler.iOS #6: Не рычите на pbxproj
Rambler.iOS #5: Разбираем Massive View Controller
RDSDataSource: YapDatabase
Rambler.iOS #5: Подмодули в VIPER
Rambler.iOS #7: Построение сложного табличного интерфейса
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
RDSDataSource: Чистые тесты на Swift
Rambler.iOS #5: VIPER и Swift
Ad

Similar to RDSDataSource: Автогенерация документации для SDK (20)

PDF
Использование сторонних библиотек в веб-приложении
PDF
Xe4 launch мобильная разработка всеволод_леонов
PDF
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
PDF
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
PDF
Git, как инструмент управления веб-контентом
PPTX
Как быть с большими сайтами на Word press
PPTX
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
PDF
Локальное окружение на Docker
PDF
YaC 2013 Notes
PPT
PDF
SPA инструменты
PDF
Seminar: Эффективное использование среды разработки и компилятора C++
PDF
DevOps в Agile среде. Как, почему и когда инструменты помогают.
PDF
Component Inspector
PPTX
What's new in Visual Studio 2012
PDF
#MBLTdev: Знакомство с codesign (e-Legion)
ODP
Создаем Drupal дистрибутив: от идеи до сопровождения
PPT
Node.JS: возможности для РНР-разработчика
PPT
2IDE~1.PPT
PDF
My Open Source (Sept 2017)
Использование сторонних библиотек в веб-приложении
Xe4 launch мобильная разработка всеволод_леонов
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
Git, как инструмент управления веб-контентом
Как быть с большими сайтами на Word press
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Локальное окружение на Docker
YaC 2013 Notes
SPA инструменты
Seminar: Эффективное использование среды разработки и компилятора C++
DevOps в Agile среде. Как, почему и когда инструменты помогают.
Component Inspector
What's new in Visual Studio 2012
#MBLTdev: Знакомство с codesign (e-Legion)
Создаем Drupal дистрибутив: от идеи до сопровождения
Node.JS: возможности для РНР-разработчика
2IDE~1.PPT
My Open Source (Sept 2017)

More from RAMBLER&Co (15)

PDF
RDSDataSource: Основы LLVM
PDF
Rambler.iOS #9: Анализируй это!
PDF
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
PDF
Rambler.iOS #9: Life with out of memory
PDF
RDSDataSource: Построение UML диаграмм
PDF
Rambler.iOS #8: Чистые unit-тесты
PDF
Rambler.iOS #8: Сервис-ориентированная архитектура
PDF
Rambler.iOS #8: Make your app extensible with JavaScriptCore
PDF
RDSDataSource: Плюрализация в iOS
PDF
RDSDataSource: Flux, Redux, ReSwift
PDF
Rambler.iOS #6: App delegate - разделяй и властвуй
PDF
Rambler.iOS #6: Pagination Demystified
PDF
Rambler.iOS #5: TDD и VIPER
PDF
Rambler.iOS #5: Переходы и передача данных между VIPER модулями
PDF
Rambler.iOS #5: VIPER a la Rambler
RDSDataSource: Основы LLVM
Rambler.iOS #9: Анализируй это!
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Life with out of memory
RDSDataSource: Построение UML диаграмм
Rambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Сервис-ориентированная архитектура
Rambler.iOS #8: Make your app extensible with JavaScriptCore
RDSDataSource: Плюрализация в iOS
RDSDataSource: Flux, Redux, ReSwift
Rambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: Pagination Demystified
Rambler.iOS #5: TDD и VIPER
Rambler.iOS #5: Переходы и передача данных между VIPER модулями
Rambler.iOS #5: VIPER a la Rambler

RDSDataSource: Автогенерация документации для SDK