Code Monkey home page Code Monkey logo

dicoding-jetpack-compose-jetshopee's Introduction

jetshopee-compose

Selamat, akhirnya Anda telah sampai di penghujung pembelajaran. Berikut beberapa hal yang sudah Anda lewati.

  • Berkenalan dengan Jetpack Compose, mengetahui alasan mempelajarinya, dan tools untuk membuatnya.
  • Memahami paradigma dan konsep dasar dari Jetpack Compose, seperti declarative programming, composable function, dan recomposition.
  • Belajar tentang macam-macam layout dan modifier untuk membangun UI di Compose. Serta, belajar juga konsep Slot based layout yang membuat UI aplikasi bersifat reusable.
  • Melihat bagaimana mengatur State pada Jetpack Compose, mengimplementasikan State Hoisting untuk membuat komponen Stateless, memahami berbagai macam Side Effect API, dan mengetahui macam-macam lokasi manajemen state.
  • Membuat aplikasi yang lebih kompleks dengan menampilkan data list yang banyak secara dinamis dan efisien menggunakan Lazy List. 
  • Mengimplementasikan navigasi antara halaman pada Jetpack Compose.
  • Memahami cara melakukan testing pada Jetpack Compose.
  • Mengetahui cara menghubungkan Jetpack Compose dengan layout XML dan sebaliknya.

Untuk bisa lulus dan mendapatkan sertifikat dari akademi ini, Anda harus mengerjakan tugas, yakni membuat aplikasi dengan tema bebas menggunakan Compose sesuai kriteria yang tertera. Anda juga bisa meniru UI aplikasi yang sudah ada di PlayStore. Tim Reviewer akan memeriksa pekerjaan Anda dan memberikan reviu pada aplikasi yang Anda buat.

Fitur yang harus ada pada aplikasi:

  1. Halaman List

    • Menampilkan data dalam format List dengan jumlah minimal 10 item yang berbeda. Gunakanlah LazyList/LazyGrid untuk menyusun datanya. 

    • Memunculkan halaman detail ketika salah satu item ditekan. 

  2. Halaman Detail

    • Menampilkan gambar dan informasi yang relevan pada halaman detail. 

    • Informasi yang relevan mencakup kesamaan informasi yang ditampilkan pada halaman utama dengan halaman detail.

      • Terdapat judul dan gambar yang sesuai dengan list

      • Terdapat informasi tambahan yang tidak sama dengan list

  3. Halaman About

    • Menampilkan foto diri, nama, dan email yang terdaftar di Dicoding.

    • Dalam mengakses halaman about, pastikan terdapat tombol yang bisa digunakan untuk mengakses halamannya. Untuk cara mengaksesnya, Anda bisa mengimplementasikan:

      • Dengan menambahkan elemen View khusus (bisa option menu, tombol, atau tab) yang mengandung contentDescription “about_page”

Selain kriteria utama, terdapat kriteria opsional yang yang dapat Anda penuhi agar mendapat nilai yang lebih tinggi.

  1. Fitur Pencarian

    • Aplikasi memiliki fitur pencarian berdasarkan kata kunci yang dimasukkan, dengan ketentuan:

      • Jika kolom pencarian tidak kosong, maka aplikasi hanya menampilkan data yang judulnya mengandung kata kunci yang dimasukkan.

      • Jika kolom pencariannya kosong, maka aplikasi menampilkan seluruh data.

    • Memanfaatkan ViewModel dalam membangun fitur catatan.

  2. Fitur Menambah & Menghapus Data

    • Aplikasi memiliki fitur untuk menambah dan menghapus data. Berikut beberapa skenario yang bisa diimplementasikan..

      • Menambah & menghapus data utama.

      • Menambah & menghapus data favorit.

      • Menambah & menghapus data keranjang.

      • Skenario sejenisnya.

    • Teknik penyimpanan cukup menggunakan fake List. Jika ingin menggunakan database asli atau API pun tidak masalah.

    • Jika data kosong, menampilkan informasi bahwa data kosong.

Berikut kerangka tampilan yang bisa Anda gunakan sebagai referensi:

dos:33f792ba12b938a7c5047aab0f3fc27520221025172956.jpeg

 

Submission Anda akan dinilai oleh reviewer dengan skala 1-5 berdasarkan dari parameter yang ada.

Anda dapat menerapkan beberapa saran di bawah ini untuk mendapatkan nilai tinggi, berikut sarannya:

  • Menerapkan tampilan aplikasi yang sesuai standar. Di mana kriterianya adalah:
    • Memiliki width, height, dan padding yang sesuai.
    • Komponen tidak saling bertumpuk.
    • Penggunaan komponen sesuai dengan fungsinya.
    • Penggunaan warna yang sesuai.
  • Menuliskan kode dengan baik sesuai best-practice:
    • Tidak membuat komponen yang tidak diperlukan.
    • Memecah UI menjadi komponen sekecil mungkin (sesuai tanggung jawabnya).
    • Menambahkan default Modifier pada setiap komponen.
    • Tidak menggunakan object sekaligus sebagai parameter, tetapi cukup yang dibutuhkan saja.
    • Menggunakan key untuk LazyList/LazyGrid.
    • Memanajemen state dengan tepat.
  • Membuat fitur pencarian.
  • Membuat fitur menambahkan & menghapus data.
  • Membuat end-to-end testing untuk memeriksa fungsional seluruh halaman, baik positif case maupun negative case.

Detail penilaian submission: 

rating-default-1 rating-dark-1

Semua ketentuan terpenuhi, tetapi terdapat indikasi plagiat yaitu dengan menggunakan project orang lain dan hanya merubah kontennya saja.


rating-default-2 rating-dark-2

Semua ketentuan terpenuhi, tetapi terdapat kekurangan pada tampilan aplikasi.


rating-default-3 rating-dark-3

Semua ketentuan terpenuhi, tetapi hanya mengikuti apa yang ada pada modul.


rating-default-4 rating-dark-4

Semua ketentuan terpenuhi dan menerapkan tiga saran di atas.


rating-default-5 rating-dark-5

Semua ketentuan terpenuhi dan menerapkan semua saran di atas.

Catatan:
Jika submission Anda ditolak, tidak ada penilaian. Kriteria penilaian bintang di atas hanya berlaku jika submission Anda lulus.

 

Submission yang Tidak Sesuai Kriteria

Jika submission Anda tidak sesuai dengan kriteria, maka akan ditolak oleh reviewer, berikut poin-poin yang harus diperhatikan:

  • Aplikasi utama tidak dibuat dengan Jetpack Compose.
  • Tidak bisa berpindah ke halaman detail ketika salah satu item ditekan.
  • Gambar tidak berhasil ditampilkan.
  • Informasi yang ditampilkan pada daftar ataupun detail tidak relevan.
  • Tidak menampilkan foto diri, nama ,dan email yang terdaftar di Dicoding pada halaman about.
  • Aplikasi force closed.
  • Melakukan kecurangan seperti tindakan plagiarisme.

 

Forum Diskusi

Jika mengalami kesulitan, Anda bisa menanyakan langsung ke forum diskusi. https://www.dicoding.com/academies/445/discussions.

 

Ketentuan Berkas Submission

Beberapa poin yang perlu diperhatikan ketika mengirimkan berkas submission:

  • Menggunakan Android Studio.
  • Menggunakan bahasa pemrograman Kotlin.
  • Dalam aplikasi yang dikirimkan, pastikan untuk dapat dibuka dan terhindar dari crash.

 

Ketentuan Proses Review

Beberapa hal yang perlu Anda ketahui mengenai proses review:

  • Tim penilai akan mengulas submission Anda dalam waktu selambatnya 3 (tiga) hari kerja (tidak termasuk Sabtu, Minggu, dan hari libur nasional).
  • Tidak disarankan untuk melakukan submit berkali-kali karena akan memperlama proses penilaian.
  • Anda akan mendapat notifikasi hasil pengumpulan submission Anda via email, atau Anda dapat mengecek status submission pada akun Dicoding Anda.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.