概要
iOS9/Xcode7のリリースが間近に迫った頃、そろそろSwift導入に向けて動きたいなぁと思ったときに勉強を初めて、何かしら成果物を出すまでの記録しておく。
前提
- わたしは会社員プログラマー(時間はたくさんは取れない)
- 普段はiOS/Android/Ruby on Railsでスマホアプリを開発している
- Swiftは業務では導入されておらず、Objective-Cがメイン言語
入門してから成果物をアウトプットするまでの期間
10日くらいだと思います。毎日少しずつ書籍/資料で勉強&サンプルコードを実行しておいて、最後の3日くらいでバッと成果物を作った。
勉強に利用したツール/書籍/資料
まずどこから手をつけようかといった時に、ざっとSwiftの概要をつかむために幾つかの資料/書籍をまずは読んでいった。自分が読んだものは以下。
選んだポイントとしては、あまり古いともう使い物にならなそうなので、少なくともSwift1.2以上に対応しており、かつ意識的に更新されているものを選びました。
- [The Swift Programming Language (Swift 2)]
(https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/) - 基本的にはリファレンス的に使いました。実際に手を動かしてわからない事があった時にこの資料に立ち返って、「ふむふむ、なるほど」をするための資料。
- Swift離陸ガイド
- 比較的新しく、更新も頻繁に行われているのでKindleに入れて朝の電車でパラパラめくりながら出社した。ただ、サンプルコードが少ない。時間のある時に読んでおき「あーこんなことあったなー」と思い出す種を作るための書籍。
あとは、自宅や休み時間などにXcode7 Betaを使ってサンプルコードをコピペ実行してく日々だった。
成果物
結果として Migrator
というアプリのアップデート時のMigration処理をハンドリングするライブラリを作ったので、CocoaPodsで公開した。
ライブラリの実装自体は以前から、MFMigrationManagerを参考にしてObjective-Cで自身の必要な仕様を含める形でカスタムして実装していたのをSwiftに移植した。
などなど、今後もよく使っていくであろう部分を意識して仕様に取り込んで実装していった。
Swiftで実装をした感想
今回、Swiftを使って数日間プログラムを書いてきた感想はこんな感じ。
- コンパイラがいちいち注意してくれるのである程度安心して書ける
- 普通にアプリ実装する上ではそんなにObj-C時代と大きく変わることはなさそう
- むしろObj-C時代の知見が生きてすんなりSwiftも身につけられそう
- Xcodeが不便
- Refactor機能が動いてくれなかったり
- CleanしてBuildし直さないと他のクラスからメソッド補完できないとかが何度もありかなりイライラした
- Obj-Cの時のように参考となるコーディングガイドラインがないのでこれでいいのか?みたいに思う時もある
- まだまだ覚えていくこと多そうなのでどんどん取り入れて効率的にプログラムしたい