Baru-baru ini, saya harus menerapkan panduan orientasi untuk
/href/
https://clickup.com/
ClickUp
/%href/
pendatang baru! Ini adalah tugas yang sangat penting karena banyak pengguna baru yang akan menemukan platform dengan
/href/
https://www.youtube.com/watch?v=AirnL1NxOAw
iklan yang sangat lucu yang kami tayangkan di Super Bowl
/%href/
! ✨
melalui ClickUp
Panduan ini memungkinkan banyak pengguna baru kami, yang mungkin belum mengenal ClickUp, untuk dengan cepat memahami cara menggunakan beberapa fungsi dari aplikasi ini. Ini adalah upaya yang berkelanjutan, seperti halnya
/href/
https://university.clickup.com/
Universitas ClickUp
/%href/
sumber daya yang kami kejar! 🚀
Untungnya, arsitektur perangkat lunak di balik aplikasi seluler ClickUp Flutter memungkinkan saya untuk mengimplementasikan fungsionalitas ini dengan cukup cepat, bahkan dengan menggunakan kembali widget asli dari aplikasi! Ini berarti panduannya dinamis, responsif, dan sama persis dengan layar aplikasi yang sebenarnya - dan akan terus berlanjut, bahkan ketika widgetnya akan berkembang.
Saya juga dapat mengimplementasikan fungsionalitasnya karena pemisahan masalah yang tepat.
Mari kita lihat apa yang saya maksud di sini. 🤔
Pemisahan masalah
Merancang arsitektur perangkat lunak adalah salah satu topik yang paling kompleks bagi tim teknik. Di antara semua tanggung jawab, selalu sulit untuk mengantisipasi evolusi perangkat lunak di masa depan. Itulah mengapa membuat arsitektur yang berlapis-lapis dan terpisah-pisah dapat membantu Anda dan rekan tim Anda dalam banyak hal!
Manfaat utama dari membuat sistem kecil yang terpisah-pisah tidak diragukan lagi adalah ketangguhan! Dan inilah yang membantu saya membuat alternatif demo dari layar yang ada dari aplikasi!
Panduan langkah demi langkah
Sekarang, bagaimana kita dapat menerapkan prinsip-prinsip tersebut pada aplikasi Flutter?
Kami akan membagikan beberapa teknik yang kami gunakan untuk membangun ClickUp dengan contoh panduan sederhana.
Contoh ini sangat sederhana sehingga mungkin tidak menjelaskan semua keuntungan di baliknya, tetapi percayalah, ini akan membantu Anda membuat aplikasi Flutter yang lebih mudah dipelihara dengan basis kode yang kompleks. 💡
Aplikasi
Sebagai contoh, kita akan membuat aplikasi yang menampilkan jumlah penduduk Amerika Serikat untuk setiap tahun.
melalui ClickUp
Kita memiliki dua layar di sini :
* `Layar Utama`: hanya mencantumkan semua tahun dari 2000 hingga sekarang. Ketika pengguna mengetuk ubin tahun, mereka akan menavigasi ke `DetailScreen` dengan argumen navigasi yang disetel ke tahun yang dipilih.
* `DetailScreen` : mendapatkan tahun dari argumen navigasi, memanggil
/href/
https://datausa.io/api/data?drilldowns=Nation&measures=Population&year=2018
aPI datausa.io
/%href/
untuk tahun ini, dan mem-parsing data JSON untuk mengekstrak nilai populasi terkait. Jika data tersedia, sebuah label akan ditampilkan dengan jumlah populasi.
Kita akan fokus pada implementasi `DetailScreen` karena ini adalah yang paling menarik dengan pemanggilan asinkron.
Langkah 1\. Pendekatan Naif
/img/
https://clickup.com/blog/wp-content/uploads/2022/03/image-5-1400x607.png
Pendekatan naif Stateful Widget
/%img/
melalui ClickUp
Implementasi yang paling jelas untuk aplikasi kita, adalah dengan menggunakan satu `StatefulWidget` untuk seluruh logika.
/href/
https://dartpad.dev/embed-flutter.html?id=b37071f4386ecb27c29332e788999612&split=80&theme=dark
Kode Sumber & Demo Dart
/%href/
Mengakses argumen navigasi `tahun`
Untuk mengakses tahun yang diminta, kita membaca `RouteSettings` dari widget bawaan `ModalRoute`.
```
void didChangeDependencies() {
super.didChangeDependencies();
tahun akhir = ModalRoute.of(context)!.settings.arguments as int;
// ...
}
```
Panggilan HTTP
Contoh ini memanggil fungsi `get` dari paket `http` untuk mendapatkan data dari
/href/
https://datausa.io/api/data?drilldowns=Nation&measures=Population&year=2018
aPI datausa.io
/%href/
mem-parsing JSON yang dihasilkan dengan metode `jsonDecode` dari pustaka `dart:convert`, dan menyimpan `Future` sebagai bagian dari state dengan properti bernama `_future`.
```
akhir Masa Depan