コンピュータサイエンスの学位を取得したにせよ、技術面接の準備でデータ構造を学んだにせよ、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
- Androidフレームワークやライブラリが内部でどのように動作しているのか、なぜそのような設計になっているのかに興味がある人 - コンピュータサイエンスの知識が開発の現場で活かされていないと感じている人、またはそれがAndroid開発でどのように使われているのか知りたい人 - 高パフォーマンスなアプリを構築するために、知識に基づいた意思決定をしたい人
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
#@Experimental AI
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド〜新メンバーを活躍に導くオンボーディング戦略〜
richako (risako070310)
#開発体制
Performance for Conversion! 分散トレーシングでボトルネックを特定せよ
andousan
#保守・運用・テスト