Start Developing iOS Apps (Swift)でiOS入門した
iOS入門してる https://t.co/PAsGWOODlM
— suzuken (@suzu_v) 2018年4月29日
GWだしまとまった時間があるので、いつかやろうと思っていたiOSアプリづくり入門をした。とりあえず10時間くらい触った。楽しい。
Apple公式のドキュメントが充実しているっぽいので、ひとまずStart Developing iOS Apps (Swift): Jump Right Inをやってみることに。内容としては食べたご飯の画像と評価(といっても☆が5つあってそれを保存する)を保存するアプリを作るというもの。次のことを順をおってやっていく。
- storyboardでのUIの作り方
- UIコンポーネントとAction, Outletのつなげ方
- Auto Layoutで余白をつくったりレイアウトを調整してみる
- UITableViewにデータを表示する
- 詳細画面とTableViewで同じデータをもとに表示する
- 編集と新規作成で同じUIを使いまわす
- 投稿データを削除できるようにする
- FileManagerを使ったデータの保存と読み取り
ところどころアドバイスがあるので横道にそれながら進むのも楽しい。「ここはもっとcomplexなケースだとDelegateをつかうといいよ」とか「guardをつかうとよりシンプルにかけるよ」とか。だいたい公式リファレンスに詳しく書かれていてそっちも面白いので、チュートリアルそっちのけで読んでしまった。
面白いなあと思ったことを書いておく。
- importにannotationが書ける。
@testable import xxx
的な。 https://twitter.com/suzu_v/status/990871005944934402 inout
修飾子をつけたときのrace condition検出 https://twitter.com/suzu_v/status/990906606236778496 https://twitter.com/suzu_v/status/990908591287689217- Navigation Controllerの存在。これがあるので、どういう表示をさせるかっていう切り替えがシンプルに実現されてる。 https://twitter.com/suzu_v/status/991106763087728640
- Modalityの使い方一つとってもデザインガイドラインがちゃんとあってすごい丁寧。 https://twitter.com/suzu_v/status/991149974216847361
- NSObjectとNSCoding Protocol。Persistent Dataにするための実装がわかりやすい。これならどういう型でもSerDeを書けば保存読み込みできる。 https://twitter.com/suzu_v/status/991244362305519616
あとはよくわからないなあと思ったことをメモっておく。
- Protocol。 The Swift Programming Language (Swift 4.1): Protocols をちゃんと読むとよさそう。ふるまいとしては「どういうメソッドがあるか」「どういうプロパティがあるか」とかを定義できる。インタフェースとかトレイトとか抽象クラス、ではなくProtocolとしたのはなんかもう少し違う概念なのかな、と想像してる。
- Auto Layout。marginやらwidth, heightやらを設定してるんだけどなんかうまく調整されないときがある。ので、 Auto Layout Guide: Understanding Auto Layout を読むとよさそう。