Slide 1

Slide 1 text

Swift 5.6 で使えるようになった swift-docc-plugin を試してみる 宇佐見公輔 / 株式会社ゆめみ

Slide 2

Slide 2 text

自己紹介 宇佐見 公輔(うさみこうすけ) / @usamik26 株式会社ゆめみ / iOS テックリード 最近、本を書いたりiOS の記事を寄稿したりしています。

Slide 3

Slide 3 text

Swift-DocC

Slide 4

Slide 4 text

Swift-DocC Swift-DocC : Swift のドキュメント生成ツール、オープンソースで公開されている CLI の docc コマンドで利用できる、またXcode に標準で組み込まれている ドキュメントコメントの例: /// 用意された特製のナマケモノ向け食糧を食べる。 /// /// - Parameters: /// - food: ナマケモノが食べる食糧。 /// - quantity: ナマケモノが食べる食糧の数。 /// - Returns: 食べた後のナマケモノのエネルギー量。 mutating public func eat(_ food: Food, quantity: Int = 1) -> Int { energyLevel += food.energy * quantity return energyLevel } ` `

Slide 5

Slide 5 text

Swift 5.6

Slide 6

Slide 6 text

Swift 5.6 2022-03-15 (日本時間)リリース 同じ日にリリースされたXcode 13.3 に付属 言語としてのアップデートもあるが、個人的には Swift Package Manager の機能が気になる Swift Package Manager SwiftPM 5.6 Release Notes SwiftPM にプラグイン機能が新しく追加された SE-0303 ビルドツールプラグイン: swift build のとき外部ツールを実行できる SE-0332 コマンドプラグイン: swift package コマンドを拡張して外部ツールを実行できる ` ` ` `

Slide 7

Slide 7 text

ビルドツールプラグイン swift build のとき外部ツールを実行できる Package.swift で使いたいプラグインを指定すると自動的に実行される Examples SE-0303 では、以下の例が挙げられている SwiftGen でソースコードを生成する SwiftProtobuf でソースコードを生成する ` ` ` `

Slide 8

Slide 8 text

コマンドプラグイン swift package コマンドを拡張して外部ツールを実行できる Package.swift で使いたいプラグインを指定するとコマンドが拡張される コマンドは swift package do-something という形式になる Examples SE-0332 では、以下の例が挙げられている ドキュメント生成: swift package generate-documentation ソースコード整形: swift package format-source-code Zip アーカイブ作成: swift package create-distribution-archive ` ` ` ` ` ` ` ` ` ` ` `

Slide 9

Slide 9 text

注意点 ビルドツールプラグインもコマンドプラグインも、プラグインの準備が必要 既に用意されていれば、それを使うだけでいいので簡単 用意されていなければ、自分でプラグインを記述する必要がある(ちょっと面倒)

Slide 10

Slide 10 text

swift-docc-plugin

Slide 11

Slide 11 text

swift-docc-plugin SwiftPM からSwift-DocC を実行できるコマンドプラグイン Swift 5.6 と同じ日にバージョン1.0.0 がリリース apple/swift-docc-plugin SwiftDocCPlugin | Documentation コマンドプラグインで追加されるコマンド swift package generate-documentation swift package preview-documentation ` ` ` `

Slide 12

Slide 12 text

プラグインの追加 Package.swift に以下を記述 let package = Package( dependencies: [ .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), ], targets: [ // targets ] ) これで拡張されたコマンドが使えるようになる ` `

Slide 13

Slide 13 text

swift package generate-documentation .doccarchive を生成する Xcode でドキュメントを見ることができる ` `

Slide 14

Slide 14 text

–transform-for-static-hosting オプション swift package generate-documentation --transform-for-static-hosting Web 公開用のドキュメントを生成する GitHub Pages でホスティングできる ` `

Slide 15

Slide 15 text

swift package preview-documentation ローカルでプレビュー用のサーバが起動する ブラウザでドキュメントを見ることができる

Slide 16

Slide 16 text

まとめ SwiftPM 形式のライブラリやツールでもSwift-DocC が使いやすくなった ドキュメントをWeb 公開する方法もサポートされた