kako.dev

開発、自作アプリのこと

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

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

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

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

Firebase Functions で `Response is not valid JSON object.` が出てハマった

Firebase Functionsを使ってみたらResponse is not valid JSON object.という例外が発生してハマりました。 こういうFunctionをデプロイ

FCMで analytics_label を設定してプッシュごとの集計可能にする

公式に載ってないハマりポイントがあったのでまとめます。 HTTP V1 API FCMではHTTP V1 APIが提供されておりAPI経由でプッシュを配信することができます。 HTTP V1 APIの準備はこちらみれば大体できます。 以前の HTTP から HTTP v1 に移行する | Firebase …

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」内で紹介されました!

KotlinFest2019に参加しました

8月24日(土)に行われたKotlinFest2019に参加してきました。 KotlinFestとは

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

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

sshでgit pushしてるのに毎回パスワードを聞かれる

git

git remote add originにsshを設定したのに git pushのたびに Enter passphrase for key '/Users/name/.ssh/id_rsa' って聞かれる。 ssh-addすればいい $ ssh-add ~/.ssh/id-rsa でOK

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はリアルタイムで配信を見ていたのですが、気になるセッションはこれから見ていこうと思ってます。

ViewPagerのページ切り替え時に処理する

ViewPagerのページ切り替え時に何か処理をしたい時はOnPageChangeListenerを使います。 OnPageChangeListenerを定義して、ViewPager.addOnPageChangeListenerにセットしてあげるだけで出来ます。

Fragmentで戻るボタンをoverride

appcompat:1.1.0-alpha04以降の場合はこう。

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

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

Google I/O '19 Keynote 個人的胸熱まとめ

ioに落選してしまったので、さっきまで(現在時刻8日AM04:45)Youtubeでライブ配信見てました。

サーバーにある画像をImageViewで表示する。そしてそれをDataBindしたい。

Drawableにある画像ではなく、サーバーにある画像をImageViewかつDataBindで表示したいことあると思います。 いくつか方法ありますが、簡単な方法を紹介します。

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

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

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

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

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

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

アプリ内課金勉強会in-Tamachi-Billing-Night参加記録

in-Tamachi-Billing-Night 先日、マネーフォワード社で開かれたin-Tamachi-Billing-Nightに行ってきました。 billing-night.connpass.com アプリ内課金の勉強会で、iOS、Android、サーバーサイドそれぞれの知見が集まってました。 Androidのアプリ内課金をAA…

ChipのTextSizeを変更する

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