HN 日本語サマリー

← 一覧へ戻る
オープンソース

StreetComplete on iOS がパブリックベータ版になりました

StreetComplete on iOS is now in public beta (github.com)

624 pointsby Snowly172 コメント

要約

人気のオープンソースマッピングアプリ「StreetComplete」のiOS版が、現在パブリックベータとして公開されています。この移植は、Kotlin MultiplatformとCompose Multiplatformを使用して開発されており、単一のコードベースでAndroidとiOSの両方のプラットフォームをサポートすることを目指しています。開発は現在約50%完了しており、コミュニティからの貢献を歓迎しています。

全文翻訳

streetcomplete / StreetComplete Public エラーが発生しました。ページを再読み込みしてください。 通知 通知設定を変更するにはサインインする必要があります。 フォーク 460 スター 5k iOS - テスト中! :-D #5421 新規課題 コピーリンク 新規課題 コピーリンク オープン 11 / 11 11件中11件の課題が完了 オープン iOS - テスト中! :-D #5421 11 / 11 11件中11件の課題が完了 コピーリンク ラベル iOS iOSのみに関するもの iOSのみに関するもの 説明 westnordost が 2023年12月20日に投稿 このチケットは、StreetCompleteのiOSポートの開発を調整するためのマスターチケットのようなものです。これは、多くの議論と調査/観察作業も含まれていた#1892に取って代わるものです。 要約: タスクのリストについては、プロジェクトボードをご覧ください。貢献を歓迎します!SotM Europe 2024の講演のプレゼンテーション(めくりやすいようにスピーカーノートを追加しました)もご覧ください。 アプローチ このアプリのコードベースは、Swiftに非常に似たモダンなプログラミング言語である100% Kotlinで書かれています。Kotlinコードは、Swiftと同様にJavaScriptやマシンコードにトランスパイルできます。さらに、このアプリの多くの依存関係は、現在純粋なKotlinライブラリです。したがって、このアプリのiOSバージョンはKotlin Multiplatformで実現できます。UIコードはCompose Multiplatformを使用して共有できます。これは現在iOS向けにアルファベータ版です。これはJetpack Composeのフォーク/拡張であり、APIはほぼ同じです。Jetpack Composeは、開発者がUIを完全にコードで定義するリアクティブUIフレームワークです(SwiftUI、Flutterなどと同様の考え方)。ただし、UI全体を(段階的に)Composeで再作成する必要があります。これにより、プラットフォーム依存(Android / iOS)のコード量を最小限に抑えることができます。このアプローチは、このプロジェクトの今後のメンテナンスが増加しないという点で、他のアプローチよりも大きな利点があります。なぜなら、コードベースは引き続き1つだけだからです。Every Doorで使用されているような、マルチプラットフォーム用のフレームワークFlutterを使用する場合と比較して、Kotlinコードベースにはほとんど触れる必要がなくなります。Flutterを使用する場合、すべてDartで書き直す必要があります。 手順の概要 プラットフォーム固有のコードをアプリケーションロジックから分離します。 アプリケーションロジック用のAndroid/Java依存関係をKotlinマルチプラットフォーム依存関係に置き換えます。 UIコードをCompose Multiplatformに段階的に移行します。 データアクセスとUI状態コードを純粋なUIコードから分離します(ViewModelを使用: Use ViewModels #5070)。 現在Android XMLレイアウトを使用しているUIコードをAndroid Jetpack Composeに移行します。 これは、ボトムアップで段階的に行うことができます(移行戦略ガイドを参照)。 その後、Jetpack ComposeからCompose Multiplatformに移行します。これは、最初のステップと比較すると小さなステップです。 現在の状態 このセクションは継続的に更新されます。必要な手順は、Kanbanスタイルのプロジェクトボードで詳細に説明されています。(一部のタスクは、他のタスクが完了するまで100%依存しているため、まだ作成されていません。また、いくつかの調査も含まれています。)特に記載がない限り、これらは、これを読んでいる(そして貢献したいと願っている😊)人たちが自由に引き受けることができます。もし、記載されているタスクのいずれかを実装したい場合は、そのチケットにコメントしてください。 以前、iOSへの完全な移植には1人年の作業がかかると非常に大まかに見積もりました。したがって、この範囲は依然として非常に大きいです。多くのコミュニティからの貢献なしには、現実的に達成できません。幸いなことに、これは過去数年間起こっていることです。2024年前半には、私はこの作業にフルタイムで取り組むことができました。現在、移行は完了の約50%です。したがって、ギアをシフトしましょう! どのように貢献できますか? プロジェクトボードからタスクを引き受けることができます!または、後で有意義な貢献ができるように、言及されている技術/フレームワークに精通することができます。特に: Jetpack Compose / Compose Multiplatform。これは私にとっても非常に新しいものなので、私もここで足場を固める必要があります。 開発をスポンサーすることができます!メインページのサイドバーにある「このプロジェクトをスポンサー」というタイトルを参照してください。より多くのお金があれば、アプリ全般の開発により多くの時間を費やすことができます。もし、より大規模な資金調達の対象となる情報源を知っていれば、私に連絡してください! 一般的なメンテナンスと課題のトリアージを手伝うことができます。これにより節約された時間は、開発を進めるために私が費やせる時間になります。 リアクションは現在利用できません この会話に参加するには無料でサインアップしてください。 すでにアカウントをお持ちですか?サインインしてコメントする メタデータ メタデータ 担当者 なし ラベル iOS iOSのみに関するもの iOSのみに関するもの タイプ なし プロジェクト なし マイルストーン なし 関係 なし 開発 ブランチまたはプルリクエストなし 課題アクション GitHub Copilotアプリで開く