StreetCompleteは、クエスト形式の簡単な位置ベースの質問に答えることでOpenStreetMapへの貢献を可能にするAndroidアプリです。このプロジェクトは、TestFlightを通じて利用可能なiOSデバイス向けのパブリックベータをリリースし、Appleプラットフォームへの移植作業を1年以上行いました。

iOS版はKotlin Multiplatformを基盤とし、AndroidとiOS間でほとんどのコードを共有しています。UIはJetpack Composeの拡張であるCompose Multiplatformに移行し、ビジネスロジックはViewModelに移しました。プロジェクトリードによると、今年の前半にフルタイムで作業を行い、2024年中頃までに移植は約50%完了しました。チームは、マルチプラットフォーム対応のViewModelとナビゲーションのためのいくつかのフレームワークを評価し、JetBrainsがAndroidX Navigationをマルチプラットフォーム対応にするongoing作業の恩恵を受けました。

draw.ioで描かれた現在のビューアーキテクチャを示す図、UIコンポーネントを表示
StreetComplete iOSポートにおけるCompose MultiplatformとViewModelsの使用を示す現在のビューアーキテクチャ図github.com

この図は、iOSポートでのUIをCompose Multiplatformに移行し、ビジネスロジックをViewModelに移す段落で議論されたビューアーキテクチャを示しています。

StreetComplete iOSポート開発における依存関係の進捗を示す図
さまざまな移行タスクの完了を追跡するために使用される進捗‑依存関係図github.com

この図は、移行が2024年中頃までに約50%完了したという statement に関連し、進捗がどのように追跡されるかを示しています。

初期のテスターは、フォームがバックジェスチャーでのみ閉じられること(一部では信頼できないと感じられる)や、WebViewではなくネイティブなAppleサインインを望む声、さらにマップ上での自分の貢献の追跡をもっと見やすくしたいという意見など、いくつかの制約を指摘しています。開発者はこれらの問題に対応していると述べていますが、ベータ版は依然として利用可能で、ユーザーは試してフィードバックを提供できます。

開発はコミュニティからの貢献とスポンサーシップによって支えられており、ドイツ連邦教育研究省がPrototype Fundを通じて資金を提供し、フルタイムでの作業を可能にするための寄付も歓迎しています。issue trackerでは、プロジェクトボードからタスクを引き受けてメンテナンスを手伝うことを誰にも呼びかけており、このオープンソースでボランティア主導の取り組みの性質を反映しています。