Android
JUnit4のParameterized JUnit4のTheory Junit5のParameterizedTest 参考 社の読書会で「単体テストの考え方/使い方」を読んでます。 単体テストの考え方/使い方作者:Vladimir Khorikovマイナビ出版Amazon 本書の中でパラメタライズドテスト(パラメータ化テ…
Flowに対して勘違いをしていたことがいくつかあって、そのうちの1つである debounce について試したのでまとめます。 debounceに勝手に期待していた挙動 flowでdebounceを指定すれば、設定したms内では処理を1回に制限してくれると勘違いしていました。 例え…
「7 月 20 日までにデータ セーフティ フォームにご記入ください」とGoogleから言われたので回答した。 GooglePlayでアプリ配信しているアプリはこれをしないとアプリのアップデートが非承認になります。 Googleがちゃんとドキュメント用意しているのでしっ…
雰囲気でrepeatOnLifecycleを使ってきたんですが、ちょっと気になったのでrepeatOnLifecycleの内部処理を覗いてみます!
イケてるログインフォーム欲しい こんなふうな入力欄タップしたらヒントが上にクイッって上がるやつ。 インストール implementation 'com.google.android.material:material:1.0.0' レイアウト TextInputLayoutの中にTextInputEditTextを配置します。
だらだらとスローペースで開発していて リリース時期を見計らって先日、個人開発でAndroidアプリをリリースしたので、色々振り返りをしてみます。 目次 どんなアプリ? だれに向けたアプリか? 日本人の7割はくせ毛 開発は去年の9月からしていた 梅雨の時期…
Roomには重複を避ける方法紹介します。 やることは2つ Entityにインデックスをつける INSERT時 OnConflictStrategy.IGNORE をつける Entityにインデックスをつける Userデータがあると想定して、account_idの重複をさせないようにします。
(この記事は技術的な内容はなく、Google広告を使って見た個人の感想です。) 最近個人でリリースしたアプリがあります。 無音カメラ:静かにトレルンです 無音で最高画質のカメラアプリ - Apps on Google Play リリース後は「どれくらいインストールされてい…
今更ながらDagger Hiltを触りました。 DIの経験はDagger2とKoinを触ったことがあります。 最近はもっぱらKoinでした。 体系的に学ぶなら公式のドキュメントを読むのが最良ですが、公式ドキュメントがちょいちょい古いところがあるので、自分用にまとめます。
はじめに 何か Android に特化した Turbo Module を作ってみたくて、Gemini Nano を呼び出すライブラリを作った。 github.com その過程で、ネイティブ内で非同期処理を行いJSへPromise を返す Turbo Moduleをどう実装するか一通り体験したので、手順をまとめ…
プロローグ 昔に作ったAndroidアプリをアップデートしようとしたらKeystoreが見つかりませんでした。 Google Play Consoleから鍵のアップグレードをリクエストする 幸いそのアプリが「Play App Signing」を有効にしていたのでなんとかなりそうです。
この記事は Android #2 Advent Calendar 2019 13日目の記事です。 qiita.com
Kotlin Multiplatform Mobile (KMM)でFirestoreを利用する方法を紹介します。
迫る64bit対応 個人でリリースしているアプリの中でReactNativeで開発したものがあるのですが、先日Google様から64bit対応してないよと通達を受けました。
勤め先の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…
Jetpack ComposeにViewModelをDIする方法として2通り見つけた。 androidx.hilt.navigation.compose.hiltViewModel と androidx.lifecycle.viewmodel.compose.viewModel ググって出てきた記事ではhiltViewModelを使っているケースが多い気がしたがこれはnavi…
2024/06/22 に KotlinFest 2024に参加しました。 www.kotlinfest.dev KotlinFestは2018、2019、2022(online)と参加してオフラインは5年ぶりの開催でした。 KotlinConf 2024 を後から256倍楽しむためのヒント セッションの中から関心の強いものを効率的にキャ…
今年もDroidKaigi2024にオフライン参加してきました 今年は転職したこともあり、自社のブースに立ってコミュニケーションとったりしたのが大きな変化だった。 後は、前職の人とも会えたり、SNS上でだけご存じだった人と話したりできた。
2023/3/31にDroidKaigi.collect{ #1@Tokyo } でLT登壇しました。 speakerdeck.com LTの中でComposeの座標取得について触れているんですが、Composeの座標はどのようにセットされてくるのか気になり調べてみました。 Composeの座標を取得する方法 Modifier.on…
今開発しているアプリで、TabLayoutのIndicatorをちょっとカスタマイズしたくなりました。 出来上がりこんな感じ 選択中のタブに楕円形の背景をつけます。
最近AdMobを詰め込んだアプリをリリースしました。 play.google.com このアプリには下記3タイプのAdMob広告を入れています。 バナー インタースティシャル リワードインタースティシャル 導入方法をまとめます
今年もDroidKaigi 2023にオフライン参加しました。 そのまとめブログです。 Day1 Modifier.Nodeを使いましょう よく見るあのUIをJetpack Composeで実装する方法〇選 iOSとAndroidで定期購入の意図しない解約を防ぐ YouTubeへのライブ配信機能をリリースする…
Introduction 昨今、テクノロジーは発展していき、独創的であることを可能にするが、はるかに複雑になる ユーザーは多種多様なデバイス、プラットフォームでインタラクティブで高速な体験を期待している ユーザーの需要に応えるようなシステムを期待 プライ…
こんにちわ。普段AndroidのエンジニアしていますAndroidエンジニアです。 技術書典13始まりました。たっっっっくさんの本があって、気になる本ばかりで金銭感覚ぶっ壊れます。 本がたくさんあるので、全部見るのもまあまあ大変です。(でも可能なら全部見て…
この記事はAndroid Advent Calendar 2023 16日目の記事です。 ハァ… 困ったなァ ちょっと体調くずしちゃって、全然文章書けなくてェ... ほんとに体調くずしてしまい文章書けなかったため、今回はいつかどこかで発表しようと思いながら今日まで日の目を見なか…
4月に YUMEMI.grow さんでLTした内容で、ComposeでTimeRangePickerを作りました。 speakerdeck.com 日が経ちすぎてしまいましたが、ライブラリ公開したので紹介します。 どういうライブラリ? Composeで作成したTimeRangePickerです。時間の範囲を選択できる…
KotlinConfの内容を見ていたら、Compose for iOSのアルファ版がリリースされました。 github.com 私はAndroidエンジニアですが、ComposeでiOSアプリが作れるのはアツい展開なので早速動かしてみました。
versionCatalogsのaliasがDeprecatedになりました。 VersionCatalogBuilder (Gradle API 7.6) 今後は alias の代わりに library を使用します。 マイグレーション 今まで 一例 alias("core-ktx").to("androidx.core:core-ktx:1.7.0") // または version("cor…
3年ぶりのオフライン 2022/10/05~07に開催されたDroid Kaigi 2022に参加しました。3年ぶりのオフライン参加でお祭り感をビジビジ感じました。
Compose for Wear OSではさまざまな入力インターフェースも提供されています。ウェアラブルの入力形式でよく見るであろうPickerの実装をしていきます。