SlideShare a Scribd company logo
EZ-NET 熊⾕友宏
http://ez-net.jp/
2015.11.02
ドキュメントコメント
Xcode 7 & Swift 2
熊谷友宏
EZ-NET http://ez-net.jp/
@es_kumagai
CodePiece
iOS, OS X, Apple Watch アプリ
ソースコードを Twitter と
Gist に同時投稿できる。
いつもの電卓
計算式も見える電卓アプリ。
watchOS 1 対応
音で再配達ゴッド
簡単操作で
再配達の申し込み。
EZ-NET IP Phone
iPhone でひかり電話を使う。
自宅 LAN からの利用専用
熊谷友宏
EZ-NET http://ez-net.jp/
@es_kumagai
横浜 iPhone 開発者勉強会
#yidev
勉強会
わいわい・ゆるく、iPhone 開発者の

みんなで楽しく過ごすのが目的の会
【 横浜・馬車道 】
カジュアル Swift 勉強会
#cswift
ゆるくみんなで Swift を語らえる場を

作りたくて始めた会
【 横浜・青葉台 】
第21回を 2015-12-12 に開催 第3回を 2015-11-14 に開催
熊谷友宏
EZ-NET http://ez-net.jp/
@es_kumagai
Xcode 5 徹底解説 MOSA
書籍 / 登壇
Xcode 5 の全機能を

徹底的に解説した本
OSX/iOS 系の歴史深い

有料会員制の勉強会
紙版は絶版、電子書籍は販売中
秀和システム 10x-Eng.com で取扱予定
2015-11-07 の MSM2015 で
Swift 2 を始めたい人向けの話で登壇
Xcode 7 でも役立つはず 法人会員も多数
Xcode 5 徹底解説
著書
> 全機能を徹底解説
✔ 各画面の使い方
✔ プロジェクトやコードの編集
✔ インターフェイスビルダー
✔ ビルドとデバッグ
✔ ユニットテストと Bot
> 紙版は絶版 (2015/08/21)
> 電子書籍版は販売中
✔ 10x-Eng.com でも取扱予定
2014/04/28 - 2015/08/21
750 ページ
Swift 2 の話をする予定
MSM 2015
> MSM 2015
✔ NPO 法人 MOSA 主催
✔ 有料イベント(会員制)
✔ 年に一度の2日間に渡る

お祭り的なイベント
✔ Apple 最新技術の話題満載
> NPO 法人 MOSA
✔ 10 年以上の活動実績
✔ 法人会員での参加も多い印象
2015/11/06 - 2015/11/07
http://www.mosa.gr.jp/
Xcode 7
̶ 2015.09.16 ̶
▶ Swift 2
▶ 新 OS サポート
▶ UI テスト
▶ コードカバレッジ
▶ ドキュメントコメント
▶ 呼出階層検索ナビゲーター
▶ インターフェイス定義の確認
▶ 無料のオンデバイス開発
新機能
Xcode 7
▶ コンテナービュー
▶ スタックビュー
▶ ストーリーボード参照
▶ オンデマンドリソース
ドキュメントコメント
▶ 型や機能に説明を記載できる
▶ コード補完時に概要を見られる
▶ クイックヘルプで詳細を見られる
機能
ドキュメントコメント
▶ Markdown のような書式
• テキストの装飾
• 画像の挿入
• リンクの挿入
▶ プレイグラウンド専用機能
• ページナビゲーション
• リッチコメント描画
▶ Swift 専用
機能
強化されたドキュメントコメント
1. シンボルの文書化
▶ 型や機能にドキュメントを添える
▶ クイックヘルプやコード補完で見れる
▶ ソースコードとプレイグラウンドで使える
2. リッチコメント
▶ 見栄えの良いコメントが書ける
▶ プレイグラウンドをドキュメントとして見せる
▶ プレイグラウンド専用
利用できる場面
強化されたドキュメントコメント
1. シンボルの文書化
▶ 型や機能にドキュメントを添える
▶ 専用の書式で意味付けできる
▶ ソースコードとプレイグラウンドの

両方で使用できる
▶ クイックヘルプやコード補完で見れる
特徴
シンボルの文書化
▶ コメント行内でマークアップする
▶ コメント行は次の2通りで書く
(a) /// でコメント行を書く(複数行可)
(b) /** ∼ */ でコメントブロックを書く
書き方
シンボルの文書化
記載
シンボルの文書化
/// 指定したターゲットをビルドします。
/// 設定を追加することで異なるオプションでビルドできます。
///
/// - precondition:
/// ビルド対象のプロジェクトが開かれている必要があります。
///
/// - parameters:
/// - target: ビルドするターゲットです。
/// - configuration: ビルドで使う設定です。
///
/// - returns: ビルドの実行結果を返します。
/// - throws: エラー時は BuildError が投げられます。
func build(target:Target, config:Config) throws -> Report {
▶ コード補完
表示
シンボルの文書化
▶ クイックヘルプ
2. リッチコメント
▶ プレイグラウンドだけで使える
▶ 見栄えの良いコメントが書ける
▶ プレイグラウンドファイルを

まるごとドキュメントとして見せる
特徴
リッチコメント
▶ コメント行内でマークアップする
▶ コメント行は次の2通りで書く
(A) //: でコメント行を書く(複数行可)
(B) /*: ∼ */ でコメントブロックを書く
書き方
リッチコメント
記載
リッチコメント
//: ## `reduce` メソッド
//: 配列の **総和** を簡単に計算できます。
//: ### 準備
let values = [1, 3, 8, 20]
//: ### 実行
let sum = values.reduce(0, combine: +)
表示
リッチコメント
▶ ファイルインスペクターで切り替える
表示の切り替え
リッチコメント
オン・オフで
切り替わる
▶ リッチコメント表示中でも
• 実行コードを編集できる
▶ リッチコメント表示中は
• リッチコメントを編集できない
• 通常のコメントは編集できる
留意点
リッチコメント
マークアップ
▶ シンボルの文書化やリッチコメントの

内容に付加情報を添える
▶ コマンドを使ってマークアップする
▶ コマンドはインデントレベルが大事
• インデントによって解釈が変わる
• コメントブロックの最初が第一レベル
▶ Markdown みたいな書式
基本
マークアップ
1. 行書式コマンド
2. テキスト書式コマンド
3. シンボル文書化コマンド
4. ページナビゲーションコマンド
コマンドの種類
マークアップ
リッチコメント
専用
シンボル文書化
専用
1. 行書式コマンド
シンボル文書化 リッチコメント
▶ 行単位で書式を指定する
特徴
行書式コマンド
基本書式
行書式コマンド 行テキスト
シンボル文書化 リッチコメント
空白必須
▶ 見出し
▶ ブロック引用
▶ 箇条書き
▶ 番号付き箇条書き
▶ コードブロック
▶ 水平線
▶ リンク参照
種類
行書式コマンド
行書式コマンド
見出し
シンボル文書化 リッチコメント
▶ 行を見出しとして扱う
▶ 先頭の # の数でレベルを指定(3レベルまで)
見出し
行書式コマンド
記載方法
最初の見出しです。
シンボル文書化 リッチコメント
次の見出しです。
#
##
記号の数で

レベル指定
空白必須
見出し
行書式コマンド
//: 見出しを表示します。
//: # 最初の見出しです。
//: ## 次の見出しです。
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
▶ 見出しを次行の下線で表現する
• レベル1は === で表現する
• レベル2は --- で表現する
見出し(別の書き方)
行書式コマンド
記載方法
シンボル文書化 リッチコメント
見出しです。
======
↩
最初は空行
2行目で

下線を表現
リッチコメント
見出し
行書式コマンド
//: 見出しを表示します。
//:
//: 見出しです。
//: ===========
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
行書式コマンド
ブロック引用
シンボル文書化 リッチコメント
▶ 内容を引用として扱う
▶ 連続で書くと1つとして扱われる
ブロック引用
行書式コマンド
記載方法
> 引用してきたテキストを記載します。
シンボル文書化 リッチコメント
> 複数行に分けて続きを記載できます。
空白必須↩
最後は空行
ブロック引用
行書式コマンド
//: 次のような説明が記載されています。
//:
//: > 引用してきたテキストを記載します。
//: > 複数行に分けて続きを記載できます。
//:
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
行書式コマンド
箇条書き
シンボル文書化 リッチコメント
▶ 先頭は *, +, - のどれかで える
▶ 同レベルの項目は同じインデントで書く
箇条書き
行書式コマンド
記載方法
* 最初の項目
シンボル文書化 リッチコメント
* ふたつ目の項目
↩
最後は空行
空白必須
インデント
を える
ふたつ目にぶら下げた項目*
レベルを

変えられる
箇条書き
行書式コマンド
//: 項目を箇条書きします。
//: * 最初の項目
//: * ふたつ目の項目
//: * ふたつ目にぶら下げた項目
//:
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
行書式コマンド
番号付き箇条書き
シンボル文書化 リッチコメント
▶ 先頭を 番号 と .で始める
▶ どんな番号でも連番に振り直される
番号付き箇条書き
行書式コマンド
記載方法
. 最初の項目
シンボル文書化 リッチコメント
. ふたつ目の項目
↩
最後は空行
インデント
を える
ぶら下げた項目.
レベルを

変えられる
1
1
1
番号付き箇条書き
行書式コマンド
//: 項目を箇条書きします。
//: 1. 最初の項目
//: 1. ふたつ目の項目
//: 1. ふたつ目にぶら下げた項目
//:
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
番号付き箇条書き
行書式コマンド
//: 3. 最初の項目
//: 3. ふたつ目の項目
シンボル文書化は1番から
リッチコメント
採番のされ方が異なる
シンボル文書化
リッチコメントは指定番号から
表示例
行書式コマンド
コードブロック
シンボル文書化 リッチコメント
▶ 内容をプログラムコードとして扱う
▶ インデントして内容を記載する
コードブロック
行書式コマンド
記載方法
let 数値列 = [1, 3, 5, 7]
シンボル文書化 リッチコメント
let 総和 = 数値列.reduce(0, combine: +)
↩
最後は空行
↩ 最初は空行
インデント
必須
```
▶ 上下を ``` で括って書ける
▶ シンボル文書化だけで使える
コードブロック(別の書き方)
行書式コマンド
記載方法
シンボル文書化 リッチコメント
空行不要
let 数値列 = [1, 3, 5, 7]
let 総和 = 数値列.reduce(0, combine: +)
```
インデント

不要
コードブロック
行書式コマンド
//: サンプルコードです。
//:
//: let 数値列 = [1, 3, 5, 7]
//: let 総和 = 数値列.reduce(0, combine: +)
//:
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
行書式コマンド
水平線
シンボル文書化 リッチコメント
▶ 行を水平線にする
▶ 3文字以上のハイフンで表現する
水平線
行書式コマンド
記載方法
シンボル文書化 リッチコメント
↩
最後は空行
↩ 最初は空行
−−−
3文字以上
水平線
行書式コマンド
//: 水平線で分断します。
//:
//: - - -
//:
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
行書式コマンド
リンク参照
シンボル文書化 リッチコメント
▶ リンク付きテキストを定義する
▶ 定義後に本文内でテキストを使う
リンク参照
行書式コマンド
記載方法
[ テキスト
シンボル文書化 リッチコメント
定義したテキスト
↩
必要に

応じて最初は改行
] URL " "ホバーテキスト
[ テキスト ] を使う
リンク参照
行書式コマンド
//: テキストにリンクを定義して使います。
//:
//: [EZ-NET]: http://ez-net.jp "EZ-NET"
//: 定義したテキスト [EZ-NET] を使います。
//: 以上
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
2. テキスト書式コマンド
シンボル文書化 リッチコメント
▶ 文字列単位で書式を指定する
特徴
テキスト書式コマンド
基本書式
コマンド テキスト
シンボル文書化 リッチコメント
コマンドテキスト テキスト
▶ 強調表記
▶ コード表記
▶ 画像表記
▶ リンク参照
▶ 記号のエスケープ
種類
テキスト書式コマンド
テキスト書式コマンド
強調表記
シンボル文書化 リッチコメント
▶ テキストを強調して表示する
▶ 両側を * または _ で括る
強調表記 : 斜体
テキスト書式コマンド
記載方法
* 二種類の変数
シンボル文書化 リッチコメント
*Swift には があります。
目的の語句
を囲う
強調表記 : 斜体
テキスト書式コマンド
//: テキストの一部を強調して表現します。
//:
//: Swift には *二種類の変数* があります。
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
▶ テキストを強調して表示する
▶ 両側を ** または __ で括る
強調表記 : 太字
テキスト書式コマンド
記載方法
** 構造体
シンボル文書化 リッチコメント
**Swift はデータを で表現します。
強調表記 : 太字
テキスト書式コマンド
//: テキストの一部を強調して表現します。
//:
//: Swift ではデータを **構造体** で表現します。
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
▶ テキストを強調して表示する
▶ 両側を *** または ___ で括る
強調表記 : 太字と斜体
テキスト書式コマンド
記載方法
*** 変数で振る舞いが変化
シンボル文書化 リッチコメント
***構造体は します。
強調表記 : 太字と斜体
テキスト書式コマンド
//: テキストの一部を強調して表現します。
//:
//: 構造体は ***変数で振る舞いが変化*** します。
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
テキスト書式コマンド
コード表記
シンボル文書化 リッチコメント
▶ テキストがコードであることを表現する
▶ 両側を ` で括る
コード表記
テキスト書式コマンド
記載方法
` let
シンボル文書化 リッチコメント
`Swift では原則 で変数を扱います。
コード表記
テキスト書式コマンド
//: テキストの一部をコードとして表現します。
//:
//: Swift では原則 `let` で変数を扱います。
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
テキスト書式コマンド
画像表記
シンボル文書化 リッチコメント
▶ テキストに画像を挿入する
▶ 場面によって表現が変わる様子
• リッチコメントでは ブロック要素
• シンボル文書化では インライン要素
画像表記
テキスト書式コマンド
構文
[ ポップアップ
シンボル文書化 リッチコメント
]! 交代テキスト ( 画像パス " "
必要に

応じて
)
画像表記
テキスト書式コマンド
//: コメント内に画像を挿入します。
//:
//: ![Note](https://ez-net.jp/note.png) Swift は
//: 目まぐるしく進化します。
表示例
リッチコメント
記載例
シンボル文書化
シンボル文書化はインライン リッチコメントはブロック扱い
▶ HTML タグで画像を挿入する
▶ シンボルの文書化だけで使える様子
▶ 正式な方法かは不明
画像サイズを変えたい時
テキスト書式コマンド
シンボル文書化 リッチコメント
テキスト書式コマンド
/// コメント内に画像を挿入します。
///
/// <img src="https://ez-net.jp/note.png" style="width: 14px /> Swift は
/// 目まぐるしく進化します。
記載例
シンボル文書化
画像サイズを変えたい時
表示例(シンボル文書化)
リッチコメント
画像のカレントパス
テキスト書式コマンド
リッチコメント
シンボルの文書化
シンボル文書化
リッチコメント
テキスト書式コマンド
リンク参照
シンボル文書化 リッチコメント
テキスト
▶ URL リンク付きのテキストを表現する
▶ テキスト内で自由に使える
リンク参照
テキスト書式コマンド
記載方法
[ テキスト
シンボル文書化 リッチコメント
] URL( ) テキスト
リンク参照
テキスト書式コマンド
//: テキスト書式コマンドなら
//: 事前定義なく [リンク](http://ez-net.jp) を使えます。
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
テキスト書式コマンド
記号のエスケープ
シンボル文書化 リッチコメント
テキスト
▶ 特別な記号をそのまま表示できる
記号のエスケープ
テキスト書式コマンド
記載方法
 記号
シンボル文書化 リッチコメント
テキスト
記号のエスケープ
テキスト書式コマンド
//: 次のように書くとリンクを挿入できます。
//:
//: [タイトル](https://ez-net.jp)
表示例(リッチコメント)
リッチコメント
記載例
シンボル文書化
3. シンボル文書化コマンド
シンボル文書化 リッチコメント
▶ シンボルの説明に意味を添える
▶ 4つのセクションで構成される
▶ ハイフン記号で書き始める
特徴
シンボル文書化コマンド
書式
- コマンド
シンボル文書化 リッチコメント
: コンテンツ
コンテンツの続きを次行に記載できる
↩
最後は改行か

別のコマンド
必要に

応じて
1. Description セクション
2. Parameters セクション
3. Returns セクション
4. Throws セクション
4つのセクション
シンボル文書化コマンド
シンボル文書化 リッチコメント
セクション
Description
シンボル文書化 リッチコメント
コンテンツ
▶ シンボルの説明を扱う
▶ コマンドを明記しないテキストが所属する
▶ 複数の Description フィールドを持てる
Description セクション
シンボル文書化コマンド
基本書式
シンボル文書化 リッチコメント
コマンドを含めず

テキストを記載
Description セクション
シンボル文書化コマンド
/// 現在のターゲットを取得します。
var currentTarget:Target
表示例
記載例
シンボル文書化 リッチコメント
▶ Description セクションに情報を添える
▶ いくつでも追加できる
Description フィールド
シンボル文書化コマンド
基本書式
シンボル文書化 リッチコメント
- フィールド名 : 説明文
説明文の続きを次行に記載できる
↩
最後は改行か

次のコマンド
必要に

応じて
Description フィールド
シンボル文書化コマンド
/// ストリームの末端まで読み進められているか調べます。
/// - precondition: ストリームが開かれている必要があります。
/// - note: 文字列ストリームでは NUL を末端とみなします。
func isEOF(stream:Stream) -> String {
表示例
記載例
シンボル文書化 リッチコメント
Description で使えるフィールド名 (1/4)
シンボル文書化コマンド
シンボル文書化 リッチコメント
- : 注目して欲しい情報を記載attention
- : 著作者名author
- : バグに関する情報を記載bug
- : アルゴリズム的な複雑さを記載Complexity
- : 著作権に関する情報を記載copyright
- : 何らかの日付情報を記載date
- : 試験的な機能であることを記載experiment
Description で使えるフィールド名 (2/4)
シンボル文書化コマンド
シンボル文書化 リッチコメント
- : 使用上の重要情報を記載important
- : 実行中に変化しないものを明記invariant
- : 補足情報を記載note
- : 実行に必要な値の前提条件を記載precondition
- : 実行直後の値の変化を記載postcondition
- : シンボルの解説を記載remark
- : 実行に必要な環境情報を記載requires
Description で使えるフィールド名 (3/4)
シンボル文書化コマンド
シンボル文書化 リッチコメント
- : 別の参考資料を記載seealso
- : いつから使えるようになったかを記載since
- : 実行完了に必要な追加タスクを記載todo
- : シンボルのバージョン情報を記載version
- : 使用上の注意事項を記載warning
- :authors
Description で使えるフィールド名 (4/4)
シンボル文書化コマンド
シンボル文書化 リッチコメント
基本書式
↩
▶ 複数人数の著作者情報を記載
著作者名
著作者名
↩
最後は改行
改行で
次の人
セクション
Parameters
シンボル文書化 リッチコメント
▶ シンボルの引数を扱う
▶ 複数のフィールドを持てる
Parameters セクション
シンボル文書化コマンド
基本書式
シンボル文書化 リッチコメント
- 引数名 : 説明文
説明文の続きを次行に記載できる
↩
最後は改行か

次のコマンド
必要に

応じて
parameter
Parameters セクション
シンボル文書化コマンド
/// ストリームに値を書き込みます。
/// - parameter value: 書き込む値です。
/// - parameter stream: 書き込み先のストリームです。
func write(value:String, stream:Stream) {
表示例
記載例
シンボル文書化 リッチコメント
- :parameters
Parameters の一括定義
シンボル文書化コマンド
シンボル文書化 リッチコメント
基本書式
▶ 複数の引数情報を記載
↩
説明文- :引数名
説明文- :引数名
インデント
必須
最後は改行か

次のコマンド
Parameters の一括定義
シンボル文書化コマンド
/// ストリームに値を書き込みます。
/// - parameters:
/// - value: 書き込む値です。
/// - stream: 書き込み先のストリームです。
func write(value:String, stream:Stream) {
表示例
記載例
シンボル文書化 リッチコメント
セクション
Returns
シンボル文書化 リッチコメント
▶ シンボルの戻り値を扱う
▶ ひとつだけ指定できる
Returns セクション
シンボル文書化コマンド
基本書式
シンボル文書化 リッチコメント
- 説明文
説明文の続きを次行に記載できる
↩
最後は改行か

次のコマンド
必要に

応じて
returns :
Returns セクション
シンボル文書化コマンド
/// ストリームから値を読み込みます。
/// - returns: 読み取った文字列を返します。
func read(stream:Stream) -> String {
表示例
記載例
シンボル文書化 リッチコメント
セクション
Throws
シンボル文書化 リッチコメント
▶ エラーに関する情報を扱う
▶ ひとつだけ指定できる
Throws セクション
シンボル文書化コマンド
基本書式
シンボル文書化 リッチコメント
- 説明文
説明文の続きを次行に記載できる
↩
最後は改行か

次のコマンド
必要に

応じて
throws :
Throws セクション
シンボル文書化コマンド
/// ストリームに値を書き込みます。
/// - throws: ストリームが開かれてないと
/// Stream.NotOpenError が発生ます。
func write(value:String, stream:Stream) throws {
表示例
記載例
シンボル文書化 リッチコメント
シンボル文書化
4. ページナビゲーションコマンド
リッチコメント
▶ ページ移動するための機能
• 指定ページに移動する
• 前後のページに移動する
▶ リッチコメントだけで使える
特徴
ページナビゲーションコマンド
シンボル文書化 リッチコメント
[ 表題 ] 移動先ページ名( )
▶ 指定したページ名へのリンクを作れる
▶ ページ名の空白文字は %20 に置き換える
指定ページに移動
ページナビゲーションコマンド
記載方法
シンボル文書化 リッチコメント
[ 表題 ] @next( )
▶ 次のページへのリンクを作れる
▶ 順番はプロジェクトナビゲーターで指定する
次のページに移動
ページナビゲーションコマンド
記載方法
シンボル文書化 リッチコメント
[ 表題 ] @previous( )
▶ 前のページへのリンクを作れる
▶ 順番はプロジェクトナビゲーターで指定する
前のページに移動
ページナビゲーションコマンド
記載方法
シンボル文書化 リッチコメント
ページ
シンボル文書化 リッチコメント
▶ プレイグラウンド内に

複数のページを追加できる機能
▶ プロジェクトナビゲーターで管理する
Playground ページ
ページナビゲーションコマンド
シンボル文書化 リッチコメント
▶ 各ページがリソースを持てる
▶ Playground ファイル直下のリソースは

すべてのページで利用できる様子
Playground ページのリソース
ページナビゲーションコマンド
シンボル文書化 リッチコメント
このページ

専用
全ページで
使える
ページ作成
シンボル文書化 リッチコメント
▶ プロジェクトナビゲーターから作成
ページの新規作成
Playground ページ
シンボル文書化 リッチコメント
新規作成
⌥ + Click
▶ プロジェクトナビゲーターで

登録されている順番で管理される
ページの順番
Playground ページ
シンボル文書化 リッチコメント
ページは
この順番
ページ移動
シンボル文書化 リッチコメント
指定ページに移動
ページ移動
//: 目次
//:
//: [セクション A](Section%20A)
//:
//: [セクション B](Section%20B)
表示例
記載例
シンボル文書化 リッチコメント
指定ページに移動
ページ移動
//: [前のページ](@previous)
//:
//: [次のページ](@next)
表示例
記載例
シンボル文書化 リッチコメント
まとめ
▶ シンボルに説明を記載できる
• セクションで詳しく意味づけできる
• コード補完やクイックヘルプで見れる
• テキストを装飾できる
▶ Playground コメントの可能性が広がる
• テキストを装飾できる
• ページ移動のリンクが貼れる
まとめ
ドキュメントコメント
▶ コメントの書き方
▶ 強化されたドキュメントコメント
▶ シンボルの文書化
▶ リッチコメント
▶ マークアップ
▶ 行書式コマンド
▶ テキスト書式コマンド
▶ シンボル文書化コマンド
▶ ページナビゲーションコマンド
ドキュメントコメント
Xcode 7 + Swift 2
おまけ
ドキュメントコメント
もしかして
HTML タグが使える?
HTML タグを混ぜられる?
ドキュメントコメント
説明の中で
HTML を使うと
ドキュメントコメント
クイックヘルプ
に反映される
HTML タグを混ぜられる?
スタイルシートも混ぜられる?
ドキュメントコメント
スタイルを
説明に添えると
ドキュメントコメント
クイックヘルプ
に反映される
スタイルシートも混ぜられる?
スタイル指定はお勧めできない?
ドキュメントコメント
▶ コメント毎にスタイルが必要
▶ コメントの度に本格的なスタイルを

記載するのは非現実的
▶ 見た目の統一性がなくなる
▶ そもそも正式に使える機能か判らない
もしかして
JavaScript が使える?
JavaScript を混ぜられる?
ドキュメントコメント
クイックヘルプ
で実行される
説明の中で
script を使うと
JavaScript を混ぜられる?
ドキュメントコメント
コード補完だと

バレバレ
▶ ただしコード補完では

スクリプトがそのまま表示される
JavaScript 埋め込みはお勧めできない?
ドキュメントコメント
▶ 正式に使える機能か判らない
▶ コード補完でコードがそのまま表示される
▶ そもそもそこまで必要なのか?
おすすめ
ドキュメントコメント
絵文字を活用する
ドキュメントコメント
説明の中で
絵文字を使うと
絵文字を活用する
ドキュメントコメント
コード補完で
表示される
絵文字を活用する
ドキュメントコメント
クイックヘルプで
表示される
絵文字で検索できる!
ドキュメントコメント
検索できる!
絵文字を

使って …
おしまい☺

More Related Content

What's hot

Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
 
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
株式会社MonotaRO Tech Team
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
貴仁 大和屋
 
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなどJakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
オラクルエンジニア通信
 
JPAの基礎と現場で役立つ開発Tips
JPAの基礎と現場で役立つ開発TipsJPAの基礎と現場で役立つ開発Tips
JPAの基礎と現場で役立つ開発Tips
yuichi_kuwahara
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-Amazon Web Services Japan
 
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
SolarisJP
 
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
Hideki Takase
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
Naohiro Fujie
 
構成管理のアンチパターン
構成管理のアンチパターン構成管理のアンチパターン
構成管理のアンチパターン
akipii Oga
 
いまさら聞けないselectあれこれ
いまさら聞けないselectあれこれいまさら聞けないselectあれこれ
いまさら聞けないselectあれこれ
lestrrat
 
[DDBJing31] DDBJ と NIG SuperComputer の使い方
[DDBJing31] DDBJ と NIG SuperComputer の使い方[DDBJing31] DDBJ と NIG SuperComputer の使い方
[DDBJing31] DDBJ と NIG SuperComputer の使い方
DNA Data Bank of Japan center
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
 
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース 【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
Juniper Networks (日本)
 
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearchメディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
 
HCL AppScan 10 のご紹介
HCL AppScan 10 のご紹介HCL AppScan 10 のご紹介
HCL AppScan 10 のご紹介
Software Info HCL Japan
 
寝プログラミングのススメ
寝プログラミングのススメ寝プログラミングのススメ
寝プログラミングのススメYoshitaka Kawashima
 

What's hot (20)

Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
 
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなどJakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
 
JPAの基礎と現場で役立つ開発Tips
JPAの基礎と現場で役立つ開発TipsJPAの基礎と現場で役立つ開発Tips
JPAの基礎と現場で役立つ開発Tips
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
 
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
 
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
 
僕とヤフーと時々Teradata #prestodb
僕とヤフーと時々Teradata #prestodb僕とヤフーと時々Teradata #prestodb
僕とヤフーと時々Teradata #prestodb
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
 
構成管理のアンチパターン
構成管理のアンチパターン構成管理のアンチパターン
構成管理のアンチパターン
 
いまさら聞けないselectあれこれ
いまさら聞けないselectあれこれいまさら聞けないselectあれこれ
いまさら聞けないselectあれこれ
 
[DDBJing31] DDBJ と NIG SuperComputer の使い方
[DDBJing31] DDBJ と NIG SuperComputer の使い方[DDBJing31] DDBJ と NIG SuperComputer の使い方
[DDBJing31] DDBJ と NIG SuperComputer の使い方
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
 
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース 【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
 
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearchメディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
 
HCL AppScan 10 のご紹介
HCL AppScan 10 のご紹介HCL AppScan 10 のご紹介
HCL AppScan 10 のご紹介
 
寝プログラミングのススメ
寝プログラミングのススメ寝プログラミングのススメ
寝プログラミングのススメ
 

Viewers also liked

Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
Tomohiro Kumagai
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
Tomohiro Kumagai
 
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftSwift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Tomohiro Kumagai
 
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools
Kazuki Ueki
 
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
tomo_masakura
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
Yu Tanaka
 
kumogata-template の紹介
kumogata-template の紹介kumogata-template の紹介
kumogata-template の紹介
Naoya Nakazawa
 

Viewers also liked (7)

Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
 
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftSwift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
 
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools
 
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
 
kumogata-template の紹介
kumogata-template の紹介kumogata-template の紹介
kumogata-template の紹介
 

Similar to Swift ドキュメントコメント

Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
Yuto Takei
 
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
Tomohiro Kumagai
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
 
Beamerでお手軽スライド作成
Beamerでお手軽スライド作成Beamerでお手軽スライド作成
Beamerでお手軽スライド作成
Takuya Okada
 
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiSwift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Tomohiro Kumagai
 
TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」
Kosuke Yamada
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
 
Swift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswiftSwift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswift
Tomohiro Kumagai
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
和弘 井之上
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行monglee
 
20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある
IgaHironobu
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とかShin Ise
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
信之 岩永
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
Tadahiro Ishisaka
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
Akineko Shimizu
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Akira Inoue
 
Microsoft Learn で C# を学ぶとどんな感じ?
Microsoft Learn で C# を学ぶとどんな感じ?Microsoft Learn で C# を学ぶとどんな感じ?
Microsoft Learn で C# を学ぶとどんな感じ?
m ishizaki
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
Tomoki Hasegawa
 
Xcode 再入門「Xcode の検索機能」 #さいたまdev
Xcode 再入門「Xcode の検索機能」 #さいたまdevXcode 再入門「Xcode の検索機能」 #さいたまdev
Xcode 再入門「Xcode の検索機能」 #さいたまdev
Tomohiro Kumagai
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
Haruki Eguchi
 

Similar to Swift ドキュメントコメント (20)

Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
 
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
Beamerでお手軽スライド作成
Beamerでお手軽スライド作成Beamerでお手軽スライド作成
Beamerでお手軽スライド作成
 
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiSwift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
 
TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
Swift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswiftSwift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswift
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
 
20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とか
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
 
Microsoft Learn で C# を学ぶとどんな感じ?
Microsoft Learn で C# を学ぶとどんな感じ?Microsoft Learn で C# を学ぶとどんな感じ?
Microsoft Learn で C# を学ぶとどんな感じ?
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
Xcode 再入門「Xcode の検索機能」 #さいたまdev
Xcode 再入門「Xcode の検索機能」 #さいたまdevXcode 再入門「Xcode の検索機能」 #さいたまdev
Xcode 再入門「Xcode の検索機能」 #さいたまdev
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 

More from Tomohiro Kumagai

最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
Tomohiro Kumagai
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせ
Tomohiro Kumagai
 
_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift
Tomohiro Kumagai
 
Property Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominProperty Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoomin
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
Tomohiro Kumagai
 
みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′
Tomohiro Kumagai
 
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswiftイニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
Tomohiro Kumagai
 
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
Tomohiro Kumagai
 
Swift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapSwift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsap
Tomohiro Kumagai
 
iOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swiftiOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swift
Tomohiro Kumagai
 
Around the 変数 let #love_swift
Around the 変数 let #love_swiftAround the 変数 let #love_swift
Around the 変数 let #love_swift
Tomohiro Kumagai
 
もくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Nightもくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Night
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
Tomohiro Kumagai
 
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswiftmacOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swiftみんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
Tomohiro Kumagai
 
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #iosconGetting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Tomohiro Kumagai
 
みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′
Tomohiro Kumagai
 
勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料
Tomohiro Kumagai
 

More from Tomohiro Kumagai (20)

最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせ
 
_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift
 
Property Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominProperty Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoomin
 
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
 
みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′
 
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswiftイニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
 
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
 
Swift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapSwift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsap
 
iOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swiftiOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swift
 
Around the 変数 let #love_swift
Around the 変数 let #love_swiftAround the 変数 let #love_swift
Around the 変数 let #love_swift
 
もくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Nightもくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Night
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
 
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswiftmacOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
 
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swiftみんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
 
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #iosconGetting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
 
みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′
 
みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′
 
勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017
 
みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料
 

Swift ドキュメントコメント