Kotlin Advent Calendar 2012 (全部俺)

JavaプログラマのためのKotlin入門

25日目:まとめとこれから

メリークリスマス!!!! 今日はクリスマス!12月1日から昨日まで毎日記事を投稿し、みなさんへKotlinの面白さをお伝えしてきました。そんな当アドベントカレンダーも今日で最終回です。Kotlinを学んだり貢献したりするためのヒントと、Kotlinのこれからに…

24日目:ツイート検索アプリをつくる

今日はクリスマスイブです。いろんな過ごし方があるかと思いますが、今日はKotlinでアプリを作って遊びましょう。 ツイート検索アプリをつくる 本日のタイトルのとおり、ツイート検索アプリをつくります!と言っても、100行もしない超簡単なアプリです。指定…

23日目:JUnitを使う

アドベントカレンダー23日目です。今日はJavaのユニットテスト・フレームワークのデファクト・スタンダードであるJUnitを使って、Kotlinのユニットテストを走らせる方法を紹介します。Kotlinの標準ライブラリに含まれているパッケージ kotlin.test にはJUnit…

22日目:Javaとの相互運用

3連休初日キタ━(・∀・)━!!! アドベントカレンダー初日にお話ししましたが、KotlinはJVM言語なのでコンパイラが吐くのはJavaバイトコードです。それらはJava言語から使用することができます。またその逆に、Java言語で書かれたクラスをKotlinから使用することも…

21日目:その他の機能いろいろ

今日でKotlin言語の文法や機能の説明は最後です。今日ご紹介するのは、これまでに紹介していない残りの機能についてです。中にはまだ実装されていない(正しくコンパイルされない)機能もありますが、それらは今後のマイルストーンで実装されていくでしょう…

20日目:データクラスと多重宣言

アドベントカレンダー20日目です。アドベントカレンダーも残すところあとわずかです。言語の文法や機能の紹介は明日まで、という風な予定となっています。今日はデータクラスと多重宣言という機能について見て行きます。 データクラス 単純なプロパティしか…

19日目:キーワード object の威力

今日はキーワード objectの機能について紹介します。この object というキーワードは3つの機能を提供します。オブジェクト式、オブジェクト宣言、クラスオブジェクトの3つです。これらの機能は名前も使用するキーワードも似ているので、混同しないよう気をつ…

18日目:パッケージと標準ライブラリ

今日はKotlinの標準ライブラリが提供する便利なクラスや関数について紹介します。ライブラリは、自然言語のメタファを拝借するなら、語彙と例えられることがあります。ライブラリの提供する機能群(語彙)を知ることにより、表現豊かなコードを書くことがで…

17日目:ジェネリクス

アドベントカレンダー17日目の今日は、Kotlinのジェネリクスについてお話しします。Javaプログラマにとっては当たり前のことかも知れませんが、ジェネリクスというのは型を柔軟でかつ安全に扱おうという仕組みです。 ジェネリクスは既に親友さ、という方はKo…

16日目:ぬるぽとの別れ

今日は、面倒な奴だけど憎めない、そんなNullPointerExceptionとの別れの日です。KotlinにはNPEを起こさない仕組みが備わっています。それが今日取り上げる機能、NULL安全です。 nullをセットできない型 Javaでは、すべての参照型変数がnullとなることができ…

15日目:トレンドなトレイト

アドベントカレンダー15日目の今日はトレイトという機能に注目したいと思います。トレイトとは実装を持ったインタフェースのようなものです。これはJVM言語のScala(まさにトレイトという名前の機能)や、Java SE 8(予定)にもある機能です。インタフェース…

14日目:継承とオーバライドの約束

Kotlinにも継承の仕組みが備わっています。継承により、上位のクラス(スーパクラス)の型のサブセットとなることができ、さらにスーパクラスの実装を受け継ぐことになります。再利用性を高める重要な機能について今日は見ていきます。 継承 継承は、上位の…

13日目:プロパティとフィールド

一昨日はクラスの話をしました。クラスは、そのメンバとして関数とプロパティを持つことができます。今日はプロパティについてお話ししたいと思います。 まずはJavaの慣例のおさらい Javaではpublicなフィールドを避けるべきであるとされています。メソッド…

12日目:番外編!JetBrains勉強会の感想 #jbugj

Kotlin解説は1回お休みです。今日は、昨日あったJetBrainsユーザグループの勉強会の報告をします。本編とは若干逸れますが、Kotlinについてもちょっぴり触れます。 第1回JetBrainsユーザグループ勉強会 に出席しました。IntelliJ IDEAなどのIDEやツールなど…

11日目:クラスと共に暮らす

いきなりしょうもないダジャレですみませんw 今日からオブジェクト指向に関する機能について紹介していきます。今日はクラスについてお話しします。 クラスとコンストラクタ では早速Kotlinでクラスを定義してみます。次のコードはメンバをまったく持たない…

10日目:関数(後)

10日目の今日は、昨日に引き続きKotlinにおける関数について紹介したいと思います。高階関数や関数リテラルなど、Javaプログラマには馴染みのあまりない関数の使い方が登場します。 関数リテラル 関数リテラルとは、リテラルという言葉が示す通り、宣言を伴…

9日目:関数(前)

今日はいよいよ関数について学びます。Kotlinでは関数型プログラミング的アプローチによる記述が頻繁に登場します。そのため関数の紹介は量が多くなるので前編と後編の2部構成を採りたいと思います。 関数定義の基本 関数を定義するためには次のように記述し…

8日目:ここまでのまとめと練習問題

8日目の今日は、これまでの内容の簡単な振り返りと、ちょっとした練習問題を通してKotlinともっと仲良くなりましょう。 前回までの総集編 1日目:アドベントカレンダーはっじまっるよー! Kotlinの概要、学ぶモチベーションについてお話ししました。Kotlinを…

7日目:コードは繰り返す

アドベントカレンダー7日目ー!7日目は安息日にしたいところですが、頑張ります。 今日はループ、繰り返し構文を紹介します。昨日は分岐を学びました。構造化定理によると、あらゆるアルゴリズムは順次、選択(分岐)、反復(繰り返し)の3種類の制御構文の…

6日目:人生は選択の連続

アドベントカレンダー6日目の今日は、条件分岐式についてお話ししたいと思います。条件分岐文でないことに注意してください。式なのです。何か値を返す、これも関数型プログラミング的アプローチのひとつです。 if式 まず1つ目に紹介するのは馴染みの深いキ…

5日目:変数と型

アドベントカレンダー5日目の今日はKotlinにおける変数と型について紹介します。型については少し触れる程度にします。 変数 Kotlinで変数を宣言するにはキーワードを伴う必要があります。 var x : Int これはJavaでは次に相当します。 // Java int x; キー…

4日目:Kotlinで世界に挨拶をしよう

初日にKotlinの概要を、2日目に機能ウォークスルーを、そして昨日3日目は開発環境についてお話ししました。今日からKotlinの文法や機能について紹介していきます。今日は最も簡単なKotlinプログラム、ということで毎度お馴染みのアレを軸にKotlinコードにつ…

3日目:Kotlinの開発環境

アドベントカレンダー3日目の今日は、Kotlinの開発環境を紹介します。2つの環境を紹介しますので、好みや用途によって使い分けてください。 お手軽開発環境 最も手っ取り早く簡単にKotlinを体験したいのならWeb Demoがおすすめです。 Webブラウザ上でKotlin…

2日目:Kotlin名所見学ツアー

アドベントカレンダー2日目。今日はKotlin言語を俯瞰して、面白い機能をつまみ食いしていきます。Javaにはない発想がいくつか見られますが、ここではあえて詳細な説明はしません。Kotlinの雰囲気をつかんで、わくわく感を持って明日以降の記事をご覧いただけ…

1日目:アドベントカレンダーはっじまっるよー!

とうとう来た12月!師走!本当に1年って早いですね。今年もだらだらと過ごしてしまいました。来年こそは本気出すっ(キリッ ってことで今年もアドベントカレンダーの季節がやってきました。クリスマスを楽しく待つためのカレンダー、それがアドベントカレンダー…