新人プログラマのための開発補助アプリ:Dashを活用しよう

### 1. はじめに

#### 1.1. 新人プログラマが直面する課題

新人プログラマが直面する課題として、プログラミング言語やライブラリのドキュメントを効率的に参照することが難しく、開発速度が遅くなりがちなことが挙げられます。新人プログラマは言語やライブラリの知識があまり多くなく、ドキュメントを参照する必要が多いですが、それらのドキュメントはそれぞれ別々のWebサイトで閲覧する必要があり横断的な検索も行えません。IDEやエディター上でソースコードに記されたクラス名やメソッド名を元にドキュメントを参照することも簡単ではありません。このように新人プログラマはドキュメントの参照という面で課題を抱えています。

#### 1.2. ドキュメント参照アプリDashの紹介

この課題を解決するために、[Dash](https://kapeli.com/dash)が役に立ちます（WindowsやLinuxなどを利用している方ごめんなさい！DashはMacアプリです…）。Dashは多くのプログラミング言語やライブラリのAPIドキュメント一元管理し、高速に検索・閲覧が可能なアプリです。IDEやエディターとの連携も可能です。Dashを利用するとドキュメント参照が効率的になり、新人プログラマがドキュメントの利用をサポートしてくれます。

ただし有料アプリ$29.99です。

### 2. Dashの主な機能

1. 統合ドキュメント閲覧: 200以上のプログラミング言語やライブラリ、フレームワークのドキュメントを一元管理し、効率的に閲覧できます。
2. オフラインドキュメント利用: ドキュメントをダウンロードしてローカルに保存することで、インターネット接続がない場所でもドキュメント参照が可能です。
3. 高速検索機能: キーワードやフレーズを入力するだけで、瞬時に関連するドキュメントを見つけることができます。また、検索結果はカテゴリ別に整理され、目的の情報を素早く探し出すことができます。
4. カスタムドキュメントセット: 既存のドキュメントセットに加え、自分で作成したドキュメントや企業内で共有されているドキュメントも追加して管理できます。
5. 人気のIDEとの連携: JetBrains IDEやVisual Studio Codeなど、多くの開発環境と連携することで、開発作業の効率をさらに向上させることができます。

その他スニペット機能なども搭載されています。

### 3. Dashの使い方

#### 3.1 インストール

以前はMac App Storeからインストールできたのですが[諸般の事情](https://applech2.com/archives/20161011-dash-remove-from-mac-app-store-3.html)で登録が削除されたので、[公式サイト](https://kapeli.com/dash)からダウンロードして/Applicationsフォルダにアプリを配置します。

#### 3.2 ドキュメントセットの追加

アプリを起動して環境設定画面のDownloadsを開きます。

![スクリーンショット 2023-05-11 16.39.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/eb83033c-9bb2-cee2-8b2b-503628d22fcc.png)

iOSアプリのネイティブ開発者であればAppleドキュメントを利用するのでちょうどスクリーンショットに映っている「Apple API Reference」をダウンロードします。

その他のライブラリーなどのドキュメントは検索欄にライブラリー名を入力して検索し、ダウンロードしましょう。

Flutterのドキュメントはドキュメント一覧下部にある＋ボタンをクリックして以下のように `https://api.flutter.dev/offline/flutter.xml` をAddします。

![スクリーンショット 2023-05-11 16.50.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/1e74f4fb-0fed-b65f-f468-58244149348d.png)

![スクリーンショット 2023-05-11 16.51.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/49c06c0f-e001-36a7-6766-0ef95d595e90.png)

これをダウンロードする（時間がかかります）とstableのドキュメントが利用できるようになります。stableとmasterのURLは存在しますがそれ以外のバージョンを利用する場合は、Flutterリポジトリをダウンロードしてきて独自にdocsetsを生成することになります。

ダウンロードしたDocsetはDocsetsを開くと確認できます。Docsetの右に表示されているapple:やdartlang:はキーワードというもので、ドキュメントの検索時にキーワードを指定することで検索するドキュメントを絞り込むことが出来ます。例えばFlutterやFlutterのライブラリーにdartlang:（好みのキーワードを指定できるのでflutter:でも可）というキーワードを設定するとFlutter関連のドキュメントのみをまとめて検索することができるようになります。

![スクリーンショット 2023-05-11 17.08.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/5480ee7e-208f-6ab8-8633-c35cb3862ae8.png)

#### 3.3 検索

検索画面です。検索欄に検索語を入れてみましょう。
![スクリーンショット 2023-05-11 17.12.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/3317faf4-13a1-954e-2d6f-e9aa2f2861a4.png)

![スクリーンショット 2023-05-11 17.13.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/b0b89ece-ecee-19b5-6612-e6c1313f6fcc.png)

`string` と検索するとSwiftとFlutter(Dart)のStringが検索されました。

検索語を削除して検索欄にフォーカスした状態にするとapple:とdartlang:が表示されています。

![スクリーンショット 2023-05-11 17.14.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/0320c92f-288b-1405-83d9-41aeb5bb9f6c.png)

apple:の方を選択するか `apple:` と入力するとapple:キーワードで指定したDocsetのみを検索する状態になりました。

![スクリーンショット 2023-05-11 17.16.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/0e2b59a4-fb5f-e36b-d658-6b5360bdab15.png)

再度 `string` を検索するとDartは表示されずSwiftのStringだけが検索されています。

![スクリーンショット 2023-05-11 17.17.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/b2176e3e-0473-3f22-a66e-8a1d837fe6ac.png)

SwiftのStringのドキュメントが閲覧できました。

![スクリーンショット 2023-05-11 17.18.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2009/ddb663fc-11af-12a1-ed41-f370fba39a8e.png)

#### 3.4 その他の便利な機能

1. ショートカットキーを設定することですぐにDashを開くことが出来ます。
2. Search Profileで細かなDocsetsの組み合わせやショートカットキーの指定、特定のアプリをアクティブにするとそれに紐付いたProfileを有効にする、などが行えます。
3. JetBrains IDEやVisual Studio Codeと連携して、IDEやエディタでカーソル下にある文字列をDashで検索することが出来ます。
4. ドキュメントにアノテーションを記述することが出来ます。
5. ドキュメントにブックマークを付けられます。
6. Snippet機能を利用できます。

---

この記事を通じて、新人プログラマが開発効率を向上させるためのツール、Dashの基本的な使い方を述べました。Dashは、ドキュメントの一元管理、高速検索、オフライン利用といった機能を持った、コーディングを助ける強力なアプリケーションです。これらの機能を駆使することで、開発作業がさらにスムーズになり、より効率的な開発が可能になります。新たな道具としてDashを活用し、自身のスキルアップにつなげてください。これからのプログラミングライフに、Dashが役立つと嬉しいです。