Month: October 2018

October 31, 2018 Yuuki Nishiyama 0 Comments

週末にフィンランドのお隣の国、エストニア共和国の首都タリンを観光してきました。タリンにはヘルシンキからの高速フェリー(往復で80ユーロ程)を使って2時間で行けます。たまたまヘルシンキに出張で来ていた野球部時代の同級生と一泊二日の弾丸観光。エストニアの旧市街地は世界遺産にも登録されています。

October 25, 2018 Yuuki Nishiyama 0 Comments

iOS 10から、サードパーティアプリから電話関係の操作を可能にするCallKitが追加された。今までは、CoreTelephonyを使ってイベントを検知できていたが、iOS10からはCallKitが推奨されているので、せっかくなのでSwift4でコードを書き直し。

October 23, 2018 Yuuki Nishiyama 0 Comments

現在繋がっているWiFiアクセスポイント情報をSwift4+iOSで取得する方法をメモ。Appleの公式開発者サイトにSwift3での綺麗な書き方が載っていたのでアレンジしてみました。 まずは、Xcodeのcapabilitiesから、Access WiFi InformationをONにする 次に、以下のコードを使って、WiFi情報を取得する。compactMap初めて使ったけど便利そう。 getNetwrokInfos()メソッドを呼ぶと、NetworkInfo構造体が配列形式で取得できます。   参考資料 https://forums.developer.apple.com/thread/50302 https://qiita.com/naokits/items/aa16e1553880c7ddbfbf https://ja.stackoverflow.com/questions/31603/nehotspothelper [iOS 10] 接続中のWi-FiのSSIDを取得するCNCopySupportedInterfacesは、iOS 10で復活していた  

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