DroidKaigi 2019でのCodelabsについて

DroidKaigi スタッフの satsukies です。DroidKaigi 2019 開催日が近づいてきました。今回は当日実施する Codelabs についてのご案内です。

DroidKaigi 2019 では、Day1/ Day2 ともに Room 5 にて Codelabs を実施します 🎉。
今年はGoogle 公式の Codelabs にチャレンジしていただくものに加えて、オリジナルの Codelabs として Android App Improvement Challenge の 2 種類を準備いたしました!

Android App Improvement Challenge とは

このオリジナル Codelabs は、みなさんが日々業務で扱うような実際のプロジェクトを想定して作られています。
プロジェクトは長い年月を経て、様々な機能改修や新機能追加などが継続的に行われます。そしてその積み重ねが時に複雑怪奇なコードを生み出してしまうことも起こり得ます。

そのようなコードに直面した時、どのように現状のコードを読み解いて、求められている要件を達成したらよいのでしょうか?
この Codelabs では、用意されたお題に沿ってチャレンジしていただくことで、より実践的な体験をしていただけると考えています。

Android App Improvement Challenge の内容をちょっとだけご紹介

今回、 HackerNews の記事一覧をリストで表示できるアプリをサンプルとして用意しました。アイテムをタップすることで記事を表示することができる、シンプルなアプリです。

アプリの動きの例

このアプリは、Android Developers で紹介されている アプリのアーキテクチャガイド とは正反対な性質を持ってしまっています。

  • 様々な処理が Activity に記述されているためにとても Fat な Activity と化している
  • データがキャッシュされていない
  • テストが書かれていない

などです。

以下は、サンプルプロジェクト内のとある Activity のコードの一部です。
progressView の visibility を変更するため、CountDownLatch で複数の非同期処理の完了を待っているようですが・・・?
visibility の変更に Util クラスが使われているのも、なんだか嫌な雰囲気を感じてしまうコードですね!😅

Codelabs で改善に取り組む実装の一部

お題について

Android App Improvement Challenge は、DroidKaigi 2019 Day2 に開催いたします。2 つの Part を用意しており、それぞれ開催時間が異なります。

  1. Android App Improvement Challenge Part1: Adding Features / 機能実装編 10:30–11:50 (1 時間 20 分)
  2. Android App Improvement Challenge Part2: Refactoring / リファクタ編 12:50–15:00 (2 時間 10 分)

各 Part の最初に概要の説明時間を設けていますが、基本的に入退室自由となっております。
席に限りがございますが、来場者の皆様のご参加をお待ちしております!

参加をご希望の来場者の皆様に事前準備のお願い

当日は会場にネットワーク環境がございますが、皆様にスムーズにご参加頂く為に次の 3 点については事前にご準備をお願い致します。

1. Android Studioのインストール

2. SDK ManagerでAndroid SDK Platform 28のインストール

3. Gitのインストール

  • 課題は GitHub で公開する予定です

English Speaker へのご案内

Android App Improvement Challenge の資料は英語版もありますが、スタッフ配置の都合上、当日は英語による口頭でのサポートが困難です。申し訳ありませんが、予めご了承下さい。

スタッフ一同、当日みなさんと一緒に Codelabs に取り組むことを楽しみにしております!