Android アプリの開発にまだ Java を使用していますか?代わりに Kotlin を試してください。
Kotlin は、過去 2 年間で大きなブレークスルーをもたらしました。どこでもトレンド トピックであり、その人気は今も高まっています。また、Google が Kotlin を Android アプリ開発の公式言語にすることを推進したことも公式です。
それでも、多くの人が Android 開発に Kotlin よりも Java を好んでいますが、それはなぜでしょうか?その主な理由の 1 つは、人々がメインの言語を Java から Kotlin に変更することにまだ慣れていないことです。人々は新しいものに変更することを恐れています。
今すぐ Kotlin を使い始める、簡単な方法
実際、Java から Kotlin に切り替えるのは非常に簡単です。非常に柔軟な言語であるため、Kotlin は簡単にコーディングできますが、慣用的には Java です!
そこで、Java から Kotlin に切り替える際に注意すべき点がいくつかあります。
<強い>1. Java の相互運用性
Kotlin は Java と完全に相互運用可能であり、その逆も可能です。つまり、Kotlin が Java コードを呼び出すことができるということです。これにより、アプリの移行が非常に簡単になります。すでに Java で半分コーディングしていますか?とにかく Kotlin をコーディングしてください。
<強い>2.プリミティブ データ型の廃止
int を使用してどちらかを選択するときは覚えておいてください または 整数 Javaでは半日かかりますか?現在、Kotlin にはプリミティブ データ型がなくなり、代わりにすべてがオブジェクトにラップされています。
<強い>3.構文がわずかに変更されています (ただし、簡単に追いつくことができますのでご安心ください)
変数、関数、クラス宣言などのいくつかの構文がわずかに変更されていますが、Java などの OOP の経験がある場合は、そのような問題はありません。また、void キーワードとセミコロン (';') が削除されました。セミコロンを削除してくれた Kotlin に感謝します!!
Android クラスの基本的な例を紹介します:
//Inheritance and implementation is using ':' now
class BasicActivity : AppCompatActivity() {
//variables declaration is now variable name first then type
var a :Int = 10 //var is for mutable
val b :Int = 15 //val is for immutable
/*lateinit keyword must be added for initialisation of non-
primitive type without initial value in Kotlin*/
lateinit var someTextView:TextView
//Also, no more new keyword here
var gameList:List<Integer> = ArrayList()
//overriding is using keyword instead of
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_basic)
}
}
4. 型推論
Kotlin は、変数の型推論を提供することで作業を楽にします:
var a = 5 //will automatically infer this as integer
var b = "John" // will automatically infer this as String
5. ヌル安全チェック
Kotlin は、null ポインター例外を回避するために null 安全性チェックを提供しています。 null 値を返す可能性のあるすべての変数は、?
でマークされます (マークする必要があります)。 サイン。
var a:String? = null
var b:String = null //not allowed
また、Null-Pointer Exception (Java Billon Dollar Mistakes) を回避するために、null セーフティ コールも提供します。
//not allowed, a might be null
a.function()
// this will not throw null pointer, instead will continue the flow
a?.function()
//force function call, can cause NPE, use this only if 100% sure that this value will not be null
a!!.function()
6. 静的なキーワードは不要
static キーワードは、クラスとメソッドの両方で Object キーワードに置き換えられました。より具体的には、メソッドの Companion Object です。
7. 大文字小文字の変更
Switch case は when と呼ばれる新しいキーワードに変更されました。どちらがよりクリーンで柔軟に見えますか:
when (x) {
1 -> println("One")
2 -> print("Two")
else -> print("Others")
}
8. チェック例外はもうありません
Java で何らかの操作やキャストを行っていたときに、赤い警告が出て、そこに例外チェックを追加するように言われたことを覚えていますか?現在、Kotlin では削除されています。これで、IDE が例外を強制することはなくなりました!!
Kotlin での開発を開始する必要がある部分はこれですべてですが、慣用的には Java です。
今Kotlinに入るのは難しくありませんよね?現在、Kotlin は Java とそれほど変わらないようです。
Kotlin が提供する機能
ここで、Kotlin と Java の違いを確認した後、Kotlin が提供する機能と、Kotlin の方法で Kotlin をゆっくりと開始する方法も確認する必要があります。
<強い>1.柔軟性
Kotlin が好きな主な理由の 1 つは、言語の柔軟性です。あなたはOOP純粋主義者ですか?現在話題になっている関数型プログラミングを試してみたいと思っていますか? コーディングへの愛のために 神よ、Kotlinで両方を行うことができます! FP が提供するすべての機能を完全に提供しているわけではありませんが、FP をサポートするには十分です。
<強い>2.ラムダ サポート
はい、Java 8 がラムダをサポートするようになったことは知っていますが、Kotlin はこれで最初に登場し、その点で非常に優れています。確かに、Lambda 関数を使用するように移行するのは最初は難しいでしょうが、述べたように、Kotlin はその点で非常に柔軟です。さあ、あなたの電話です!
View.OnClickListener
など、一部の Android ライブラリでは Lambda サポートも有効になっています。 (Android バックグラウンドから来た場合、この方法は既におなじみだと思います):
val randomButton : Button
//using lambda function as argument
randomButton.setOnClickListener{v -> doRandomStuff(v) }
<強い>3.データ クラス
Kotlin は Data クラスと呼ばれる Model/Entity クラスの代替を提供しています。冗長な setter getter が不要になり、equal メソッドと toString 関数が組み込まれているため、作成する必要がありません。使い方もとても簡単です:
data class Person(
val id:String,
val name:String = "John Doe" //Default Value
)
//Initialisation block
var person = Person("id","Not John")
4. 拡張機能
Kotlin では拡張関数を使用できるため、コードが読みやすくなります。また、クラス自体を変更することなく、クラスに機能を与えることができます:
fun Int.superOperation(anotherInt:Int):Int {
val superNumber = this * anotherInt + anotherInt
return superNumber
}
//you can now call the functions
val someNumber = 5
val superNumber = someNumber.superOperation(10) //65
5. 名前付き引数とデフォルト引数
C# と同様に、Kotlin もそのメソッドの名前付きパラメーターとデフォルト パラメーターをサポートしています。各引数に値を渡す必要が完全になくなります。変更する値を選択できます。 10 回の関数呼び出しに同じ特定の値を渡す手間はもうありません!
//variable declaration
fun someOperations(var x: Int, var y:Int, var z:Int = 1){
return x+y+z
}
someOperations(1,2) //return 4
someOpeartions(y = 1, x = 1) //return 3
6. 参照の等価性
Kotlin には参照等価 ('===') も付属しており、2 つの変数が現在同じオブジェクトを参照しているかどうかをチェックします。
var a = 10
var b = 10
a == b //true
a === b //true also, primitive type object equation will only check its value
data class Person (val name: String)
val p1 = Person("John")
val p2 = Person("John")
p1 == p2 //true
p1 === p2 //false
7. スマート キャスティング
のインスタンスを使用する代わりに、Kotlin はキャストまたは型チェックに使用するためのより簡単で読みやすい構文を提供するようになりました:
//type checking
//kotlin smart cast mechanism will also automatically change the object into corresponding type if it passes the type checking
if (shape is Circle) {
println(“it’s a Circle”)
shape.radius //automatically be casted as Circle
} else if (shapeObject is Square) {
println(“it’s a Square”)
} else if (shapeObject is Rectangle) {
print(“it’s a Rectangle”)
}
Kotlin には as
もあります 明示的なキャストを有効にするキーワード:
//It's considered unsafe since it behaves simillarly like static casting
var anotherShape = shape as Circle
//This can be used instead for safe casting
var safeShape = shape as? Circle
8. コルーチン
非同期呼び出しは、Java では常に面倒でした。スレッドを作成すると、コードスペースが非常に多くなり、コードが読めなくなります。コルーチンは、従来のスレッド操作を置き換えるために作成され、クリーンで堅牢なコードを提供します:
import kotlinx.coroutines.*
fun main() {
// launch a new coroutine in background and continue
GlobalScope.launch {
// non-blocking delay for 1 second (default time unit is ms)
delay(1000L)
// print after delay
println("World!")
}
// main thread continues while coroutine is delayed
println("Hello,")
// block main thread for 2 seconds to keep JVM alive
Thread.sleep(2000L)
}
コルーチンは、ジョブの参加、チャネル、共有コンテキスト、親などのより複雑な操作もサポートしています。詳細とその他の使用法については、こちらをご覧ください。
まとめ
まとめると、 Kotlin の使用を開始するのは非常に簡単です。Kotlin のコーディングは、Java のコーディングと非常によく似ています。 また、Kotlin には、Java を使用するよりも優位に立つことができるいくつかの機能が用意されています。
確かに、現時点では Java は引き続き強力です。しかし、何か新しいことを学び始めることは決して間違ったことではありません。私たちはプログラマーとして、生涯学習を受け入れる必要があり、決して学習を止めてはなりません。 Kotlin の最も優れた点は、Java からの移行がいかに簡単かということです。
読んでくれてありがとう。楽しんでいただければ幸いです。 Kotlin の探索を頑張ってください。また次回お会いしましょう。
-
Kotlin Android アニメーションにアクセスできるようにする方法
史上初の Android コントリビューションの例を調査したとき、Kotlin で記述されたアニメーションの例はほとんどありませんでした。ネイティブ アニメーション内のアクセシビリティに関する考慮事項のコード例もほとんどありませんでした。 では、行きましょう! Kotlin でネイティブの「展開」アニメーションを作成する方法を見て、TalkBack や拡大テキストがオンになっている人を支援する方法について話しましょう。すべてのコードは、このサンプル リポジトリで利用でき、アニメーション ビューを含む単一のアクティビティを作成します。これが基づいているコードは、Calum Turner と共同
-
Android デバイスを保護する 8 つの方法
はい、Android はオープン ソースのオペレーティング システムであり、脆弱性が発生しやすいと聞いたことがあります。それでも、最も好まれ愛されているオペレーティング システムの 1 つです。 Google は、Android 7 のセキュリティ対策を改善するためにいくつかの努力をしてきました。古いバージョンには、これらのセキュリティ機能がありませんでした。小さな違反でも、古いバージョンのデバイスに影響を与える可能性があります。 Android 5 以前のバージョンで実行されているデバイスは、感染の脅威を軽減するために、適切なセキュリティ対策を特に探す必要があります。 これらのバージョンは、