[屋根を置く]さっぱりした!Javaに別れを告げる.kotlinを使用して完全なクライアントを開発します

5721 ワード

JavaからKotlinに移動するには、数日しかかかりません.
本編はkotlinがAndroidシリーズを開発したチュートリアルの最後の編です.前のいくつかの編ではkotlinの基本文法、javaとの違いなどを紹介しました.この記事では、前述の知識点を用いて、Gank.ioワークショップApp(Gankが提供したApiに感謝)をゼロから開発します.AppはKotlin言語開発を完全に使用し、MVPモデルに基づいて、次の主流のオープンソースフレームワークを使用しています.
  • Kotlin
  • Dagger2
  • Rxjava
  • DataBinding
  • Retrofit
  • Okhttp3
  • DeepLinkDispatch
  • Gson
  • Glide

  • 以上の主流ライブラリに加えて、私のナビゲーションバーのスライド隠しライブラリを使用しました.
  • ByeBurger

  • このプロジェクトの住所はGankClient-Kotlinで、Kotlinを勉強したいなら、このプロジェクトはあなたに多くの助けを与えるはずです.
    インタフェーススタイルはMDスタイルを採用しており、多くのコントロールはdesignパッケージの内容です.主にクライアントが持つべきコンテンツ、インタフェースのインタラクション、情報の展示、データの取得などを実現した.
    筆者はすでにKotlinをプロジェクト開発の2ヶ月に運用して、期間はどうしてもいくつかの穴があって、しかし穴の外で、彼が私に持ってきた快感で、それからです.Kotlinでコードを書くのはJavaより完全に楽しみです.前の文章を読んでいない学生もいるので、ここではKotlinを簡単に紹介します.
    KotlinはまたJVMベースの言語で、JetBrainsによって開発されています(あなたが使っているAndroid Studioは彼の家です).Javaの基礎があれば、彼はとても簡単です.
    シームレスにjavaを呼び出す(すべてのjavaクラス、javaライブラリは何も処理しない互換性)、ワンタッチでjavaをKotlinに変換する、空のポインタが安全であるなどの特性に加えて、Javaキックアスよりも多くの特性があります.次は栗を挙げます.
    1.コード量比較(Kotlinを用いたAndroid開発(一)参照):
    Java
    
        TextView textView = findViewById(R.id.textView);
    
        textView.setText("Hello World");
    

    Kotlin
    
        textView.text = "hello kotlin"
    

    以下は拡張関数の展示であり,Kotlinを用いたAndroidの開発(二)を参照する.
    拡張関数は簡単に言えば,あるクラスを動的拡張を継承することなくメソッドを追加するなど,たとえば次のtoastがContextクラスを拡張する.
    Java
    
        Button button = findviewbyid(R.id.button)
        button.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                Toast.makeText(this,"hello java",Toast.LENGTH_SHORT);
            }
        });
    

    Kotlin
        button.setOnClickListener {toast("hello kotlin")}
    

    POJOクラス(Java Bean対比)
    java
    public class User {
        private String name;
        private String id;
    
        public User(String name, String id) {
            this.name = name;
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
    }
    

    kotlin(驚かないで、確かにこんなに短い!!)
    
        data class User(var name: String, var id: String)
    

    くりが終わる
    上のいくつかのコードの対比を見て、みんなの心の中はすでにkotlinの特徴をよく知っていると信じています.Javaに比べて、コードは少なくとも3倍少ない.これはまったく人の心を喜ばせる.
    完全なAppクライアントの開発
    ここで、Kotlinの基本的な使い方を理解していると仮定し、このクライアントAppの構造を紹介します.
    MVP
    契約クラスContractでViewModel Presenterインタフェースを管理します(プロジェクトがMVPにうんざりしている場合は、自動的にMVPコードを生成するプラグインMVPHelperをアンリで生成します).
  • Model–ネットワーク、ローカルキャッシュなどのデータの取得に使用されるビジネスを主に処理します.
  • View–データを表示し、インタラクションを提供します.
  • Presenter–ViewとModelが相互作用する橋渡しで、両者はPresenterを通じて連絡を取り合っています.主な流れは以下の通りである:ユーザーはViewと対話し、Viewはユーザーがデータをロードする必要があることを知り、Presenterに通知し、PresenterはModelに通知し、Modelはデータを手に入れてPrsenterに逆渡し、PresenterはデータをViewに渡して展示する.古い図を1枚盗む:
  • Dagger2
    プロジェクトでは主にpresenter,model,retrofit Apiなどのクラスの注入操作を行う.ここでは詳細なDagger 2の使い方の説明をしないで、まだあまりできない学生はまず大神のチュートリアルを読むことができます.Dagger 2はKotlinでいくつかの構成が異なるので、詳細な構成はプロジェクトのソースコードを見てください.
    ApiComponent
     Component、    AppComponent、     Component  。
    
        :
    
     1.ApiModule(  okhttpClient、Retrofit、Api )
    
     2.AppModule(  context  (okhttp     ))
    

    FuckGoodsComponent
     Component ApiComponent     FuckGoodsPresenter
    
        : FuckGoodsModule(  FuckGoodsView)
    

    RandomComponent
     Component ApiComponent     RandomPresenter
    
        : RandomModule(  RandomView) 
    

    Rxjava + Retrofit + okhttp3
    主にネットワークアクセスに使用されます.これらはすべて主流のライブラリで、使用方法はjavaと同じです(もちろん文法以外)
    DeepLinkDispatch
    ルーティングに基づいてページ転送を行います.複数のモジュールが連携してジャンプする問題を解決できます.
    GankClientUriはいくつかのルーティング規則、URIなどを定義する
    GankRouter統合によるルーティング動作
    GSON
    jsonの解析操作に使用します.
    Glide
    画像のロードに使用します.
    ByeBurGer
    ナビゲーションバーおよびサスペンションボタンのスライド非表示に使用します.
    本クライアントプロジェクトのアドレス:https://github.com/githubwing/GankClient-Kotlin
    オープンソースクライアントの理由は、Kotlinをより多くの人に理解させ、Kotlinに接触させ、Kotlinを使用することを目的としており、本当に良いものは隠すことができません.さらに、Kotlinを通じて多くの志を同じくする友达と知り合って、一緒に技術の共同進歩を議論することを望んでいます.
    このプロジェクトがKotlinの勉強に役立つなら、それは最高のことです.ようこそ