Book Image

Taking Flutter to the Web

By : Damodar Lohani
Book Image

Taking Flutter to the Web

By: Damodar Lohani

Overview of this book

Using a shared codebase in addition to an extensive range of tools in the Flutter ecosystem optimized for browsers, the Flutter framework has expanded to enable you to bring your mobile apps to the web. You’ll find out how web developers can leverage the Flutter framework for web apps with this hands-on guide. Taking Flutter to the Web will help you learn all about the Flutter ecosystem by covering the tools and project structure that allows you to easily integrate Flutter into your web stack. You’ll understand the concepts of cross-platform UI development and how they can be applied to web platforms. As you explore Flutter on the web, you'll become well-versed with using Flutter as an alternative UI platform for building adaptive and responsive designs for web apps. By the end of this Flutter book, you'll have built and deployed a complete Flutter app for the web and have a roadmap ready to target the web for your existing Flutter mobile apps.
Table of Contents (17 chapters)
1
Part 1: Basics of Flutter Web
5
Part 2: Flutter Web under the Hood
9
Part 3: Advanced Concepts

Implementing Navigator 2.0 in our app

Let’s start. As we are using Material Design and MaterialApp, for simplicity, we will not be implementing our own Page object, we will instead use MaterialPage provided by Flutter’s material library. If you wish, you can implement Page yourself by creating a new class that extends Page and implementing the required functionality. So, we will start by implementing RouterDelegate. RouterDelegate requires a generic type that defines our route. Here, we will be using a Uniform Resource Identifier (URI) as it is powerful as well as simple. With a URI, we can provide advanced paths, as well as manipulate them easily. This is even more suitable for the web, as in the browser, we are always dealing with URIs. Inside lib/, create a folder named routes, and inside that folder, create a file called router_delegate.dart. First, we will create our class by extending RouterDelegate, setting URI as the generic type, like so:

class AppRouterDelegate...