Unity 製の AR アプリをクリーンアーキテクチャ/Zenject/UniRxで整理した話

あけましておめでとうございます! スノーボードギアを一新しました。亀山です。またしばらく滑りに行けなくなりそうです。

今年もよろしくお願い致します。

背景

コベリンは、AR によってアクティブラーニングを促進する A-txt というアプリを提供しています。A-txt は Unity で開発しており、当初 ARToolKitX にコンテンツを後からダウンロードする機能を付加しただけのシンプルなアプリでした。そのため、Unity での最も素朴な実装方法となる、Prefab にアタッチされた複数の MonoBehaviour が UnityEvent などでつながって協調して動くという構成になっていました。

しかし、徐々に機能が増えるにつれ、MonoBehaviour が肥大化し、仕様変更が難しい状況になりました。MonoBehaviour のサブクラスなどの UnityEngine に依存したコードは、シーン上に配置されるため、どこで使われているかコードから追いづらくなったり、コンパイルエラーでコードの問題が検出しづらかったり、Unity Editor 上で動作確認をするためにその繰り返しが開発速度を落としたりする問題があったためです。いわゆる Fat View Controller と同じような問題です。

そこで MonoBehaviour にすべてが実装してある構成から、ビジネスロジックや通信等のコードを UnityEngine 非依存のクラスに適切に分割しつつ移行し、これらを最小限の MonoBehaviour から利用する構成への整理を行いました。

続きを読む

ラズパイの古いカーネルモジュールを消してしまいwifiが繋がらなくなったお話

f:id:takkumattsu:20211223113814p:plain:w250
f:id:takkumattsu:20211223113639p:plain:w250

みなさん、こんにちは。 id:takkumattsu です。
今年も後少しで終わりですね、コベリンは12/24から冬休みなので今日がお仕事納めになります。

コロナ禍の自粛であまりコベリンの面々とも会えなかったですが最近は少し収まってきたのもありちょっとずつですが日常が戻ってきた気がしますね。
来年はみんなで気軽に遊べる一年になるといいなーと思っています。

続きを読む