メリークリスマス!!!! 今日はクリスマス!12月1日から昨日まで毎日記事を投稿し、みなさんへKotlinの面白さをお伝えしてきました。そんな当アドベントカレンダーも今日で最終回です。Kotlinを学んだり貢献したりするためのヒントと、Kotlinのこれからに…
今日はクリスマスイブです。いろんな過ごし方があるかと思いますが、今日はKotlinでアプリを作って遊びましょう。 ツイート検索アプリをつくる 本日のタイトルのとおり、ツイート検索アプリをつくります!と言っても、100行もしない超簡単なアプリです。指定…
アドベントカレンダー23日目です。今日はJavaのユニットテスト・フレームワークのデファクト・スタンダードであるJUnitを使って、Kotlinのユニットテストを走らせる方法を紹介します。Kotlinの標準ライブラリに含まれているパッケージ kotlin.test にはJUnit…
3連休初日キタ━(・∀・)━!!! アドベントカレンダー初日にお話ししましたが、KotlinはJVM言語なのでコンパイラが吐くのはJavaバイトコードです。それらはJava言語から使用することができます。またその逆に、Java言語で書かれたクラスをKotlinから使用することも…
今日でKotlin言語の文法や機能の説明は最後です。今日ご紹介するのは、これまでに紹介していない残りの機能についてです。中にはまだ実装されていない(正しくコンパイルされない)機能もありますが、それらは今後のマイルストーンで実装されていくでしょう…
アドベントカレンダー20日目です。アドベントカレンダーも残すところあとわずかです。言語の文法や機能の紹介は明日まで、という風な予定となっています。今日はデータクラスと多重宣言という機能について見て行きます。 データクラス 単純なプロパティしか…
今日はキーワード objectの機能について紹介します。この object というキーワードは3つの機能を提供します。オブジェクト式、オブジェクト宣言、クラスオブジェクトの3つです。これらの機能は名前も使用するキーワードも似ているので、混同しないよう気をつ…
今日はKotlinの標準ライブラリが提供する便利なクラスや関数について紹介します。ライブラリは、自然言語のメタファを拝借するなら、語彙と例えられることがあります。ライブラリの提供する機能群(語彙)を知ることにより、表現豊かなコードを書くことがで…
アドベントカレンダー17日目の今日は、Kotlinのジェネリクスについてお話しします。Javaプログラマにとっては当たり前のことかも知れませんが、ジェネリクスというのは型を柔軟でかつ安全に扱おうという仕組みです。 ジェネリクスは既に親友さ、という方はKo…
今日は、面倒な奴だけど憎めない、そんなNullPointerExceptionとの別れの日です。KotlinにはNPEを起こさない仕組みが備わっています。それが今日取り上げる機能、NULL安全です。 nullをセットできない型 Javaでは、すべての参照型変数がnullとなることができ…
アドベントカレンダー15日目の今日はトレイトという機能に注目したいと思います。トレイトとは実装を持ったインタフェースのようなものです。これはJVM言語のScala(まさにトレイトという名前の機能)や、Java SE 8(予定)にもある機能です。インタフェース…
Kotlinにも継承の仕組みが備わっています。継承により、上位のクラス(スーパクラス)の型のサブセットとなることができ、さらにスーパクラスの実装を受け継ぐことになります。再利用性を高める重要な機能について今日は見ていきます。 継承 継承は、上位の…
一昨日はクラスの話をしました。クラスは、そのメンバとして関数とプロパティを持つことができます。今日はプロパティについてお話ししたいと思います。 まずはJavaの慣例のおさらい Javaではpublicなフィールドを避けるべきであるとされています。メソッド…
Kotlin解説は1回お休みです。今日は、昨日あったJetBrainsユーザグループの勉強会の報告をします。本編とは若干逸れますが、Kotlinについてもちょっぴり触れます。 第1回JetBrainsユーザグループ勉強会 に出席しました。IntelliJ IDEAなどのIDEやツールなど…
いきなりしょうもないダジャレですみませんw 今日からオブジェクト指向に関する機能について紹介していきます。今日はクラスについてお話しします。 クラスとコンストラクタ では早速Kotlinでクラスを定義してみます。次のコードはメンバをまったく持たない…
10日目の今日は、昨日に引き続きKotlinにおける関数について紹介したいと思います。高階関数や関数リテラルなど、Javaプログラマには馴染みのあまりない関数の使い方が登場します。 関数リテラル 関数リテラルとは、リテラルという言葉が示す通り、宣言を伴…
今日はいよいよ関数について学びます。Kotlinでは関数型プログラミング的アプローチによる記述が頻繁に登場します。そのため関数の紹介は量が多くなるので前編と後編の2部構成を採りたいと思います。 関数定義の基本 関数を定義するためには次のように記述し…
8日目の今日は、これまでの内容の簡単な振り返りと、ちょっとした練習問題を通してKotlinともっと仲良くなりましょう。 前回までの総集編 1日目:アドベントカレンダーはっじまっるよー! Kotlinの概要、学ぶモチベーションについてお話ししました。Kotlinを…
アドベントカレンダー7日目ー!7日目は安息日にしたいところですが、頑張ります。 今日はループ、繰り返し構文を紹介します。昨日は分岐を学びました。構造化定理によると、あらゆるアルゴリズムは順次、選択(分岐)、反復(繰り返し)の3種類の制御構文の…
アドベントカレンダー6日目の今日は、条件分岐式についてお話ししたいと思います。条件分岐文でないことに注意してください。式なのです。何か値を返す、これも関数型プログラミング的アプローチのひとつです。 if式 まず1つ目に紹介するのは馴染みの深いキ…
アドベントカレンダー5日目の今日はKotlinにおける変数と型について紹介します。型については少し触れる程度にします。 変数 Kotlinで変数を宣言するにはキーワードを伴う必要があります。 var x : Int これはJavaでは次に相当します。 // Java int x; キー…
初日にKotlinの概要を、2日目に機能ウォークスルーを、そして昨日3日目は開発環境についてお話ししました。今日からKotlinの文法や機能について紹介していきます。今日は最も簡単なKotlinプログラム、ということで毎度お馴染みのアレを軸にKotlinコードにつ…
アドベントカレンダー3日目の今日は、Kotlinの開発環境を紹介します。2つの環境を紹介しますので、好みや用途によって使い分けてください。 お手軽開発環境 最も手っ取り早く簡単にKotlinを体験したいのならWeb Demoがおすすめです。 Webブラウザ上でKotlin…
アドベントカレンダー2日目。今日はKotlin言語を俯瞰して、面白い機能をつまみ食いしていきます。Javaにはない発想がいくつか見られますが、ここではあえて詳細な説明はしません。Kotlinの雰囲気をつかんで、わくわく感を持って明日以降の記事をご覧いただけ…
とうとう来た12月!師走!本当に1年って早いですね。今年もだらだらと過ごしてしまいました。来年こそは本気出すっ(キリッ ってことで今年もアドベントカレンダーの季節がやってきました。クリスマスを楽しく待つためのカレンダー、それがアドベントカレンダー…