Pinned Tweet
DroidKaigi 2024アプリをGitHubで公開しました!
github.com/DroidKaigi/confer…
Jetpack Compose公式の新ライブラリ「MarkupText」が登場。Markdownなどのマークアップテキストの表示をサポートする予定みたい。
#AndroidDevSummit
ComposeのPointer Inputの内部処理①
MotionEvent → PointerInputEvent → InternalPointerEvent → Hit Test → Hit Path Tree更新 → 座標変換 → PointerEvent。
Hit Path TreeでComposeのどこにイベントを配送するか管理する。
#AndroidDevSummit
ComposeのPointer Inputの内部処理②
PointerEventは3つのPassで処理される。
Initial:親→子
Main:子→親(クリックなど)
Final:親→子(スクロール時のクリックキャンセルなど)
#AndroidDevSummit
Navigation 3のDeepLinkでは、複数のパターンにマッチした場合、maxOrNull() で最も適切なものを選べる。
例えば sessions/keynote と sessions/{session} がある場合、より具体的な sessions/keynote が優先される。
#AndroidDevSummit
TextFieldで検索してるものをハイライトしたい時はOutputTransformationでテキスト検索して、そこにstyleを当てる
#AndroidDevSummit
編集可能なスタイル付きテキストを実現できる方法
state.edit {
addStyle(
SpanStyle(...),
range = TextRange(0, 5),
expandPolicy = ExpandPolicy.InsideOnly
)
insert(2, "xxxx")
}
Spanの範囲内に文字を挿入すると、スタイルの適用範囲も自動的に広がる。
#AndroidDevSummit
ビジネスロジックでテキスト入力を扱うなら、TextFieldStateはViewModelで保持する。
UiState(StateFlow)の中にTextFieldStateを入れるのは避ける。mutableなので内部の変更がStateFlowに通知されない。
ViewModelに直接持つのが推奨。
#AndroidDevSummit
MLKitに追加されたAgentic flow API。
普通にセッション作ったりturnの数指定して、複数のtoolを一気に呼んだりできるみたい。
github.com/android/ai-sample…
Gemma 4 2BでもGemma 3 27Bとベンチマーク上同じぐらいに動くようになったそう。
#AndroidDevSummit




