kako.dev

開発、自作アプリのこと

Android

新着順 人気順

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

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

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

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

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

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

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

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

【TextInputLayout】マテリアルな見た目のログインフォームを作る

イケてるログインフォーム欲しい こんなふうな入力欄タップしたらヒントが上にクイッって上がるやつ。 インストール implementation 'com.google.android.material:material:1.0.0' レイアウト TextInputLayoutの中にTextInputEditTextを配置します。

【個人開発】10ヶ月あっためていたAndroidアプリをリリース。サービスや使用技術の紹介や全体の振り返り・・・

だらだらとスローペースで開発していて リリース時期を見計らって先日、個人開発でAndroidアプリをリリースしたので、色々振り返りをしてみます。 目次 どんなアプリ? だれに向けたアプリか? 日本人の7割はくせ毛 開発は去年の9月からしていた 梅雨の時期…

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

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

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

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

Dagger HiltでViewModelをDIする

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

ReactNativeでGemini Nanoを使う

はじめに 何か Android に特化した Turbo Module を作ってみたくて、Gemini Nano を呼び出すライブラリを作った。 github.com その過程で、ネイティブ内で非同期処理を行いJSへPromise を返す Turbo Moduleをどう実装するか一通り体験したので、手順をまとめ…

Keystoreを無くした時の対応

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

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

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

Firestore with Kotlin Multiplatform Mobile (KMM)

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

ReactNative→Kotlinのリファクタリングあるいはマルチモジュールの話

迫る64bit対応 個人でリリースしているアプリの中でReactNativeで開発したものがあるのですが、先日Google様から64bit対応してないよと通達を受けました。

【超個人的】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…

hiltViewModel() vs viewModel()

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

KotlinFest2024参加雑感想まとめ

2024/06/22 に KotlinFest 2024に参加しました。 www.kotlinfest.dev KotlinFestは2018、2019、2022(online)と参加してオフラインは5年ぶりの開催でした。 KotlinConf 2024 を後から256倍楽しむためのヒント セッションの中から関心の強いものを効率的にキャ…

DroidKaigi2024オフライン参加まとめ

今年もDroidKaigi2024にオフライン参加してきました 今年は転職したこともあり、自社のブースに立ってコミュニケーションとったりしたのが大きな変化だった。 後は、前職の人とも会えたり、SNS上でだけご存じだった人と話したりできた。

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

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

TabLayoutのIndicatorをカスタマイズする

今開発しているアプリで、TabLayoutのIndicatorをちょっとカスタマイズしたくなりました。 出来上がりこんな感じ 選択中のタブに楕円形の背景をつけます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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年ぶりのオフライン参加でお祭り感をビジビジ感じました。

Compose for Wear OSでPickerを表示する

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