Monday, August 28, 2017

Membuat Aplikasi Ramalan Cuaca Menggunakan Kotlin 2017

Hallo Kuy, Masih sehat dengan Codingganya? semoga tetap sehat dan enggak muntah-muntah dalam belajar pemmogramman, pada artikel kali ini saya akan membahas tentang Kotlin, materi ini saya dapatkan waktu mengikuti workshop di kantor Go-jek, materi ini diberikan oleh salah satu Depelover Google Expert Indonesia yaitu Sidiq Permana dan di workshop juga ada Mobile Engginernya Gojek, teman-teman engginer java dan lain lain yang ingin berhijrah ke kotlin, kenapa sih kotlin? iya, Google kedepan akan menjadikan bahasa kotlin itu menjadi bahasa utama untuk android, itu nanti ya.

motivasi belajar proggraming

Pada artikel yang akan saya share yaitu bukan project buatan saya, akan tetapi projectnya Sidiq permana, yang mana dalam projectnya mengimplementasikan konsep MVP pada projectnya. Apa itu MVP ? baca disini lebih lengkap.

untuk anda yang pemula atau yang ingin hijrah ke kotlin bisa belajar di link bawah ini

dasar kotlin android untuk membuat perhitungan luas segitiga 

untuk menampilkan data ke listview dan recyclerview 

belajar crud kotlin menggunakan retrofit 2, MVP dan Api Service Lumen Framework


untuk tampilan aplikasinya seperti pada gambar berikut ini  :



Pada Projectnya dia menggunakan library picasso untuk gambar , RxJava dan RxAndroid, Retrofit2, dan Dagger 2.

lebih lengkap materi RxJava baca disini
Materi Retrofit2 baca disini
untuk library anko baca di sini

untuk official page group kotlin indobisa kunjungi disini
 untuk dokumentasi mater kotlin bisa ke webnya lansung disini



berikut implementasi depenciesnya.
// VIEW COMPONENT
implementation "org.jetbrains.anko:anko-common:$anko_version"
implementation 'com.android.support:recyclerview-v7:26.0.1'

// RxJava & RxAndroid
implementation 'io.reactivex:rxjava:1.1.6'
implementation 'io.reactivex:rxandroid:1.2.1'

// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

// Dagger 2
implementation 'com.google.dagger:dagger:2.11'
kapt 'com.google.dagger:dagger-compiler:2.11'
provided 'org.glassfish:javax.annotation:10.0-b28'

// PICASSO
implementation 'com.squareup.picasso:picasso:2.5.2'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.0'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.0'




untuk file layout activity_main.xml seperti berikut ini :
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context="com.nbs.weatherforecast.view.main.MainActivity">



    <android.support.v7.widget.RecyclerView

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:id="@+id/rvWeatherResult"

        android:layout_centerVertical="true"

        android:layout_centerHorizontal="true"/>



    <ProgressBar

        android:layout_width="48dp"

        android:layout_height="48dp"

        android:id="@+id/progresbar"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"/>



</RelativeLayout>




utuk xml list itemnya seperti berikut ini :
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:orientation="vertical" android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:padding="16dp">

    <ImageView

        android:layout_width="48dp"

        android:layout_height="48dp"

        android:layout_gravity="center_vertical"

        android:id="@+id/imgWeather"

        android:layout_marginRight="16dp"/>

    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="vertical"

        android:layout_toRightOf="@id/imgWeather">

        <TextView

            android:id="@+id/tvDate"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            tools:text="Date"

            android:layout_marginBottom="4dp"

            android:fontFamily="sans-serif-condensed"/>

        <TextView

            android:id="@+id/tvWeatherName"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            tools:text="Weather Name"

            android:fontFamily="sans-serif-condensed"/>

        <TextView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            tools:text="Day"

            android:id="@+id/tvTempMinMax"

            android:fontFamily="sans-serif-condensed"/>

    </LinearLayout>

</RelativeLayout>





lebih lengkap bisa pelajari projectnya disini github Sidiq permana

untuk anda yang baru belajar proggraming, saya sarankan baca-baca halaman ini.


NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
 

Delivered by FeedBurner