Kotlin forAndroidの概要
公開: 2018-06-28Androidの世界では、Javaのことを聞いたことがない人はいないと思います。 あらゆるハードウェア上のほぼすべてのオペレーティングシステムで実行されるアプリケーションを構築できる強力なプログラミング言語。 ただし、何年にもわたって、Java仮想マシンでも実行できるように多くの新しいプログラミング言語が導入されてきました。 Androidアプリの開発を「より良く」するためにGoogleが行っていることの一部であるそのような言語の1つがKotlinです。 Googleは、Google I / O2017でKotlinの広範なサポートを発表しました。
Kotlinはアプリ開発者向けであり、彼らがそれを気に入っていることは確かです。 しかし、なぜ彼らはそれを愛しているのでしょうか? 2018年に再びKotlinがアプリ開発にとってどれほど重要であるかをGoogleが強調する理由は何ですか? 正確には何ですか?
JVM上で実行される静的に型付けされたプログラミング言語であるKotlinは、JetBrainsのプログラミングおよび開発言語です。 Kotlinは、最新の表現力豊かで安全で強力な言語であり、既存のAndroid言語と相互運用できます。 その他の機能は次のとおりです。
1. Kotlinは、Android Studio3.0以降で完全にサポートされています。
2. Kotlinは、「Intellij」の背後にあるチームである「JetBrains」によって作成されたJVMベースの言語です。
3.IntellijはAndroidStudioのベースです。
4.Kotlinは「オブジェクト指向言語」です
なぜKotlinなのか?
軽量:
Kotlinライブラリは、他のライブラリと比較すると非常に小さいです。 ProguardとMultidexingを含むAndroidメソッドの制限は常に解決すべき問題であるため、これは重要です。これらのソリューションはすべて、デバッグ中に時間がかかる可能性のある複雑さを追加します。Kotlinは7000未満のメソッドを追加します。
相互運用性が高い:
KotlinはJavaライブラリでうまく機能します。 Kotlinチームは、コード全体を書き直すことなく、Javaで記述された現在のプロジェクトの開発を継続したいと考えています。 したがって、Kotlinは非常に相互運用可能な言語です。
Android Studioとの統合:
KotlinはAndroidStudioおよびGradleと統合されています。 IDE用とGradle用に1つのプラグインが必要なため、Kotlinのインストールは簡単です。 Kotlinを使用してAndroidプロジェクトを開始することは難しくありません。
これ以上のNullPointerExceptionsはありません:
NullPointerExceptionは、Androidでのアプリケーションクラッシュの最も一般的な原因の1つです。 この例外を修正してコードを保護するには、毎回nullチェックを使用するのは時間のかかる作業です。 ただし、Kotlinでは、nullの安全性がすでに統合されているため、これは例外です。
パフォーマンス :
Kotlinアプリケーションは、Javaで実行するのと同じくらい高速に実行されます。 Kotlinがインライン関数をサポートしているため、「ラムダ」を使用すると、アプリケーションの実行速度がさらに速くなることがよくあります。
Android Studio 3.0では、Kotlinでアクティビティを作成することを選択できます。 kotlinの使用を開始する最も簡単な方法は、JavaをKotlinに自動的に変換することです。 Javaで記述してから、Javaコードをコピーしてkotlinファイルに貼り付けると、変換が提案されます。
JavaファイルをKotlinに変換するもう1つの簡単な方法:
AndroidStudioメニュー>>コード>> JavaファイルをKotlinファイルに変換
変換は次のタイプになります。
Java:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); } }
Kotlin:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity) } }
Kotlinを構成した後、アプリケーションのbuild.gradleファイルを更新し、以下に示すように実装します。


最後に、プロジェクトを同期します。 「今すぐ同期」をクリックできます。 これは、Javaの場合とまったく同じように機能します。 アプリケーションのリリースを作成し、JavaのAndroidアプリケーションで行うのと同じように署名できます。
最後に、Kotlinコンパイラは「バイトコード」を生成します。Androidでのアプリケーションのルックアンドフィールに関しては、これまでと何の違いもありません。
では、Kotlin構文についてもう少し教えてください
- パッケージ定義:
package com.example Import java.util.* - 変数の定義:
Int: Val a: Int = 3 // Immediate assignment Val b = 2 // “Int” type is Inferred Val c : Int // Type Required when no initializer is provided C = 3 // Deferred assignment - 弦:
val firstName: String = "Raj" val lastName = "xyz" // still compile val dateOfBirth = "24th April, 1990" dateOfBirth = "28th July, 2000" // cannot be changed var car = "Toyota Matrix" car = "Mercedes-Maybach" // can be changed
「Val」と「Var」の違い
Val:前者が不変または読み取り専用であるキーワードです(値は変更できません)
Var:コンパイラによってタイプが推測されるキーワードであり、別のタイプの別の値を割り当てることはできません。 つまり、変数の値は変更できますが、型は変更できません。
var age = 12 age = "12 years old" // Error: type mismatch val carName: String carName = "BMW Car" // will compile val carName = "Toyota", streetName = "Church street" // this won't compile // this will compile var carName = "Audi" var streetName = "Church street"
例:
fun main(args: Array<String>) { val i = 10 println("i = $i") // prints "i = 10" } val accountBalance = 200 val bankMessage = "Your account balance is $accountBalance" // Your account balance is 200
変数名の前に$文字を使用して変数を参照します。 変数が正しくないか存在しない場合、コードはコンパイルされないことに注意してください。 補間された文字列から直接メソッドを呼び出すことができます。 中括弧$ {}を追加してラップする必要があります。
val name = "Raj" val message = "The first letter in my name is ${name.first()}" // The first letter in my name is R
関数の定義:
fun sum(a: Int, b: Int): Int { return a + b } fun main(args: Array<String>) { print("sum of 2 and 8 is ") println(sum(2, 8)) } // sum of 2 and 8 is 10
式の本体と推定される戻り型を持つ関数:
fun sum(a: Int, b: Int) = a + b fun main(args: Array<String>) { println("sum of 18 and 24 is ${sum(18, 24)}") } // sum of 18 and 24 is 42
Forループ:
fun main(args: Array<String>) { val items = listOf("apple", "banana", "Mango") for (item in items) { println(item) } } // apple banana Mango
コレクションの使用:
Iterating over a collection: fun main(args: Array<String>) { val items = listOf("apple", "banana", "mango") for (item in items) { println(item) } } Checking if a collection contains an object using “in” operator: fun main(args: Array<String>) { val items = setOf("apple", "banana", "mango") when { "orange" in items -> println("juicy") "apple" in items -> println("apple is fine") } } // apple is fine
クラスのインスタンスを作成する方法:
val customer = Customer() // No New Keyword
コンストラクター:
Kotlinのクラスには、1次コンストラクターと1つ以上の2次コンストラクターを含めることができます。 プライマリコンストラクターはクラスヘッダーの一部です。クラス名の後に続きます
class Person constructor(firstName: String) { }
プロパティの宣言:
Kotlinクラスにはプロパティがあります。 これらは、「var」キーワードを使用して可変として宣言することも、「val」キーワードを使用して読み取り専用として宣言することもできます。
例:
class Address { var name: String = “” var street: String = “” var city: String = “” }

インターフェース :
KotlinのインターフェースはJava8と非常によく似ています。これらには、メソッドの実装だけでなく、抽象メソッドの宣言も含めることができます。
インターフェイスは、キーワードinterfaceを使用して定義されます
interface MyInterface { fun bar() fun foo() { // optional body } }
インターフェイスの実装:
class Child : MyInterface { override fun bar() { // body } }
クラスまたはオブジェクトは、1つ以上のインターフェースを実装できます。



