Day: October 21, 2018

October 21, 2018 Yuuki Nishiyama 0 Comments

Ouluでの仕事の一つとして、これまで開発したいたAWARE Frameworkを大規模センシングにも対応できるように、AndroidライブラリはKotlin、iOSライブラリはSwift、サーバサイドはNode.jsで再設計・実装中。KotlinとSwfitは言語仕様がかなり似ているの、新しいAWAREではAndroidとiOSの両プラットフォーム上でほぼ同じ記述でセンサを操作できるようになる予定。 Android側のコードレビュー中に、Kotlinの「apply」と呼ばれるスコープ関数をうまく使って、センサの初期設定をしているのを発見。今回は、そのapplyをSwiftでも実装してみたのでその技術メモ。調べてみたところ、どうやらSwiftでもクロージャを使えば再現できるみたい。 SensorクラスとConfigクラスの実装。 インスタンス化は、Sensorクラスのコンストラクタ引数に、Sensorクラス内のConfigクラスを与える。Configクラスのapplyメソッド呼び出すことで、スッキリしたコードでセンサクラスの初期化とConfigの設定が可能。センサの設定項目を増やしたい場合は、Config側に変数を追加するだけ。 初期段階ではビルダーパターンで実装していたけど、各センサ毎に設定メソッドを実装するのはかなり面倒だったので、applyの方がかなり楽に実装できる。 参考資料 https://qiita.com/tsumuchan/items/e4913c9583d00d9bea7d https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e