Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DevCoach 164: Flutter | Navigasikan Aplikasimu ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Nad
August 18, 2024
60
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevCoach 164: Flutter | Navigasikan Aplikasimu dengan Navigator 2.0
Nad
August 18, 2024
More Decks by Nad
See All by Nad
DevCoach 180: Back-End | Deploy Aplikasi dengan Aman dan Cepat Menggunakan CI/CD
nadiaaa22
0
100
DevCoach 179: Flutter | Ciptakan Animasi Epik dengan Animation
nadiaaa22
0
120
DevCoach 178: React | Teknik React Menghidupkan UI dengan State
nadiaaa22
0
110
Dicoding Sharing Session: Unlocking the Machine Learning Workflow
nadiaaa22
0
120
DevCoach 176: React | Cara Jitu React Membangun UI
nadiaaa22
0
170
DevCoach 175: React | Kenalan dengan React: UI Web Masa Kini
nadiaaa22
0
100
DevCoach 174: Flutter | Bentangkan Sayap Kreativitasmu dengan Flutter Desktop
nadiaaa22
0
70
DevCoach 173: iOS | Mendalami SwiftUI, UI Framework Masa Depan!
nadiaaa22
0
160
DevCoach 172: Flutter | Tingkatkan Pengalaman Pengguna dengan Lokalisasi dan Aksesibilitas
nadiaaa22
0
130
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Git: the NoSQL Database
bkeepers
PRO
433
67k
How to Talk to Developers About Accessibility
jct
2
580
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Mind Mapping
helmedeiros
1
400
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
Marketing to machines
jonoalderson
1
5.9k
For a Future-Friendly Web
brad_frost
184
10k
sira's awesome portfolio website redesign presentation
elsirapls
0
460
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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