Home
Blog
Presentation
Book
stsnブログ
Android, Kotlin, Python, Go, Developer
Jetpack Composeライブ編集(Live Edit)でPrintデバッグをする
#android
#debugging
| Nov 8, 2024
Android at Scale(with Circuit)の感想
#android
#architecture
| Sep 14, 2024
Android: Eng modeの紹介
#android
#build
#gradle
| Mar 30, 2023
Android: Wireless debuggingでうまく繋がらない時にadb connectを使う
#android
| Feb 3, 2023
naptを使って、ビルドを高速化する
#android
#build
#napt
| Dec 4, 2022
Gradle: Javaのバージョン差異によるビルド速度の変化
#gradle
#android
| Oct 10, 2022
Androidビルド速度改善雑記 その2
#android
#build
#gradle
| Sep 25, 2022
Androidビルド速度改善雑記 その1
#android
#build
#gradle
| Sep 17, 2022
dev版のJetpack Composeを使って、新しいKotlinに対応する
#android
#jetpack
#compose
| Jun 11, 2022
マルチモジュール環境の開発改善について雑談
#android
#multimodule
#development
| May 22, 2022
Dagger2: 拡張関数を使い、@Bindsの定義をシンプルにする
#android
#dagger
| Apr 24, 2022
Android: Gradle Build Scanで、マルチモジュール環境のビルド改善
#gradle
#android
| Apr 10, 2022
Kotlin: Sealed class(interface)で実装を隠す
#kotlin
| Mar 13, 2022
Jetpack Compose: debugInspectorInfoを使って、デバッグを少し楽にする
#android
#jetpack
#compose
| Mar 6, 2022
Gradle: Typesafe project dependencies
#gradle
#android
| Feb 27, 2022
Gradle Profilerを使って、ビルドを最適化する
#gradle
#android
| Feb 6, 2022
Gradle: 様々なバージョン管理の方法
#gradle
#android
| Jan 25, 2022
moleculeライブラリで感動したところ
#android
#dagger
| Jan 2, 2022
Android: non-transitive Rの導入と、ビルド時間の変化について
#android
#build
#gradle
| Nov 14, 2021
Kotlin: functional interfaceを使うと、少し効率が良いコードが生成される
#kotlin
| Oct 31, 2021
Kotlin: ローカル関数を使って読みやすいコードを書きたい
#kotlin
| Oct 24, 2021
KMMでアクセス修飾子をつけるとobjcヘッダーファイルが小さくなって嬉しい話
#kmm
#kotlin
| Sep 5, 2021
GitHub Actions: Composite Run Stepsの簡単な使い方
#ci
#githubactions
#android
| Aug 29, 2021
Testifyを使って、Jetpack Composeのスクリーンショットテストをする
#android
#test
#compose
| Jul 18, 2021
Android: Dagger Hiltで推移的な依存を解決する
#android
#dagger
| May 25, 2021
JetBrains Toolbox Appのススメ
#android
| May 23, 2021
Android: BuildConfigの生成をoffにする
#android
#agp
#gradle
| Apr 10, 2021
GitHub Actions: 前のGitHub Actionの実行をキャンセルする
#ci
#githubactions
| Apr 3, 2021
Gradle: 新しいバージョン管理方法 Central declaration of dependenciesの紹介
#gradle
#android
| Mar 28, 2021
Kotlin: infixのサンプルコード紹介
#kotlin
| Mar 6, 2021
Paparazziを使って、実機を使わずにスナップショットを取る
#android
#test
| Feb 28, 2021
KMM: CocoaPodsのPrivate Spec Repoを使う
#kmm
#kotlin
| Feb 20, 2021
Kotlin: RxJava -> Coroutineへの置き換えに使えるMigration.ktの紹介
#kotlin
#coroutine
#flow
| Jan 30, 2021
Kotlin: objectクラスで拡張関数をグループ化する
#kotlin
| Jan 7, 2021
Android: 公式でAssisted Injectがサポートされそう
#android
#dagger
| Dec 30, 2020
マルチモジュール環境での、dummyモジュール導入によるビルドの高速化
#android
#multimodule
#build
| Dec 12, 2020
Android: 既存のDagger AndroidからHiltへの移行について
#android
#dagger
| Oct 24, 2020
Android: RIP AsyncTask
#android
| Jul 22, 2020
Jetpack Compose: IOSchedをJetpack Composeで書く part1
#android
#jetpack
#compose
| Jul 12, 2020
Jetpack Compose: PreviewParameterアノテーションを使っていろいろなプレビューを作る
#android
#jetpack
#compose
| Jul 8, 2020
Android: Dagger HiltとDagger Androidの生成コードの違いについて
#android
#dagger
| Jun 21, 2020
Android: エミュレータでFreeformモードを使う
#android
#emulator
| Jun 13, 2020
Android: ActivityResultContractを使ってRuntime Permissionsを実装する
#android
#jetpack
#activity
| Jun 11, 2020
avocadoとGitHub Actionsを使って、Vector Drawableを最適化する
#android
#ci
#githubactions
| May 27, 2020
Android: ConstraintLayoutの子にRecyclerViewを配置して、Match Constraintsを設定すると良くない挙動をする
#android
#recyclerview
#jetpack
| May 15, 2020
GitHub Actions: AndroidプロジェクトのGradle周りの設定メモ
#ci
#githubactions
#android
| May 5, 2020
ちょっと複雑なレイアウトをConstraintLayoutで組んでみるpart2
#android
#constraintlayout
| Apr 30, 2020
ちょっと複雑なレイアウトをConstraintLayoutで組んでみるpart1
#android
#constraintlayout
| Apr 7, 2020
Dagger2: Dagger2.27の新しいエラーメッセージを少し試してみる
#dagger
#android
#di
| Mar 17, 2020
Jetpack Compose: Ambientを使ってインスタンスを注入、取得する
#android
#jetpack
#compose
| Mar 5, 2020
Jetpack Compose: Modelとstate
#android
#jetpack
#compose
| Feb 29, 2020
Android: findViewTreeLifecycleOwnerでViewからLifecycleOwnerを取得する
#android
#jetpack
#lifecycle
| Feb 23, 2020
Gradle: BOMを使って依存を指定する
#gradle
#android
#bom
| Feb 18, 2020
doOnNextLayout、doOnLayout、doOnPreDrawの違いと、Coroutineでこれらを動かしてみる
#android
#ui
#view
| Feb 11, 2020
Dagger2: 2.26時点でのKotlinサポート状況
#dagger
#android
#di
| Feb 2, 2020
fitsSystemWindowsの話をつらつらと
#android
#edgetoedge
#ui
| Jan 26, 2020
FragmentでViewの参照を持つとメモリリークする話と実装
#android
#jetpack
#fragment
#lifecycle
| Jan 18, 2020
Kotlin: FlowのflowOnオペレータの挙動
#kotlin
#coroutine
#flow
| Jan 13, 2020
2019年のアウトプット振り返り
#portofolio
| Dec 28, 2019
Material Components: ShapeableImageViewで丸く切り抜かれた画像を表示する
#android
#materialcomponents
#shape
#imageview
| Dec 24, 2019
ViewModelとKotlin Coroutinesの書き方あれこれ
#android
#kotlin
#viewmodel
#coroutine
| Dec 15, 2019
GitHub Actionsでエミュレータテストをする
#ci
#githubactions
| Dec 12, 2019
GitHub Actions: 最近使っているGitHub Actionsたち
#ci
#githubactions
| Dec 8, 2019
メモ Android: Navigation Component + Toolbar(ActionBar)周りのコードを読んで見る
#android
#jetpack
#navigation
| Nov 30, 2019
Material Components: ShapeとBottomSheetDialogとMaterialButton
#android
#materialcomponents
#shape
| Nov 26, 2019
Android: Groupieの内部でやっている差分更新周りの話
#android
#recyclerview
#groupie
| Nov 21, 2019
Android マルチモジュール: Gradle周りで便利だと思う設定
#android
#multimodule
#gradle
| Nov 11, 2019
Android: Navigationのdialogタグ周りのコードちょっと読んでみた
#android
#jetpack
#navigation
| Nov 9, 2019
Android Studio: Firebaseなどのクラッシュログから関数ジャンプできるようにする
#android
#androidstudio
#agp
| Oct 29, 2019
Android Gradle Plugin 4.0でjava.timeがバックポートされるようになりました
#android
#desugar
#agp
| Oct 26, 2019
ViewPager2で要素をループさせる
#android
#viewpager2
#jetpack
| Oct 13, 2019
ISUCON9 決勝参加ログ
#isucon
#server
| Oct 7, 2019
Android マルチモジュール: ライブラリのバージョン管理について
#android
#multimodule
#gradle
| Sep 23, 2019
ISUCON9 予選ログ
#isucon
#server
| Sep 11, 2019
ViewPager2でカルーセルっぽいものを実装する
#android
#viewpager2
#jetpack
| Aug 29, 2019
Kotlin: FlowのBufferの指定について
#kotlin
#coroutine
#flow
| Aug 3, 2019
GitHubのNotificationsで、androidxライブラリのリリースの通知を受け取れるリポジトリを作りました
#product
#android
| Jul 20, 2019
Material Components: MaterialTextViewでlineHeightがTextAppearanceから指定出来るようになりました
#android
#materialcomponents
#text
| Jul 15, 2019
Android: RestrictToアノテーションのIDE上での振る舞い
#android
#jetpack
#annotation
| Jul 3, 2019
Retrofit: Coroutineを使うときの、Response<T>と生のTの使い分け
#android
#retrofit
#coroutine
| Jul 2, 2019
RxJava 3.xの開発が本格的に始まりました
#rxjava
#rxjava3
| Jun 24, 2019
Kotlinのwildcard importと拡張関数
#kotlin
#codestyle
| Jun 19, 2019
Google I/O'19: Build a Modular Android App Architectureのまとめ・感想
#android
#architecture
#io19
#android-architecture
| Jun 9, 2019
Dagger2: 2.23に入ったHasAndroidInjectorについて
#dagger
#android
| Jun 2, 2019
ViewModel SavedState + Dagger
#android
#jetpack
#viewmodel
#savedstate
#dagger
| May 25, 2019
雑メモ: ViewModel SavedStateのコードリーディング
#android
#jetpack
#viewmodel
#savedstate
| May 21, 2019
ViewPager2 with TabLayout
#android
#viewpager2
#jetpack
| May 17, 2019
Data Binding 3.5と3.6のまとめ/感想
#android
#databinding
#jetpack
#io19
| May 16, 2019
CameraX: CameraView触ってみた
#android
#jetpack
#camerax
| May 6, 2019
MvRxの雑な感想
#android
#architecture
#mvrx
#android-architecture
| May 5, 2019
Material Components: MotionSpecを使ってアニメーションをカスタマイズする
#android
#materialcomponents
#motion
| Apr 30, 2019
ConstraintLayout Flowの紹介
#android
#constraintlayout
#flow
| Apr 28, 2019
Kotlin: プロパティの変更を検知する
#kotlin
#android
| Apr 24, 2019
ConstraintLayoutのImageFilterViewって単体でも使えるんやなって
#android
#constraintlayout
| Apr 15, 2019
Dagger 2.22にFactoryクラスが導入されました
#android
#dagger
#factory
#di
| Apr 7, 2019
DataBindingとActivityのコンストラクタ Layout Id指定を一緒に使う
#android
#jetpack
#databinding
#ktx
| Apr 4, 2019
OkHttp: Java to KotlinのPRを見て勉強する
#kotlin
#okhttp
#android
| Mar 24, 2019
Kotlin: コンストラクタ呼び出しっぽく関数やcompanion objectを使う
#kotlin
| Mar 19, 2019
Kotlin: CoroutineでRxJavaのzipっぽいものを表現する
#kotlin
#coroutine
#rxjava
| Mar 17, 2019
Android: JetpackのCoroutine Supportについて
#android
#jetpack
#coroutine
#ktx
#kotlin
| Mar 10, 2019
Dagger2: ProvidesはKotlin extension methodと一緒に使うことが出来る
#dagger
#android
| Mar 5, 2019
RxAndroidにPull Requestを出した話
#android
#rxandroid
#rxjava
#github
#pr
| Mar 2, 2019
Robolectric + JetpackでActivityのonActivityResultメソッドをテストする
#android
#test
#jetpack
#robolectric
#espresso
| Feb 23, 2019
マルチモジュールの遷移について考える Part2
#android
#multimodule
#gradle
#navigation
| Feb 15, 2019
でかいappモジュールがあるときに、中間モジュールを入れることで差分ビルドを上手く効かせる
#android
#multimodule
#gradle
#build
| Feb 11, 2019
R8/Proguard: JarファイルからProGuard設定ファイルを読み込んでくれるようになりました
#android
#r8
#proguard
| Jan 28, 2019
FluxのDispatcherをRoomのin memoryで実装するのは、冗長なコードが多くなるので良くない
#android
#flux
#room
#jetpack
#architecture
| Jan 24, 2019
R8/Proguard: Daggerの生成コードがR8でどのように変わるかを見る
#android
#r8
#proguard
#dagger
| Jan 20, 2019
R8/Proguard: Kotlinのlambda最適化について
#android
#r8
#proguard
#kotlin
| Jan 20, 2019
R8/Proguard: KotlinのCompanion objectとobjectについて
#android
#r8
#proguard
#kotlin
| Jan 20, 2019
R8/Proguard: Class Mergingについて
#android
#r8
#proguard
| Jan 20, 2019
Dynamic Feature ModuleでDagger Androidを使う
#android
#multimodule
#gradle
#dynamicmodule
#dagger
| Jan 16, 2019
dexdumpメモ
#android
#dalvik
#dexdump
| Jan 5, 2019
マルチモジュールの遷移について考える Part1
#android
#multimodule
#gradle
| Dec 31, 2018
Coroutine + AutoDisposeを作ってみた
#android
#kotlin
#coroutine
#library
| Dec 23, 2018
FragmentとgetViewLifecycleの話
#android
#jetpack
#fragment
#livedata
#lifecycle
| Dec 21, 2018
Dagger + ViewModelの基本編 + 実例編
#android
#dagger
#jetpack
| Dec 19, 2018
GradleのMatching repositories to dependenciesを使ってライブラリのダウンロード先を指定する
#gradle
#android
#dependency
| Dec 13, 2018
Truthのメリット、特徴について
#android
#test
#truth
| Dec 12, 2018
Kotlin: Resultの簡単なまとめ
#kotlin
#ktstdlib
| Dec 11, 2018
Android: namespacedRClassフラグでRクラスを小さく保つ
#android
#agp
| Dec 9, 2018
Gradle: Dagger2でapiとimplementationどちらを使うか議論されている
#gradle
#dagger
#android
| Dec 8, 2018
Data Bindingのエラーログが3.4.0-alpha07から見やすくなる
#android
#jetpack
#databinding
| Dec 7, 2018
Kotlin Coroutineを導入したらどれだけビルドタイムが増えそうか検証した
#android
#kotlin
#coroutine
| Dec 5, 2018
MutableなLiveDataを特定のクラス外から更新できなくする
#android
#jetpack
#livedata
| Dec 1, 2018
Retrofitでカスタムアノテーションを使う
#android
#retrofit
| Nov 23, 2018
Activity、Fragment、Viewにコンストラクタインジェクションする
#android
#factory
#dagger
| Nov 16, 2018
Kotlin: Contracts + 拡張関数でより便利に
#kotlin
#contracts
| Nov 11, 2018
Android: デバッグ時にMoshi、Daggerリフレクションライブラリを使いビルド時間を短縮する
#android
| Nov 10, 2018
KotlinのNon-Null型にnullを代入する方法
#kotlin
| Nov 7, 2018
拡張関数 + ジェネリック型でよりタイプセーフを得る
#kotlin
| Nov 3, 2018
Kotlinで3つの関数のパラメータを省略する
#kotlin
| Oct 16, 2018
UnitテストでViewModelのonClearedをテストする
#android
#jetpack
#unittest
| Oct 14, 2018
Inline classesとGsonでprimitive型をクラスで受けとる
#android
#kotlin
#gson
| Sep 17, 2018
Daggerでprivate valで依存関係を取得したかった
#android
#dagger
| Sep 7, 2018
RxAndroidのasyncパラメータを試してみた
#android
#rxandroid
#rxjava
| Aug 21, 2018
Android: Dagger 2.17のfastInitを試してみた
#android
#dagger
| Aug 8, 2018
Kotlin: Inline Functionだけではメソッドカウントは減らない
#kotlin
#android
| Aug 2, 2018
Android: ContraintLayoutでネガティブマージンを実現する
#android
#constraintlayout
| Jul 25, 2018
Kotlin: typealiasを使ってめんどうなアノテーションを省略する
#android
#kotlin
| Jul 12, 2018
Dagger-AndroidでUserScopeのようなカスタムのScopeを使い、特定のActivity間のみで同一インスタンスを使う方法
#android
#dagger
| Jun 26, 2018
Android: Navigationのsafeargs Gradle pluginだけを使ってもいいかもしれない
#android
#jetpack
#navigation
| May 20, 2018
Android: 拡張関数でLiveDataのSingle Eventを扱う
#android
#jetpack
#aac
| May 19, 2018
CoroutineBindingライブラリを作りました
#android
#kotlin
| May 19, 2018
型の声
#poem
| May 5, 2018
Kotlin: ローカルで明示的に型を宣言することについて
#poem
#android
#kotlin
| Apr 16, 2018
Android: Data Bindingを使っていると本当のエラーログが出ない話 + 対処法
#android
#databinding
| Apr 12, 2018
ActivityやFragmentにコメントを書くことについて
#poem
#android
| Apr 5, 2018
Android: ViewがどのFragmentに属しているかをViewから取得する
#android
| Jan 28, 2018
Kotlin: 拡張関数からprotectedメソッドにアクセスする
#android
#kotlin
| Jan 7, 2018
RxJava: as, toの違いについて
#android
#rxjava
| Dec 23, 2017
Dagger: MembersInjectorを使い依存を注入する
#android
#dagger
| Dec 19, 2017
Kotlin: Companion object + @JvmStaticは冗長なメソッドが作られる
#kotlin
| Dec 17, 2017
Kotlinでカリー化を表現する
#kotlin
| Dec 9, 2017
LiveDataのpostValueは全て流れてくるとは限らない
#android
#jetpack
#livedata
| Dec 6, 2017
Android: Roomにおけるデータ変更通知の仕組みについて(InvalidationTracker)
#android
#jetpack
#room
| Nov 26, 2017
Android: RxJava + OkHttpを使って401の処理をいい感じにする
#android
#okhttp
#rxjava
| Aug 10, 2017
RxJava multicastについて
#android
#rxjava
| May 4, 2017
RxJava 並行でリクエストをして, リクエストした順番で値を受け取る
#android
#rxjava
| May 4, 2017
RxJava: AutoDisposeで自動的にdisposeする
#android
#rxjava
#autodispose
| May 4, 2017
RxJava: Connectable Observableについて
#android
#rxjava
| May 4, 2017
RxJava: SubjectでonErrorを取り扱う時
#android
#rxjava
| May 4, 2017
Android: Dagger2のScopeについてあれこれ
#android
#dagger
| Nov 27, 2016
Android: Repository層についてあれこれ
#android
#architecture
#repository
| Nov 23, 2016
LeakCanary: ソースコードリーディング
#android
#leakcanary
| Oct 16, 2016
Android: Fragmentを使って、画面の向きの変更時にデータを保持する
#android
#rxjava
| Oct 9, 2016
ISUCON6予選で悲しくも負けてしまいました
#isucon
#server
| Sep 10, 2016
Golang: structで宣言したメソッドを明示的に呼び出す
#golang
| Aug 1, 2016
Android: MVPのPresenterの非同期周りのユニットテストの書き方
#android
#test
| Jul 31, 2016
Linux perf: CPU編
#linux
| Jul 17, 2016
お手軽にローカルにサーバを立てる
#python
#tips
| Feb 16, 2016
Android: テストメソッドの命名規則について
#android
#test
| Feb 12, 2016
Android: MVP, Dagger2, Retrofitなどなどでアプリを作りました
#android
| Sep 6, 2015
Improving Android: 列挙にはenumではなくIntDef, StringDef annotationを使う
#android
| Aug 11, 2015
Android: Picassoで使われているデザインパターン
#android
#design_pattern
| Jun 12, 2015
心理学: 人間は合理的な判断は出来ない
#psychology
| Jun 8, 2015
Android: Dagger2でDIをする. u2020から読み解く編 Part2
#android
#dagger
#retrofit
| May 24, 2015
ReactiveX: Hot, Coldの違い
#reactive
| May 22, 2015
Android: Dagger2でDIをする. 基本編 Part1
#android
#dagger
| May 8, 2015
Python: Pythonライクな書き方 Part1
#python
| Apr 30, 2015
Android: DroidKaigiまとめ
#android
#java
| Apr 25, 2015
データベース: RDBと第1~3正規形について
#database
#rdb
| Apr 19, 2015
データベース: 履歴データについて
#database
#mysql
| Apr 9, 2015
[ERROR] InnoDB: Cannot allocate memory for the buffer pool の対処法
#database
#mysql
| Apr 7, 2015
Android: FragmentPagerAdapterでハマった話
#android
#java
| Mar 18, 2015
HTML5: Shadow DOMについて
#frontend
#html5
| Mar 14, 2015
デザインパターン: Value Object
#design_pattern
#code
| Feb 22, 2015
Go: GojiにPRした話
#go
#github
| Feb 22, 2015
Android: strings.xmlのまとめ
#android
#java
| Feb 22, 2015
Android: Pull to Refreshの実装(SwipeRefreshLayout)
#android
#java
| Feb 22, 2015
tips: 気軽にローカルにサーバを立てる
#tips
#python
| Feb 22, 2015
CSS: Clearfixについて
#css
| Feb 22, 2015
デザインパターン: Null Object
#design_pattern
#code
#python
| Feb 22, 2015
AnsibleでGhostアプリをデプロイ
#ansible
#system
| Feb 22, 2015
Golang: nil pointer receiverの話
#golang
#code
| Feb 22, 2015
AnsibleでGoアプリをデプロイ
#ansible
#golang
| Feb 22, 2015
様々な言語のフィボナッチ関数
#algorithm
#code
#java
#javascript
#golang
#python
#shell
| Feb 22, 2015
Go: Goji patternマッチ部分のコードリーディング
#go
#github
| Nov 9, 2014
subproコマンド: Sublime Projectのプロジェクト管理
#sublimetext
| May 8, 2014
DroidKaigi2019で「R8/ProGuard 徹底比較」というテーマで発表しました
#android
#presentation
#r8
#proguard
| Feb 7, 2019
DroidKaigi2018で「なんとなく動いているProguardから脱出するために」というテーマで発表しました
#android
#presentation
| Feb 9, 2018
感想: コーディングを支える技術
#book
#coding
| Dec 28, 2018
感想: オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
#book
#oop
#architecture
| Dec 25, 2018
感想: Androidアプリ設計パターン入門
#book
#android
#architecture
| Mar 2, 2018
読んだ: 達人に学ぶDB設計 徹底指南書
#book
#db
| Mar 18, 2015
読んだ: Web API: The Good Parts
#book
#web
#api
| Mar 15, 2015