概要
- StreetCompleteのiOS移植 を調整するマスター課題の概要
- Kotlin Multiplatform と Compose Multiplatform を活用した技術的アプローチ
- 開発状況 や 今後のタスク はProject Boardで管理
- 貢献方法 や 協力の呼びかけ も明記
- 進捗は約50%、コミュニティの協力が不可欠
StreetComplete iOS移植・マスター課題
- このチケットは StreetCompleteのiOS移植 を調整する マスター課題
- #1892を置き換え、 議論・調査内容 も含む
- Project Board にて タスク一覧 を管理
- 貢献歓迎、詳細は SotM Europe 2024のスライド 参照(スピーカーノート付き)
技術的アプローチ
- コードベースは 100% Kotlin、Swiftに類似したモダン言語
- Kotlin Multiplatform でiOS対応可能、 Compose Multiplatform でUI共有
- Jetpack Compose のAPIをベースにした Compose Multiplatform (iOSはアルファベータ)
- UIは 段階的にComposeへ移行、プラットフォーム依存コードを最小化
- Flutter と比較し、Kotlinコードベースをほぼそのまま活用可能
移植手順(要点)
- プラットフォーム固有コード と アプリケーションロジック の分離
- Android/Java依存部分 を Kotlin Multiplatform依存 へ置換
- UIコード を Compose Multiplatform へ段階的に移行
- データアクセス・UI状態管理をUIコードから分離(ViewModel活用)
- Android XMLレイアウトからJetpack Composeへの移行(ボトムアップ推奨)
- Jetpack ComposeからCompose Multiplatformへの移行(比較的小規模な作業)
現在の進捗
- 進捗や必要なステップは Kanban形式のProject Board で随時更新
- タスクは 依存関係 により未作成の場合あり
- 貢献者募集、タスク実施希望者は該当チケットにコメント
- iOS完全移植には約1人年の作業量 を推定、コミュニティ貢献が鍵
- 2024年前半で 移行作業は約50%完了
貢献方法・協力の呼びかけ
- Project Board のタスク引き受け
- Jetpack Compose / Compose Multiplatform 等の技術習得
- 開発スポンサー として資金支援
- メインページの「Sponsor this project」からサポート可能
- 大規模資金提供先の情報提供も歓迎
- メンテナンスやissue triage による開発サポート
- 時間の節約がさらなる開発推進に直結
まとめ
- StreetComplete iOS移植 は技術的にも組織的にも大規模プロジェクト
- Kotlin Multiplatform と Compose Multiplatform を活用した効率的なアプローチ
- コミュニティによる協力・貢献 が進捗の鍵
- 最新の進捗やタスク状況 はProject Boardで確認可能
READMEからの引用: 「StreetCompleteは、Android向けのOpenStreetMapデータを簡単に編集できるアプリです。OpenStreetMapに特有の知識がなくても使えます。簡単な質問をして、その答えを使ってOpenStreetMapデータを編集・改善します。このアプリは、OSMのタグ付けについて何も知らないユーザーでも、OpenStreetMapに貢献したいと思っている人向けです。StreetCompleteは、調査が必要な近くの場所を自動的に探して、マップ上にクエスマーカーとして表示します。これらのクエストは、現地で簡単な質問に答えることで解決できます。例えば、マーカーをタップすると「この道路の名前は何ですか?」という質問が表示され、回答用のテキストフィールドが出てきます。下のスクリーンショットにもいくつかの例があります。ユーザーの回答は自動的に処理され、OSMデータベースに直接アップロードされます。編集は、ユーザーのOSMアカウントを使って意味のある変更セットで行われます。このアプリは調査のために使うことを想定しているので、オフラインでも使用でき、データ使用量も経済的です。」