超聖域:そら案内

こんにちは、そら案内担当のitokです。

超聖域ということで私が選んだ題材は「そら案内」でした。WWDCで発表されたiOS9 / watchOS2 / Swift2.0、これらをふんだんに使った新しい「そら案内」を、ということで調査含めてがっつりと時間を使わせてもらいました。

ものすごくざっくりというともともとiOS6で書かれていた現行のそら案内をiOS8で、そしてもちろんSwift2.0で書き直そうという取り組みです。

さて、そら案内は予報を取り扱う共通ライブラリ的なものがありまして、それでもってiOS/Mac版、あるいはほかのそらシリーズのアプリとの共通化を図っています。

というわけで、まずはその部分の作り直しです。もともと後付けの機能やらなにやらでごちゃごちゃしてきたところもあって、そのあたりをすっきりとさせました。そのあたりはAndroid / Windows版を新規に作ってきた上でのフィードバックって感じですね。

データベースにはRealmを採用し、予報のパースにはHimotokiを。JSONマッパーは初めて使う(面倒そうで躊躇していた)のですが、定義さえしてしまえばすごくすっきりしたので大満足です。

Realm is a mobile database: a replacement for SQLite & Core Data

ikesyo/Himotoki · GitHub

通信部分はもともとAFNetworkingだったんですが、そもそも単純なGETくらいしか使っていないので、素でNSURLSessionを使うことにしました。

日程の前半を使って共通部分を書き直し、後半でちょっとした動作デモでも、、、と思ってwatchOS2に手を出したのですが・・・

当時はそもそもCocoaPodsがwatchOS2に対応していなかったり(週をまたぐと対応されていた)、ほかのライブラリ群が対応していなかったりということであえなく断念。このあたりがβ環境を突き進んでいるときの弊害ですね。仕方ない。(2015.7.29時点ではおおむね対応されているようです。ライブラリ作者の皆様ありがとうございます)

そのかわりといってはなんですが、watchOS2のcomplicationまわりをいろいろと触っていまして、各CLKComplicationTemplateで必要とされているアイコンのサイズが複雑過ぎたので一覧を作ってみました。参考までにどうぞ。(外にお見せできる成果はこのくらいなんで)

CLKComplication_list

全体として、こういう大がかりな作り込みはまとまった時間をしっかり使わないと難しい(いつものように複数プロジェクトを平行して作業していると難しい)ので、ちょうどいい機会でした。1本に集中しきれなかったのは残念でしたがそれはそれとしてそれだけ手間取ることができたのも時間があったからというところもありますし、もし次の機会があればそれに生かしたいと思います。

さてさて、次期バージョンのそら案内、iOS9に間に合わせるべく熱意作業中ですのでお楽しみに。

このエントリーをはてなブックマークに追加