忘備録-iOSアプリ開発の前知識


趣味でiOSアプリ開発をかじっていた自分が、改めてiOS開発を勉強し始めた際に、曖昧に理解していたところや知らなかったところをメモしています。いつか書き直します。

## 参考文献

この記事は以下の書籍の情報を参考にして執筆しました。１章と3章を読んだ時のメモです。

- [本気ではじめるiPhoneアプリ作り Xcode 10.x対応 (Informatics&IDEA)](https://www.amazon.co.jp/%E6%9C%AC%E6%B0%97%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8BiPhone%E3%82%A2%E3%83%97%E3%83%AA%E4%BD%9C%E3%82%8A-Xcode-10-x%E5%AF%BE%E5%BF%9C-Informatics-IDEA/dp/4815600031/)


##アプリ開発の流れ

1.企画
2.製作 : デザインの検討や画面パーツを作成する
3.開発 : プログラミングを行う
4.テスト
5.リリース
6.フィードバック対応 : ユーザの反響への対応とアップデートの内容を考える

#Xcodeについて

###ツールバー
ツールバーで知らなかった機能をまとめた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/39f24bd8-81e7-8695-ddcc-4a23cf99fae9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/eb4b905c-16af-44bf-c839-0af4f3dad434.png)
コードファイルを開いて選択すると、よく利用されるコードが集められたライブラリが表示される。
Storybordを開いて選択すると、UI部品などが集められたライブラリが表示される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/5dd3a07e-9129-452e-01a2-5984679d844b.png)
プログラムコードのバージョン履歴を回覧できるエディッタを表示する。回覧できるのはローカルのbranchのみ。



###ナビゲータエリア
ナビゲータエリアで知らなかった機能をまとめた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/5a8910bf-0da3-cf1d-1ebc-d03c04d15d05.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/7b98da14-fe81-7519-c443-7ef7bc5c2c99.png)
プロジェクト内のソース管理状態の一覧を表示する。チームの人のコミットメッセージとか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/0bd17533-001d-3110-276d-dedca8296faf.png)
プロジェクト内のクラス・メソッド定義の一覧表示をする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/cb767f55-ecc8-21b2-97a9-964b82732076.png)
テストコードの一覧表示をする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/c3823aee-f3b6-6075-d62c-087d39baa0d8.png)
ビルド操作の結果を一覧する。ビルド日時、成功したかどうかなど。

###インスペクターエリア
storyboardのインスペクターエリアでアイコンごとに何ができるか曖昧だったのでまとめた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/7d77d1cf-7b0a-e151-801f-eff0a0664441.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/3b78d35a-4e9d-ac5b-bee6-172161710c35.png)
UI部品の識別子に関する設定を行う。部品に対応するクラスとか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/40e05219-650d-bd79-38eb-ec5be3b33f72.png)
UI部品の各属性の設定を行う。書式とか初期表示の文字列とか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/7fa8ca5f-45fb-7a28-20bf-205aa03af63e.png)
UI部品のサイズ設定を行う。



###デバッグエリア
デバッグエリアで知らなかった機能をまとめた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/daddb6da-c383-a0fe-b2fe-aed3b71adae8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/c773e288-181c-a0f5-d2a6-74e0b136851f.png)
プログラムで停止中のビュー階層を表示。部品を右クリックしてPrint Description of~を選択すると部品の制約などを表示できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/67dbaee7-8df5-93e8-03f2-a3b9fb5d7f5b.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/c09b6f63-545f-26b2-3c01-a19ac876fbcd.png)
メモリをビジュアル表示する。どの値でどれくらいのメモリを使っているのかがわかる。また参照の関係性がわかるので循環参照に気づける。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/60976e34-f50d-72c4-daf7-007233196732.png)

#シュミレータ

##特殊なシュミレータの操作
二本指でのドラッグ : [option]と[shift]を押したままドラッグ
ピンチイン・ピンチアウト : [option]を押しながら内側・外側にドラッグ

##シミュレータでスクショ
PNG形式でデスクトップに保存する場合 : [File] → [New Screen Shot]
クリップボードに貼り付ける場合 : [Edit] → [CopyScreen]


##実機とワイヤレスで接続する設定

1.Macとデバイスをケーブルで接続
2.[window] → [Device and Simulators] を選択
3.[Device]を選択
4.接続するiOSデバイスを選択
5.Connect via netwoek にチェックを入れる

##定義情報の確認
[command]+[control]キーを同時に押したままUIViewControllerにカーソルを持って行ってクリックすると定義が観れる。

```swift
class ViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
  }
}
```

#Storyboard

##ドキュメントアウトラインの構成要素
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542614/f7e363f6-c4fc-03e5-7b5a-d5da1258d8cb.png)
First Responder : このViewControllerを最初に起動した時に反応するクラスを制御する。
Exit : このViewContorollerを終了して他の画面に遷移するときの処理を制御する。