皆さんこんににちは。GROOVE X でソフトウェアエンジニアをしている id:iizukak です。2023 年 11 月に GROOVE X に入社して、4 ヶ月が過ぎました。
GROOVE X は組織・技術共に独自性が高く、面白いトピックがたくさんあるので、印象がフレッシュなうちにアウトプットしておこうと思います。
入社してもうひとつ驚いたことは、チームにマネージャがいないことです。
これまでのソフトウェアエンジニア人生では、チームごとにマネージャがいて、1 on 1 があって、様々な許可を申請して…
というのが普通でした。
GROOVE X にも領域ごとのプロダクトオーナーはいて、
スクラムのセレモニーなどではプロダクトオーナーに情報共有をしたり、方向性の確認を行う、ということはしていますが、一般的に言うマネージャとは違います。
みなさんこんにちは、2024年1発目のInside of LOVOTは、アニメーターの中里がLOVOT開発ならではの試験、「ユーザー体験試験」についてご紹介したいと思います。
技術ブログなのにTechから離れているんじゃない?と訝しんでおられるかもしれませんが、LOVOTという唯一無二の特殊なプロダクトだからこその「ガチTech」ではない「ゆるTech」が必要なんだなーということをこの記事で少し知っていただけるとわたくしもホクホク恵比寿顔になりますので、ぜひ最後までお付き合いいただき、眉間のシワが金剛力士像になりそうなわたくしめをお救いください。
ユーザー体験試験とは
Inside of LOVOTでも試験やQA(QualityAssurance)についての記事がこれまでにいくつかあったかと思います。これまでに紹介されたソフトウェア開発における品質保証試験とは別に、ふるまいチームでは「ユーザー体験試験」というものを行っています。
こんにちは、APPチームの黒田です。
この記事は GROOVE X Advent Calendar 2023 の24日目の記事です。
LOVOTは2023年より中国での販売を開始しました。今回は、それに関連してLOVOTアプリの中国向け対応、中でも特に位置情報を使った機能の対応について紹介します。
アプリで中国向け対応が必要な機能
アプリの中国対応と聞いてすぐ思い浮かぶことと言えば、Googleのサービスが使えない、ということが挙げられますね。
LOVOTアプリでは、主にLOVOTのお出迎え機能の実現のため、位置情報を取得したりGeofenceの機能を利用する必要がありますが、Androidで位置情報取得といえば、通常、Google Play services の一部である Location API を利用することになります。
我々がよく見るおなじみの位置情報サービスの設定画面、こちらは Google Play services の機能によって実現されているという訳です。
さて、これが中国本土向けのAndroid端末だとどうなるかと言えば、端末によってはこの画面がある場合もあるし、無い場合もある、ということになっているようです。
GMS(Google Mobile Service)がインストールされた端末であれば Google Play が利用可能、また Xiaomi 端末にて Basic Google services の設定をオンにすることでGoolge位置情報サービスが有効化されるものもあったりします。
なんにせよ、中国本土においては Google の Location API が利用できるという前提で開発ができない、ということになりますので、位置情報サービスが利用できるよう、別の手段を用意しなければなりません。
(なおiOSの場合は、何もしなくても日本国内向けアプリで実装した位置情報取得や Geofence の機能がそのまま使えます。素晴らしい。)
その他、FCM(Firebase Cloud Messaging)が使えない、Firestoreも使えない、Firebase Authentication を直接利用することも出来ない、電話番号によるログインがほぼ必須、などといった問題もあり、それぞれ対応が必要でしたが、以下、この記事では位置情報サービスの利用に話題を絞ります。
ここから実際の SDK の利用について説明したいのですが、その前に中国本土内での位置情報の座標系について触れておきます。
我々が普段地図で見ている緯度経度、開発者であれば Location API で取得したり、Maps API で地図データを取得するのに利用している緯度経度の情報は、WGS-84 と呼ばれる座標系における値となっています。
正直、私もそのようなことは意識したこともなかったのですが、ここで中国本土においては GCJ-02 と呼ばれる別の座標系が採用されている、ということが問題になります。
WGS-84 と GCJ-02 の相互変換アルゴリズムは公式には公開されていないため、簡単に言えば、中国本土内にてある位置の地図を取得しようと思えば、中国国内で提供されているサービスを使わざるを得ない、ということになります。
(例えば、中国本土でどうしても Google Maps API を利用したければ、中国のクラウドサービス上に Google Maps API へアクセスするProxyを実装する、といった荒業も可能かもしれませんが、それで取得できたマップは正しくないので意味がない、ということになります。)
座標系の問題も、Baidu などの SDK を利用せざるを得ない理由の一つという訳です。
さて、GROOVE X では、一緒にアプリを開発してくれる方も募集中です。
Unity といえばゲームやVRなどの開発が殆どかと思いますが、それらとは一味違う開発の経験が可能です。大量の3Dオブジェクトのリアルタイム制御、美麗なグラフィック、というような開発要素はほぼ無いのですが、アプリと連携するクラウド側やLOVOT内で動作するサービスの開発、ネイティブの機能を利用するためのプラグイン開発などに興味のある方がいらっしゃれば、是非よろしくお願いします。