9月24日、F-Droidが「F-Droid 2.0: A New Chapter for Android Freedom」と題した記事を公開した。Googleが関与しないAndroid向けFOSSアプリストア「F-Droid」が、10年ぶりとなるメジャーアップデート「F-Droid 2.0」を段階ロールアウトで提供開始したことを発表した内容だ。
このアップデートの最大の推進力は、EUのデジタル市場法(DMA)だ。DMAはGoogleなどのゲートキーパー企業に対し、サードパーティのアプリストアにも自社ストアと同等の条件でAPIを開放することを義務付けている。これを受けてGoogleが開放した「pre-approval API」により、長年F-Droidの弱点とされてきたインストール体験の格差がついに解消に向かった。技術的な改善にとどまらず、オープンソースエコシステムにとっても重要な転換点となるリリースだ。
インストール体験の変革:pre-approval APIの採用
エンジニア視点で最も重要な変更は、インストールフローの根本的な刷新だ。
従来のAndroidでは、サードパーティのアプリストアはバックグラウンド自動更新に制約があり、ダウンロード完了後にユーザーが個別に承認する手順が必要だった。Google Playでは不要なこの「余分なタップ」が、F-Droidの使い勝手の大きな足かせになっていた。
F-Droid 2.0では、GoogleがDMA対応として開放したpre-approval APIを採用している。このAPIを使うと、ダウンロード開始前にインストールの承認を取得できるため、ダウンロード完了後は追加操作なしにインストールが完了する。要するに、Google Playと同等のスムーズな体験がオープンソースのアプリストアでも実現した。
あわせて、インストーラーの仕組みも整理された。これまでルート権限なしでスムーズなインストールを実現するために別途必要だったF-Droid Privileged Extension(FPE)は、2.0では利用しない設計に変更された。Android 5.0以降で提供される標準のSessionPackageInstaller APIで同等の機能をカバーし、特権拡張なしに一貫したインストール体験を提供する。
UI・UXの刷新:Kotlin + Jetpack Composeで書き直した3タブUI
UIはKotlinおよびJetpack Composeで書き直され、メインナビゲーションが「Discover」「Search」「My Apps」の3つに集約された。
- Discover:新着・更新済み・ダウンロード数上位のアプリを表示。カテゴリ閲覧もここに統合
- Search:アプリ名だけでなく説明文・カテゴリ・翻訳済みコンテンツも検索対象に。中国語・日本語・韓国語(CJK)の検索精度も大幅改善
- My Apps:インストール済みアプリの管理・更新・問題の確認を一元化
Jetpack ComposeはGoogleが推奨する現代のAndroid UIツールキットで、XMLベースの旧来の実装と比べてコードが宣言的になり、コントリビュートの敷居が下がる効果もある。長年の技術的負債を返済しながら、外部開発者が参加しやすいコードベースに刷新した形だ。
カテゴリも大幅に拡張され、VPN・ファイアウォール・パスワードマネージャーなどの専門カテゴリが追加された。ゲームカテゴリは17ジャンルに細分化された。フィルタリング機能も強化され、カテゴリ・デバイス互換性・アンチフィーチャー(非フリーなネットワークサービスへの依存など)を組み合わせた絞り込みが可能になった。
プライバシー機能の変更点:既存ユーザーは要確認
プライバシーリスクの高い環境での利用を想定した機能については、いくつか挙動が変わっている。
Torサポートは設定をシンプル化した。以前の自動検出機能は信頼性が低下していたため廃止され、「Use Tor」設定は汎用のProxy設定に統合される。推奨方式はTor VPNとなった。Tor接続を常用しているユーザーはアップデート後に設定を確認する必要がある。
アプリ偽装機能(パニック機能)は継続提供されるが、挙動が変わった。変更点を整理すると次のとおりだ:
- 変更前:F-Droidアプリ全体を電卓アプリに偽装
- 変更後:アイコンと名前のみを変更する仕様に限定。端末の設定画面やフォレンジック調査では検出される
この変更は機能の後退ではなく、「偽装が完全ではない」という制限をユーザーが正確に理解できるよう、意図的に機能を絞った設計上の判断だ。
なお、Rippleなどのパニックトリガーアプリと連携したアプリ消去機能は2.0では未実装となっている。開発チームはフィードバックを求めており、この機能に依存するユーザーはアップデートを保留するよう呼びかけている。
その他の変更点
Android 6のサポートは今回のアップデートで終了した(Android 7で修正されたAPIへの依存が理由)。旧バージョンは引き続き旧Androidバージョン向けのページで提供される。
F-Droid 2.0の開発はNLnetのMobifreefund、Open Technology FundのUXD LabおよびFOSS Sustainability Fundによる支援を受けており、Ura DesignがユーザーテストやHuman Interface Guidelinesの整備を担当した。段階的なロールアウトは数週間かけて行われる予定だ。
詳細はF-Droid 2.0: A New Chapter for Android Freedomを参照していただきたい。