2015-11-26

Swift iOSアプリ開発で苦労したこと

SwiftといってもOpenStackのほうではない。
iOS開発の経験はは大学生のころに Titanium Studio を使ったことがある程度しかなかったが、仕事帰りの時間と休日をつかってミニアプリを2週間弱で実装できた。


やったこと


  1. 「こんなアプリほしいなぁ」から始動
  2. Apple関連公式ドキュメントをざっと流し読み
  3. 「アプリ作るプラットフォームなので、アプリを作ろう」と心を固める
  4. 概要をつかんだら書き始める。iosはインターフェースの設計の筋がいいのか混乱せずにさくさく書ける印象
  5. 実装したい機能をググッて実装。ネット情報は玉石混交なのでSwiftやiOSのよさを潰さないように注意
  6. Apple Store サブミット


雑感


  1. apple本家の流儀はくみとったほうがよい
    • 趣味レベルだとapple本家の流儀はくみとったほうが後々の対応コストも低くてよさそう
    • 例えば、できるだけuiはコードで組み立てずにinterface builderに仕事させるとか。Auto Layoutは唯一ハマった箇所だけど使ってよかった今は思ってる


リファレンス


  • SwiftとiOSのドキュメントはDashを他の言語と同じように使った


はまりどころ


  1. Auto Layout
    • 半日費やした
    • 「概念の理解→InterfaceBuilderの操作を覚える」という2ステップが必要
    • 身近にメンターがいるならAuto Layoutだけでも教えてもらうとよさげ
  2. DataSource
    • テーブルを操作するときに「?」となった
    • TableViewの前段にレイヤーがあると理解する


サーバ側


今回のアプリはYouTube APIを直接叩くのがメインで、自前で用意したのは画像くらい。
  • iOSアプリからの通信はhttps推奨なので ASW S3 → CloudFlareのSSLオプションを使った


次やること


本当はCI環境整備とリファクタリングまでやってから知見まとめを書きたかったが授業が始まってしまい時間があまりとれずTBD状態。

  1. 設計
    • 1回アプリをリリースしてViewControllerが肥大化しがちなことを身をもって知った
    • リリースした後くらいに Hatena-Textbook/swift-development-apps.md が公開されたので読んでみた
    • Hatena-Textbookレベルの実コードとアーキテクチャ両面を解説してくれている記事は見かけなかったので非常に助かる
  2. CI環境
    • 設計のリファクタリングと併行して進めたい
    • iOSアプリテスト自動化入門』を読んだ
    • 北海道旅行の帰りの飛行機で新千歳→成田の間で読みきれた
    • Objective-C時代の書籍だけど知りたいことは知れた
    • どのあたりまでユニットテストの対象にするかは模索することになりそう。DataSourceは入れるのか、入れないのか。

Author: @ymkjp