A practical guide to cross-platform app development with .NET MAUI and C#
Key Features
● Get familiar with .NET MAUI, its associated libraries, and popular design patterns used in cross-platform app development.
● Learn how to design and implement visually appealing and interactive user interfaces in your .NET MAUI app.
● Deep dive into the process of creating and refining an application with a custom user interface (UI).
Description
.NET MAUI (Multi-platform App UI) is a framework developed by Microsoft that allows developers to build cross-platform mobile and desktop applications using a single codebase.
This book is a comprehensive guide that covers various aspects of cross-platform development with .NET MAUI. In the initial chapters you will gain a solid understanding of the fundamental aspects and specifics of cross-platform .NET MAUI apps, their structure and the diverse range of application resources. The book will then guide you in creating your first UI application using cross-platform techniques. Moving on, you will delve into more advanced topics such as MVVM, dependency injection, data storage, leveraging device capabilities, and ensuring accessibility in your applications. Lastly, you will explore alternative approaches like Shell and Blazor Hybrid, offering flexible options for building native applications.
By the end of the book, you will be able to develop cross-platform applications using .NET MAUI.
What you will learn
● Understand how .NET MAUI works.
● Build custom UI including animations and custom controls.
● Build robust distributed architecture including MVVM and DI.
● Explore different application design approaches such as Hierarchical, Shell, and Hybrid-Blazor.
● Learn how to embed the LiteDB database seamlessly into your apps.
Who this book is for
This book caters to both beginners entering the world of cross-platform GUI app development with .NET and professionals who have previous experience with Xamarin. Prior knowledge of C# or a strong foundation in other programming languages is essential to comprehend and benefit from the book fully.
Author(s): Aleksei Starkov
Publisher: BPB Online
Year: 2023
Language: English
Pages: 429
Cover Page
Title Page
Copyright Page
Dedication
About the Author
About the Reviewer
Acknowledgements
Preface
Table of Contents
1. Introduction to Flutter
Introduction
Structure
Objectives
An Abridged History of Apps
The History of Multi-Platform App Development
A New Multi-Platform App Development Solution
The Rapid Development of Flutter
Why Developers Are Flocking to Flutter
Looking Forward
Conclusion
References
2. Market Opportunities for Flutter Developers
Introduction
Structure
Objectives
The Growth of Flutter in the Marketplace
Who is Using Flutter, and What are They Using it for?
Case Study: Alibaba
Case Study: BMW
Case Study: ByteDance
Case Study: eBay
Case Study: Toyota
Case Study: Google
Conclusion
References
3. Installing Flutter and Configuring Your IDE
Introduction
Structure
Objectives
Tools
Getting Started on Windows
Getting Started on macOS
Additional Information for Devices with Apple Silicon (M1, M2, and so on)
Installing and Configuring Visual Studio Code
Building and Running Your First Flutter Application
Conclusion
Further Reading
4. Introduction to Widgets
Introduction
Structure
Objectives
Briefly Exploring the Default Flutter Application
What is a Widget and How is it Drawn to the Screen?
Stateless Widgets
Creating a Custom Stateless Widget
Stateful Widgets
Inherited Widgets
Introduction to BuildContext
Conclusion
Questions
Key Terms
Further Reading
5. Handling User Input
Introduction
Structure
Objectives
Buttons
Capturing Text Input
Pickers, Selectors, and Dropdowns
Radios, Checkboxes, Switches, and Segmented Controls
Sliders
Forms and FormFields
Building a Simple Signup Form
Conclusion
Questions
Key Terms
Further Reading
6. Using 3rd Party Libraries and External Assets
Introduction
Structure
Objectives
Introduction to pubspec.yaml
Adding Images and Other Assets to Your Application
Introduction to the Pub Package Management System
Finding Useful Packages on Pub
Using a Package to Play Audio
Popular Pub packages
Conclusion
Questions
Key Terms
Command Reference
Further Reading
7. Working with APIs and Asynchronous Operations
Introduction
Structure
Objectives
Welcome to the Future
Requesting Data From an API
Classifying API Responses
Sending Data to an API
Flutter’s Asynchronous Widgets
Sinks and Streams
Conclusion
Questions
Key Terms
Further Reading
8. Navigation and Routing
Introduction
Structure
Objectives
General Discussion of Navigation and Routing Concepts
Introduction to Navigator 1.0
Routing Using Named Routes
Passing Arguments into a Route
Returning Data from a Screen
Animating Widget from One Route to Another
Introduction to Navigator 2.0 — the Router API
Using Packages to Help with Routing
Conclusion
Questions
Key Terms
Further Reading
9. State Management and the BLoC
Introduction
Structure
Objectives
Ephemeral Versus App State
Some Prep Work Before We Begin
A Brief Aside to Explain Some New Concepts
Using Inherited Widgets to Manage App State
Using Provider to Manage App State
Using BLoC’s Cubit to Manage App State
Using BLoC to Manage App State
Conclusion
Questions
Key Terms
Further Reading
10. Reactivity and Platform-Specific Considerations
Introduction
Structure
Objectives
Building Responsive Layouts
Benefits and Limitations of dart:io
App Icons and Splash Screens
Material, Cupertino, Yaru, and Fluent UI (oh my!)
Platform-Specific Navigation Paradigms
Using Packages to Build Cross-Platform UIs
Conclusion
Questions
Further Reading
11. Debugging, Troubleshooting, and Performance Considerations
Introduction
Structure
Objectives
Debugging and Troubleshooting Concepts
Logging Output to the Debug Console
Setting Breakpoints and Exploring Runtime Variables
Handling Exceptions
Introduction to Flutter’s DevTools
Defining Performance Issues
Exploring Profile Mode
When a ListView is not a ListView
Optimizing Widgets
Conclusion
Questions
Key Terms
12. Creating Your First Application
Introduction
Structure
Objectives
About the Application
Understanding the Technical Requirements
Building the Skeleton of Your Application
The WeatherIcon Class
Code Generation
Building the API Layer
Finishing the application
Conclusion
Questions
Key Terms
Command Reference
Further Reading
References
13. Finding Flutter Jobs
Introduction
Structure
Objectives
How to Hack the System and Make the Jobs Come to You
Question and Answer Time with Top Flutter Recruiters
Conclusion
14. Preparing for and Succeeding in the Job Interview
Introduction
Structure
Objectives
The Interview Process, Start to Finish
What to Expect During a Technical Interview
The Culture Fit Interview: Evaluating a Company and Being Evaluated
Negotiating Compensation
Answering Some Interview Questions
Conclusion
15. Your Road Ahead
Introduction
Structure
Objective
How to Prepare for Your New Job
Tips for Collaboration with Other Developers
Additional Skills You’ll Need to Seek Out
Suggestions for Furthering Your Career
Conclusion
Flutter Community Links
Index