Marginal engineer blog

マージナル エンジニア ブログ

Android Kotlinで楽しく楽々開発①

こんばんは〜
飲み会の予約を取りに行ったついでに、月曜日からそのお店で
ビール一杯飲んで、焼き鳥を食してしまった堀田です。

弊社では少人数のためサーバサイドのWebアプリケーションからスマホ開発、サーバ構築などいろいろやらないといけません。
Android開発においては、Javaを採用するのは当たり前ですが、案件的に特に問題がなければ、 1年前のBetaの頃からKotlinという言語を採用しています。

Kotlinは開発環境のIntelliJAndroid Studio、PHPStormなどを開発しているJetBrains社が開発したプログラミング言語です。
JavaAndroid開発する場合、通常ではLambda式が使えないのでRetrolambdaを導入したりしていました。
ちなみにAndroid N以降であれば Lambda式が使用できるそうです。

Kotlinを採用すると、Lambda式はもちろん、Closure、Extensions、Delegate、Nullable等のモダンな機能が使用できます。
Scala同様型推論があり、必要のないところでは変数の型宣言が不要です。 また、Runtimeも小さいので、Android開発において最適な言語ではないかと思っています。
Kotlinについては、情報がたくさんあると思いますので、ぐぐってください。

今回はExtensionsを取り上げたいと思います。
RubyScalaJavascript、Swift等は既存クラスにメソッドを生やすことが可能です。 Kotlinで既存クラスにメソッドを生やそうと思う場合、Extensionsを使用します。

今回は、アルバム(CD)を管理するアプリを例に書きたいと思います。 Androidでは、よく固定の情報をres/array.xmlなどのリソースファイルなどで 定義したりします。
しますよね?

ResoucesからTypedArrayを使用してぐるぐるfor文でリソース情報を扱うのもいいですが、 KotlinのCollection機能を使用してクールな感じ?で扱いたいと思います。
それでは、TypedArrayにメソッドを生やしてみます。

それでは上記のExtensionsを使用して、リソース情報を管理するクラスを作成してみたいと思います。

以下は、AlbumsServiceを使用したRecyclerViewのサンプルです。

みたいな感じです。
Scala同様、Kotlinも勉強していきたいと思っています。

眠くなってきたので、今日はここまで。
それでは、また〜