kako.dev

開発、自作アプリのこと

Android

JUnitのパラメタライズドテスト

JUnit4のParameterized JUnit4のTheory Junit5のParameterizedTest 参考 社の読書会で「単体テストの考え方/使い方」を読んでます。 単体テストの考え方/使い方作者:Vladimir Khorikovマイナビ出版Amazon 本書の中でパラメタライズドテスト(パラメータ化テ…

Paging3のSeparatorsを使ってLazyColumnにヘッダーや 別のアイテムを挿入する

この記事はAndroid Advent Calendar 2023 16日目の記事です。 ハァ… 困ったなァ ちょっと体調くずしちゃって、全然文章書けなくてェ... ほんとに体調くずしてしまい文章書けなかったため、今回はいつかどこかで発表しようと思いながら今日まで日の目を見なか…

今年もDroidKaigi 2023にオフライン参加まとめ

今年もDroidKaigi 2023にオフライン参加しました。 そのまとめブログです。 Day1 Modifier.Nodeを使いましょう よく見るあのUIをJetpack Composeで実装する方法〇選 iOSとAndroidで定期購入の意図しない解約を防ぐ YouTubeへのライブ配信機能をリリースする…

Compose製のTimeRangePicker作って公開しました

4月に YUMEMI.grow さんでLTした内容で、ComposeでTimeRangePickerを作りました。 speakerdeck.com 日が経ちすぎてしまいましたが、ライブラリ公開したので紹介します。 どういうライブラリ? Composeで作成したTimeRangePickerです。時間の範囲を選択できる…

Firestore with Kotlin Multiplatform Mobile (KMM)

Kotlin Multiplatform Mobile (KMM)でFirestoreを利用する方法を紹介します。

Compose for iOS でiOSアプリを開発する

KotlinConfの内容を見ていたら、Compose for iOSのアルファ版がリリースされました。 github.com 私はAndroidエンジニアですが、ComposeでiOSアプリが作れるのはアツい展開なので早速動かしてみました。

Composeが座標を返す流れを追ってみる

2023/3/31にDroidKaigi.collect{ #1@Tokyo } でLT登壇しました。 speakerdeck.com LTの中でComposeの座標取得について触れているんですが、Composeの座標はどのようにセットされてくるのか気になり調べてみました。 Composeの座標を取得する方法 Modifier.on…

repeatOnLifecycleは中で何をしているのか?

雰囲気でrepeatOnLifecycleを使ってきたんですが、ちょっと気になったのでrepeatOnLifecycleの内部処理を覗いてみます!

VersionCatalogsのaliasのDeprecated対応

versionCatalogsのaliasがDeprecatedになりました。 VersionCatalogBuilder (Gradle API 7.6) 今後は alias の代わりに library を使用します。 マイグレーション 今まで 一例 alias("core-ktx").to("androidx.core:core-ktx:1.7.0") // または version("cor…

Droid Kaigi 2022 参加まとめ感想

3年ぶりのオフライン 2022/10/05~07に開催されたDroid Kaigi 2022に参加しました。3年ぶりのオフライン参加でお祭り感をビジビジ感じました。

技術書典13のAndroid関連の本まとめ

こんにちわ。普段AndroidのエンジニアしていますAndroidエンジニアです。 技術書典13始まりました。たっっっっくさんの本があって、気になる本ばかりで金銭感覚ぶっ壊れます。 本がたくさんあるので、全部見るのもまあまあ大変です。(でも可能なら全部見て…

Compose for Wear OSでPickerを表示する

Compose for Wear OSではさまざまな入力インターフェースも提供されています。ウェアラブルの入力形式でよく見るであろうPickerの実装をしていきます。

1mmだけ知る Health Connect

前回 kako351.dev もう少し紐解きたい HealthConnectのアーキテクチャ HealthConnect はSDKとHealthConnectAPKがIPC(プロセス間通信)を介してクライアントアプリから接続します。 Health Connect アーキテクチャ図 クライアントアプリにSDKを使うとHealthC…

【GooglePlayConsole】データ セーフティへの回答したので要領まとめる

「7 月 20 日までにデータ セーフティ フォームにご記入ください」とGoogleから言われたので回答した。 GooglePlayでアプリ配信しているアプリはこれをしないとアプリのアップデートが非承認になります。 Googleがちゃんとドキュメント用意しているのでしっ…

ミリしら Health Connect

Google I/O '22 で発表があった「HealthConnect」をとりあえず触ってみたのでその所感を雑にまとめます。 ちゃんと理解したら、また別にブログ書きます。 HealthConnect I/OのDeveloperKeynoteにあった発表をまとめるとこんな感じ(英語聞き取りミスで間違い…

Wear OS で初めてのタイル作成 の Codelabをやってみた

前回 Compose for Wear OSのCodelabをやってみたら、WearOSが楽しくなったので、タイル作成のCodelabもやってみた。

Compose for Wear OS の Codelabをやってみた

Google I/O 2022で発表があった「Compose for Wear OS」を見てから、WearOS開発への意欲が湧いてきたので、Compose for Wear OS の Codelabに入門してみた。

【超個人的】Google I/O 2022 Jetpack Composeまとめ

勤め先のAndroidチームでみんなでGoogle I/Oの動画見よう!ということになりみんなで見た。 視聴したプログラム https://io.google/2022/program/213421b6-9873-464f-9b36-38eeb232a854/intl/ja/ https://io.google/2022/program/14bb63ef-2dd1-460a-9871-5f…

【超個人的】Google I/O 2022 Developer Keynote 気になりポイント

Introduction 昨今、テクノロジーは発展していき、独創的であることを可能にするが、はるかに複雑になる ユーザーは多種多様なデバイス、プラットフォームでインタラクティブで高速な体験を期待している ユーザーの需要に応えるようなシステムを期待 プライ…

【超個人的】Google I/O 2022 keynote 気になりポイントまとめ

今年もオンラインで2日間開催されたGoogle I/Oに参加しました。 keynoteはリアルタイムで視聴。それ以外のセッションはアーカイブで見ました。 参加の様子 今年はKeynoteはリアルタイムで見るつもりだったこともあり、Twitterで見かけたこちらに参加しました…

hiltViewModel() vs viewModel()

Jetpack ComposeにViewModelをDIする方法として2通り見つけた。 androidx.hilt.navigation.compose.hiltViewModel と androidx.lifecycle.viewmodel.compose.viewModel ググって出てきた記事ではhiltViewModelを使っているケースが多い気がしたがこれはnavi…

Google広告で個人アプリのスタートダッシュを決める

(この記事は技術的な内容はなく、Google広告を使って見た個人の感想です。) 最近個人でリリースしたアプリがあります。 無音カメラ:静かにトレルンです 無音で最高画質のカメラアプリ - Apps on Google Play リリース後は「どれくらいインストールされてい…

【アプリで収益化を目指す】AdMob入門

最近AdMobを詰め込んだアプリをリリースしました。 play.google.com このアプリには下記3タイプのAdMob広告を入れています。 バナー インタースティシャル リワードインタースティシャル 導入方法をまとめます

Flowのdebounceについて勘違いしていたので調べた

Flowに対して勘違いをしていたことがいくつかあって、そのうちの1つである debounce について試したのでまとめます。 debounceに勝手に期待していた挙動 flowでdebounceを指定すれば、設定したms内では処理を1回に制限してくれると勘違いしていました。 例え…

Androidで手書きの文字を解析して音声再生する

プロローグ 個人開発しているアプリで、キャンバスに書かれた文字を解析して音声再生する機能をリリースしました。 実装した記録をブログとしてまとめます。 久々に個人開発アウトプットした。リリース済みアプリをアップデートしました。手書き文字を音声再…

Roomでデータを重複させない

Roomには重複を避ける方法紹介します。 やることは2つ Entityにインデックスをつける INSERT時 OnConflictStrategy.IGNORE をつける Entityにインデックスをつける Userデータがあると想定して、account_idの重複をさせないようにします。

Keystoreを無くした時の対応

プロローグ 昔に作ったAndroidアプリをアップデートしようとしたらKeystoreが見つかりませんでした。 Google Play Consoleから鍵のアップグレードをリクエストする 幸いそのアプリが「Play App Signing」を有効にしていたのでなんとかなりそうです。

Dagger HiltでViewModelをDIする

今更ながらDagger Hiltを触りました。 DIの経験はDagger2とKoinを触ったことがあります。 最近はもっぱらKoinでした。 体系的に学ぶなら公式のドキュメントを読むのが最良ですが、公式ドキュメントがちょいちょい古いところがあるので、自分用にまとめます。

Firebase Cloud Storageにアップした画像を表示する

FirebaseのCloud Storageアップした画像をAndroidアプリで表示する方法です。 下記の環境で試します。

ジェスチャーナビゲーションに対応させる

この記事は Android #2 Advent Calendar 2019 13日目の記事です。 qiita.com