diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml
index a69b05d416a3837a58b41b03a49e0722c8bb0db0..9fdea7e63e11bad24497deecd92148f3a7d21718 100644
--- a/android/.idea/misc.xml
+++ b/android/.idea/misc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8 (1)" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8 (1)" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 2334d74ebdb0b1c3e44455a580969cb62d299557..451b93955ea8ee0de9da610ffe0dd59f04e0dbbc 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -31,6 +31,8 @@ dependencies {
     implementation 'com.google.firebase:firebase-database:16.0.6'
     implementation 'com.github.bumptech.glide:glide:4.9.0'
     annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
+    implementation 'de.hdodenhof:circleimageview:3.0.0'
+    implementation 'com.android.support:cardview-v7:28.0.0'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/android/app/src/main/java/com/chatman/MainActivity.java b/android/app/src/main/java/com/chatman/MainActivity.java
index 7be16d3a99d7489db25431c0c21886fcfbad7977..ec7c46dda222f78e476eae23c3a084df85df4983 100644
--- a/android/app/src/main/java/com/chatman/MainActivity.java
+++ b/android/app/src/main/java/com/chatman/MainActivity.java
@@ -1,10 +1,13 @@
 package com.chatman;
 
+import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.support.design.widget.FloatingActionButton;
 import android.support.design.widget.Snackbar;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.support.design.widget.NavigationView;
 import android.support.v4.view.GravityCompat;
@@ -15,10 +18,20 @@ import android.support.v7.widget.Toolbar;
 import android.view.Menu;
 import android.view.MenuItem;
 
+import com.chatman.adapter.ChatListAdapter;
 import com.chatman.helper.PreferencesHelper;
+import com.chatman.model.ChatList;
 
-public class MainActivity extends AppCompatActivity
-        implements NavigationView.OnNavigationItemSelectedListener {
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
+
+    private RecyclerView recycler;
+    private ChatListAdapter adapter;
+    private List<ChatList> chatLists;
+    private Context context;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -26,15 +39,18 @@ public class MainActivity extends AppCompatActivity
         setContentView(R.layout.activity_main);
         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);
+        context = this;
+
+        // Recycler View
+        recycler = findViewById(R.id.chat_list_rv);
+        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
+        linearLayoutManager.setReverseLayout(true);
+        linearLayoutManager.setStackFromEnd(true);
+        recycler.setLayoutManager(linearLayoutManager);
+        getChatLists();
+        adapter = new ChatListAdapter(chatLists);
+        recycler.setAdapter(adapter);
 
-        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
-        fab.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
-                        .setAction("Action", null).show();
-            }
-        });
 
         DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
         ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
@@ -52,7 +68,6 @@ public class MainActivity extends AppCompatActivity
         if (drawer.isDrawerOpen(GravityCompat.START)) {
             drawer.closeDrawer(GravityCompat.START);
         } else {
-//            super.onBackPressed();
             this.moveTaskToBack(true);
         }
     }
@@ -100,4 +115,70 @@ public class MainActivity extends AppCompatActivity
         drawer.closeDrawer(GravityCompat.START);
         return true;
     }
+
+    // Todo: Ganti data dummmy jadi data asli ngambil dari database
+    private List<ChatList> getChatLists() {
+        chatLists = new ArrayList<>();
+        chatLists.add(new ChatList(
+                R.drawable.priagung,
+                "Priagung Satyagama",
+                "Woi sini ke sekre 2 temani diriku yang kesepian"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.rama,
+                "Yusuf Rahmat Pratama",
+                "Eh, gmn gmn?"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.priagung,
+                "Priagung Satyagama",
+                "Woi sini ke sekre 2 temani diriku yang kesepian"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.rama,
+                "Yusuf Rahmat Pratama",
+                "Eh, gmn gmn?"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.priagung,
+                "Priagung Satyagama",
+                "Woi sini ke sekre 2 temani diriku yang kesepian"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.rama,
+                "Yusuf Rahmat Pratama",
+                "Eh, gmn gmn?"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.priagung,
+                "Priagung Satyagama",
+                "Woi sini ke sekre 2 temani diriku yang kesepian"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.rama,
+                "Yusuf Rahmat Pratama",
+                "Eh, gmn gmn?"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.priagung,
+                "Priagung Satyagama",
+                "Woi sini ke sekre 2 temani diriku yang kesepian"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.rama,
+                "Yusuf Rahmat Pratama",
+                "Eh, gmn gmn?"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.priagung,
+                "Priagung Satyagama",
+                "Woi sini ke sekre 2 temani diriku yang kesepian"
+        ));
+        chatLists.add(new ChatList(
+                R.drawable.rama,
+                "Yusuf Rahmat Pratama",
+                "Eh, gmn gmn?"
+        ));
+        return chatLists;
+    }
 }
diff --git a/android/app/src/main/java/com/chatman/adapter/ChatListAdapter.java b/android/app/src/main/java/com/chatman/adapter/ChatListAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..8ca6dd433061060c4fad284519eb65ffd1d33b1a
--- /dev/null
+++ b/android/app/src/main/java/com/chatman/adapter/ChatListAdapter.java
@@ -0,0 +1,77 @@
+package com.chatman.adapter;
+
+
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+
+import com.bumptech.glide.Glide;
+import com.chatman.R;
+import com.chatman.model.ChatList;
+
+import org.w3c.dom.Text;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class ChatListAdapter extends RecyclerView.Adapter<ChatListAdapter.ChatListHolder> {
+
+    private List<ChatList> items = new ArrayList<>();
+    private int itemLayout = R.layout.item_chat_list;
+
+    public ChatListAdapter(List<ChatList> items) {
+        this.items = items;
+    }
+
+    @Override
+    public ChatListHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        return new ChatListHolder(LayoutInflater.from(parent.getContext()).inflate(itemLayout, parent, false));
+    }
+
+    @Override
+    public void onBindViewHolder(ChatListHolder holder, int position) {
+        holder.bind(items.get(position));
+    }
+
+    public void addItems(List<ChatList> items) {
+        this.items.addAll(items);
+        notifyDataSetChanged();
+    }
+
+    @Override
+    public int getItemCount() {
+        if (items == null) {
+            return 0;
+        }
+        return items.size();
+    }
+
+    public class ChatListHolder extends RecyclerView.ViewHolder {
+
+        private TextView chatListName;
+        private TextView chatListLastMessage;
+        private ImageView chatListImage;
+
+        public ChatListHolder(View itemView) {
+            super(itemView);
+            bindView();
+        }
+
+        private void bindView() {
+            chatListImage = itemView.findViewById(R.id.chat_list_avatar);
+            chatListLastMessage = itemView.findViewById(R.id.chat_list_last_message);
+            chatListName = itemView.findViewById(R.id.chat_list_name);
+        }
+
+        public void bind(ChatList item) {
+            Glide.with(itemView).load(item.getAvatarResource()).into(chatListImage);
+            chatListLastMessage.setText(item.getLastMessage());
+            chatListName.setText(item.getName());
+        }
+    }
+}
\ No newline at end of file
diff --git a/android/app/src/main/java/com/chatman/model/ChatList.java b/android/app/src/main/java/com/chatman/model/ChatList.java
new file mode 100644
index 0000000000000000000000000000000000000000..49536ab97e576853276143a20bc7cba9cfdc14ba
--- /dev/null
+++ b/android/app/src/main/java/com/chatman/model/ChatList.java
@@ -0,0 +1,39 @@
+package com.chatman.model;
+
+public class ChatList {
+    private int avatarResource;
+    private String name;
+    private String lastMessage;
+    // Todo : tambahin atribut KEY atau apalah supaya ntar waktu ditekan, ke fragmentnya bisa dipass KEY itu terus data di dalam fragmentnya diambil berdasarkan KEY tersebut
+
+
+    public ChatList(int avatarResource, String name, String lastMessage) {
+        this.avatarResource = avatarResource;
+        this.name = name;
+        this.lastMessage = lastMessage;
+    }
+
+    public int getAvatarResource() {
+        return avatarResource;
+    }
+
+    public void setAvatarResource(int avatarResource) {
+        this.avatarResource = avatarResource;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getLastMessage() {
+        return lastMessage;
+    }
+
+    public void setLastMessage(String lastMessage) {
+        this.lastMessage = lastMessage;
+    }
+}
diff --git a/android/app/src/main/res/drawable/priagung.jpeg b/android/app/src/main/res/drawable/priagung.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..dabc67b9098ad90ef7972465273f191fd9461317
Binary files /dev/null and b/android/app/src/main/res/drawable/priagung.jpeg differ
diff --git a/android/app/src/main/res/drawable/rama.jpg b/android/app/src/main/res/drawable/rama.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5afaa00749e4b171e62c9467d33a223bbfa15606
Binary files /dev/null and b/android/app/src/main/res/drawable/rama.jpg differ
diff --git a/android/app/src/main/res/layout/app_bar_main.xml b/android/app/src/main/res/layout/app_bar_main.xml
index eed4d8928de1d60a4fe926c113a4625380575f56..e73eece92bb515ae95b17297efddade946d6a4d0 100644
--- a/android/app/src/main/res/layout/app_bar_main.xml
+++ b/android/app/src/main/res/layout/app_bar_main.xml
@@ -9,7 +9,8 @@
     <android.support.design.widget.AppBarLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:theme="@style/AppTheme.AppBarOverlay">
+        android:theme="@style/AppTheme.AppBarOverlay"
+        android:elevation="10dp">
 
         <android.support.v7.widget.Toolbar
             android:id="@+id/toolbar"
@@ -22,12 +23,4 @@
 
     <include layout="@layout/content_main" />
 
-    <android.support.design.widget.FloatingActionButton
-        android:id="@+id/fab"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom|end"
-        android:layout_margin="@dimen/fab_margin"
-        app:srcCompat="@android:drawable/ic_dialog_email" />
-
 </android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/android/app/src/main/res/layout/content_main.xml b/android/app/src/main/res/layout/content_main.xml
index 9103c1ef27de70d51f30de7563bd203a13681e9a..9f85354e50b85d050ed94cbd1975afd6816438d3 100644
--- a/android/app/src/main/res/layout/content_main.xml
+++ b/android/app/src/main/res/layout/content_main.xml
@@ -8,13 +8,15 @@
     tools:context=".MainActivity"
     tools:showIn="@layout/app_bar_main">
 
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="Hello World!"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/chat_list_rv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent">
+
+    </android.support.v7.widget.RecyclerView>
 
 </android.support.constraint.ConstraintLayout>
\ No newline at end of file
diff --git a/android/app/src/main/res/layout/item_chat_list.xml b/android/app/src/main/res/layout/item_chat_list.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f314d555a8d57ddf9b04e69d6a2768448d291bb4
--- /dev/null
+++ b/android/app/src/main/res/layout/item_chat_list.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:background="?attr/selectableItemBackground"
+    android:clickable="true"
+    android:focusable="true"
+    android:padding="@dimen/activity_horizontal_margin">
+
+    <de.hdodenhof.circleimageview.CircleImageView
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:id="@+id/chat_list_avatar"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_centerVertical="true"
+        android:layout_marginEnd="@dimen/activity_horizontal_margin"
+        app:civ_border_width="0dp"
+        app:civ_border_color="#FF000000"/>
+
+    <TextView
+        android:id="@+id/chat_list_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_toEndOf="@id/chat_list_avatar"
+        android:text="@string/lorem_ipsum"
+        android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+        android:textColor="#212121"
+        android:lines="1"
+        android:scrollHorizontally="true"
+        android:ellipsize="end"/>
+
+    <TextView
+        android:id="@+id/chat_list_last_message"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/chat_list_name"
+        android:layout_marginTop="8dp"
+        android:layout_toEndOf="@id/chat_list_avatar"
+        android:text="@string/lorem_ipsum"
+        android:textAppearance="@style/TextAppearance.AppCompat.Small"
+        android:textColor="#727272"
+        android:lines="1"
+        android:scrollHorizontally="true"
+        android:ellipsize="end"/>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index 74ef203a5581fe207ffa92847ddd2a518cf121ea..d8880fcae6738ca8bb84fddbcc5586783611a725 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -7,6 +7,9 @@
     <string name="nav_header_desc">Navigation header</string>
     <string name="action_settings">Settings</string>
 
+    <string name="lorem_ipsum">Lorem ipsum dolor sit amet, mei duis legimus accusamus ea. Et mei ceteros inimicus. Graeco facilis an eos, doming sensibus duo ad. Omnium recteque duo at, at ius magna persequeris. Sit consequat rationibus ea, pro id admodum volumus tibique, nam diam graecis petentium ad. Ex fugit tantas consetetur eum, vel an legendos persecuti persequeris, aliquid voluptatibus ex eam.</string>
+
+
     <!--Auth Strings-->
     <string name="name">Nama</string>
     <string name="email">Email</string>
diff --git a/photoshop_assets/priagung.jpeg b/photoshop_assets/priagung.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..dabc67b9098ad90ef7972465273f191fd9461317
Binary files /dev/null and b/photoshop_assets/priagung.jpeg differ
diff --git a/photoshop_assets/rama.jpg b/photoshop_assets/rama.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5afaa00749e4b171e62c9467d33a223bbfa15606
Binary files /dev/null and b/photoshop_assets/rama.jpg differ