サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
android.suzu-sd.com
class Person(val name: String, val sex: Int, val age: Int) { companion object { const val MALE = 0 const val FEMALE = 1 } override fun toString(): String { return "${name}(${age}, ${if (sex == MALE) "M" else "F"})" } } Personクラスは名前・性別・年齢の3つの属性を持っていて個人を定義します public class Person { public static final int MALE = 0; public static final int FEMALE = 1; private String mName; private int mSex; private in
表示の変わらないUI要素(Composable関数)に対して行われる再Composeは無駄な処理です。 ですので、極力排除したいところですが、表示が変わらないため、画面上からの判断が難しくなっています。 このようなとき、Layout Inspectorを利用すると、無駄な再Composeを見つけ出すことが出来ます。 ※環境:Android Studio Giraffe | 2022.3.1 Patch 1 再Composeの確認方法 Android StudioのLayout Inspectorを使うと、再Compose(フェーズComposition)が実施された関数と回数をグラフィカルに確認できます。 この機能を使うためには、「Show Recomposition Counts」にチェックが必要です。 Layout Inspectorの画面は図のような構成になっています。 ライブアップ
CompositionLocalの継承関係 CompositionLocalは次に示すような継承関係を持ちます。 CompositionLocal#provided関数の実装に見ると、Dynamic側はremember+mutableStateOfが用いられているのに対し、Static側はdata classが用いられています。 : : fun <T> staticCompositionLocalOf( defaultFactory: () -> T ): ProvidableCompositionLocal<T> = StaticProvidableCompositionLocal( defaultFactory ) : : : internal class StaticProvidableCompositionLocal<T>( defaultFactory: () -> T ) :
ロケールを取得する方法 現在のロケールの状態はConfigurationクラスから取得できます。 ロケールの仕様変更(API≧24)でシステム内部の扱い方も変わっています。仕様変更後は複数のロケールが選択できるためリストで扱われます。リストの先頭にあるロケールが優先的に選択されます。 @TargetApi(24) private fun _GetLocaleList(): LocaleList { val _Config = Resources.getSystem().configuration return _Config.locales } private fun _GetCurrentLocale(): Locale { val _Config = Resources.getSystem().configuration return if (Build.VERSION.SDK_INT
Espressoとは スマートフォンはタッチスクリーン上を指で操作するものが主流です。 画面上には操作性を損なわないように配置されたGUIパーツ(View)が並びます。アプリを開発すると、このGUIパーツを操作するUIテストが欠かせません。 EspressoはAndroidのUIをテストするために開発されたフレームワークです。Android公認のフレームワークになっています。 Espressoを使うことでUIの操作(クリックする、スワイプする、など)や、UIの状態チェック(ボタンが表示されている、文字が出力されている、など)を行うテストプログラムが記述できるようになります。 Espressoのさらなる情報はここを参照してください。 環境設定 Android Studioを使っているのであれば、プロジェクト(モジュール)を作成すると自動でEspresso環境を構築してくれます。なので、特に開
Suspend関数の階層化 Suspend関数を持つ関数 Suspend関数を持つ関数もSuspend関数です。 Suspend関数にはsuspend修飾子を付けるという決まりがあります。これは後述する「仕組み」を実現するためです。 suspend fun putTextWithDelay(view: TextView, text: String) { // suspend付き delay(1000) // Suspend関数(non-blocking動作を含む) view.text = text } suspend fun exeCountDown(view: TextView?) { // suspend付き view?.text = "3" putTextWithDelay(view, "2") // Suspend関数(non-blocking動作を含む) putTextWithD
RecyclerViewは子Viewを並べて表示するコンテナタイプ(ConstraintLayoutと同じ)のViewです。 複数のデータをスクリーン上に一覧表示したい時、例えば電話帳のような「氏名+住所+電話番号」の一覧を表示する場合などに最適です。 アプリを開発していると一覧表示したいデータが多いことに気付きます。 なのでRecyclerViewはとても重要で重宝するViewです。 しかし、思い通りの表示を行わせるためのテクニックが多すぎて、使いこなしが難しいです。 今まで調べたテクニックを忘れないように、整理して書き残そうと思います。 今回は基本の「RecyclerViewの実装」です。 RecyclerViewとは RecyclerViewは子Viewを並べて表示するコンテナタイプ(ConstraintLayoutと同じ)のViewです。 表示範囲内に収まらなかった子Viewはスク
Tool Barとは Action Bar(Tool Barの前身) Action Barはコンテンツの上部に表示される帯の部分です。 デフォルトのテーマにより表示するように設定がされています。 基本は左側に「タイトル」、右側に「オーバーフローメニュー(メニューを開くアイコン)」が表示されます。 Action ;Barはアプリケーションの見た目と操作性の統一を目的にしたものです。統一されていれば「利用者はどのアプリを使う場合でも迷うことなく操作ができる」というわけです。 ただし強制ではないので、世の中に出回っているアプリを見ると、Action Barの無いアプリもあります。 アプリの作り手から見れば、限られた画面の一部を占有しているAction Barを削除して、より多くの情報を利用者へ提供したいと考える場合もあるのでしょう! このAction BarはAPIレベルが上がる毎に変更と機能追
このページを最初にブックマークしてみませんか?
『android.suzu-sd.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く