長く計画されてきたAndroid以外への展開

StreetCompleteの開発者たちは、コードベースの大部分を共有したまま、OpenStreetMapの編集アプリをiOSに展開するための技術的な道筋を示した。プロジェクトの作業を取りまとめるイシューは、この移植を単なるパッケージ化ではなく、大規模な取り組みとして説明している。Android向けのインターフェースを再構築し、プラットフォーム固有のコードをアプリケーションのロジックから分離し、互換性のない依存ライブラリを置き換える必要がある。

StreetCompleteは、タスク形式のモバイルインターフェースを通じて、利用者が地域の詳しい情報をOpenStreetMapに追加できるようにする。この体験をApple端末に広げれば、潜在的な貢献者の層を拡大できるが、既存のアプリケーションはAndroidを前提に作られている。プロジェクトによると、コードはすべてKotlinで書かれており、別の言語で全面的に書き直さずにクロスプラットフォーム版を作るうえで、有用な出発点となっている。

計画では、Kotlin Multiplatformで共有ロジックを複数の対象向けにコンパイルし、Compose Multiplatformでインターフェースのコードを共有する。開発者はまず、AndroidやJavaに固有の構成要素をアプリケーションの中核から切り離す必要がある。また、画面をAndroidのXMLレイアウトからJetpack Composeへ移行し、その後、比較的小さな次の段階としてComposeのマルチプラットフォーム版に移る作業も進めている。

1つのコードベースでも、必要な作業は膨大

この手順は、AndroidとiOSで別々に保守しなければならないコード量を抑えることを目的としている。プロジェクトは、この方法をFlutterへの移行と対比している。Flutterを採用すれば、KotlinのコードをDartで書き直す必要がある。中核のロジックをKotlinのまま維持すれば、最初の変換が完了した後の長期的な保守負担を減らせると見込まれる。

ただし、その利点があるからといって移植が小規模になるわけではない。プロジェクトの保守担当者は以前、完全なiOS版の開発には、およそ1人年が必要になる可能性があると見積もっていた。作業を取りまとめるイシューによると、保守担当者の1人がフルタイムで取り組めた2024年前半には、移行は約半分まで進んでいた。カンバン形式のボードでは残りの作業をタスクに分けているが、先行する作業に依存しているため、まだ着手対象として開かれていないものもある。

StreetCompleteは、実装タスクを引き受ける、関連するCompose技術を学ぶ、開発を金銭面で支える、あるいは通常の保守やイシューの仕分けを手伝うといった形での貢献を呼びかけている。プロジェクトは、こうしたコミュニティの参加が移植を完了させるうえで中心的な役割を果たすとしている。

入手できる資料は、開発計画とその理由を示しているが、iOSベータ版の現在の配布状況を独立に裏付けるものではない。明らかなのは、StreetCompleteが段階的にコード共有を進める戦略を選んだことだ。Androidのインターフェースを刷新し、プラットフォームへの依存を切り離したうえで、出来上がったKotlinの基盤をiOSでも使う。利用者にとっての最終目標は、別のモバイルプラットフォームでも使い慣れた編集手順を利用できるようにすることだ。保守担当者にとっての課題は、プロジェクトの作業量を恒久的に倍増させずに、その利用範囲の拡大を実現できるかどうかにある。