AndroidはKotlinのサポートを発表

7285 ワード

今回Google I/O大会はandroidがKotlinを開発言語としてサポートしていることを発表しました.Kotlinはデザインのすばらしい言語で、Androidの開発がもっと速くて面白いと信じています.すでに一部の主要な開発者がアプリケーション開発として使用しています.KotlinもJavaとよく同じ時間に使用することができ、2つの言語の間で簡単に相互操作することができます.
KotlinプラグインはAndroid Studio 3.0にバインドされているので、Android Studio 3.0のプレビュー版をダウンロードして使用することができます.KotlinはJetBrains社が開発したもので、Intellijも同社が開発したものなので、Kotlinのサポートはおかしくありません.
IDEAのサポートに加え、GoogleはJetBrainsと協力し、Kotlinを非営利の基礎として推進すると発表した.
say "Hello"to Kotlin
Kotlinはjavaに似ています
package helloworld

fun main(args:String){
  println("Hello World!");
}

一見すると、カッコ、クラス、バッグ、方法が見えますが、勉強が進むにつれて.たとえば、getterやsetterなどのテンプレートクラスコードを実装する理由や、equals、hashCode、toStringを上書きする必要がある理由を聞くかもしれません.以下はjava言語の典型的な例です.
public class Customer {
   private String name;
   private String email;
   private String company;

   public Customer(String name) {
       this(name, "", "");
   }

   public Customer(String name, String email) {
       this(name, email, "");

   }

   public Customer(String name, String email, String company) {
       this.name = name;
       this.email = email;
       this.company = company;
   }

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public String getEmail() {
       return email;
   }

   public void setEmail(String email) {
       this.email = email;
   }

   public String getCompany() {
       return company;
   }

   public void setCompany(String company) {
       this.company = company;
   }

   @Override
   public boolean equals(Object o) {
       if (this == o) return true;
       if (o == null || getClass() != o.getClass()) return false;

       Customer customer = (Customer) o;

       if (name != null ? !name.equals(customer.name) : customer.name != null) return false;
       if (email != null ? !email.equals(customer.email) : customer.email != null) return false;
       return company != null ? company.equals(customer.company) : customer.company == null;
   }

   @Override
   public int hashCode() {
       int result = name != null ? name.hashCode() : 0;
       result = 31 * result + (email != null ? email.hashCode() : 0);
       result = 31 * result + (company != null ? company.hashCode() : 0);
       return result;
   }

   @Override
   public String toString() {
       return "Customer{" +
               "name='" + name + '\'' +
               ", email='" + email + '\'' +
               ", company='" + company + '\'' +
               '}';
   }
}

Kotlinを使用すると、それらのコードを書く必要はありません.次の行のコードは上のクラス全体と同じです.
data class Customer(var name:String,var email:String="",var company:String="")

Kotlin履歴
Kotlinの登場はしばらくの間、2011年に発表され、最初のプレビュー版は2012年に発表され、Kotlin 1.0版は2016年に発表されたが、JetBrainsもKotlinの安定性と互換性の維持に力を入れてきた.あなたはhttps://kotlinlang.org優れた学習資料と参考資料を見つけ、AndroidチームはKotlin KoansチュートリアルがKotlinクリップの作成を開始するための迅速な学習方法として非常に有用であることを発見しました.これらのチュートリアルの範囲は簡単から複雑です.
なぜKotlinなのか
なぜAndroidチームがKotlinをサポートすることにしたのか、最も重要なのはandroidチームがKotlinを偉大な言語だと考えているためで、Androidアプリケーションの開発をより楽にし、より楽しくすることができます.
Kotlinは既存のAndroidエコシステムの絶好のパートナーでもあり、Java言語と100%互換性があり、必要に応じてKotlinを既存のコードライブラリに追加し、同じプロジェクトで2つの言語を自由に使用することができます.
結局、多くの開発者はKotlinが言語になるのが好きだと言っています.Android公式チームの多くの開発者もそう言っています.すでにAndroidに熱中しているKotlin開発コミュニティがあり、Androidチームは公開活動でKotlinに疑問を提起し、フィードバックを得ています.
クイックプレビュー
Kotlinを理解するために、ここには高速だが不完全なKotlinの旅があります.
Nullable
Kotlinコンパイラは、表示可能な宣言が空の値である変数を強制します.したがって、実行中に空のポインタ異常は発生しません.
var neverNull: String="something"
var mightBeNull:String?=null //?     null
if(neverNull.length>0){ 
}
if(mightBeNull.length>0){ //          
}

名前付きパラメータとデフォルトのパラメータ
fun orderPizza(size: Size, pepperoni: Boolean, mushrooms: Boolean,
               ham: Boolean, pineapple: Boolean, pickles: Boolean,
               sausage: Boolean, peppers: Boolean, onion: Boolean)
{
    ...
}

// Wait… did I just order pickles on my pizza?
// Why do we even have that option?
orderPizza(Size.LARGE, true, false, false, false, true,
           false, true, false)

デフォルトの設定
fun orderPizza(size: Size,
               pepperoni: Boolean = false,
               mushrooms: Boolean = false,
               ham: Boolean = false,
               pineapple: Boolean = false,
               pickles: Boolean = false,
               sausage: Boolean = false,
               peppers: Boolean = false,
               onion: Boolean = false)
{
    ...
}

orderPizza(Size.LARGE, ham = true, mushrooms = true)

このように書くと、リロードする関数の数が減少します.
when式
when{
  password.equals("password") -> println("Insecure password")
  password.length < 4 -> println("Too short")
  else -> {
    println("Secure password")
  }
}

インテリジェント変換
あるオブジェクトを別のオブジェクトに変換する必要がある場合はinstance ofを使用してテストする必要がありますが、Kotlinはそうする必要はありません.
if(obj is String){
  //    obj   String
  if(obj.length>0){
    ...
  }
}

Kotlin中
when (obj){
  is Cat -> obj.meow(...)
  is Dog -> obj.woof(...)
  else -> {
  }
}

拡張メソッド
Kotlinは、新しいメソッドを既存のタイプに配置します.StringクラスにtoPigLainメソッドを追加したい場合は、新しいヘルプクラスを作成することなく、自分で追加できます.
//"String."             String 
fun String.toPigLatin():String{
  ...
}
val plainOldString:String = "some text"

println("some text".toPigLatin())

かいぞうわりあて
簡単なクラスを簡単に定義できることを前に見ました.
data class Order(val itemCode:String,val quantity:Int,val price:Float)

fun getOrder(...):Order{
    return Order(itemCode,quantity,price)
}

すべての方法を得るには、次の文でOrderオブジェクトを使用して3つのプロパティを抽出し、3つの変数に割り当てることができます.これらの変数はKotlinコンパイラによって提供されています.ここでは正しいタイプをお勧めします.
val(what,howMany,howMuch) = getOrder(...)

Lambdas式
KotlinはLambdaに対して非常に簡潔な文法を持ち、強力な変形例を簡単に表現することができます.これはlambdaを使用して集合中のすべての内容がStringであることをテストする簡単な例です.
fun allString(collection:Collection) = collection.all{it is String}

fun generatePage(withEmphasis : Boolean) {
    val result =
        html {
            head {
                title { +"Kotlin Builders" }
            }
            body {
                h1 { +"Kotlin Builders" }
                p {
                    +"This is "
                    if (withEmphasis) b { +"really " }
                    +"interesting"
                    a(href = "https://goo.gl/rHwJio") { +"More here" }
                }
            }
        }
    println(result)
}

はじめに
Kotlinを使用して入門したい場合は、このコードを直接使用して、appでKotlinを使用してみてください.次の手順に従います.
  • Android Studio 3.0
  • をダウンロード
  • 既存javaファイル
  • を開く
  • Code>convert java file to kotlin file IDEを呼び出すと、Kotlin依存項目が追加され、javaコードがkoelinコードに変換されます.

  • 参考記事
    原文住所:https://android-developers.googleblog.com/2017/05/android-announces-support-for-kotlin.html
    Kotlin入門:https://developer.android.com/kotlin/get-started.html
    Kotlin学習資料:https://developer.android.com/kotlin/resources.html