2021-06-01から1ヶ月間の記事一覧

コルーチン Coroutin

コルーチン 使うにあたって dependencyの追加 https://github.com/Kotlin/kotlinx.coroutines#using-in-your-projects Gradleの場合 dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0' } import App.kt import kotlinx.…

classにつけられるキーワード

classにつけられるキーワード data - 値型もどき sealed - 代数的データ型もどき inner - Outerクラスの呼び出しが可能となる enum - Javaのenum open - Javaのfinalの反対。Kotlinの全てのclassはデフォルトでfinalであるため value - ? data class 自動導…

エラーハンドリング構成 in 2020

元ネタ nick.groenen.me メモ std::error::Errorトレイトが抱える問題 スタックトレースがとれない。 アプリケーションとライブラリとでエラーのあり方が異なる ライブラリにおけるエラー 意味のあるエラーを返す必要がある ライブラリ内で発生したエラーは…

参照型 `&T` `&mut T`

Primitive Type 参照 &T or &mut T 参照, 共有と可変 参照は、ある所有された値の借用を表す。(借用とは所有権を持たないこと) & ,&mut 演算子もしくは、ref, ref mutキーワードを使って参照を得ることが出来る。 ポインタ型(*const T, *mut T)と違って、nul…

ジェネリクス Generics

Generic(総称型) vs Concreate(具体型) Rustにおいて、"generic"は、一つ以上のgeneric type parameters<T>を持つものである。 それ以外は、concrete(non-generic)である。 例: 関数 fn foo<T>(arg: T) { .... } 引数の型Tがジェネリクス型パラメーターが指定され</t></t>…

bat

概要 github.com 出力の整形や構文ハイライトをしてくれるツール。 プロジェクト構成 src構成 ▾ src/ ▾ bin/bat/ ツールファイル一式 app.rs assets.rs clap_app.rs config.rs directories.rs input.rs main.rs lib.rs ソースファイル一式 main関数 fn main(…

オブジェクト構造

PDF

Document structure オブジェクト階層 in PDF indirect object 相互参照テーブルからオフセット位置を読み取ることが出来るオブジェクト (名前付きオブジェクトと呼ばれることもある。) direct object indirect object以外のオブジェクト。 オブジェクト階層…

heap領域で確保される型

users.rust-lang.org Rustは通常スタック領域に値を確保するが、一部の型はヒープ領域で内部の値を確保し、その参照を返す。 Containers: Box Rc Arc Collections types: Vec, VecDeque String HashMap, HashSet BTreeMap, BTreeSet Concurrency: thread::sp…

Box<T>型

doc.rust-lang.org Rustの全ての値は、デフォルトはstack領域で確保される。 値は、Box<T>を生成することによって、boxed(ヒープ上での確保)することが出来る。 box値は、T型の値をヒープ上に確保するためのスマートポインタである。 box値がスコープから消えた</t>…

ViewGroupによるタッチイベントの管理

ViewGroupにおけるタッチイベントの管理 onInterceptTouchEvent()メソッドをオーバーライドすることで、サブビューに対して、タッチイベントを発生させないようにすることができる。 class MyViewGroup @JvmOverloads constructor( context: Context, privat…

複数ポインタのトラッキング

複数のポインタをトラックする ACTION_DONW このポインタのindexは必ず0が割り当てられる ACTION_POINTER_DOWN indexが0以外のポインタがスクリーン上で検知された場合、呼び出される。割り当てられるindexは、getActionIndex()メソッドから取得が可能 ACTIO…

GestureDetectorを使ったジェスチャーのハンドリング

概要 GestureDetectorを使うことで、共通のジェスチャーを簡単にハンドルすることができる。 またActivity.onTouchEvent()もしくはView.onTouchEvent()と組み合わせて使うため、それ以外のジェスチャーのハンドリングもシンプルに記述することが可能となって…

View Binding

developer.android.com 概要 View Bindingを使うことで、findViewById()を取り替えることができる。 Setup instruction build.gradle アプリ側のbuild.gradleにviewBindingをtrueにする android { ... buildFeatures { viewBinding = true } } Layoutファイ…

Data binding ライブラリ サンプル

作ったサンプル github 画面 Set up Gradle アプリ側のbuild.gradleに以下を記述 android { buildFeatures { dataBinding true } } Layoutファイル layoutタグをルートに変更する activity_main.xml

Httpクライアント

developer.android.com Httpクライアント Androidで主に利用されているHttpクライアント HttpsURLConnection Volley OkHttp Retrofit 特徴 クライアント 特徴 HttpsURLConnection Androidの標準ライブラリ Volley Googleが作成し、Android公式にドキュメント…