iOS開発の事始め
今まで近くて遠い存在だったiOS開発ですが、ひょんな事から先月より自社アプリの主担当に就任し、突貫で技術習得しました。 「ピンチはチャンス」 、この1ヶ月は会社の理解もあり引き継ぎ名目で集中してインプットができました。
ここで1ヶ月を振り返り、覚えたことをメモがてら記録しておこうと思います。
やったこと
Xcodeの使い方を学ぶ
ウィンドウ名称の把握
まずは各ウィンドウの名称を把握し、ググれる準備からです(^_^;)
【アプリ開発】Xcodeのウィンドウ名称 | Fussan Blog
こちらのサイトなど、参考にさせていただきました。 また、書籍でいくつかのXcodeバージョンのキャプチャなども確認しました。
ファイルタイプの把握
利用されているファイルの種類についても少しまとめました。
- .xcodeproject: Xcodeプロジェクト。実体はディレクトリで存在する。
- .xcworkspace: Xcodeワークスペース。Pods利用など、プロジェクトが複数になるときに利用。
- .plist: プロパティリスト。内部的にはxmlで記載される、おもに設定ファイル。
- .h: Objective-Cヘッダーファイル。
- .m: Objective-Cメインファイル。今回の主戦場。
- .swift: Swiftファイル。残念ながら当該のプロジェクトではほぼ取扱なし…
- .xib: XML Interface Builderファイル。単ページのテンプレートフォーマット。
- .storyboad: Storyboadファイル。画面遷移を可視化できる新テンプレートフォーマット。
- xibからstoryboadへの完全移行も共存も可能。
- .xcassets: アセットカタログ。ディレクトリ構造のファイル群を
contents.json
を用いてカタログ管理している。
エディタの把握
Xcodeを使った最初の違和感は、ツールを触った際に出てくる git差分 でした。どの操作がどのコードに影響を与えているのかが、序盤の肝となりました。
ナビゲータ/プロジェクトエディター
ナビゲータの ファイルツリーは実ファイルの配置と異なります 。こちらは [プロジェクト名].xcodeproj
下の project.pbxproj
で管理されており、ファイルの並び順が変わった際にもコードが書き換えられます。
ナビゲータツリーのルートをクリックすると、プロジェクトやターゲットの設定(下図)が確認できますが、こちらも [プロジェクト名].xcodeproj
下のxml等に対する書き出しを行っています。
なので、意図する書き換え以外で [プロジェクト名].xcodeproj
下に差分が出た際はマウス操作等による可能性もあり、ちょくちょくコミットから外しています。
アプリ起点について
コードリーディングに際して真っ先に気にする起点についてもこちらに設定がありました。Main Interface を用いて起点となる Storyboard
が選べるようです。
とはいえ、 AppDelegate.m
も起動時に実行されるので、こちらでインスタンス生成しても良さそうです。
インターフェイスビルダー/ストーリーボード
xib/storyboard を開いた際はこれらのエディタが起動しています。こちらもXcodeのバージョンアップでオプションの追加などが発生し、ときおり意図せずコードが勝手に書き換わるケースがあります。
アセットカタログ
xcassets は実ファイルが json
で存在するのですが、画像をサイズで括って管理するのに便利です。旧仕様だとおそらくファイル名に hoge@2x.png
などと節尾句を設けるのがセオリーだったようですが、こちらのほうが一覧性もあるので、追々完全移行する予定です。
唯一、多言語対応の考慮がされていないのが難ありです。
Objective-Cを学ぶ
ネット上の記事やブログはSwiftに席巻されていて、Objective-Cについてはあまり残っていませんでした。こちらは書籍を購入し体系的に学習中です。
- 作者: 荻原剛志
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2011/12/23
- メディア: 単行本
- 購入: 14人 クリック: 98回
- この商品を含むブログ (25件) を見る
NSLog(@"test");
最初に学ぶべきはどの言語でもダンプでしょう。わたしはそのほうが捗ります。
- コード実行箇所のあたりを付けて、ブレイクポイントで確認。
- ダンプで細かな値なども確認。
これで実動を踏まえたコードリーディングが可能です。 ひとまずObjective-Cはこれを利用して読み解いていく予定です。
ライブラリ管理を学ぶ
CocoaPodsの把握
iOS開発ではCocoaPodsというパッケージ管理ツールを用いるようです。
こちらを扱い始めると、実プロジェクトと別に Pods
プロジェクトが併設されます。それによって、Xcode起動直後に開くファイルが xcodeproject
から xcworkspace
に変わります。
xcodeproject
を開いてビルドしようとすると、 Libraryが見つからない という内容のエラーに苦しみます…(苦しんだ)
インプットが多く纏めきれませんでしたが、俯瞰的にこんな感じで情報収集をしていました。次はもう少し絞り込んで、メモを残そうと思います。