2.7K Views
September 05, 24
スライド概要
DroidKaigi 2024 事前勉強会(非公式イベント)
で発表したスライドです。
https://andpad.connpass.com/event/327715/
Android Engineer at Kyash Inc.
15年目の Android エンジニアが オススメする DroidKaigi 2024 のセッション 3選! DroidKaigi 2024 事前勉強会 (非公式イベント) 1
自己紹介 ● ● 高田 晴彦 @tfandkusu ○ ● ● ● X / Qiita / Zenn / GitHub / note 株式会社Kyash Androidエンジニア スプラトゥーンが好き 2
Android エンジニア 15年目で DroidKaigi 初登壇 ● ● ● Android エンジニアは2010年から DroidKaigi へのプロポーザル提出は2022年から 累計5つめの提出が採択 🎉 13日 / 12:20 ~ 13:00 Giraffe データに基づく意思決定を支える、Google Analytics for Firebase のイベント送信 3
個人的オススメセッションを 3つ紹介 1. 2. 3. みんなこれやりたいと思う 個人的に気になる a. 13年前の話をします 私の発表と同じ時間だけど、人によってはこっちの方がオススメ a. Androidエンジニア15年目は関係なし 4
オススメ 1つめ 理由 ● ● 私はこれまで3社在籍して、3社すべてでこの エフェクトを検討または実装してリリースした やりたい人は多いと思う https://github.com/DroidKaigi/conference-app-2024 より引用 5
2社目でリリースした該当エフェクトを紹介 株式会社リサーチ・アンド・イノベーションの「CODE」アプリ バーコード読取 キーワード検索 商品レビュー閲覧 6
動画で紹介 バーコード読取 共通要素でスムーズに遷移 キーワード検索 7
実装方法を紹介 (開発当時) 代わりの実装 Compose でなく View による実装 1. Activity 呼び出しによる画面遷移 ViewCompat.setTransitionName 等の SDK は 不使用 2. 次の画面の見た目に向かって ObjectAnimator でアニメーション 次の画面をフェードインで呼び出す a. カメラの制御で UI スレッドが一瞬止ま るタイミングを自然に見せる カメラの制御で UI スレッドが一瞬止まるため、そ れでは自然な画面遷移にならなかった 8
Shared Element Transitions の発表たのしみ Google Play Storeなどのアプリも Jetpack Compose対応以降 Shared Element Transitionが無くなっており、実装 の難易度が高い事が窺えます。 そのような状況で、ついに Jetpack Composeでも Compose1.7.0-betaから実験的な機能として `SharedTransitionLayout`, `Modifier.sharedElement()`などが導入され、 Shared Element Transitionを以前より も手軽に導入することが可能になりました。 早速私達のプロダクトでも導入し始めていますが、とても簡単に書くことができる一方、注意しなければならない 点もありました。 https://2024.droidkaigi.jp/timetable/693259/ より引用 9
オススメ 2つめ 理由 ● 13年前の PDF に関する経験 https://github.com/DroidKaigi/conference-app-2024 より引用 10
2011年ごろの話 世は空前の自炊ブーム 電子書籍 ブーム iPad 登場 初代は重かったが iPad 2は軽量 初代 Galaxy Tab も発売 画像は https://support.apple.com/ja-jp/111990 https://bungu.plus.co.jp/product/cut/papercutter/pk-513ln/ https://www.pfu.ricoh.com/products/ より引用 11
当時、検討されたアプリ ● ● 自炊によって作られた PDF に書き込みができるアプリ PDF を表示する必要がある 12
Android SDK のサポート ● ● PDFRenderer クラスを使うことで PDF を表示できるが、 2014年11月の Android 5.0から追加 2011年当時は Android 2.3 〜 4.0 なのでサポートされていない 13
PDF レンダリングは自作できるか 無理 ● ● PDF の仕様書は PDF で1,300ページある OSS 実装も商用利用はできなそう ○ GPL しか無かった 14
サードパーティ製ライブラリを試用
●
●
●
PDF データを配列で渡すと、Bitmap の配列を受け取れるライブラリ
Android NDK による提供
高速処理が可能、既存資産の活用というメリットもある
C 言語よる開発
○
○
Java よりも記述力が低い
メモリアクセス違反を起こすとスタックトレースも出さずにアプリが落ちる
logcat にこんな感
じのログが流れる
Build fingerprint: 'Android/aosp_angler/angler:7.1.1/NYC/enh12211018:eng/test-keys'
Revision: '0'
ABI: 'arm'
pid: 17946, tid: 17949, name: crasher >>> crasher <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xc
r0 0000000c r1 00000000 r2 00000000 r3 00000000
r4 00000000 r5 0000000c r6 eccdd920 r7 00000078
r8 0000461a r9 ffc78c19 sl ab209441 fp fffff924
こちらの出力は https://source.android.com/docs/core/tests/debug より引用
15
PDF の発表たのしみ また、PDF Viewer作成の際に使用するPdfRendererに、Android 15より新しい機能が多 く追加されました。この新しい機能の使い方・考えられる活用方法についても紹介しま す。 このセッションで話すこと ・Androidの標準APIを使って、基本的なPDF Viewerを作成する方法 ・Composeを使いPDF Viewerを作成する方法 https://2024.droidkaigi.jp/timetable/690809/ より引用 16
オススメ 3つめ 高田の発表と同じ時間 https://github.com/DroidKaigi/conference-app-2024 より引用 https://2024.droidkaigi.jp/timetable/9-13/ より引用 17
高田の発表 データに基づく意思決定を支える Google Analytics for Firebase のイベント送信 ● ● ファネル分析 AB テスト 予備知識として 基本的な内容を解説するに留まる 適切な実装方法 こっちが メイン 適切に実装し続けるチームを作るための 各種自動化 18
分析に裏打ちされたアプリウィジェット開発 Jetpack Glanceとともに ②データに基づく開発施策と効果検証 - 開発施策 データに基づく意思決定に ついて厚めに説明されると 感じた - 現状のウィジェット分析 - 新ウィジェットの開発 - ユーザーへのウィジェット訴求 - 効果検証と意思決定 https://2024.droidkaigi.jp/timetable/694104/ より引用 19
こんな人におすすめかも データに基づく〜 ● ● ● ● 分析に使えるデータが貯まっていない Analytics イベントの送信の実装抜けや不適 切な実装に悩む人 データ分析は PdM やデータ分析エンジニア など別の人が主に担当するので、モバイル エンジニアとして、その人を困らせないアプリ 実装をしたい 実装ミスを防ぐための、自動コード生成や detekt カスタムルールが気になる 分析に裏付けされた〜 ● ● ● データは十分に貯まっているが活用で きていない どのようにデータ分析して意思決定す れば良いか気になる人 ウィジットが気になる人 ※ タイムテーブルの文面から感じたことを書 いています。発表者に発表内容を聞いたりは していません。 20
まとめ ● ● ● 個人的に気になるセッションを3つ紹介 今回、紹介しなかったセッションも、すべてすばらしいセッション みんなで DroidKaigi 2024 を盛り上げて行きましょう ありがとうございました 21