Kotlin を使用した Android 開発をマスターする:コース、トレーニング、リソース
Android アプリケーションがどのように動作するか疑問に思ったことはありますか?日々の活動に役立つアプリはどのように作られているのでしょうか?これらのアプリの作成に役立つフレームワークと言語のエコシステム全体が確かに存在しますが、Android の作成者自身が推奨しているものはどれでしょうか?これらの質問に対する答えは、Kotlin です。Kotlin は、市場で入手可能な Android アプリケーション開発フレームワークに新たに追加されたもので、Google 自身が直接支援しています。
Kotlin を学習する方法
Kotlin はモバイル アプリケーションを作成するための強力なプログラミング言語であるため、そのダイナミクスを学習する前に、その目的と機能を理解することが重要です。
Kotlin とは何ですか?
Kotlin は、モバイル アプリケーション開発を念頭に置いて設計されたオープンソース プログラミング言語です。コードの可読性やクロスプラットフォーム アプリケーション開発などの面で、従来の Android 言語 (Java) に比べて競争上の利点があります。 Kotlin は、モバイル アプリケーション開発以外では、本格的なオブジェクト指向プログラミング言語です。
Kotlin は Java に比べて数多くの利点があるため、Google によって強く推奨されています。 Kotlin の構文は Python に似ているため、学習と使用が簡単です。コミュニティのサポートが増えるにつれ、Kotlin でデータ分析ライブラリを作成する人が増えています。これは、Kotlin が今後の機械学習において次の大きなものになることを示唆しています。
Kotlin は Web アプリケーション開発にも使用されます。 Kotlin コードを同等の JavaScript にコンパイルできる機能により、Kotlin のクロスプラットフォームの可能性が広がります。つまり、Kotlin でコードを 1 回記述するだけで、製品用に動作するモバイル、Web、デスクトップ アプリを作成できることになります。これらのユースケースを詳しく説明する前に、Kotlin を使用する場合の他の利点と比較して利点を理解しましょう。
Kotlin の機能
Kotlin はプログラミング言語として複数の機能を提供します。以下にその一部を示します。
簡潔なコード
Java の学習曲線が急であることが知られている主な理由の 1 つは、Java がもたらす定型文です。 Android アプリケーションに関しては、Java はすべてのプロジェクトにさらに多くの定型コードを追加します。 Kotlin は、シンプルな構文と理解しやすい表記法でこの問題を解決することを目指しています。
このことは、2 つの言語による従来の「Hello World」プログラムを比較するとわかります。
Java:
class Test {
public static void main {
System.out.println("Hello World!");
}
} コトリン:
fun main() {
println("Hello World!")
} Kotlin は、main 関数を最上位レベルに置くことで、コードを記述するために常にクラスを宣言する負荷を軽減します。また、print 呼び出しも簡素化されます。これは、言語全体に実装されている他の簡略化を適切に表現したものです。
ヌル安全性の向上
Null ポインターは、Java 開発者が直面する最も一般的な問題の 1 つです。それらは多くの時間を費やし、不必要なフラストレーションを引き起こします。多くの場合、これは、アクセス前に参照変数が null かどうかチェックされないことが原因で発生します。
Java では、これは伝統的に、次のように変数にアクセスする前に if ケースを置くことによって行われます。
// let foo be a variable
if (foo != null) {
foo.bar();
}
このコードを見逃すと、アプリケーションでエラーが発生する可能性があります。 Kotlin はこの問題にうまく対処しており、Kotlin コンパイラーはデフォルトで、コンパイル時に変数の値が null になることを許可しません。したがって、アプリのどこかで null チェックが欠落している場合、または null 変数を操作している場合は、コンパイラ自体の時点で通知されます。
これにより、ヌルポインタのバグが最終アプリケーションに到達することはなくなります。あるいは、安全なメソッド呼び出しを自分で実装することもできます。 Kotlin の安全な呼び出しを使用して上記のコードを作成すると、次のようになります。
// let foo be a variable foo?.bar()
このコードは、foo が null でない場合は foo オブジェクトの bar メソッドを呼び出し、foo が null の場合は null を返します。これにより、次のような複雑な連鎖呼び出しを簡単に行うことができます。
Java との相互運用性
Kotlin はデフォルトで Java バイトコードにコンパイルします。これにより、プリコンパイルされた Java クラスを Kotlin コードで簡単に使用できるようになります。 Java と Kotlin を使用してアプリケーションを作成でき、すべて Java バイトコードにコンパイルされ、Kotlin と Java 部分内で自由に相互運用できます。これにより、すべてのコードを一度に移行する必要がないため、巨大なレガシー Java アプリケーションの Kotlins への移行がスムーズになります。
それとは別に、Android Studio のようなスマート IDE は、Java ソース コードをその場で Kotlin に変換するのに十分な機能を備えています。つまり、IDE だけを使用して、古い Java クラスを Kotlin クラスに簡単に変換できるということです。
JavaScript への変換 (トランスパイル)
Kotlin では、コードを JavaScript にトランスパイルするオプションも提供します。トランスパイルとは、単に、ある言語で書かれたソース コードを別の言語で書かれたソース コードに変換することを意味します。 Kotlin を使用すると、Web プラットフォームやデスクトップ プラットフォームで実行できるアプリを作成できます。
現在の公式ドキュメントによると、Kotlin の現在のバージョンは JavaScript 環境用の ES5.1 をターゲットとしているため、ES6 に同梱されていた主要な改善点の一部の恩恵を受けることができません。また、現在サポートされているのは Kotlin コードのみを同等の JavaScript に変換することであり、Kotlin で書かれていないプロジェクト内に存在するものは JavaScript にトランスパイルされません。これには改善の余地が多く残されています。
Kotlin ネイティブによるネイティブ変換
Java ベースの言語で書かれたアプリケーションを実行するには、仮想マシンが必要です。すべての Java アプリケーションでは、ターゲット ホストに Java 仮想マシン (JVM) がインストールされている必要があります。 Kotlin の現在のバージョンでも同じことが必要ですが、アプリケーションをこの制限から解放するために、Kotlin Native と呼ばれるテクノロジーが開発されています。
Kotlin ネイティブは、バイトコードではなくコードをネイティブ実行可能ファイルにコンパイルすることを目的としています。これらの実行可能ファイルは、仮想マシンなしで実行できます。これにより、システムは Kotlin アプリケーションを実行するために仮想マシンを実行する必要がなくなるため、パフォーマンスが向上します。
Kotlin は何に使用されますか?
Kotlin は、ネイティブ Android アプリケーション開発の主要言語として成長しています。ライブラリについて学習する前に、その主な使用例をいくつか見てみましょう。
モバイル アプリケーションの作成用
Java は、Android フレームワークがアプリケーションをネイティブに実行するための JVM (Java 仮想マシン) をサポートしていたため、Kotlin よりも前にモバイル アプリケーションを作成するための伝統的な言語でした。ただし、Java でコードを書くことは開発者にとって最良の経験ではなく、Android フレームワークはプロジェクトに定型句をさらに追加します。
Kotlin が作成された主な理由は、ネイティブ Android アプリケーションを簡単に作成できるようにすることでした。 Kotlin は、従来の Java 構文を簡素化し、Java の通常の定型文を削減することで、この仕事をうまく実行します。
バックエンドの構築用
Kotlin は、サーバーサイド開発の強力な代替手段として成長しています。前述したように、Kotlin は Java が通常動作するすべてのケースで動作します。これは、どちらの言語も同様のバイトコード実行可能ファイルにコンパイルされ、バイナリの実行に同じ JVM が必要であるためです。
さらに、Java ライブラリは Kotlin で直接使用できるため、ソース コードの言語を交換して両方の利点を最大限に活用できます。 Kotlin でまだ記述されていないライブラリは、Java バイトコードを介して直接使用でき、Kotlin の機能を使用して、アプリケーションに記述されたビジネス ロジックを簡素化できます。

「キャリア カルマは、私が最も必要としたときに私の人生に入り込み、すぐにブートキャンプに参加するのに役立ちました。卒業から 2 か月後、私は自分の価値観と人生の目標に合致する夢の仕事を見つけました。」
Rockbot のソフトウェア エンジニア、Venus 氏
ブートキャンプにマッチするものを見つけてください
フロントエンドの作成用
Kotlin は JavaScript へのトランスパイルをサポートしており、この機能により、Web ブラウザー上で実行できるアプリケーションを作成することもできます。 Kotlin/JS モジュールはこの機能を容易にします。 kotlin.js プラグインを介してインターフェイスを提供します。これにより、JavaScript でフロントエンド アプリケーションを構築することを目的とした Kotlin プロジェクトのセットアップ プロセスが簡素化されます。
Kotlin を使用すると、タイプセーフな React アプリケーションを非常に簡単に作成できます。 React-redux、react-router、styled-components などの JavaScript テクノロジーは Kotlin/JS でサポートされており、これらを他のライブラリと簡単に併用してコンポーネントやライブラリを構築できます。
Gradle プラグインの作成用
Gradle プラグインは、ビルド ロジックの一部を定義するコードの一部です。つまり、Gradle ベースのプロジェクトを最終的な実行可能ファイルに組み込む方法を定義できます。 Gradle プラグインは、JVM バイトコードにコンパイルできる任意の言語で作成できます。
Groovy は、Java に次いで、Gradle プラグインを作成するための伝統的な選択肢です。 Kotlin は JVM バイトコードにもコンパイルされるため、Gradle プラグインの作成に使用できます。 Kotlin には、タイプセーフで簡潔なコードなど、Groovy にはない追加の利点があります。
Kotlin を学ぶ
Kotlin は多様な用途がある高度なプログラミング言語であることを考えると、学ぶべきことはたくさんあります。以下は、開始に役立つリソースのリストです。
最高の Kotlin リソース
Kotlin はオープンソースのプログラミング言語であるため、Kotlin を簡単に始めるのに役立つコンテンツの作成が試みられてきました。まず、Kotlin で利用できる無料および有料のビデオ コースを見てみましょう。
Android 開発者によるトレーニング コース
- プラットフォーム:Android デベロッパー ウェブサイト
- 期間:コースによって異なります
- 価格:無料
- 前提条件:なし
- 開始日:オンデマンド
トレーニング コースは、Kotlin で最初の一歩を踏み出すのに役立つことに焦点を当てたビデオ コースとラボの完璧なコレクションです。 Android の作成者自身が厳選したコンテンツのリストを備えたこのコレクションは、あらゆるレベルの学習者にとって優れたリソースとなるでしょう。コースはトピックだけでなく難易度によっても分かれているので、自分の経験レベルに合ったコースを簡単に見つけることができます。
Kotlin コース – freeCodeCamp.org による初心者向けチュートリアル
- プラットフォーム:YouTube
- 所要時間:約 2.5 時間
- 価格:無料
- 前提条件:なし
- 開始日:オンデマンド
FreeCodeCamp は、さまざまな技術的なトピックに関する最高のコースを無料で提供します。 Kotlin コースでは言語の理解を基礎から構築するため、前提条件は必要ありません。 Kotlin 言語の本質に焦点を当て、すべての機能を詳細に説明します。これをリストにある別のより高度なコースと組み合わせると、Kotlin を自分で学習するための完璧なロードマップが得られます。
Android 開発コース – Kotlin チュートリアルによるネイティブ アプリの構築 (freeCodeCamp.org)
- プラットフォーム:YouTube
- 所要時間:約 4 時間
- 価格:無料
- 前提条件:Kotlin 構文の基本的な理解
- 開始日:オンデマンド
名前が示すように、このコースは Kotlin の最も一般的な使用法である Android 開発を教えることを目的としています。このコースは、時間を無駄にすることなく、ソフトウェア設計の最も基本的な概念の 1 つである MVVM アーキテクチャから始まります。これは、コースの目的だけでなく、難易度の適切な尺度としても機能します。
コースを完了するまでに、Android アプリの背後で Kotlin がどのように動作するか、および運用レベルの Android アプリがどのように作成されるかをしっかりと理解できるようになります。このコースに入る前に、Kotlin の初心者レベルのコースを受講することをお勧めします。
Kotlin を使用した Android アプリ開発マスタークラス (Tim Buchalka、Jean-Paul Roberts 著)
- プラットフォーム:Udemy
- 期間:62 時間
- 価格:割引の場合は約 7 ドル、それ以外の場合は約 90 ドル
- 前提条件:なし
- 開始日:オンデマンド
Kotlin と Android 開発のすべてのニーズを満たす 1 つのコースを探している場合、これが検索を終了するのに最適な場所です。このコースには Kotlin 言語の基礎に関する十分なセクションがあり、豊富なプロジェクトと Android の基礎に関するフォローアップ講義でこの学習をすぐに活用できます。
このコースの最大の特徴は、十分な数のプロジェクトがコース中に適切な間隔で点在していることです。これにより、学習したすべてを途中で活用し、言語についての深い理解を確実に築くことができます。
Kotlin の書籍
ビデオ コースとは別に、Kotlin を始めるのに役立つ書籍が多数あります。上位のものには次のようなものがあります。
『Head First Kotlin:A Brain-Friendly Guide』ドーン グリフィス、デビッド グリフィス著
https://images-na.ssl-images-amazon.com/images/I/51MPXtX7fGL._SX430_BO1,204,203,200_.jpg この記事の執筆時点で Amazon での価格は約 41 ドルで、Kotlin の世界への最初の一歩を踏み出すのに最適な本の 1 つです。 頭から シリーズは、最も難しい概念を非常にフレンドリーな口調で説明しているため、初心者に最適であることが知られています。 Head First Kotlin は、基本的な構文からラムダや高階関数に至るまで、プログラミング言語を徹底的にカバーしています。
『Kotlin プログラミング:ビッグ ナード ランチ ガイド』Josh Skeen、David Greenhalgh 著
https://images-na.ssl-images-amazon.com/images/I/418ucINElLL._SX358_BO1,204,203,200_.jpg この本の価格は現時点で約 34 ドルですが、プログラミングの経験レベルに関係なく、すべての人にとって素晴らしい資産です。この本では、実際の例と主要な概念の明確な説明を通じて、Kotlin プログラミング言語の基本を読者に説明します。この本では、読者に IntelliJ IDEA 開発環境についても紹介します。
「Kotlin in Action」ドミトリー・ジェメロフ、スヴェトラーナ・イサコワ著
https://images-na.ssl-images-amazon.com/images/I/51Mov862yoL._SX397_BO1,204,203,200_.jpg 現時点での価格は約 36 ドル (最新の価格はこちらでご確認ください) であるこの本は、Java のバックグラウンドがあり、Kotlin を学習しようとしている人にとって最良の選択肢の 1 つです。この本は、Kotlin スキルを完璧にしたいと考えている経験豊富なプロフェッショナルにとって最適なリソースです。ベスト プラクティス、Java との組み合わせ、DSL の入門書とは別に、言語のダイナミクスについて説明します。
Kotlin リソース
ビデオ コースや書籍とは別に、インターネット上で利用できるチュートリアルが多数あります。まずは、素晴らしい作品をいくつか紹介します。
KotlinLang.org によるチュートリアル
Kotlin 組織自体が提供するこのチュートリアルでは、プログラミング言語を始めるのに役立つ一連の初心者向けのテキストとビデオ リソースを提供します。ランディング ページには、Koan とコマンドライン コンパイラを使用して Kotlin を始めるさまざまな方法へのリンクが含まれています。
初心者向け Kotlin チュートリアル:Guru99.com による Kotlin プログラミングを学ぶ
このコースには、歴史、機能、セットアップ、高度なユースケースに関する豊富なコンテンツが含まれており、Kotlin をマスターするための完璧なロードマップを提供します。チュートリアル全体で役立つサブテキストを提供するため、まず最初に最適な場所です。ただし、指定されたコンテンツの専門家になるには十分実用的ではないようです。高度なコンテンツをお探しの場合は、これをより高度なコースと組み合わせることをお勧めします。
Kotlin チュートリアル (TutorialsPoint.com 提供)
このリソースは、学習用のガイド付きチュートリアルというよりは、Kotlin のサブトピックの用語集のように感じられます。ただし、各サブトピックのコンテンツの内容は非常に深いため、言語の基礎を習得し、サポートが必要なときにいつでも参照できるリソースを探している場合には、これが重要な資産となる可能性があります。
Kotlin を学ぶのにどれくらい時間がかかりますか?
Kotlin は強力で詳細なプログラミング言語であるため、使い始めるまでに通常は最大 4 週間かかります。さらに 1 ~ 2 週間、サンプル プロジェクトを使用して徹底的に練習すると、基本が頭の中で明確になり、この言語の可能性を最大限に発揮できるようになります。
Kotlin を十分に学習してプロフェッショナルなアプリケーションを構築したい場合は、2 か月の定期的な学習と練習を楽しみにしてください。それ以上は、Kotlin スキルを完璧にするだけです。
Kotlin を勉強すべきですか?
Kotlin に関するコースとコンテンツの優れたリストを作成した後、私たちは最も重要な質問に直面しています。それは、Kotlin を学ぶべきか?ということです。
これに対する答えは簡単です。ソフトウェア開発の世界に飛び込む意欲がある場合、または Java の経験があり、経験をアップグレードしたいと考えている場合、Kotlin は時間とリソースを投資するのに最適なスキルです。プログラミングが非常に簡単で、さまざまなユースケースに対応できるため、あらゆるプラットフォームでのアプリケーション開発に最適な代替手段となります。
Android 開発者としてキャリアを積みたいと考えている場合、Kotlin は仕事の要件を満たすための基本要素の 1 つです。アプリケーション開発のダイナミクスを探り始める前に、Kotlin の強固な基礎を築くことが不可欠です。
-
SwingはJavaでスレッドセーフですか?
いいえ、 Java Swing コンポーネントはJavaではスレッドセーフではありません。 Swingコンポーネントがスレッドセーフではない理由 Java Swingがスレッドセーフではない主な理由の1つは、そのコンポーネントを拡張するタスクを簡素化することです。 Java Swingのもう1つの理由は、ロックの取得と解放、および状態の復元に伴うオーバーヘッドのため、スレッドセーフではありません。 。 一部のJavaSwingコンポーネントメソッドは、 repaint()、revalidate()などのマルチスレッドアクセスをサポートします。 、および invalidate()メソッド
-
Java OpenCVライブラリを使用してカラー画像をHLSに変換するにはどうすればよいですか?
Imgproc.COLOR_RGB2HLSを3番目のパラメーターとしてcvtColor()に渡すことにより、HLS画像をRGB(カラー)画像に変換できます。 メソッド。 例 import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; public class HSL2RGB { public static void main(String args[]) throws