2016/11/30の30分Kotlinメモ🐼

2016/11/30の30分Kotlinメモ

extension function

拡張関数だねー

便利

kotlinlang.org

operator fun Int.plus(r: Rational): Rational = r + this

1 + Rational(1,2)

変数の代入

valJavaでいうfinal

型推論があるので、型は書かなくてもよい

val 変数名 : 型 = 式
var 変数名 : 型 = 式

val 変数名 = 式
var 変数名 = 式

raw string

複数行の文字列のあれね。便利ー

String Templatesも動くので良さげ

kotlinlang.org

val aaa = "hoge"
println("""
test $aaa
test $aaa
""")

// trimMargin(|を区切り文字にできるペースをトリムできる)
println("""
        |test $aaa
        |test $aaa
""".trimMargin())

// 引数に区切り文字すれば区切り文字は好きなの指定できる
// defaultが|ってことね。marginPrefix: String = "|"って書いてる
println("""
        *test $aaa
        *test $aaa
""".trimMargin("*"))

Stringを配列みたいな感じで特定の文字だけ参照する

charで返る

"Kotlin"[0] // 'K'

仕組み自体はoperator overrideみたい。なるほど。

public open operator fun get(index: kotlin.Int): kotlin.Char { /* compiled code */ }

まとめ

raw stringあるだけど最高

毎日30分のKotlinタイムをはじめました💪

毎日30分のKotlinタイムをはじめました💪

会社のSlackにこんな通知を流すようにして、業務を強制的に止めてKotlinタイムに入るのです。

f:id:operando:20161129161804p:plain

Kotlin はじめるぞ💪

同僚からお借りした「Kotlinスタートブック」を地道にやっていこうかなーと。

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

書いたものは雑にここにおいてます

github.com

とりあえず気になったこととかわかったこととか書いておく。

REPL

ターミナルとかでKotlinがさくっと試せるやーつー。

JavaJava 9からjshellが入るけど、さくっと試すのにはやっぱり便利だよねー。

kotlinlang.org

Operator overloadingがある

これがあるとなんかナウい感じがしますね。

+とか-とかの動作をOverrideできるって素敵!Swiftでもできた気がするなー。

kotlinlang.org

まとめ

よいぞ

メモのAppWidgetアプリを作りはじめた

メモのAppWidgetアプリを作りはじめた。

Androidで地味に便利なAppWidgetさん。

特にメモとか置くのにすごく便利。

メモを忘れないようにするために、今まで「附箋メモウィジェット」という俺的神Android AppWidgetアプリを使ってた。

play.google.com

機能面に不満はないがアップデートされないのでワクワク感が薄れてしまった。

なので、この際だから自分で同じようなアプリ作ってみるかーと思って今作ってる。

まだアプリアイコンさえ変えてないけど、DeployGateで配信してるので使ってもらえると小躍りします😊

Try it on your device via DeployGate

今は雑に以下のことができる...はず...。ちなみにUIはクソ雑に置いてるだけなのでマジ勘弁。

  • メモをWidgetとして追加
  • 任意の内容をメモできる
  • 文字色を変えられる
  • 文字サイズを変えられる
  • Widgetの背景色を変えられる

一度追加したWidgetのメモ内容が変えられないのでそれ次対応かなー。

殴り書きしてるコードがGithubに置いてある。

github.com

そしてAppWidgetのAPIかなり難しい...

AppWidgetのアプリ作ってる人マジすごい。知見欲しい🙏

まとめ

がんばります💪

まったりAndroid Framework Code Reading #4 を開催します! #m_android_fcr

まったりAndroid Framework Code Reading #4を 11/10 (木)に開催します!

まったりAndroid Framework Code Readingは、Androidソースコードを読んで、開発等に役立てる勉強会です!

mandroidfcr.connpass.com

過去に行った本勉強会のまとめを以下にまとめていますので、どんな感じのことをしてるのかなーみたいな参考になればと!

以下のまとめのように、しっかりした成果を作ることは強制的ではありません!

github.com

また、まったりAndroid Framework Code Reading #1開催前に書いた記事に、Android Frameworkとは?や本勉強会の目的、どのように運営していくのか的なことを書いてますので、ご興味があれば見てみてください!

hack-it-iron.hatenablog.com

Android Frameworkってなに??

Android Frameworkとちょっと抽象的に言ってますが、気軽に読めるのは下の図の「Applications」、「Android Framework」、「Android Runtime」らへんだと思います。

めっちゃ簡単に言うと、Androidを動かすために必要な部分、仕組み」という感じです。

おおかたJavaで書かれているので、アプリ開発してる人なら読めると思います。

C/C++等もあり、そっちも読めるようになると、さらに下の層まで(HAL、kernel)読めて楽しいです。(Android Framework、Android Runtimeも一部C/C++で書かれてます。RuntimeはもしかするとC/C++がメインかも)

https://source.android.com/images/android_framework_details.png

https://source.android.com/images/android_framework_details.png

なぜコードを読むのか??

Framework Code Readingのいいところは、裏側の仕組みがわかるようになることです。

Androidのこの機能ってどうやって実装されてるの?」という疑問がコードを読めばわかるわけです。

コードを書いて学ぶ知識もあれば、ひたすらコードを読んで学ぶ知識もあるってことです。

ちなみに、Androidソースコード検索サービスのOpenGrokを使用すれば、手元にコードがなくても問題なくAndroid Frameworkのコードが読めます!

sites.google.com

まったりAndroid Framework Code Reading #4 の裏テーマ

毎回まったりAndroid Framework Code Readingでは、裏テーマを設定しています!

まったりAndroid Framework Code Reading #4の裏テーマはAndroid N 読もう!」です。

前回 #3では、Android N Previewのコードを読んだんですが、その段階ではあまりコードが公開されていないことから謎の部分が多すぎました...。

今回はAndroid Nが正式にリリースされて かつ AOSPにもコードが公開されているので、ガッツリ読んでいきましょう!

もしかしたら Android 7.1のコードも公開されているかも!

裏テーマなので、他のコードを読んでも全然OKでーす!

まとめ

ご興味がある方はぜひぜひ参加していただけるとうれしいです!