web-dev-qa-db-ja.com

Android Jetpackとは正確には何ですか?

Google I/O 2018の開発者の基調講演を見て、Android開発者のWebサイトでjetpackホームページを読みましたが、実際の意味を理解できません。私には、すでに使用している多くのAPIの新しい名前のように思えます。 IDEが私たちのためにしてくれることや、コーディング中に役立つことはありますか? Jetpackのすべてのコンポーネントは、元のAndroidドキュメントを指しており、実際には以前と違いを示していません。 Webページ上のドキュメンテーションのドキュメントとは別に、開発者としてJetpackが実際に行っていることを誰かが簡単に説明できますか?

38
ishaan

公式サイトでは次のように述べています:

Android Jetpackは、優れたAndroidアプリをすばやく簡単に構築できるようにするライブラリ、ツール、およびアーキテクチャガイダンスのセットです。共通のインフラストラクチャコードを提供するため、アプリのユニークな点に集中できます

技術的には、サポートライブラリ、Android-ktx、およびAndroid Architecture Componentsが単一のモジュラー「エンティティ」としてブランド変更されました。

これが、サポートなどのAndroid以外のすべての拡張ライブラリがandroidx.**に再パッケージ化される理由です。

Alan Viveretteからの引用(Android Framework Teamから):

Jetpackは、開発者のエクスペリエンスを向上させるためのより大きな範囲の取り組みですが、AndroidXが技術的基盤を形成しています。技術的な観点からは、サポートライブラリとアーキテクチャコンポーネントで見たライブラリと同じです。

ベストプラクティスが変更されると、Jetpackに含まれていないandroidx。*パッケージのライブラリも表示される場合があります。

詳細については、 https://developer.Android.com/topic/libraries/support-library/refactor を参照してください。

32
EpicPandaForce

基本的には、4つのカテゴリにまとめられ、分類された有用なもののセットです。

基礎

建築

動作

UI

AppCompatライブラリ、アーキテクチャコンポーネント、フラグメント、アニメーション、トランジションなどの主要なもののいくつかが、相対的なカテゴリに追加され、これら5つのものが新しくなりました追加されました。

  1. Android Ktx

    Android KTXの目的は、拡張機能/プロパティ、ラムダ、名前付きパラメーター、パラメーターなどのKotlin言語機能を活用することにより、KotlinでAndroid開発をより簡潔で快適で慣用的にすることです。デフォルト値

  2. ナビゲーション

    ナビゲーションアーキテクチャコンポーネントは、Androidアプリでのナビゲーションの実装を簡素化します。これは、アプリでの明確なフローの実装に関連しています。 ここ このビデオでは、このトピックに関する非常に素晴らしい説明を見つけることができます。

  3. ページング

    ページングライブラリを使用すると、アプリのRecyclerView内でデータを段階的かつ適切にロードすることが容易になります。 これはI/Oトークです Yigit Boyarから、彼は非常によく説明しています。

  4. スライス

    スライスは、Google検索アプリ内および後でGoogleアシスタントなどの他の場所で、アプリのリッチでダイナミックでインタラクティブなコンテンツを表示できるUIテンプレートです。スライスは、フルスクリーンアプリエクスペリエンス以外のエンゲージメントを有効にすることで、ユーザーがタスクをより速く実行できるようにします。アプリアクションの拡張機能としてスライスを構築できます。 この講演の詳細

  5. WorkManager [このことを確認することを個人的にお勧めします]

    WorkManagerを使用してタスクを適切にスケジュールできます。WorkManagerAPIを使用すると、遅延可能な非同期タスクとそれらをいつ実行するかを簡単に指定できます。これらのAPIを使用すると、タスクを作成してWorkManagerに渡し、すぐにまたは適切なタイミングで実行できます。 このビデオ で詳しく説明しています。

    プレイリストを作成しました ここ 。 Jetpackに関連するすべての最高のビデオで構成されています。これが役に立てば幸いです。

16
TapanHP

ブログ: から

Android Jetpackは次世代のAndroidコンポーネントであり、サポートライブラリの利点(下位互換性と即時の更新)をより大きなコンポーネントセットにまとめて、堅牢で高機能なビルドを迅速かつ簡単にします。高品質のアプリ。 Android Jetpackは、バックグラウンドタスク、ナビゲーション、ライフサイクル管理などのアクティビティを管理するため、定型コードを排除し、アプリの優れた点に集中できます。 Android JetpackはKotlinと連携して動作するように設計されており、Android KTXでさらに多くのコードを節約できます。本日リリースされた新しいAndroid Jetpackコンポーネントには、WorkManager、Paging、Navigation、Slicesが含まれます。

公式ドキュメント: から

Android Jetpackは、優れたAndroidアプリをすばやく簡単に構築できるようにするライブラリ、開発者ツール、およびアーキテクチャガイダンスのセットです。共通のインフラストラクチャコードを提供するため、アプリの独自性に集中できます。

enter image description here

10

Android Jetpackは、Androidソフトウェアコンポーネントのコレクションであり、優れたAndroidアプリの構築に役立ちます。

これらのソフトウェアコンポーネントは、次のことに役立ちます。

  • ベストプラクティスに従って、定型コードを記述します。
  • 複雑なものを非常にシンプルにします。

以前は、次のような多くの課題がありました。

  • アクティビティのライフサイクルの管理。
  • 構成変更の存続。
  • メモリリークの防止。

これらの主要な問題はすべて、Android Jetpackのソフトウェアコンポーネントによって解決されています。

したがって、すべての問題の解決策はAndriod Jetpackです。

Jetpackのもう1つの最も重要な点は、Androidプラットフォームよりも頻繁に更新されるため、常に最新バージョンが取得されることです。

Jetpackは、プラットフォームAPIからバンドルされていないandroidx。*パッケージライブラリで構成されています。これは、下位互換性を提供することを意味します。

Android Jetpackコンポーネント

Android Jetpackコンポーネントは、個別に採用可能で、より生産的になるKotlin言語機能を活用しながら連携して動作するように構築されたライブラリのコレクションです。

これらのソフトウェアコンポーネントは、次の4つのカテゴリに分類されています。

  • 基盤コンポーネント
  • アーキテクチャコンポーネント
  • 動作コンポーネント
  • UIコンポーネント

ひとつずつ見ていきましょう。

基盤コンポーネント

基本コンポーネントは以下を提供します。

  • 下位互換性
  • テスト中
  • Kotlin言語のサポート。

すべての基本コンポーネントは次のとおりです。

  • アプリの互換性
  • Android KTX
  • マルチデックス
  • テスト

アーキテクチャコンポーネント

アーキテクチャコンポーネントは、次の構築に役立ちます。

  • 堅牢なアプリ
  • テスト可能なアプリ
  • メンテナンス可能なアプリ

すべてのアーキテクチャコンポーネントは次のとおりです。

  • データバインディング
  • ライフサイクル
  • LiveData
  • ナビゲーション
  • ページング
  • ルーム
  • ViewModel
  • WorkManager

動作コンポーネント

動作コンポーネントは、標準のAndroidサービスとの統合に役立ちます

  • 通知
  • 許可
  • 共有する
  • アシスタント

すべての動作コンポーネントは次のとおりです。

  • ダウンロードマネジャー
  • メディアと再生
  • 通知
  • 許可
  • 環境設定
  • 共有する
  • スライス数

UIコンポーネント

UIコンポーネントは、アプリを簡単にするだけでなく、使いやすくするためのウィジェットとヘルパーを提供します。

すべてのUIコンポーネントは次のとおりです。

  • アニメーションとトランジション
  • オート
  • 絵文字
  • 断片
  • レイアウト
  • パレット
  • テレビ
  • 着る

参照記事

10
Amit Shekhar

私たち全員が公式サイトを引用しているので、

Android Jetpackは、Androidの特定のバージョンに関連付けられていない一連のバンドルされていないライブラリを提供し、開発者がAndroidオペレーティングシステムの古いバージョンで新しい機能をサポートする方法を提供します。後方互換性に加えて、Jetpackは、アプリケーションライフサイクルの管理などの反復的なタスクを処理するボイラープレートを提供することにより、より少ないコードでより多くの作業を行えるようにすることを約束します。

それでは、これを細かく分けてみましょう、それは単に2つのことを言っています

  1. そのため、Jetpackに含まれるすべてのライブラリは互いに独立しています。特定のライブラリを、他のライブラリを同時に更新せずに更新できます。あなたはそれらの警告を覚えています、

イライラさせる「すべてのcom.Android.supportライブラリはまったく同じバージョン仕様を使用する必要があります」というメッセージは過去のものになるはずです。

しかし、それはAndroidxライブラリを使用し、サポートしていない場合です。

  1. これで、Jetpackの下にあるこれらのライブラリはすべて、その側で多くの定型コードを実行するため、多くのコードを記述する必要はなく、ロジックについて心配するだけです。例-画面の回転の処理を覚えていますか? (ViewModelはそれを処理します)、ページネーションによる無限スクロールの処理? (今ではPagingライブラリがあります)、戻るボタンを処理します(Navigationライブラリがあります)(ほんの一部)

JetPackを個別に出す理由は他にもあります。それらについても説明しましょう。

  1. 最初は、各パッケージの名前は、そのパッケージでサポートされている最小のAPIレベル(たとえば、support-v4)を示していました。ただし、サポートライブラリのバージョン26.0.0では、最小APIが14に増加したため、現在、多くのパッケージ名は、サポートされている最小APIレベルとは無関係です。 support-v4パッケージとsupport-v7パッケージの両方の最小APIが14である場合、人々が混乱する理由を簡単に確認できます。 AndroidXでは、この混乱が解消されました。

  2. 現在の命名規則(サポート形式)では、Androidオペレーティングシステムにバンドルされているパッケージと、アプリケーションのAPK(Androidパッケージキット)にパッケージされているパッケージも明確ではありません。この混乱を解消するために、バンドルされていないすべてのライブラリはAndroidXのandroidx。*名前空間に移動され、Android。*パッケージ階層はAndroidオペレーティングシステムに同梱されるパッケージ用に予約されます。簡単に言うと、Android。*はAndroidオペレーティングシステム関連のパッケージ用に予約されるため、これらのパッケージはAndroid。*から始まりますが、androidx。*はアプリ開発関連のもの用に予約されます。

  3. これとは別に、次のものがあります。

    • 建築コンポーネント
    • 基本コンポーネント
    • UIコンポーネント
    • 動作コンポーネント

つまり、Jetpackは、これらのコンポーネント、androidx、その他のツールのスーパーセットに付けられた名前に過ぎません。

1
Abhishek Kumar