アップル公式リファレンスと仲良くなって、目指せ楽々アプリ開発！


#何をどう調べたらいいのかわからない

アプリ開発をはじめたころは、わからないことだらけです。
Xcodeの操作がわからない、ストーリーボードの使い方がわからない、書いているプログラムの意味がわからない、エラーがいっぱいでるけどなんでそうなるのかわからない、機能を実現するために何をどうやって調べたらいいかわからない。

いろいろとわからないことはありますが、今回は『機能を実現するために何をどうやって調べたらいいかわからない』に焦点を当てて、その対応方法を紹介します。

#あなたは何を使って調べますか？

ここでひとつ質問があります。

アプリ開発をしていてわからなくなったとき、あなたは何を使って調べますか？

1.ネットで検索する
2.本を読む
3.アップル公式リファレンスを見る

おそらく1→2→3の順番で使用頻度が高いのではないでしょうか。
たくさんの方がネットにアプリ開発に関する情報を公開してくれるおかげで、ネットで検索すると大抵のことは見つかります。
しかし、ネット上の情報を参考にするときに、ふたつの注意点があります。

1.情報が古いかもしれない
2.情報が間違っているかもしれない

記事が公開されたときは正しく動いていたとしても、新しいバージョンのXcodeではエラーになることはしばしばあります。
また、ネットの記事は編集されていないことが多いので、内容に誤りがある可能性もあります（もちろん正しい記事がほとんどですし、ネットの記事を批判しているわけではありません。念のため）。

あるていど経験を積むとその辺りの判断ができるようになってきますが、最初のころはそのまま鵜呑みにしてしまいがちです。

#アップル公式リファレンスがオススメ

そこでオススメなのが、アップル公式リファレンスです。

なんと言ってもiOS、そしてXcodeの開発元のアップルが作成している資料なので、最新情報への対応や正確さはピカイチです。

しかも、詳細な説明はもちろん、わかりやすいサンプルコードやベストプラクティス（より良いコードの書き方）までついています。しかもしかも、なんと無料です！

こんな素晴らしい資料を使わない手はありません。

とはいえ、英語だし、技術用語が多くて一見とっつきにくそうだし、やや敷居が高い（以前のわたしの感想）ことは否めません。

#リファレンスの読み方を紹介します

というわけで、リファレンスの簡単な読み方を紹介します。

たとえば開発中のアプリに『BGMを追加して繰り返し再生したい』としましょう。

とはいえ、音楽再生機能を使ったことがなければ、どんな言葉でリファレンスを検索すればいいかわからないですよね。

そこで、まずはネットで検索します。

おっと、さっきはネットじゃなくてリファレンスをって言ってたくせに、と誤解しないでくださいね。まずはiOSで音楽再生するときにどういう名前の機能を使えばいいかを検索するのです。実際の使い方はリファレンスを参考にするのでご安心を。

キーワードは、『BGM』『音楽』『再生』などがよさそうですね。あとは『Xcode』や『Swift』をキーワードに追加して、『Xcode BGM再生』や『Swift 音楽を再生』などで調べると見つかりやすいです。
さて、検索するといくつか候補が見つかります。検索した記事をいくつか見ると、どうやら『AVAudioPlayer』というのを使えばよさそう、ということがわかります。

そこに自分の思い描く使い方が紹介されていればラッキーですが、いつもそうとは限りません。そこで、ついにアップル公式リファレンスの登場です。Xcodeのメニューから『Help→Documentation and API Reference』を選択しましょう。

![Help.png](https://qiita-image-store.s3.amazonaws.com/0/38924/e2e71554-0612-4b5c-290c-988fbb407fb9.png "Help.png")

するとリファレンスが表示されるので、次に検索欄に『AVAudioPlayer』と入力してClass Referenceを選択します。
![Window_と_Documentation_—_NSObject_Class_Reference.png](https://qiita-image-store.s3.amazonaws.com/0/38924/15171f30-5f28-24e2-aaee-87336039c0cc.png "Window_と_Documentation_—_NSObject_Class_Reference.png")


そうすると『AVAudioPlayer』の説明が表示されるので、ざっと概要を眺めます。このときに、全部理解しようとするとくじけちゃうので、わからない単語は飛ばしながらざっと読むのがポイントです。
いろいろと書いていますが『provides playback of audio data』とあるので音楽データを再生できそうですね。よしよし。
![2015_12_20_11_52.png](https://qiita-image-store.s3.amazonaws.com/0/38924/6a998ec6-9110-88fa-494e-f06f61a6f6af.png "2015_12_20_11_52.png")

次にこれまたざっと上から下まで眺めていきます。すると『Configuring and Controlling Playback』という見出しがあります。ここには『AVAudioPlayer』で使える命令や設定が並んでいます。
![2015_12_20_11_55.png](https://qiita-image-store.s3.amazonaws.com/0/38924/9b277048-69c4-7ec6-36e6-3afe505e205b.png "2015_12_20_11_55.png")

ということは繰り返し再生する方法も書かれているかも……と順番に見ていくと……。
あった、ありました。『numberOfLoops』という項目があります。Loops（繰り返し）の数（numberOf）とありますので、かなり有望ですね。
![2015_12_20_11_57.png](https://qiita-image-store.s3.amazonaws.com/0/38924/36cc3c67-a7ff-5413-2f5c-cb005780926c.png "2015_12_20_11_57.png")
さっそく見てみましょう。①概要には『numberOfLoops』の簡単な説明が書いています。
まず『property』と書いてあるので、設定などのデータを保存できる箱だということがわかります。次に、『to repeat playback』とあるので、リピート再生の設定っぽいですね。よしよし。

②設定にはこの『numberOfLoops』に設定できる値の種類が書いています。Swiftの場合は『Int』とあるので、『numberOfLoops』にはInt型、つまり整数を入れることができることがわかります。

③使い方には詳細な使い方が書いてあります。ですので、ここをじっくりと読んでみます。すると『indefinitely（無期限に）』という単語が見つかりました。おおっ、これはいけそうな予感。というわけで、その前後の文章を見てみましょう。
『Set any negative integer value to loop the sound indefinitely until you call the stop method.』
『Set any negative integer value』なので、マイナスの数値を設定すればいいような気がします。
『to loop the sound indefinitely』なので、無期限に音楽を再生してくれそうですね。
『until you call the stop method.』なので、stopというメソッドを呼び出すまでということなか？

つなげると、マイナスの数値を設定するとstopメソッドを呼び出すまで無期限に音楽を再生してくれそうです。

#サンプルコード

というような感じでアップル公式リファレンスを読みながら書いたコードがこちらです。

```Swift:
import AVFoundation		//AVFoundationフレームワークをインポートする

    //プロパティ
    var bgmPlayer: AVAudioPlayer?	//BGMプレイヤー

    //BGM再生開始
    func playBGM(filepath: String) {
        guard let url: NSURL = NSURL(fileURLWithPath: filepath, isDirectory: false) else{
            return
        }
        do{
            self.bgmPlayer = try AVAudioPlayer(contentsOfURL: url)
        }
        catch{
            print("BGM再生エラー")
        }
        // numberOfLoopsに-1を入れて無期限に繰り返し再生する
        self.bgmPlayer?.numberOfLoops = -1
        self.bgmPlayer?.play()

    }
```

#アップル公式リファレンスと仲良くなって、目指せ楽々アプリ開発！

最初はとっつきにくいアップル公式リファレンスですが、何度も読んでいるとだんだんと慣れてきます。
英語に慣れてくるという理由もありますが、同じような単語が何回も出てくる、同じような書式で書かれているのでどこを見ればいいのかわかるようになる、という理由が大きいです。

あなたがもしアップル公式リファレンスを避けているようでしたら、ぜひこの記事を読んでチャレンジしてみてください。

とはいえ、『ネット検索ダメ！ゼッタイ！』というわけではありません。ネット検索と公式リファレンスの両方をうまく使って、アプリ開発力を上げましょう。

この記事が、あなたの楽アプリ開発（ラクにたのしいアプリ開発）の一助とならんことを。