stsnブログ

Android, Kotlin, Python, Go, Developer

Robolectric + JetpackでActivityのonActivityResultメソッドをテストする

マルチモジュールの遷移について考える Part2

でかいappモジュールがあるときに、中間モジュールを入れることで差分ビルドを上手く効かせる

DroidKaigi2019で「R8/ProGuard 徹底比較」というテーマで発表しました

R8/Proguard: JarファイルからProGuard設定ファイルを読み込んでくれるようになりました

FluxのDispatcherをRoomのin memoryで実装するのは、冗長なコードが多くなるので良くない

R8/Proguard: Daggerの生成コードがR8でどのように変わるかを見る

R8/Proguard: Kotlinのlambda最適化について

R8/Proguard: KotlinのCompanion objectとobjectについて

R8/Proguard: Class Mergingについて

Dynamic Feature ModuleでDagger Androidを使う

dexdumpメモ

マルチモジュールの遷移について考える Part1

感想: コーディングを支える技術

感想: オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方

Coroutine + AutoDisposeを作ってみた

FragmentとgetViewLifecycleの話

Dagger + ViewModelの基本編 + 実例編

GradleのMatching repositories to dependenciesを使ってライブラリのダウンロード先を指定する

Truthのメリット、特徴について

Kotlin: Resultの簡単なまとめ

Android: namespacedRClassフラグでRクラスを小さく保つ

Gradle: Dagger2でapiとimplementationどちらを使うか議論されている

Data Bindingのエラーログが3.4.0-alpha07から見やすくなる

Kotlin Coroutineを導入したらどれだけビルドタイムが増えそうか検証した

MutableなLiveDataを特定のクラス外から更新できなくする

Retrofitでカスタムアノテーションを使う

Activity、Fragment、Viewにコンストラクタインジェクションする

Kotlin: Contracts + 拡張関数でより便利に

Android: デバッグ時にMoshi、Daggerリフレクションライブラリを使いビルド時間を短縮する

KotlinのNon-Null型にnullを代入する方法

拡張関数 + ジェネリック型でよりタイプセーフを得る

Kotlinで3つの関数のパラメータを省略する

UnitテストでViewModelのonClearedをテストする

Inline classesとGsonでprimitive型をクラスで受けとる

Daggerでprivate valで依存関係を取得したかった

RxAndroidのasyncパラメータを試してみた

Android: Dagger 2.17のfastInitを試してみた

Kotlin: Inline Functionだけではメソッドカウントは減らない

Android: ContraintLayoutでネガティブマージンを実現する

Kotlin: typealiasを使ってめんどうなアノテーションを省略する

Dagger-AndroidでUserScopeのようなカスタムのScopeを使い、特定のActivity間のみで同一インスタンスを使う方法

Android: Navigationのsafeargs Gradle pluginだけを使ってもいいかもしれない

Android: 拡張関数でLiveDataのSingle Eventを扱う

CoroutineBindingライブラリを作りました

型の声

Kotlin: ローカルで明示的に型を宣言することについて

Android: Data Bindingを使っていると本当のエラーログが出ない話 + 対処法

ActivityやFragmentにコメントを書くことについて

感想: Androidアプリ設計パターン入門

DroidKaigi2018で「なんとなく動いているProguardから脱出するために」というテーマで発表しました

Android: ViewがどのFragmentに属しているかをViewから取得する

Kotlin: 拡張関数からprotectedメソッドにアクセスする

Android: MVP, Dagger2, Retrofitなどなどでアプリを作りました

Improving Android: 列挙にはenumではなくIntDef, StringDef annotationを使う

Android: Picassoで使われているデザインパターン

心理学: 人間は合理的な判断は出来ない

Android: Dagger2でDIをする. u2020から読み解く編 Part2

ReactiveX: Hot, Coldの違い

Android: Dagger2でDIをする. 基本編 Part1

Python: Pythonライクな書き方 Part1

Android: AndroidKaigiまとめ

データベース: RDBと第1~3正規形について

データベース: 履歴データについて

[ERROR] InnoDB: Cannot allocate memory for the buffer pool の対処法

Android: FragmentPagerAdapterでハマった話

読んだ: 達人に学ぶDB設計 徹底指南書

読んだ: Web API: The Good Parts

HTML5: Shadow DOMについて

デザインパターン: Value Object

Go: GojiにPRした話

Android: strings.xmlのまとめ

Android: Pull to Refreshの実装(SwipeRefreshLayout)

tips: 気軽にローカルにサーバを立てる

CSS: Clearfixについて

デザインパターン: Null Object

AnsibleでGhostアプリをデプロイ

Golang: nil pointer receiverの話

AnsibleでGoアプリをデプロイ

様々な言語のフィボナッチ関数