この記事は Caren Chang による Android Developers Blog の記事 "MAD Skills WorkManager : Wrap-Up" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
WorkManager についての MAD Skills ミニシリーズが終わりました。初めてこのライブラリを使う方のために WorkManager を紹介し、WorkManager のコードのテストやデバッグを行う方法など、高度な使い方へと話を進めました。シリーズ最後のエピソードでは、GCMNetworkManager や FirebaseJobDispatcher を使った古いコードの代わりに WorkManager を使う方法を説明しました。
この記事では、紹介した内容について簡単にまとめます。
最初のエピソードでは、WorkManager Codelab を題材に WorkManager の基本について説明しました。まずは、必要な作業を定義する方法と、その作業をスケジュールする方法について学びました。次に、種類の異なる作業(重複しない作業と定期的な作業)を実現する方法に進みました。WorkManager がどのように作業をスケジュールするかについて理解を深めるため、エピソードの最後では App Standby Bucket について説明しました。
初めて WorkManager を使う方には、以下の記事(英語)も確認することをお勧めします。
続いて、WorkManager がマルチスレッドをどう扱うかについて Ben が詳しく説明しました。スレッドを使う場合は、Executor、コルーチン、RxJava のいずれかを使うことができます。Ben は、WorkManager でそれぞれのアプローチを利用する方法についてデモを行いました。エピソードの最後では、作業が完了したときに結果を返し、UI を更新できるようにする方法を紹介しました。
WorkManager とコルーチンを組み合わせて使いたい方には、Florina が公開したこちらのブログ記事(英語)もご覧ください。
エピソード 3 では、WorkManager の初期化をカスタマイズする方法と、複数のプロセスにまたがるアプリをサポートする方法について説明しました。デベロッパーの皆さんから、テストやデバッグに関するたくさんの質問が寄せられたので、Ben はワーカーをテストする方法や役に立つデバッグ テクニックも紹介しました。
最後のエピソードでは、古いジョブ スケジュール ライブラリ(GCMNetworkManager と FirebaseJobDispatcher)から WorkManager に移行する方法を取り上げました。ターゲット API レベルが 30 以上のアプリでは、Android Marshmallow(6.0)以降を実行しているデバイスで GCM NetworkManager と FirebaseJobDispatcher が動作しなくなります。まだどちらかのライブラリを使っている方は、WorkManager を使うようにアプリをアップデートしてください。
Android GDE の Hugo Visser さんが、最近携わった変更管理アプリで WorkManager を使うことにした理由と、開発プロセスでこのライブラリがどう役立ったかについて話してくれました。
シリーズの最後は、私たちが皆さんから寄せられた WorkManager 関連の質問に答えるリアルタイム Q&A セッションを行いました。WorkManager の今後の計画や、重複した作業の扱い、失敗した作業の再試行などの質問に対する回答をご覧ください。