SwiftでKotlinのapplyを再現

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

 

Leave a Reply:

Your email address will not be published. Required fields are marked *