ticktakclockの日記

技術ポエムを綴ったりします。GitHub idも同じです (@ticktakclock)

2020-01-01から1年間の記事一覧

minSdkVersionを19->23にする時に考慮したこと

こんにちは、tkyです。 私が業務で担当しているAndroidのアプリサポートバージョンをAPI19->23に引き上げました。 すでにリリースから数ヶ月経過しましたが、その時にやったことなどをまとめたいと思います。 OSの分布を知る 世界的なOS分布 developer.andro…

Go言語でgit checkoutを補助するコマンドを作った

Go

こんにちは、tkyです。 Go勉強してコマンドを作ってみました。 github.com git checkout をサポートする gith というコマンドです。 デモ1 こんな感じにブランチが選択式で表示されるので選べばそのブランチに移動できるようなものです。 リモートブランチ…

GitHubActionsとCircleCIを使い分ける

こんにちは、tkyです。 今私が携わっているAndroidプロジェクトのCIは基本的にCircleCIを採用しています。 そんな中、同時にGitHubActionsも採用した経緯とどんなことをしているのか、ちょっとハマったことを書き留めておこうと思います。 また、本記事は「…

Kotlin applyから理解するレシーバー付きラムダ

こんにちは、tkyです。 『レシーバー付きラムダ』という用語をご存知でしょうか。Kotlinインアクションとかで使われている表現です。 英語では Function literals with receiver と言われています。 今回は apply{} がどのように動作するのか確認しながら『…

LiveDataをどのレイヤー(Repository層)まで許容するか

こんにちは、tkyです。 先日、とあるcodelabをやっていて『Repository層でLiveDataって使っていいの?』と感じたことがあり。 この疑問からLiveDataを使用するレイヤーとそこから生じるメリット・デメリットなどを考察した内容をまとめておきます。 こういう…

ViewModelのテストを書く

こんにちは、tkyです。 テスト、書いてますか? 僕はぼちぼち書いてます。 今日はViewModelのテストを書いてみたいと思います。 サンプリリポジトリです。サンプルではGitHubのAPIにアクセスする簡単なサンプルにテストを書いてみた感じです。 github.com 本…

JetpackComposeのチュートリアルをやってみた

こんにちは、tkyです。 かねてから触ってみたかったJetpackComposeのチュートリアルをやってみました。 本稿は2020/08/09時点のAndroid Jetpack compose チュートリアルを実施するに当たり ハマらないため+これからやることをイメージできるようにすること…

Shared Elementで画面遷移にアニメーションを加える

こんにちは、tkyです。 Androidで動きのある画面遷移に挑戦してみようと思います。 画面間遷移にアニメーション 今回は画面から画面の遷移にSharedElement(これって機能名になるんですかね?)を指定して 「遷移元のUIの一部が遷移先のUIの一部になるように…

simple pollを使ってslackでアンケートを取る

こんにちは、tkyです。 N番煎じの小ネタなのですが、案外使っていない人が多いのかもしれませんね。 slackでアンケート的な何かがあるときにリアクションを使うパターンはよくありますね。 slack一般的なアンケート 実は/pollコマンドでアンケート作れます /…

KotlinプロパティとカスタムゲッターのBytecodeから見る違い

こんにちは、tkyです。 今日はKotlinのプロパティとゲッターの種類と違いを深堀りしてみようと思います。 はじめにプロパティとフィールドについておさらい程度に単語を整理します。 プロパティとフィールド Kotlinのプロパティについて復習です。 dogwood00…

BillingLibraryを1.2 -> 2.2.1にアップデートするまで(ついでにRx->Coroutinesも)

こんにちは、tkyです。 BillingLibraryのバージョンを遅ればせながら1.2 -> 2.2.1(20200603時点の最新)にアップデートしましたのでその時の作業内容をまとめておこうと思います。 バージョンアップは必要なのか? 必要です。 Google I/O'19において 毎年のGo…

Android Billing Library 2.0を使って課金フローを確認してみる

こんにちは、tkyです。 PlayConsoleに登録しないでBilling Library2.0を使ってみた所感などを書いていきます。 目的は『課金フローを理解する』ことにあります。 基本ドキュメント見たら書いてあるため公式のドキュメントを信頼するのが一番良いです。本記事…

gradleのライブラリ依存関係を出す

こんにちは、tkyです。 Android小ネタ集です。色々なブログでも書かれている内容で、ほぼ自分用として書いておきます。 Dependency treeが見たい時、ありますよね? (ライブラリを特定のバージョンに上げると何故か別の機能がバグるみたいなことがたまにあ…

EpoxyとDoNotHashとequals()

こんにちは、tkyです。 Androidネタです。epoxyの話です。 ※epoxy is 何の話はしません epoxyはデータバインディングをサポートしていて、リソースファイルからデータバインディング用のモデルクラスを自動生成してくれたりします。 github.com 上記のドキュ…

プルリクのレビュー件数をグラフにしてみた

こんにちは、tkyです。 社内でプルリクをいろいろなメンバーにレビューしてもらっているのですが、 「最近特定の人ばかりにレビュー依頼してる気がする・・・負荷溜まってないかな・・・」 という一抹の不安をいだき誰にレビュー依頼するか判断する材料にし…

WebView android.view.InflateException on Lollipop

こんにちは、tkyです。 久々にWebViewで落ちた案件です。Lollipop(5.0)です。悲しみです。 手元にLollipopがないので実機で発生するかわからないのですが、Emulatorで発生するものです。 もしかしたらPlay Storeからandroid system webveiwのバージョンを上…

Kotlinのif elseとletとalso

こんにちは、tkyです。 Kotlinにおいてnullチェックしてそのインスタンスにアクセスする場合、?.let{} を使うことがわりと多いです。 しかしnullだったときの処理も記述する場合?.let{} だとどうしてもわかりづらくなる場合があり、素直にif elseを使ったほ…

logcatが出力されなくなった時の対処

こんにちは、tkyです。 既出小ネタ集です。 AndroidStudioで開発中たまにAS上のLogcatが出てこないときがあります。 read: unexpected EOF! --------- beginning of crash 昔から対策自体はありますが、全体的に記載記事が古くなっている方に感じるので今で…

Navigation SafeArgsを使って画面遷移でパラメータを渡す

こんにちは、tkyです。 前回はBottomNavigationとNavigationをあわせた画面遷移を作りましたが、パラメータを渡せないと実務では利用しづらいケースが多いと思います。 ↓前回記事↓ ticktakclock.hatenablog.com 今回はSafe Argsの機能を使って次の画面にパラ…

Android Jetpack Navigationで画面遷移する

こんにちは、tkyです。 下タブ(BottomNavigation)とNavigationをあわせて画面遷移とアニメーションを実現するところまで実装してみようと思います。 Navigationがわからない人が AtivityとFragmentの画面遷移ができる アニメーションに必要なパラメータが…