前編
↑で書いたとおり、アプリ開発はAndroidしかやったこと無い(厳密には古にTitaniumMobileでiOSアプリをリリースしたことはありますがノーカウント)中の人が、iOSアプリやるぞ!と目標立ててこつこつやって公開するところまでできたのでログを残しておきます。
リリースしたもの
apps.apple.com事前に勉強したこと
前編で書いたとおりですが
チュートリアルで雰囲気を掴む
アプリを作る上で必須レベルの実装パターンをサンプル作って検証
設計について勉強
実装の方針
- 勉強も兼ねているので、できるだけライブラリを使わず自前でどうにかする
- 車輪の再発明になってもいい。部分的に参考にしても書いたコードはちゃんと説明できるようにする
- 闇雲に作らず、それなりにテスタビリティを確保して実戦的な設計をする
- SwiftUI は使わないで、StoryboardでViewを組む
- もしなにかの折にiOSの仕事を手伝うことになった場合、SwiftUIしか使えませんというのはまだ時代が追いついてないと思ったので
全体の設計はこんな雰囲気
- DomainLayer
- ドメインのコアロジックを担う
- InfrastructureLayer
- ドメイン層が公開しているRepositoryProtocolをCoreDataを使って実装する
- PresentationLayer
- レイヤー間のIFは組み込みCombineフレームワークを使って繋げています。だいたいrxっぽい雰囲気で使えるやつでした
感想
- Storyboardを使ってViewを組むのは難しいというかハードルが高いと感じました。。。ただツールの使い方の問題なので長いこと使っていれば自然と違和感なくなるのかなとも思います。AutoLayoutについてはAndroidにも似たようなConstraintLayout(こちらのほうが後発)があるのでそこまで戸惑いませんでした。
- AndroidはGoogleが公開しているCodelabsという、ハンズオン的な教材があり、定期的に見ることでキャッチアップしやすい環境があるのですが、iOSにもそういうのがあるといいなあと思いました(知らないだけな気もしますが)
- 本当はテストまでちゃんと書く予定だったんですが、家庭のイベントが重なって時間が取れなくなってきたのである程度動作確認できた段階でえいやーで公開しました。
- わからん、わからん言いながらどうにか公開までできましたけど、やはり未経験の分野に飛び込んで何か無心で作ってる時間は楽しいですね。