初めてのkotlin

kotlinによるAndroidアプリ開発での気付き

2020-08-01から1ヶ月間の記事一覧

イベントリスナ(コールバック)の書き方

Java風の書き方もできますが、 interface OnSampleListner { fun onSample(int: Int) } class Sample { var sampleListner: OnSampleListner? = null fun sampleMethod() { sampleListner?.onSample(1) } } fun main() { val sample1 = Sample() sample1.sam…

親クラス内の処理から呼ばれた継承可能なメソッドは、どれが動くのか?

多分、知ってる人は知ってるごく当たり前な話なのだとは思いますが、 私は知らなかったので、実験です。 親クラス内から呼び出された継承可能なメソッドは、 子クラスから呼び出された時に、 オーバーライドされたメソッドが動くのか?と言う実験です。 つい…

90%の機能が共通のViewはどのように継承すべきか?

ここに機能の90%が共通のViewが2種類あります。 これらのViewは、以下のように5パターンの作り方があるかと思います。 1.それぞれ別に作る 2.一方のViewをもう一方が継承する 3.共通機能部分でBaseになるViewを作り、それぞれがBaseを継承する 4.抽象ク…

演算子のオーバーロード

Operator overloading Javaは演算子のオーバーロードができないそうですが、 kotlinはできるようです。 なので、昨日UPしたMyDateクラスに早速実装してみましたヾ(´∀`)ノ 計算式によって、日付を加算したり差分(期間)を求めたりできるようになりました。 …

独自の日付クラス

kotlinで日付を扱おうと検索したところ、 LocalDateを使うとのことでしたが、 これを使うと @RequiresApi(Build.VERSION_CODES.O) と言うアノテーションを入れろと言われました。 調べてみると、Android 8.0 Oreo (API Level 2.6)以降でしか動かないことの宣…

initブロックは一番下に書く

kotlin流の書き方では、 プログラムでクラスを初期化する際には、 initブロックに書くようです。 ただ、 このinitブロックの実行タイミングが変数の初期化と同様書かれた順であることから、 変数の宣言より上に書かれていると、 初期化される前に参照するこ…

なぜkotlinなのか?

初めまして、ことりん(仮名)です。開発の備忘録として、blogを作ってみました。 何を書くか深くは考えていませんが、プログラミングしていると色々と感じることが出てくるので、それらをつらつらと書いて行きたいと思います。 まず初めに、 なぜkotlinを使…