Androidは裏でどのようにデータ構造を活用しているのか

コンピュータサイエンスの学位を取得したにせよ、技術面接の準備でデータ構造を学んだにせよ、LinkedList、Disjoint Set、B-Tree、Red-Black Treeといった概念は誰もが一度は触れたことがあるでしょう。 しかし、実際のAndroidアプリ開発においてこれらのデータ構造を活用することを考えたことはありますか?実はAndroidフレームワークやそのライブラリの内部では、たとえ私たちが直接扱うことがなくてもこうしたデータ構造が頻繁に使われているのです。本セッションでは、Androidフレームワークと主要ライブラリにおいてデータ構造の知識がどのように活かされているかを紐解き、その理解がなぜ重要なのかを解説します。 導入:Androidアプリ開発において、データ構造の知識を活用したことはありますか? - もしあるなら、私たちが学んだデータ構造は実際のAndroid開発で本当に使われているのでしょうか? 1. 画面描画のためのLayout Tree(Composable Tree) - ツリー型データ構造について - なぜツリーが必然的な選択だったのか:走査の計算量(効率性)を考慮して - これをもとに、画面はどのように効率的に描画・更新されているのか? 2. DIツール(グラフ/有向非巡回グラフ) - 有向非巡回グラフ(DAG)データ構造について - Daggerが依存性注入にグラフ構造を選んでいる理由 - このデータ構造を用いて循環依存をどのように検出・解消するか 終わりに: データ構造の知識は、私たちが気づかないうちに活用されている 時間が許せば: 3. Runnableを処理するためのHandlerメカニズム - 優先度付きキューについて - なぜ優先度付きキューが効率的な選択なのか? 4. 画像キャッシュ(LruCache) (DroidKaigi実行委員会による翻訳)

  • HyunWoo Lee Android/React Native Engineer, Toss


概要

  • 日時 2025.09.12 / 12:20 ~ 13:00 (40min)
  • 場所 Meerkat
  • 言語 英語 (日本語通訳あり)

対象者

- Androidフレームワークやライブラリが内部でどのように動作しているのか、なぜそのような設計になっているのかに興味がある人 - コンピュータサイエンスの知識が開発の現場で活かされていないと感じている人、またはそれがAndroid開発でどのように使われているのか知りたい人 - 高パフォーマンスなアプリを構築するために、知識に基づいた意思決定をしたい人