更新日 : 2020年5月26日, ですが、Javaとの相互利用が保証されているのはKotlinだけです。もしJavaで作られたものとの相互利用を考えているならKotlinを選ぶほうが安全でしょう。ScalaはJavaとの相互利用を一番に考えて作られたものではありません。, KotlinはJavaをより進化させ良いところを伸ばすことを目標に、ScalaはJavaを超える新しい言語になることを目標にしていると言われています。また、Scalaは学習コストが高いともいわれます。, さて、次の章ではKotlinでなにができるのか?について解説していきます。また、実際に使用されている例も紹介していきます!, Kotlinで作れるものといえばやはり「Androidアプリ」です。Androidの公式ではキャラクターがこのようにKotlinでの開発を後押ししています。, 海外企業ではUber、Evernote、NetflixがKotlinを使用しています。日本企業でも取り入れる企業は増えてきています。Kotlinで作られたアプリは「Yahoo!ニュース」や「LINE」などがあります。身近なアプリで使われているんですよ。, この先、更に採用される企業やアプリは広がる見込みです。もちろんアプリ以外にサーバーサイドの開発でも使用されているので、今後は使用範囲が広がっていくかもしれません。, さて、そんな将来性のあるKotlinですがどのようなメリット・デメリットがあるのでしょうか? 一緒に見ていきましょう。, ここまでで多くのKotlinの良い部分を紹介してきましたので、先にメリットについてまとめます。, Kotlinの言語自体のデメリットとしては特にありませんが、まだまだ日本語で読める情報が少ないという点には注意が必要です。頼れる情報がまだ少ないので、例えば分からないことや困ったことがあった場合に調べる手間がかかる可能性があります。, ですが、この問題もKotlinが浸透していくにつれ解消されることでしょう。初心者だし情報が少ないならまだ……ということであればJavaから学習するのも一つの方法かもしれません。, このように、Kotlinはメリットが多く取り入れる企業も多くなっています。そんなKotlinエンジニアの需要や市場価値はどのようになっているのでしょうか?, Kotlinを扱うことが出来れば、具体的にどのような仕事をすることができるのでしょうか? 実際に求人サイトで検索してみましょう。レバテックフリーランスで「Kotlin」と検索してみました。, さて、次は具体的にどのような求人があるのか見てみましょう。やはりスマホアプリの求人が多い印象です。, Kotlinを使ったアプリ開発の経験があれば、月収最大100万円のお仕事に就くことも可能なようです。, このように、現在ではほとんどがアプリ開発の求人でした。いろいろな企業でKotlinの導入が進んでいる証拠ですよね。, アプリ開発以外の求人が増える可能性もあり、とても需要が高まってきている言語になっています。そんなKotlinエンジニアの年収はいったいどのくらいなのでしょうか?, Kotlinエンジニアの年収はGoやScalaと比べると順位が下ですが、それでも中央値が575万円とかなり高額になっています。Javaエンジニアの年収中央値は500万円で14位ということなので、結構な差があるのが分かります。, Kotlinは現時点でもGoと同じくらいの求人数があり、今後Javaに代わる開発言語となればもっと求人数が増える可能性があります。今から学習しておいて損はない言語といえますよね。, さて、ここまでKotlinの紹介をしてきて興味が湧いた方もいらっしゃるかと思います。次の章からはKotlinで実際にコードを書いてみたり、おすすめの学習方法について紹介します。, 今回は統合開発環境として「Android Studio」を使うことにします。 タイトル画面 もう一度プレイするか選択→タイトルに戻るor終了, 初期状態ではカードを交換しない設定となっていますが、それぞれのカードをタップして交換するしないを切り替えます。カード交換フラグの成立の有無を見て交換ボタンの仕様も切り替えます。, 今回の役判定は、所謂「ジャックスオアベター」のものを拝借しました。(ワンペアの場合11以上で勝利、それ以下は敗北となる), 判定手順についてはソース内に解説を記載したのであわせて確認していただけると幸いです。, ここまでの段階ではゲームの基盤処理と役判定まで完成しましたが、所持金のベットと配当の実装、およびUI全般の調整がまだできておりません。, 現状では完成も年明け以降となる見込みですが、役判定までできあがったものをTwitterに投稿してありますので参考程度にお願いいたします。, UI雑だけど最低限ゲームとして成立するくらいにはなったはっきり言ってこういうゲームはネイティブアプリで開発すべきではない pic.twitter.com/Mi3reCw2pa, — ライラプスぽけっと.com (@Lailaps_poke) 2017年12月29日, 現在までやってみて、改めてAndroid開発の楽しさと難しさに直面することができました。, 今回はAndroidアプリの開発に復帰したい思いとKotlinの初学ということであえてAndroidネイティブのKotlinで開発に取り組みましたが、はっきりと断言します。この手のゲームはAndroidのネイティブではなくUnityなどのゲームエンジンやハイブリッドアプリなどで開発すべきです。, 特にAndroidは端末サイズが機種ごとにまちまちなため、画面サイズの調整だけでも一苦労必要になってきます。, また、Android開発においてはライフサイクルを意識した設計開発が最重要であるため、「ゲーム開発でAndroidを学ぶ」という考えは正直失敗だったとまで思っています。, しかし、処理のアルゴリズムや状態・座標の管理、オブジェクト指向の基礎など、プログラミングに必要な知識の基礎を改めて学び直すきっかけにもなったので、そこは後悔していません。なんだかんだでKotlinの文法もある程度わかってきました。, もしまたKotlinでAndroidをやっていくのであれば、ネイティブアプリの強みを活かせる分野の作品を作ってみようと思います。, ソースコードを見ていただければわかりますが役判定アルゴリズムに関してはおそらく最適解ではないので、有識者の方のご意見をいただきたいと思っています。現在お互いにプログラミングで高め合える方を大募集しています!, 現状までの経過をGitHubにアップいたしましたので、あわせてご確認していただけると幸いです。, 年明け頃に完成品としてPart2の記事をアップしますので、そのときもまたよろしくお願いします。, Kotlinの練習にオセロ作って遊んだ(みんからきりまで様) 出来る言語はC#,VB,Java,Delphiなどなど、幅広く触っています。, 画像:レバテックフリーランス https://freelance.levtech.jp/, URL:https://freelance.levtech.jp/project/detail/30962/, URL:https://freelance.levtech.jp/project/detail/31876/, https://www.bizreach.co.jp/pressroom/pressrelease/2018/0807.html, https://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view, http://dogwood008.github.io/kotlin-web-site-ja/docs/reference/, JavaScriptでゲーム制作!アルゴリズム学習講座【9/18イベントレポート】. , この先が非常に楽しみな言語「Kotlin」に関して解説を行いました。かなり新しい言語なのにも関わらず、非常に注目されていることがお分かりいただけたでしょうか?, この記事をよんで興味が湧いた方は、ぜひ書籍などを使って「Kotlin」に実際に触れてみてくださいね。, 当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。 交換手札選択 googletag.defineSlot('/21812778492/blog_728x90_common_overlay', [728, 90], 'div-gpt-ad-1584694002281-0').addService(googletag.pubads()); googletag.defineSlot('/21812778492/blog_300x600_common_sidemiddle01_adsense', [300, 600], 'div-gpt-ad-1571293897778-0').addService(googletag.pubads()); 2018/4/13 googletag.pubads().collapseEmptyDivs(); Kotlinって簡単にいうと、どんな言語なの? アプリ開発してみたいからKotlinを勉強してみたい! おすすめの方法は? 結局KotlinとJavaどっちを勉強すればいいの? こんにちは。文系出身でプログラマになり早8年、最近はライターとしても活動中の佐藤です。 AndroidのリハビリとKotlinでのリスト操作の練習のために雑なオセロゲームを作った。 アルゴリズムは適当だけどKotlinの練習なので出来るだけfor文やvarを使わず関数型プログラミングっぽい感じで書いてみた。Kotlinだとリスト操作がめっちゃやりやすくてたのしい。 更新日 : 2019年4月16日, Kotlinの特徴を簡単につかむことが出来たでしょうか? 次の章ではKotlinと他の言語を比較していきます。, この章ではKotlinと、Kotlinが影響を受けた言語について比較していきます。結局どっちを学習すればいいのか? と迷っている方は是非ご覧になってください。, KotlinとJavaは相互利用もできるので、どちらから学習しようか迷っている方も多いでしょう。先程の特徴紹介でもありましたが、Kotlinは, ですが、困ったときに確認できる情報や入門書籍などはJavaに比べればまだまだ少ないです。求人の数などもまだまだJavaには劣ります。, あなたがアプリ開発以外を行っていきたいと思うならまずはJavaを学習するほうが良いかもしれません。サーバーサイドエンジニアとしてはまだまだJavaプログラマが求められています。, もちろんどちらを先に学習しても、2つの言語は相互利用できます。似ている部分も多いため無駄にはなりません。自分の目標に合わせて、学習する言語を選択することをお勧めします。, KotlinとScalaはJavaの影響を受けて生まれた言語ですが、基本の特徴がちょっとだけ異なります。, 関数型プログラミングというのは、関数を組み上げてプログラミングする言語のことです。代表的な関数型言語としては「Haskell」などがあります。, Scalaについてもっと詳しく知りたい方は、紹介している記事がありますので是非ご覧ください。 更新日 : 2020年11月11日, JavaのコードをKotlinで呼び出したり、その逆もできます。すでにJavaで作られている資産を活用することができちゃうんです。, KotlinはNullPointerExceptionを防いでくれる仕組みになっています。NullPointerExceptionってなんだろう? と思った方は、この記事をご覧ください。 GoogleがAndroidアプリの開発言語に選定したことで「Kotlin」の注目度が高まっています。展開しているAndroidアプリの半数以上でKotlinを導入しているというヤフー株式会社に、Kotlinの魅力を伺いまし … Kotlin では、より質の高い Android アプリをより速く記述できます。  ↓ http://dogwood008.github.io/kotlin-web-site-ja/docs/reference/, Kotlinの勉強会は年に数回行われているようです。 今回は久々のプログラミング記事となります。 Androidアプリを開発してみようと思い、まずはkotlinでストップウォッチアプリを作成してみました。参考にしたソースで出たエラーの対処をし、ミリ秒に対応させてみました。 30分で覚えるKotlin文法, Android, Kotlin, プログラミング IT勉強会や、イベントを検索できる「connpass」で日本Kotlinユーザグループをフォローして勉強会情報を見逃さないようにするのをお勧めします。, また、「connpass」でKotlinと検索して、勉強会情報を検索するのもお勧めです。, 勉強会に行くのは勇気がいるかもしれません。ですが、同じようなレベルの初学者、もっと高いレベルのエンジニアなどいろんな人と情報交換できる非常に有意義な時間になること間違いなしです。行ける機会があるなら、参加をお勧めします。, と思う方もいらっしゃるかもしれません。 googletag.defineSlot('/21812778492/blog_300x250_common_sidetop01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565330658303-0').addService(googletag.pubads()); Android & Kotlinの環境でマインスイーパーを開発する方法を説明します。, リセットボタンは、実行するとゲームをリセットする機能以外に「通常状態」、「ゲームオーバー」、「ゲームクリア」の状態を表す機能を持たせます。, リセットボタンは、#6でアニメーションを使ってボタンっぽいエフェクトをかけています。, ボタンの状態が変わった時にも同じエフェクトをかけたいのでanimateResetButton()を定義して共通処理にします。, エフェクトのアニメーション実行後に処理したいことがそれぞれ違うため、引数に関数を指定する形にして対処します。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 40代、東京在住、二児の父。 20年プログラマーとして組み込み系、アプリ開発、ときどき上流設計なんかを主にやってますが基本的になんでも屋です。, Android & Kotlinの環境でマインスイーパーをアプリ開発する方法を説明します。今回は、前回の記事で配置した9x9のタイルに対して、タッチしたタイルの場所が縦、横何番目なのかを判定します。, Android & Kotlinの環境でマインスイーパーを開発する方法を説明します。今回は、「プレイ時間」、「リセットボタン」、「残りの爆弾数」、「旗モード切替ボタン」の4パーツをタイルの上に重ねて配置します。, 他のView(ビュー)の状態をちょっと知りたいなどのケースで他のビューに直接アクセスしたいことがあります。そんなときの方法を説明します。, Canvasに描画した画像の一部分だけをクルッと横回転するフリップアニメーションを実装する方法を説明します。実装例として画面いっぱいに並べて描画したマインスイーパーのタイル(マス)をタッチした部分のみ横回転のフリップアニメーションで開いています。, Android & Kotlinの環境でマインスイーパーを開発する方法を説明します。今回は、タイルをタップした時に「タイルを開く」または「旗を立てる」という動作を切り替えるモード切替ボタンを追加します。, Android & Kotlinの環境でマインスイーパーを開発する方法を説明します。今回は、数字タイルの周りに正しい数だけ旗を立っている場合に、その数字タイルをタップすると旗以外の周りのタイルを再起的に開く処理を実装します。, 【マインスイーパー開発 #7】ゲームのプレイ時間(経過時間)をChronometerで表示する|Android & Kotlinアプリ開発, 【マインスイーパー開発 #9】残りの地雷数を表示する|Android & Kotlinアプリ開発, 【マインスイーパー開発 #14】旗数が正しい数字をタップしたら周りのタイルを再起的に開く|Android & Kotlinアプリ開発, 【マインスイーパー開発 #13】周りの地雷数が0個の場合にタイルを再起的に開く|Android & Kotlinアプリ開発, 【マインスイーパー開発 #12】タップ時の動作を切り替える(タイルを開く、旗を立てる)|Android & Kotlinアプリ開発, 【マインスイーパー開発 #11】画面の向きを縦固定にする|Android & Kotlinアプリ開発, 【マインスイーパー開発 #10】ゲームオーバーをバイブレーションで知らせる|Android & Kotlinアプリ開発.