Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DevCoach 164: Flutter | Navigasikan Aplikasimu ...
Search
Nad
August 18, 2024
0
33
DevCoach 164: Flutter | Navigasikan Aplikasimu dengan Navigator 2.0
Nad
August 18, 2024
Tweet
Share
More Decks by Nad
See All by Nad
DevCoach 180: Back-End | Deploy Aplikasi dengan Aman dan Cepat Menggunakan CI/CD
nadiaaa22
0
59
DevCoach 179: Flutter | Ciptakan Animasi Epik dengan Animation
nadiaaa22
0
82
DevCoach 178: React | Teknik React Menghidupkan UI dengan State
nadiaaa22
0
49
Dicoding Sharing Session: Unlocking the Machine Learning Workflow
nadiaaa22
0
69
DevCoach 176: React | Cara Jitu React Membangun UI
nadiaaa22
0
120
DevCoach 175: React | Kenalan dengan React: UI Web Masa Kini
nadiaaa22
0
72
DevCoach 174: Flutter | Bentangkan Sayap Kreativitasmu dengan Flutter Desktop
nadiaaa22
0
44
DevCoach 173: iOS | Mendalami SwiftUI, UI Framework Masa Depan!
nadiaaa22
0
120
DevCoach 172: Flutter | Tingkatkan Pengalaman Pengguna dengan Lokalisasi dan Aksesibilitas
nadiaaa22
0
94
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Automating Front-end Workflow
addyosmani
1370
200k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
43
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Typedesign – Prime Four
hannesfritz
42
2.7k
Scaling GitHub
holman
459
140k
Transcript
Navigasikan Aplikasimu dengan Navigator 2.0 Achmad Ilham Imanuddin Curriculum Developer
Multi-platform Flutter
Pokok Pembahasan • Berpetualang dalam Navigasi Flutter • Berkenalan dengan
Navigator 2.0 • Praktik Seru dengan Navigator 2.0 • Eksplorasi Dunia Navigator 2.0 di Web App Multi-platform Flutter
None
None
Navigasi di Flutter
Navigation Anonymous Routes
Anonymous Routes Cara ini dilakukan seperti navigasi aplikasi mobile pada
umumnya yang menampilkan halaman di atas halaman lainnya, seperti tumpukan halaman (stack).
Anonymous Routes Untuk berpindah ke halaman lain, cara ini tidak
perlu memanggil nama rute. • Navigator.push() untuk menampilkan halaman baru. • Navigator.pop() untuk kembali ke halaman sebelumnya.
Anonymous Routes Untuk berpindah ke halaman lain, cara ini tidak
perlu memanggil nama rute. • Navigator.push() untuk menampilkan halaman baru. • Navigator.pop() untuk kembali ke halaman sebelumnya
Anonymous Routes Limitasinya: • Tidak cocok untuk aplikasi besar •
Sulit di-maintain
Navigation Anonymous Routes Named Routes
Named Routes Cara ini memanfaatkan properti routes di MaterialApp atau
CupertinoApp.
Named Routes Untuk bernavigasi, cukup memanfaatkan method pushNamed(). Hanya menambahkan
nama rute yang sudah didaftarkan sebelumnya, aplikasi akan bernavigasi ke halaman tujuan.
Named Routes Limitasinya: • Tidak bisa membuat parameter yang fleksibel.
• Tidak mendukung deep linking, terutama untuk platform web dan desktop.
Navigation Anonymous Routes Advanced Named Routes Named Routes
Advanced Named Routes Lebih fleksibel lagi, Anda bisa menggunakan properti
onGenerateRoute yang ada di dalam widget MaterialApp atau CupertinoApp.
Advanced Named Routes Tetap menggunakan pushNamed() untuk bernavigasi ke halaman
tertentu.
Pertanyaan Dari ketiga opsi tersebut, pendekatan mana yang sering teman-teman
gunakan?
Navigation Anonymous Routes Advanced Named Routes Named Routes Only Mobile
Apps Imperative Navigation
Apakah ada yang salah dengan Navigator.push() ?
Web dan Desktop ?
Stage of Flutter App Survey Sumber: Flutter on the web,
slivers, and platform-specific issues
Web-like Experience Survey Sumber: Flutter on the web, slivers, and
platform-specific issues
Web-like Experience URL Support /restaurant/detail/:restaurantId
Web-like Experience State Restoration
Web-like Experience URL Support - Nested Navigation
Navigation 2.0
Navigation 2.0 Konsep navigasi bergaya deklaratif yang memungkinkan untuk mengelola
seluruh halaman aplikasi secara fleksibel.
Mengapa Navigator 2.0? • Declarative Paradigm
Mengapa Navigator 2.0? • Declarative Paradigm • Navigation Stack
Mengapa Navigator 2.0? • Declarative Paradigm • Navigation Stack •
Web Support
Mengapa Navigator 2.0? • Declarative Paradigm • Navigation Stack •
Web Support • Nested Navigation
Komponen Navigator 2.0 Flutter menyediakan API bernama Page API dan
Router API. Router API Page API
Komponen Navigator 2.0 • RouteInformationProvider: sebuah kelas yang menyediakan informasi
halaman untuk widget Router.
Komponen Navigator 2.0 • RouteInformationParser: sebuah kelas untuk memilah informasi
halaman.
Komponen Navigator 2.0 • RouterDelegate: sebuah kelas yang digunakan widget
Router untuk membangun ulang navigation stack.
Komponen Navigator 2.0 • BackButtonDispatcher: sebuah kelas untuk menangani perilaku
System Back Button pada sistem operasi.
Letʼs Break Down The Code!
URL Plan Restaurant App Home Page Detail Page Review Page
/restaurant /restaurant/detail/:id /restaurant/review?name=ilham&review=mantaps
Page Configuration Plan Restaurant App Home Page Detail Page Review
Page HomePageConfiguration() DetailPageConfiguration(id) ReviewPageConfiguration(name, review)
Restaurant App Router API • RouterDelegate Handle app state and
notify the Page API. • RouteInformationParser
Restaurant App Router API • RouterDelegate ◦ currentConfiguration Page configuration
based on current state. • RouteInformationParser
Restaurant App Router API • RouterDelegate ◦ setNewRoutePath Update app
state based on page configuration. • RouteInformationParser
Restaurant App Page API • Pages The list of pages
with which to populate the history. • onPopPage
Restaurant App Page API • Pages • onPopPage Callback that
will run when the pop() method is called.
Restaurant App Router API • RouterDelegate • RouteInformationParser ◦ parseRouteInformation
Parse URL and return page configuration.
Restaurant App Router API • RouterDelegate • RouteInformationParser ◦ restoreRouteInformation
Return URL to address bar based on page configuration.
None
Feedback! Hadiah: • 1 Token Langganan Academy 30 Hari)* *untuk
pengisi feedback terpilih! dicoding.id/devcoachfeedback
None
None
None
Thank You Data Science