ホームトレンドbytedance/scene
// archived 2026-04-07
bytedance

scene

Mobile#Android#Kotlin#Navigation#UI
GitHub で見る →
2,416

// 概要

Scene は、従来の Activity や Fragment に代わり、効率的なナビゲーションと UI 構成を実現するために設計された軽量な Android ライブラリです。ページ管理のための信頼性が高く高性能な代替手段を提供することで、パフォーマンスや互換性の問題を解決します。このフレームワークは Jetpack Fragments と完全に互換性があり、開発者がアプリケーションを移行するためのシンプルな API を提供します。

// 技術解説

Scene は、従来の Activity や Fragment によるナビゲーションをビューベースの構成モデルに置き換えるために設計された、軽量な Android フレームワークです。Activity の起動時間に関連するパフォーマンスのボトルネックや、Google Navigation Component に固有のビュー破棄の問題に対処します。信頼性が高くパフォーマンスに優れたページ管理 API を提供することで、開発者はライフサイクル制御を改善し、ナビゲーションスタック管理を簡素化した複雑なアプリケーションを構築できます。

// 主要ハイライト

01
Jetpack Fragment フレームワークとの完全な互換性を提供し、既存の Android コンポーネントとのシームレスな統合を保証します。
02
マルチスタックのサポートと強化されたライフサイクルイベント配信により、ナビゲーションスタック管理を簡素化します。
03
複雑なページ間アニメーションや共有要素アニメーションを効率化し、UI の遷移を改善します。
04
Activity や Window プロパティの変更および自動復元を可能にし、状態の一貫性を維持します。
05
Scene 間での堅牢なデータ交換を可能にし、パーミッションのリクエストや許可を Scene 内で直接処理できます。
06
Parcelable を介した状態の永続化をサポートしており、R8 や Proguard の設定を必要とせずに Scene の状態を保存および復元できます。

// ユースケース

01
複数のスタックをサポートした簡素化されたナビゲーションスタック管理
02
Android ページ向けの強化されたライフサイクル管理とイベント配信
03
効率化されたページ間および共有要素のアニメーション

// クイックスタート

Scene を使い始めるには、ルートの build.gradle ファイルに JitPack リポジトリを追加し、モジュールレベルの build.gradle に必要なライブラリの依存関係を含めます。最もシンプルな実装として、メインの Activity を SceneActivity から継承させ、ホームとなる Scene クラスを定義します。その後、ベースとなる Scene クラスや AppCompatScene クラスを拡張したカスタム Scene を作成することで、フレームワークを試すことができます。