Jetpack Componentは何か新しいものです

4240 ワード

GoogleはI/O 2019でKotlinがAndroid開発の第一選択言語になったと発表し(どのようにまたハハを発表したのか)、今後新しいJetpack APIと機能がKotlinで提供されることになりますが、Googleは当日Jetpack Composeというものをオープンソースし、何なのか見てみましょう.
ここは現在公開されている資料です.
  • https://developer.android.com/jetpack/compose
  • https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/ui/README.md

  • 総じてxmlでレイアウトを記述するのではなく、KotlinコードでUIを書くのではないでしょうか.Flutterに似ていて、一部の学生はこれが後退だと思っています(結局無限のネストとコールバックは本当に面白くありません)、進歩だと思っている学生もいます.私はしばらく評価しませんが、グーグルがKotlinとJetpackで力を入れ続けることがわかります.実はみんなは多くmediumの上で外国人が书いたあれらの技术のブログを见て、すべてKotlinで実例を実现して、学ぶ余裕のある学友は试してみて、公式のドキュメントはとても完璧で、言语はとても简洁で、确かに1门の悪くないJVM言语です.
    これはmediumの上の大物がまとめた長所です.
  • 100% Kotlin ?
  • It is not part of Android OS which would allow us to keep the same minSdkVersion when we face a bug in the library as it would be fixed separately in the next versions of Jetpack Compose Library.
  • No need to write XML anymore.
  • Can be part of our lovely Android Architecture!
  • Potential flexible reusability ❤
  • It is part of AOSP, therefore, anyone can contribute to it.

  • 以下は私が公式文書に翻訳したものです(GithubオープンソースJetpack中国語翻訳プロジェクトから取ったもの).
    Jetpackアセンブリ
    原文リンク:Jetpack Component|Android Developers
    UIを構築するための宣言キット
    Jetpackコンポーネント(Component)は、UIの開発を簡素化するための非バンドルツールパッケージです.応答型プログラミングモデルとKotlinプログラミング言語の簡潔性と使いやすさを組み合わせた.
    注意:Jetpackコンポーネントは現在、初期探索のpre-alpha段階にある.そのAPIレベルはまだ最終的に確定されておらず、生産に使用すべきではない.
    JETPACK COMPOSE探索
    核心理念
    シンプルで使いやすいKotlin
    Kotlinのメリットに基づいて、簡潔で安全でJavaと完全に相互運用できます.作成するテンプレートコードの量を大幅に削減し、アプリケーションコードに集中し、さまざまなタイプのエラーを回避できるようにします.
    宣言
    完全宣言は、カスタムレイアウトの描画や作成など、UIコンポーネントを定義するために使用されます.UIを組み合わせ可能な関数のセットとして記述するだけで、フレームワークはUIの最適化を処理し、ビュー階層を自動的に更新することができます.
    互換性
    既存のビューと互換性があるため、組み合わせを混合し、すべてのAndroidとJetpackに直接アクセスするAPIを自分の意思で採用することができます.
    きれいな応用を創造する
    最初から開梱された素材化されたデザイン(Material Design)とアニメーションデザインを採用しているので、ダイナミックなきれいなアプリケーションを簡単に作成できます.
    かいはつを速める
    より少ないコードを作成し、Apply Changesやリアルタイムプレビューなどのツールを使用することで、開発を加速させます.
    クイックブラウズ
    JetpackコンポーネントはAndroidオープンソースプロジェクトで開発されています.2つの主要な構成要素があります.
  • コンポーネントUIライブラリでは、レイアウト、入力、テキスト、アニメーション、スタイル、ウィジェット、グラフィックなど、コアUIツールパッケージが含まれています.
  • コンポーネントコンパイラは、カスタムKotlinコンパイラプラグインで、組み合わせ可能な関数を採用し、UI階層を自動的に更新します.

  • コンポーネント(Component)アプリケーションは、アプリケーションデータをUI階層に変換する組合せ可能な関数で構成されています.新しいUIコンポーネントは、1つの関数で作成できます.
    結合可能な関数を作成するには、@Composable注記を関数名に追加するだけです.下位レベルでは、コンポーネントはカスタムKotlinコンパイラプラグインを使用するため、下位レベルのデータが変更されると、結合可能な関数を再呼び出して更新されたUI階層を生成することができます.次の簡単な例では、文字列を画面に印刷します.
    import androidx.compose.*
    import androidx.ui.core.*
    
    @Composable
    fun Greeting(name: String) {
       Text ("Hello $name!")
    }
    

    JetpackコンポーネントUIライブラリのAPIはAOSP frameworks/support/uiディレクトリにあります.コンポーネントコンパイラとランタイムコードはframeworks/support/composeで入手できます.
    コンポーネントUIライブラリ
    JetpackコンポーネントUIライブラリには、次のモジュールがあります.
    android-text/
    Androidはテキストスタック固有の実装
    android-view/
    既存のAndroidビューのパッケージとアダプタ
    animation/
    アニメーションコンポーネント
    animation-core/
    アニメーションシステムの内部宣言
    core/
    システムで使用されるベースクラスには、基本要素、グラフィック、およびペイントが含まれます.
    framework/
    基本コンポーネントは、システムによって構築ブロックとして開示される.これには、図面、レイアウト、テキストなどが含まれます.
    layout/
    基本レイアウトコンポーネント
    material/
    材料化設計仕様に従って構築されたUIコンポーネントセット
    platform/
    内部実装では、Androidがホスト側のテストから分離できる
    test/
    テストフレームワーク
    text/
    テキストエンジン