Nomor 1. Apa saja library Android yang sering atau biasa anda pakai? Jelaskan kegunaannya bagi anda.
Berikut daftar library yang saya sering gunakan dalam development android
Network
- Retrofit, untuk mengambil data dari internet
- Logging-interceptor, untuk menampilkan log retrofit pada logcat
DataBase
Room, menyimpan data pada android
UI
- Glide, Untuk Menampilkan Image , saya gunakan untuk menampikan gambar. Terlebih gambar yang membutuhkan cropcircle
- SpinKit, UI loading yang lebih menarik, saya gunakan untuk menampikan loading yang lebih menarik dibandingkan menggunakan progressbar ataupun yang lainnya
- Shimmer, UI loading seperti facebook , UI saya gunakan ketika menampilkan data RecyclerviewView
- Material Design, Membuat tapilan UI componen lebih menarik. Komponen yang saya sering gunakan adalan EditText, button, text, dan juga fab
- AndroidX Navigation, Mempermudah dalam perpindahan activity dan juga mempermudah kodingan.
Library already Available in Android
- RecyclerView, Saya gunakan untuk menampilkan data yang banyak
- ViewModel, Sangat berguna untuk mempertahankan data dari fragment atau activity yang telah ter "destroy"
- LiveData, Mempermudah implementasi MVVM, saya gunakan untuk mengamati data dari Model
Library yang pernah saya gunakan, tetapi tidak terlalu sering
- Lottie, Untuk menampilkan animation di
- Fast Android Networking, Untuk mengakses internet, hanya sempat mencoba
- Picasso, Beberapa kali mencoba picasso, ketika mendapatkan masalah dengan placeholder pada Glide
- Motion Layout, Terakhir saya coba masih beta, saya gunakan untuk menampilkan animasio transistion
- RxJava, Hanya mencoba mengambil data dari retrofit dan mengembalikan ke View. Namun belum explorer kelebihan RXJava
API with Library
- Google Maps, menampilkan Map
- MapBox, menampilkan map dan banyak fitur yang free
- Firebase, untuk penyimpanan data internet aplikasi
Nomor 2. Apakah anda menggunakan prinsip clean code atau design pattern untuk project Android anda? Jelaskan penerapan clean code atau design pattern yang biasa anda gunakan dan manfaatnya untuk anda.
Untuk Saat ini saya masih menggunakan Architecture MVVM Android dan Repository Pattern. Alasan Menggunakan MVVM, dikarenakan mempermudah dalam develpoment Aplikasi. Menurut saya, membuat code yang dapat mudah dibaca adalah satu hal yang menjadi keharusan. Dengan MVVM code akan lebih mudah dibaca, mudah dimaintance, dan juga mudah untuk penambahan fitur.
Untuk Saat ini penggunakan MVVM saya juga belum dikatan sempurna dikarenakan masih membutuhkan banyak pengamalam. Tetapi untuk saat ini kebanyakan project saya sudah menggunakan MVVM dikarekan lebih mudah dibaca dibandikan sebelumnya. Untuk Clean Architecture. Saat ini masih dalam tahap belajar. Sejauh saya tahu clean artictectur dapat digabungkan dengan MVVM.
API
List api - https://dot-android-internship-test.web.app/
- Place - https://dot-android-internship-test.web.app/place.json
- Titile and sub title
- Data
1. Id, title, content,
2. Type
- Image -> images
- Multiple -> media
- Gallery - https://dot-android-internship-test.web.app/gallery.json
- caption
- Thumnail - box
- Image – rectangle
- User – https://dot-android-internship-test.web.app/user.json
- Id, username, fullname, email, phone, avatar
Demo App
- LoadingScreen
- MainActivity
- BottomNav
- BottomNav Auto Hide
- List Fragment
1. Loading
2. Appbar different font
3. Appbar autohide
4. App bar back to list fragment
5. Header
6. List
- Item
- Title
- subTitle
- Image (can multiple)
- Image Placeholder
- Multiple image can horizontal scroll
- Detail List Fragment 1. Navigation Animation 2. Appbar different font 3. Appbar back button to List Fragment 4. Still part of ListFragment 5. Slide image (seperti web)
- Gallery Fragment 1. App bar back to list fragment 2. Appbar different font and back button 3. Gridview
- Detail Gallery
1. Item
- Image
- Title 2. Appbar font 3. Appbar back button to List Fragment
- Profile Fragment 1. Photo with circle 2. Name 3. Fullname 4. Email 5. Phone number 6. imagePlaceholder when no internet
- App Support 1. Support landscape and portrait
Berikut Hasil dari Aplikasi yang saya buat dalam batas waktu 2 x 24 jam, sesuai batas yang diberikan. Dan juga sesuai tujuan dari test ini bahwa membuat aplikasi android sesuai aplikasi demo.
App Features
- List Place Screen
- Gallery Screen
- Detail Tempat Screen
- Detail Gallery Screen
- User Data Screen
- Loading Screen
Code Used
Untuk berusaha membuat aplikasi yang salam persis dengan demo App. Berikut library, code atau fitur, yang saya gunakan.
- Navigation
- Appbar Auto Hide
- Font
- Loading Screen
- Padding 10dp
- RecyclerView
- RecyclerView inside RecyclerView
- Bottom App Bar
- Bottom App Bar Auto Hide
- ProgressBar Loading
- Title text = 16 sp , bold
- Placeholder image
- Slide image
- Grid View
- Grid Auto Resize
Berikut yang saya gunakan pada bagian yang saya improve (karena saya tidak tau fitur yang diguankan Demo App)
- Retrotit
- Live Data
- ViewModel
- Repository Pattern
- MVVM
- Picasso dan Glide
Proses Development Aplikasi Tesma
Berikut proses pengembakan aplikasi tesma dalam waktu 2 x 24 Jam.
- Tahap Pertama - Analisa
- Analisa Demo App
- Analisa API
- Analisa Kebutuhan Library
- Tahap Kedua – Development phase 1
- Initialize Project
- Setup Network from App
- Can Show List Place
- Can Show Gallery
- Can Show User Data
- Can Show Detail Place
- Can Show Detail gallery
- Tahap 3 – Development Phase 2
- Polish UI All Fragment
- Add Loading Screen
- Tahap 4 – Development last Phase
- Find bug
- Fix bug
- Clean up code