Wprowadzenie do Kotlina na Androida
Opublikowany: 2018-06-28W świecie Androida na pewno nie ma nikogo, kto nie słyszał o Javie. Potężny język programowania, który może tworzyć aplikacje działające w prawie każdym systemie operacyjnym na dowolnym sprzęcie. Jednak z biegiem lat wprowadzono wiele nowych języków programowania, które działają również na wirtualnej maszynie Java. Jednym z takich języków, który jest częścią tego, co robi Google, aby tworzenie aplikacji na Androida było „lepsze”, jest Kotlin. Google ogłosiło szerokie wsparcie dla Kotlina na Google I/O 2017.
Na pewno wiemy, że Kotlin jest dla twórców aplikacji i że oni to uwielbiają! Ale dlaczego to kochają? Co sprawia, że Google ponownie podkreśla, jak ważny jest Kotlin dla tworzenia aplikacji w 2018 roku? Co to właściwie jest?
Kotlin, statycznie typowany język programowania, który działa na JVM, jest językiem programowania i programowania od JetBrains. Kotlin to nowoczesny, ekspresyjny, bezpieczny i potężny język, który może współpracować z naszymi istniejącymi językami Androida. Niektóre inne funkcje obejmują:
1. Kotlin jest w pełni obsługiwany przez Android Studio 3.0 i nowsze.
2. Kotlin to język oparty na JVM stworzony przez „JetBrains”, zespół stojący za „Intellij”.
3. Intellij jest bazą dla Android Studio.
4. Kotlin to „język zorientowany obiektowo”
Dlaczego Kotlin?
Lekki :
Biblioteka Kotlin jest dość mała w porównaniu z innymi. Jest to ważne, ponieważ ograniczenia metod Androida obejmujące Proguard i Multidexing zawsze stanowią problem do rozwiązania. Wszystkie te rozwiązania dodadzą złożoności, która może zająć czas podczas debugowania. Kotlin dodaje mniej niż 7000 metod.
Wysoka interoperacyjność:
Kotlin dobrze współpracuje z bibliotekami Java. Zespół Kotlina chce dalej rozwijać obecne projekty pisane w javie bez konieczności przepisywania całego kodu. Tak więc Kotlin jest językiem niezwykle interoperacyjnym.
Zintegrowany z Android Studio:
Kotlin jest zintegrowany z Android Studio i Gradle. Instalacja Kotlina jest łatwa, ponieważ wymaga jednej wtyczki dla IDE i jednej dla Gradle. Rozpoczęcie projektu na Androida za pomocą Kotlina nie będzie trudne.
Nigdy więcej wyjątków NullPointerException :
NullPointerException jest jedną z najczęstszych przyczyn awarii aplikacji w systemie Android. Aby naprawić ten wyjątek i chronić swój kod, używanie sprawdzania wartości null za każdym razem jest czasochłonnym zadaniem. Ale w Kotlinie jest to wyjątek, ponieważ zerowe bezpieczeństwo jest już zintegrowane.
Wydajność :
Aplikacja Kotlin działa tak szybko, jak na Javie. Dzięki wsparciu Kotlina dla funkcji inline, przy użyciu „lambdy” aplikacje często działają jeszcze szybciej.
W Android Studio 3.0 możesz wybrać tworzenie aktywności w Kotlinie. Najłatwiejszym sposobem na rozpoczęcie korzystania z kotlin jest automatyczna konwersja Javy na Kotlin. Możesz napisać w Javie, a następnie skopiować i wkleić kod java do pliku kotlin, a on zasugeruje konwersję.
Kolejna prosta metoda konwersji pliku Java na Kotlin:
Android Studio Menu >> Kod >> Konwertuj plik Java na plik Kotlin
Konwersja będzie tego typu:
Jawa:
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) } }
Po skonfigurowaniu Kotlina zaktualizuj plik build.gradle dla aplikacji i zaimplementuj poniższy rysunek:


Na koniec zsynchronizuj projekt. Możesz kliknąć „Synchronizuj teraz”. Działa to dokładnie tak samo jak w Javie. Możesz wydać aplikację i podpisać ją podobnie do tego, co robimy dla aplikacji na Androida w Javie.
Wreszcie kompilator Kotlin tworzy „kod bajtowy” , bez różnicy w wyglądzie i działaniu aplikacji w systemie Android.
Teraz daj nam znać nieco więcej o składni Kotlina
- Definiowanie pakietu:
package com.example Import java.util.* - Definiowanie zmiennych:
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 - Strunowy:
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
Różnica między „Val” i „Var”
Val : jest słowem kluczowym, którego pierwsze jest niezmienne lub tylko do odczytu (jego wartości nie można zmienić)
Var : jest słowem kluczowym, którego typ jest wywnioskowany przez kompilator, przypisanie innej wartości innego typu nie zadziała. Innymi słowy, wartość zmiennej może się zmienić, ale jej typ nie.
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"
Przykłady:
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
Odwołujemy się do zmiennej przez użycie znaku $ przed nazwą zmiennej. Zauważ, że jeśli zmienna nie jest poprawna lub nie istnieje, kod nie zostanie skompilowany. Możesz wywoływać metody bezpośrednio z interpolowanego String; musisz dodać nawiasy klamrowe ${}, aby go zawinąć.
val name = "Raj" val message = "The first letter in my name is ${name.first()}" // The first letter in my name is R
Definiowanie funkcji:
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
Funkcja z treścią wyrażenia i wywnioskowanym typem zwracanym:
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
Dla pętli:
fun main(args: Array<String>) { val items = listOf("apple", "banana", "Mango") for (item in items) { println(item) } } // apple banana Mango
Korzystanie z kolekcji:
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

Jak stworzyć instancję klasy:
val customer = Customer() // No New Keyword
Konstruktorzy:
Klasa w Kotlinie może mieć konstruktor główny i jeden lub więcej konstruktorów pomocniczych. Konstruktor główny jest częścią nagłówka klasy: następuje po nazwie klasy
class Person constructor(firstName: String) { }
Deklarowanie właściwości:
Klasa Kotlin posiada właściwości. Można je zadeklarować jako zmienne za pomocą słowa kluczowego „var” lub tylko do odczytu za pomocą słowa kluczowego „val”.
Na przykład:
class Address { var name: String = “” var street: String = “” var city: String = “” }
Interfejs :
Interfejsy w Kotlinie są bardzo podobne do Javy 8. Mogą zawierać deklaracje metod abstrakcyjnych, a także implementacje metod.
Interfejs jest definiowany za pomocą słowa kluczowego interface
interface MyInterface { fun bar() fun foo() { // optional body } }
Implementacja interfejsów:
class Child : MyInterface { override fun bar() { // body } }
Klasa lub obiekt może implementować jeden lub więcej interfejsów.



