前提
iOSの知識やSwiftを触ったことないよ何から勉強したらよいの?という人向けです。
Swiftの言語使用というよりはiOS自体の知識 +α Swiftで学習すべきことです。
学習項目
-
Swiftの構文
- 変数、定数の宣言
- var と let
- 非オプショナル型、オプショナル型、暗黙的アンラップ型の違い
- if let と guard let 構文(オプショナルバインディング)
- クロージャの書き方(Objective-Cだとブロック)
- デリゲートの利用
- 変数、定数の宣言
-
メモリに関して
- メモリリーク
- 強参照、弱参照(ここを学習してデリゲートをweakで宣言しなければならない理由を理解する)
- クロージャのキャプチャについて(weak self を利用する理由を理解する)
Xcodeでメモリリークを検知する(Instrumentsの使い方)
-
TableViewの利用(特別大事なのでUIの作り方から独立して切り出しました)
- Cellの再利用
- CustomCellの利用
- UITableViewDelegate と UITableViewDatasource の役割(デリゲートメソッドがどんな機能を持つか)
- セルの高さを可変にする
-
UIの作り方
- Storyboardの利用
- xibの利用
- オートレイアウトで制約を付ける(画面回転や端末サイズに依存せず自動的にレイアウトが変化するようにする)
- IBパーツをカスタムクラスにIBOutlet, IBActionとして紐づけてコードで処理できるようにする
- 画像リソースをAssetsを利用して設定する
- @1x, @2x @3x などのレティーナディスプレイ対応をする
- スプラッシュ画面の設定
- アプリアイコンの設定
- UITabBarControllerの利用(よくある下にタブあって画面切り替えれるやつ)
- UINavigationControllerの利用(タイトルの表示や左上の戻るボタンがデフォでついてる領域を提供するVC)
-
通信について
- Alamofire + Codable で通信で取得したデータをEntityにマッピングする(アプリ内で扱えるようにパースする)
- NSURLConnection, NSURLSessionについて
- UIWebView, WKWebView, SafariView(それぞれどんな違いあるか)
- 通信で取得したデータをTableViewやCollectionViewに表示させる
-
MVCモデルについて
- Model
- Entity
- Featcher
- Manager
- View
- Controller
- Model
UIViewControllerのライフサイクル
-
GDC(非同期処理)
- DispatchQueue
-
証明書の紐づきと役割
- Developer証明書
- Distribution証明書
- プロビジョニングプロファイル
- App IDs
- APNs証明書
- プッシュ通知の仕組みと実装
-
iOSアプリの配布方法
- Ad-Hoc
- In-House
-
各種識別子
- UDID
- UUID
-
テスト用に配布するツール
- TestFlight
- Deploygate
-
ライブラリの導入ツール(以下どちらでも好きなほう)
- Cocoapods
- Carthage
プリプロセッサマクロの利用
-
デバッグ方法
- ブレークポイントの付け方
- po コマンドの利用
実機デバッグの仕方
-
リリースの仕方
- AppStoreConnectについて
- App内課金のアイテム作成と実装
- 申請時に必要なAppStoreメタデータ(説明分やスクリーンショット)
- アプリ固有のBundle ID
- ipa作成の仕方
- XcodeからAppStoreConnectにipaをアップロード
- AppStoreConnectについて
あとがき
まだまだいろんな項目あると思うのですが、ぱっと思いつかないので随時更新する可能性があります。
また、参考リンク等を追加したりチェックリスト式にしたりしたかったのですが余裕がなく一旦はこのままです
編集リクエスト大歓迎ですので参考リンクいっぱいください。