kako.dev

開発、自作アプリのこと

Android

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

作ったアプリが「Tabmo」で紹介されました&1000DL突破しました

「コーヒー好きのためのコーヒー手帳」がNTTドコモ「Tabmo」内で紹介されました! 私の開発しているAndroidアプリ「コーヒー好きのためのコーヒー手帳」がNTTドコモ「Tabmo」内で紹介されました!

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

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

EpoxyのTips

Epoxyを使い始めて半年くらいたちまして、色々Epoxyの使い方わかってきたのでTipsとしてまとめます。 ヘッダー・フッターを表示したい TypedEpoxyControllerの場合 PagedListEpoxyControllerの場合 アイテムにLiveDataを適応したい (ex.ヘッダーに表示件数を…

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

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

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

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

ViewModelのDIから始めるKoin入門

公式のInsertKoinを見れば分かる人はそちらを参照していただくのが一番良いと思うので、この記事は「DIをしたい」「Koin使ってみたいけどどうしたら分からん」という人向けに書いてみます。 個人的にViewModelの依存性解決するのがわかりやすいのではないか…

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

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

MVVMでYoutubePlayerアプリを作る

こんなサンプルアプリを作りました。 YoutubeDataAPIでYoutube動画を検索・再生できる簡単なアプリです。

I/O'19の動画見るスケジュール

先週GoogleI/Oがあり、いくつかのセッションはYouTubeにアップされてます。 日本居残り組だった私はなんとか雰囲気でも味わおうと、Keynoteはリアルタイムで配信を見ていたのですが、気になるセッションはこれから見ていこうと思ってます。

Jetpack CameraXのcodelabをやってみた雑感

Google I/O で発表があった Jetpack CameraX。 codelabが早速あったので興味100%で試してみました。

Androidで今日の日付を取得する

久々に日付を取得したいと思って、調べたらDate.getYearやgetMonthがdeprecatedになってた。。 以下のように、Calendarから取得すれば良さそうです。 日本語表示で欲しい場合は、DateFormat.formatに渡してあげれば大丈夫です。 val calendar = Calendar.get…

【読書感想】Jetpack Handbookを読んで

はじめに 最近、本をいくつか読んでいるので読み終えたものから感想を綴っていこうと思いまして。 今回は以下の本について書いていきます。Jetpack Handbook!! booth.pm 元はPEAKSで下記のクラウドファンディングを購入して応援していたですが、残念ながら目…

EditTextからカーソルが外れたらキーボードを隠す

EditTextってキーボードが隠れないですよね。 普通、以下のような動作に時にはキーボードが自動で隠れてほしいものです。 エンターを押した - 何ならアクションもしたい EditTextからカーソルが外れた 画面から離れた そんな時のために以下のようなクラスを…

ChipのTextSizeを変更する

最近Chipを使ったのですが、TextSizeの変更がxmlから出来なかったのでTextSizeの変更方法書きます。chip textsize not working ちなみにChipとはこれのことです。 material.io デフォルトだと18spなのでちょっとでかいんデスヨネ。 動的に変える fragment内…

RecyclerViewをEpoxyで楽に実装する

RecyclewViewってよく使うのですが、ボイラープレート多いなーって思うことがあります。 Epoxyを使ってみたら最高だったので紹介します。 ゴール 実際に以下のようなサンプルアプリを作成するつもりでEpoxyの使い方を紹介します。 epoxy samle ソースコード …

AndroidxでCannot resolve method 'setShiftingMode(Boolean)' in BottomNavigationView

最近、新規にAndroidプロジェクト開発する時はAndroidxにしています。そんなプロジェクト内でBottomNavigationViewを使う場合、デザインに合わせてアイテムのラベルを非表示にすることがあるのですが、かねてより使用していたsetShiftingModeがないためエラ…