Android

Navigation ComponentでNested Navigation Graphのrouteを指定してpopBackStackしたときの挙動

TL;DR Navigation ComponentでNested Navigation Graphのrouteを指定してpopBackStackしたときは、inclusiveの値がtrue/falseいずれの場合もNested Navigation Graphから抜けることができる。

AndroidのActivityやFragmentで文字列と文字列リソースを一括して扱うためのsealed classの作成

Androidで文字列を扱う場合、以下の2パターンのいずれかであることが多いと思います。 クライアント側で定義した文字列リソースを使用する サーバー側から受け取った文字列を使用する これらをActivityやFragmentで一括して扱うために、以下のようなsealed c…

TabLayout + ViewPager2でScroll To Topを実現する方法

本記事では、現在選択されているタブを再度タップしたときに、タブ内のリストを先頭までスクロール(以下、Scroll To Topと呼びます)させる方法について記載しています。 なお、本記事の最後にサンプルコードのリンクを記載しているので、実行環境の詳細につ…

<merge>タグ内のレイアウトのプレビューを適切に表示する方法

タイトル通りの内容です。 結論から言うと、<merge>タグのtools:parentTag属性に追加先のレイアウトのLayoutを指定すればOKです。</merge>

asyncAll()という拡張関数を作ってKotlinのリスト操作の中で並列処理を実行する

前回の記事でawaitAll()を使ったリスト操作の中で並列処理を実行した結果の待ち合わせについて書きました。 tkhs0604.hatenablog.com その中で、並列処理を実行するときに毎回map { async { hoge() } }と書くのは辛いと思ったので、asyncAll()という拡張関数…

Kotlinのリスト操作の中でCoroutinesのasync()で並列処理を実行した結果を待ち合わせる方法

タイトルが非常に分かりづらくて申し訳ないです🙇‍♂️ Kotlinのリスト操作の中でネットワーク通信のような時間のかかる処理を並列に実行したい場面があったのですが、Coroutinesを使ってその結果を待ち合わせる方法が最初分からなかったので、本記事はそのメモ…

OSバージョン間の差分を考慮したAndroidのThemeの定義方法

OSバージョン間の差分を考慮したAndroidのThemeの定義方法について整理してみました。基本的にはAppCompatライブラリの定義方法を参考にしています。 Themeについては以下の公式ドキュメントをご参照ください。 developer.android.com 以降は、Android 7.0で…

AndroidでHaptic Feedbackを実装する

本記事では、iOSではおなじみのHaptic Feedback(触覚フィードバック)をAndroidで実装する方法について記載しています。 「Android Dev Summit 2019」の動画で実装例が紹介されていたので、こちらを参考にしました。 www.youtube.com Haptic Feedbackについて…

ConstraintLayout下でlayout_widthにwrap_contentを指定したTextViewが制約を無視してはみ出すときの対処法

(タイトルが長い…笑) 以下のようなレイアウトを作成するときにハマった話です。 左右に可変テキストがあり、テキストが長くなって画面に収まらなくなるときに左側の可変テキストの末尾が省略される仕様を想定しています。 (余談ですが、Layout Editorではand…

ConstraintLayout下でGroup指定したViewのvisibilityは個別には変更できなくなる

分かってしまえば確かにその通りなのですが、地味にハマってしまったのでメモ。 ConstraintLayout下でGroup指定したViewのvisibilityは個別には変更できなくなるので気をつけてくださいという話です。

Data BindingライブラリのBinding Methodについて

AndroidのData BindingライブラリのBinding Methodに関する記事がなかなか見つからなかったので、簡単にですがまとめてみます。 Data BindingライブラリやBinding Adapterについては公式ドキュメントなどをご参照ください。 developer.android.com

BottomSheetをフルスクリーン状態で表示する方法

タイトルのような実装を行う機会がたまにあるのですが、毎回やり方が分からなくなっている気がするので、メモとして残しておきます。 結論から言うと、以下の対応をソースコード上で行うことによって実現できます。

「Bonfire Android #5」に参加しました

ヤフー株式会社(LODGE)で開催された「Bonfire Android #5」に参加してきました! yj-meetup.connpass.com 今回のテーマは「Jetpackとサービス」で、以下5件の発表がありました。 個人的にどうしても聞いておきたいテーマだったので、「ブログで感想枠」で申…

「Androidアプリ設計パターン入門」を読んで(その3)

今回の記事では、MVP(Model-View-Presenter)と呼ばれるアーキテクチャについて説明していきます。

「Androidアプリ設計パターン入門」を読んで(その2)

今回の記事では、MVVM(Model-View-ViewModel)と呼ばれるアーキテクチャについて説明していきます。

「Androidアプリ設計パターン入門」を読んで(その1)

そういえば、年始に以下のような宣言をしていました。 2019年の目標の1つとして「毎月1冊以上の技術書籍を読み、ブログにその内容をまとめる」ということをやっていく予定です。「リーダブルコード」を改めて読んでみて(その1) - ツレヅレナルママニ 当初…

Jetpack Composeを利用したコンポーネント作成からレイアウト生成までの流れ

Google I/O 2019でJetpack Composeというツールキットの発表がありました。 現時点ではまだpre-alpha版ですが、Jetpack Composeを利用してどのようにコンポーネントを作成し、それらを組み合わせ、レイアウトを生成するかについてデモアプリのソースコードを…

AndroidのImageViewに関するあれこれ

お久しぶりです!しばらくブログを更新できていませんでした‍♂️ アカペラ活動がようやく一段落ついたので、また更新頻度を上げていければと思います。 とはいえ、この間に何もしていなかった訳ではなく笑、技術的な話をQiitaという技術情報共有サービスに少…