Course: Mobile app development with Flutter
duration: 48 hours |
Language: English (US) |
access duration: 180 days |
Details
Mobile app development has become an essential skill in today's technology-driven world. Therefore, this course will teach you all about mobile app development with Flutter.
First you'll dive into the fundamentals of Dart programming and the Flutter framework. The course starts with an introduction to Flutter and Dart programming language and covers using variables, collections, functions, classes, and objects. You will then delve into exploring different layouts, including implementing basic Flutter layouts, stateful widgets, stacks, lists, and grids, and building an application using layouts and navigation.
After that, you'll focus on building mobile apps with Flutter, including creating forms, detecting, and handling gestures, implementing and configuring animations, integrating Flutter with backends using HTTP requests, persisting data on the local device, and integrating with Google Firebase. Additionally, the course covers testing and debugging techniques for Flutter apps.
Result
After completing this course, you will have gained knowledge of Flutter mobile app development, including Dart programming, UI design, backend integration, and testing and debugging.
Prerequisites
Basic knowledge of programming and app-development are recommended.
Target audience
Software Developer, Web Developer
Content
Mobile app development with Flutter
Flutter Development: Introducing Flutter & the Dart Programming Language
In recent years application development has become more complex and time-consuming as users expect the same application and functionality to be available across different platforms. The result has been increased adoption of technologies such as Flutter that support cross-platform development allowing organizations to use a single code-base to develop applications across multiple environments. In this course, you will learn how Flutter helps develop cross-platform applications. You will explore Flutter's layered architecture and understand how the Flutter framework, Flutter engine, and platform-specific embedder enable cross-platform development in a performant and efficient way. Finally, you will install and set up the Dart SDK on your local machine and use the IntelliJ IDEA to write Dart code.
Flutter Development: Using Variables, Collections, & Functions in Dart
Developing Flutter applications requires programmers to be familiar with the Dart programming language. Dart is an object-oriented programming language that supports mixin-based inheritance and functional constructs. In this course, you will learn how variables in Dart are initialized and used. Next, you will work with basic collection constructs such as the list, set, and map and explore some new operators such as the spread operator. You will also see how Dart implements sound null safety using specific types and null assertion and null aware operators. Finally, you will learn that functions in Dart are first-class citizens, which means that functions can be stored in variables, passed in as input arguments to other functions, and returned as values from functions.
Flutter Development: Using Classes & Objects in Dart
Dart is an object-oriented programming language that supports mixin-based inheritance and functional constructs. Mixin-based inheritance allows you to reuse code from a class without having to inherit from that class and is very useful for modeling inclusive functionality for classes. In this course, we will focus on object-oriented programming constructs in Dart. We'll explore generative and factory constructs, and also see how const constructors can be used to create objects that are compile-time constants. Next, you will learn to use getters and setters in Dart and see how you can implement operator overloading, a feature borrowed from C++. You will discover class inheritance and interface implementation and see how to apply the mixin-based inheritance model to reuse code from classes. You will learn how to install and use third-party libraries from the pub.dev repository and include these as dependencies in your code using the pubspec.yaml file. Finally, you will use futures and the async and await keywords to write asynchronous code in Dart.
Flutter Development: Getting Set Up with Flutter for Application Development
The Dart programming language is primarily used to develop cross-platform Flutter applications. Flutter allows you to use the same code to build apps not only for Android and iOS mobile platforms but also for web and desktop applications. In this course, you will set up with the correct environment to develop Flutter applications on Windows and MacOS devices. You will set up Android Studio and the Flutter SDK and configure the plugins needed for Flutter development on this integrated development environment (IDE) Next, you will create a simple Flutter application and run this sample app using the command line and Android Studio on the Chrome web browser. You will then configure an Android Virtual Device on Android Studio and run this application on the Android emulator. For MacOS users you will configure the iOS simulator and run the application on this simulator. Finally, you will test-drive your Flutter installation by creating a very simple web application using Flutter HTML elements and wiring up event handlers.
Layouts in Flutter: Implementing Basic Flutter Layouts
The Flutter cross-platform framework offers a wide range of layout options to develop your application's pages. Flutter layouts enable you to create beautiful, responsive design for the right look and feel in your mobile applications. In this course, you will learn how Flutter widgets work, how they use composition to build complex user interface component hierarchies, and how the Flutter framework uses the element tree and render tree to render widgets to screen in an efficient way. Next, you will use Material Design components to create simple application pages. You will learn how to work with the Container, Text, Padding, and Image widgets to build elegant app pages. Finally, you will learn how to work with the Scaffold widget to create app pages that follow Material Design best practices.
Layouts in Flutter: Exploring Stateful Widgets
Widgets in Flutter can be stateless or stateful. Stateless widgets have properties that do not change, while stateful widgets contain mutable states that can be updated. In this course, you will create Flutter widgets that hold state information in a different object. You will see how you can handle user actions that update state and how Flutter automatically redraws widgets when their state changes. Next, you will build and use a number of different stateful widgets such as counters, checkboxes, and widgets that update state based on a timer. You will share state across multiple widgets by storing state in a parent component, and you will use callbacks to allow child components to change the parent's state. Finally, you will learn to design layouts using the Column and Row widgets in Flutter.
Layouts in Flutter: Implementing Stacks, Lists, & Grids in Flutter
The stack, list, and grid layouts are very popular in mobile applications because they make great use of screen real estate and allow you to represent information in a manner that is easy for users to understand and parse. In this course, you will learn to use the Stack widget to layer widgets one on top of another. You will use relative and positioned widgets as a part of the stack and see that positioned widgets give you very fine-grained control over where a widget is placed. Next, you will represent elements using the ListView. You will configure the properties of the ListView to match your use case and use the ListTile and the Card widgets to build list elements. You will also build list views with an infinite number of elements. Finally, you will represent your app elements using the GridView.
Layouts in Flutter: Building an Application Using Layouts & Navigation
Mobile applications often have several pages. These pages need to be connected correctly using navigation and routing. In this course, you will explore how Flutter uses a stack data structure to enable navigation. You will use the Navigator class to navigate between pages and use named routes to improve the readability and robustness of navigation code. Next, you will bring together everything you have learned in this path to build a simple application for an e-commerce company using Material Design for Android devices and Cupertino widgets for iOS devices. Finally, you will learn to connect a device to Flutter and test your app on a mobile phone.
Fundamentals of Dart Programming and Flutter Framework
The exercises presented in this lab include: Exercise 1 - Programming in Dart Exercise 2 - Using Basic Data Types in Dart Exercise 3 - Using First-Class Functions in Dart Exercise 4 - Understanding Instance Methods in Dart Exercise 5 - Using Mixin Classes in Dart Exercise 6 - Building Web Applications Using Dart Exercise 7 - Running Flutter App in Android Emulator Exercise 8 - Embedding Images Within Containers in a Flutter App Exercise 9 - Working with the Stateful Widgets in Flutter Exercise 10 - Implementing Gridview in a Flutter App Exercise 11 - Navigating Across Flutter App Using Named Routes Lab Configuration Ubuntu 20.4 Software and Tools Java 20.01 IntelliJ IDEA Community Edition Android studio (with Dart plugin, Flutter plugin) - Flamingo - 2022.2.1 patch 2 GitHub Desktop Flutter SDK Dart SDK Webdev
Final Exam: Fundamentals of Dart Programming and Flutter Framework
Final Exam: Fundamentals of Dart Programming and Flutter Framework will test your knowledge and application of the topics presented throughout the Fundamentals of Dart Programming and Flutter Framework track.
Forms and Animations with Flutter: Working with Input Widgets & Forms
Mobile applications often need to collect user input. User input in Flutter is collected using input widgets and these input widgets can be embedded in forms. In this course, you will discover the types of input widgets you can use to accept input. You will explore use cases and special characteristics of each input type and how inputs can be grouped together into forms with a submit button. Next, you will implement and handle changes in a variety of inputs. You will use change handlers to handle input changes and state updates and use grouped widgets to update the same state using multiple inputs. Finally, you will see how input widgets can be embedded as part of Flutter forms. You will learn how form state is accessed and validated using form field widgets and how you can create custom widgets that can be embedded in Flutter forms.
Forms and Animations with Flutter: Detecting & Handling Gestures
Users often interact with mobile devices using gestures, which are semantic actions that can update the state of the application. Flutter makes it easy to detect and handle gestures using built-in widgets. In this course, you will discover how the GestureDetector in Flutter helps you detect motions in your app that are gestures. The GestureDetector allows you to configure callbacks for the specific gestures you want to handle and allows you to detect and respond to these gestures. If multiple gesture detectors are activated, Flutter uses the gesture arena to disambiguate and invoke the callback on the right gestures. Next, you will explore how to implement gesture detection in your application. You will learn to handle tap, long press, double tap, and drag-related gestures. You will also configure callbacks for other states in the gesture lifecycle such as the start or end of a gesture. Finally, you will see how you can override the default behavior of the gesture arena by configuring a raw gesture detector that allows multiple winners in the arena.
Forms and Animations with Flutter: Implementing & Configuring Animations
Mobile applications can be made fun, interactive, and interesting using animations. Animations add continuity to transitions that you make in your application and make them more intuitive for users. Flutter offers built-in animatable widgets known as implicitly animated widgets while at the same time giving you the tools that you need to build your own custom advanced animations. In this course, you will explore how animations provide an illusion of motion and how Flutter makes animating widgets straightforward using implicit animations. Next, you will explore implicit animations using a variety of animatable widgets such as the AnimatedContainer, AnimatedOpacity, AnimatedCrossFade, and AnimatedSlide. You will learn to create and manage explicit animations that use the AnimationController and how to generate the right property values for your animations using tweens. You will also see how the AnimatedBuilder improves the performance of your animations. Finally, you will explore a range of animations such as Hero animations, staggered animations, and physics simulations that animate objects using the laws of physics.
Flutter and Backends: Connecting to Remote Backends Using HTTP Requests
All mobile applications display data to users and allow users to manipulate this data. The data can be stock quotes in a trading application, products in an e-commerce application, or restaurants and dishes in a food delivery application. This data is usually stored in a remote backend and exposed via HTTP REST endpoints. In this course, you will explore data persistence and create an e-commerce application using the Fake Store API. Then you will serialize and parse JSON data using the dart:convert library. Finally, you will set up and run your own HTTP server on your local machine and write code to handle GET, PUT, POST, and DELETE requests to view, update, add, and delete products from your app's catalog. When you are finished with this course, you will have the skills and knowledge to use the http and dart:convert libraries to access and update data from a remote server using HTTP requests.
Flutter and Backends: Persisting Data on the Local Device
When building mobile applications, there is often the need to store data locally on the mobile device, either across the application's sessions or to store user preferences. Based on the size and complexity of the data, there are several choices to store data locally. Discover how to use the local file system on your device to store data in files. Use the path_provider and path packages to access the application documents directory and create, read, and write files. Next you will use the SharedPreferences plugin to store simple data that can be expressed as key-value pairs. Then you will explore several real-world use cases for SharedPreferences and storing user preferences in an app. Finally, you will investigate how to store larger amounts of structured data using an embedded SQLite. Upon course completion, you will be able to select the appropriate data storage for local data persistence and integrate your Flutter application with this storage.
Flutter and Backends: Integrating Flutter with Google Firebase
One of the most popular backends for mobile applications is Google's Firebase, a cloud-hosted platform specifically for mobile and web application developers that provides a host of scalable and robust services. Begin this course by exploring the ephemeral and application states in your mobile app. Then use the providers package in Flutter to set up and manage the app state using the provider components - the ChangeNotifier, the ChangeNotifierProvider, and the Consumer. Next you will integrate your app with Google Firebase to create and configure your app to connect to the Firebase backend and use Firebase services. Finally, you will build a real-world e-commerce application using Firebase as a backend, store data in the Cloud Firestore NoSQL database, and configure your app to receive real-time updates from Firestore using StreamBuilder widgets. You will set up authentication for your application using Firebase Authentication services, configure login and signup pages, and include functionality for user favorites, cart, and checkout.
Mobile Development: Testing & Debugging Flutter Applications
In real-world app development, tests ensure that bugs and other issues can be found and fixed early in the development and release cycle. Flutter offers a range of testing and debugging tools that make it easy to write tests and debug Flutter applications. Through this course, learn about the types of tests that can be written for Flutter applications. Explore the test types and how to choose between them. Next, practice writing tests for use cases, using mocks to eliminate external dependencies in code, and writing widget tests to test stateless and stateful widgets. Finally, discover Flutter tools for debugging and profiling apps. Upon completion, you'll be able to implement tests and debug a Flutter application.
Building Mobile Apps with Flutter
Building Mobile Apps with Flutter The exercises presented in this lab include: Exercise 1 - Using Text Field Widget in a Flutter App Exercise 2 - Responding to Gestures in a Flutter App Exercise 3 - Implementing Animation in a Flutter App Exercise 4 - Learning to use JSON in a Flutter App Exercise 5 - Performing Unit Testing of a Flutter App Lab Configuration Ubuntu 20.4 Software and Tools Java 20.01 IntelliJ IDEA Community Edition Android studio (with Dart plugin, Flutter plugin) - Flamingo - 2022.2.1 patch 2 GitHub Desktop Flutter SDK Dart SDK Webdev
Final Exam: Building Mobile Apps with Flutter
Final Exam: Building Mobile Apps with Flutter will test your knowledge and application of the topics presented throughout the Building Mobile Apps with Flutter track.
Course options
We offer several optional training products to enhance your learning experience. If you are planning to use our training course in preperation for an official exam then whe highly recommend using these optional training products to ensure an optimal learning experience. Sometimes there is only a practice exam or/and practice lab available.
Optional practice exam (trial exam)
To supplement this training course you may add a special practice exam. This practice exam comprises a number of trial exams which are very similar to the real exam, both in terms of form and content. This is the ultimate way to test whether you are ready for the exam.
Optional practice lab
To supplement this training course you may add a special practice lab. You perform the tasks on real hardware and/or software applicable to your Lab. The labs are fully hosted in our cloud. The only thing you need to use our practice labs is a web browser. In the LiveLab environment you will find exercises which you can start immediately. The lab enviromentconsist of complete networks containing for example, clients, servers,etc. This is the ultimate way to gain extensive hands-on experience.
Sign In
WHY_ICTTRAININGEN
Via ons opleidingsconcept bespaar je tot 80% op trainingen
Start met leren wanneer je wilt. Je bepaalt zelf het gewenste tempo
Spar met medecursisten en profileer je als autoriteit in je vakgebied.
Ontvang na succesvolle afronding van je cursus het officiële certificaat van deelname van Icttrainingen.nl
Krijg inzicht in uitgebreide voortgangsinformatie van jezelf of je medewerkers
Kennis opdoen met interactieve e-learning en uitgebreide praktijkopdrachten door gecertificeerde docenten
Orderproces
Once we have processed your order and payment, we will give you access to your courses. If you still have any questions about our ordering process, please refer to the button below.
read more about the order process
Een zakelijk account aanmaken
Wanneer u besteld namens uw bedrijf doet u er goed aan om aan zakelijk account bij ons aan te maken. Tijdens het registratieproces kunt u hiervoor kiezen. U heeft vervolgens de mogelijkheden om de bedrijfsgegevens in te voeren, een referentie en een afwijkend factuuradres toe te voegen.
Betaalmogelijkheden
U heeft bij ons diverse betaalmogelijkheden. Bij alle betaalopties ontvangt u sowieso een factuur na de bestelling. Gaat uw werkgever betalen, dan kiest u voor betaling per factuur.
Cursisten aanmaken
Als u een zakelijk account heeft aangemaakt dan heeft u de optie om cursisten/medewerkers aan te maken onder uw account. Als u dus meerdere trainingen koopt, kunt u cursisten aanmaken en deze vervolgens uitdelen aan uw collega’s. De cursisten krijgen een e-mail met inloggegevens wanneer zij worden aangemaakt en wanneer zij een training hebben gekregen.
Voortgangsinformatie
Met een zakelijk account bent u automatisch beheerder van uw organisatie en kunt u naast cursisten ook managers aanmaken. Beheerders en managers kunnen tevens voortgang inzien van alle cursisten binnen uw organisatie.
What is included?
Certificate of participation | Yes |
Monitor Progress | Yes |
Award Winning E-learning | Yes |
Mobile ready | Yes |
Sharing knowledge | Unlimited access to our IT professionals community |
Study advice | Our consultants are here for you to advice about your study career and options |
Study materials | Certified teachers with in depth knowledge about the subject. |
Service | World's best service |
Platform
Na bestelling van je training krijg je toegang tot ons innovatieve leerplatform. Hier vind je al je gekochte (of gevolgde) trainingen, kan je eventueel cursisten aanmaken en krijg je toegang tot uitgebreide voortgangsinformatie.
FAQ
Niet gevonden wat je zocht? Bekijk alle vragen of neem contact op.