What you will learn in .NET MAUI in Action
Chapter by chapter
Concepts explained in this book
- MAUI.NET MAUI is Microsoft's cross-platform framework for building native applications for Android, iOS, macOS, and Windows.
- viewA view is a .NET MAUI user-interface element that appears onscreen, including layouts, controls, and pages.
- styleA Style is a .NET MAUI object that groups property setters, triggers, and visual-state configuration for one or more views.
- GitHub Actions secretA GitHub Actions secret is an encrypted repository, environment, or organization value exposed to workflows without revealing its stored content.
- model-view-viewmodelMVVM is an architectural pattern that separates a UI view, its stateful view model, and the application's domain model.
- data triggerA data trigger is a XAML behavior that changes a target property's value when a bound data value meets a specified condition.
- GitHub ActionsGitHub Actions is a GitHub service for automating software development workflows such as building, testing, and deploying repository code.
- CollectionViewCollectionView is a .NET MAUI control that displays a scrollable collection of items using configurable item templates.
- view modelA view model is a data transfer object that aggregates the data required to render a particular view, without providing application functionality.
- XAMLXAML is a declarative XML-based language for defining user interfaces and related application objects.
- VerticalStackLayoutVerticalStackLayout is a .NET MAUI layout that arranges child views sequentially along a vertical axis.
- DataTemplateDataTemplate is a definition of the user-interface structure used to display an object or collection item.
- ShellA Shell app is a .NET MAUI application whose pages and navigation structure are managed by Shell.
- dependency injectionDependency injection is a technique in which an object receives its required dependencies from an external provider rather than constructing them itself.
- data bindingData binding is a technique that connects user-interface properties to source-object properties or commands so values and actions can be synchronized.
- tabA tab is a selectable user-interface item representing one section of content within a tab bar or hierarchical Shell navigation.
- flyout navigationA flyout is a dismissible navigation panel that slides into view to present supplemental content or menu items.
- binding contextA binding context is the object whose properties supply values for data bindings in a user-interface element or template.
- GitHub-hosted runnerA GitHub-hosted runner is a virtual machine managed by GitHub that executes jobs in a GitHub Actions workflow.
- dependency inversionDependency inversion is a design principle in which higher-level code depends on abstractions rather than concrete implementation details.
- ScrollViewScrollView is a .NET MAUI UI container that enables scrolling through content larger than the visible screen area.
- FlexLayoutFlexLayout is a .NET MAUI layout that arranges child views in rows or columns with configurable wrapping, spacing, alignment, and flexible flow-based positioning.
- menu itemMenuItem is a .NET MAUI Shell element representing an actionable item in a flyout menu that invokes an action instead of navigating to a page.
- AppThemeBindingAppThemeBinding is a .NET MAUI markup feature that supplies different property values according to the active application theme.
- INotifyPropertyChangedINotifyPropertyChanged is a .NET interface that exposes an event for notifying clients when an object's property value changes.
- custom controlA custom control is a user-defined .NET MAUI interface control that extends or composes standard control behavior.
- ItemsSourceItemsSource is a collection-view property that identifies the collection of items to display.
- .NET MAUI appA .NET MAUI app is an application built with .NET MAUI for supported mobile and desktop platforms.
- ActivityIndicatorActivityIndicator is a .NET MAUI control that displays an animated indication of ongoing activity.
- access tokenAn access token is a credential that authorizes a client to access protected resources on behalf of a principal.
- Visual StudioVisual Studio is an integrated development environment for building, debugging, testing, and deploying software.
- .NET MAUI Community ToolkitThe .NET MAUI Community Toolkit is a community-maintained library providing extensions, controls, behaviors, converters, and other features for .NET MAUI applications.
- ResourceDictionaryResourceDictionary is a XAML dictionary that maps reusable resources, such as styles and templates, to keys.
- SecureStorageSecureStorage is a .NET MAUI API that stores values as encrypted key-value data using a cryptographic key managed by the operating system.
- compiler directiveA compiler directive is a source-code instruction that controls compilation behavior, including conditional compilation for selected platforms.
- light/dark modeDark mode is an interface appearance mode that uses a predominantly dark color scheme.
- DynamicResourceDynamicResource is a .NET MAUI XAML markup extension that resolves a resource by key and updates consumers when that resource changes at runtime.
- AppendToMappingAppendToMapping is a .NET MAUI handler-mapper method that registers customization logic to run after the handler's default mappings.
- PageA Page is a .NET MAUI full-screen view used to define an application page.
- native APIA native platform API is an operating-system-provided programming interface for accessing platform-specific capabilities.
- custom URL schemeA custom URL scheme is an application-defined URL scheme that an operating system associates with an application for URL-based activation.
- OAuthOAuth is an authorization framework that allows an application to obtain delegated access to protected resources without receiving the user's password.
- WebAuthenticatorWebAuthenticator is a .NET MAUI API that starts a browser-based authentication flow and returns the resulting authentication response to an application.
- bindable propertyBindableProperty is the .NET MAUI class that represents metadata and configuration for a bindable property.
- column definitionA column definition is a Grid specification that determines the sizing behavior of one column.
- row definitionA row definition is a Grid specification that determines the sizing behavior of one row.
- controlA control is a .NET MAUI view that displays content or receives user input.
- authentication serviceAn authentication service is an application component that performs user sign-in and obtains credentials or tokens for authenticated access.
- accessibilityAccessibility is the design of software interfaces so that people with disabilities can perceive, understand, navigate, and operate them.
- semantic propertiesSemantic properties are .NET MAUI UI metadata that communicates accessibility meaning, such as heading level, to assistive technologies.
- proportional layoutProportional sizing distributes available layout space among rows or columns according to proportional allocation factors.
- Visual Studio workloadA .NET workload is an installable component that adds a specialized development platform or toolchain to .NET.
- async/awaitasync/await is a C# language feature for composing asynchronous operations without blocking the calling thread while an operation is incomplete.
- SQLCipherSQLCipher is an SQLite-compatible database library that encrypts database contents and transparently decrypts them during access.
- SQLiteSQLite is an embedded, open-source relational database engine implemented as a self-contained library.
- SQLite-netSQLite-net is a .NET library that provides SQLite database access and object-relational mapping for application types.
- global using directiveA global using statement imports a namespace for every source file in a C# project.
- AppShellAppShell is the template application's .NET MAUI class that defines the app's Shell hierarchy and navigation structure.
- ShellContentShellContent is a .NET MAUI Shell element that associates a navigable Shell item with page content.
- authorization codeAn authorization code is a short-lived credential returned after user authorization that a client exchanges for access and related tokens.
- Duende IdentityServerIdentityServer is an OpenID Connect-compliant framework for implementing authentication and identity services in ASP.NET Core applications.
- IdentityModel.OidcClientIdentityModel.OidcClient is a .NET client library for authenticating clients with OpenID Connect identity providers and processing authentication responses.
- JSON Web TokenA JSON Web Token is a compact, signed token format for representing claims exchanged between parties.
- openid connectOpenID Connect is an identity layer built on OAuth 2.0 that enables clients to verify user identity and obtain identity claims.
- redirect uriA redirect URI is the callback address to which an authorization server sends a client after authentication, typically with an authorization code.
- light themeLight mode is an interface appearance mode that uses a predominantly light color scheme.
- PlatformViewPlatformView is a handler property that exposes the native platform control associated with a .NET MAUI view.
- explicit styleAn explicit style is a .NET MAUI style identified by a key and applied selectively to elements.
- implicit styleAn implicit style is a .NET MAUI style without an explicit key that applies automatically to matching control instances.
- ContentPageContentPage is a .NET MAUI page type that hosts a single content view for a full-screen application page.
- distribution certificateA distribution certificate is a cryptographic certificate used to identify and authorize software distributed for an Apple platform.
- self-hosted runnerA self-hosted runner is a machine managed by the workflow owner that executes automation jobs connected to a repository or organization.
- BindableLayoutBindableLayout is a .NET MAUI layout facility that generates child views from a bound collection.
- geolocation apiA geolocation API is a programming interface that obtains a device's or user's geographic location.
- sharing APIA sharing API is a programming interface that invokes an operating system's mechanism for sharing content or data with other applications or services.
- permissionA permission is an authorization that an operating system requires an application to obtain before accessing a protected capability or resource.
- provisioning profileA distribution profile is a platform configuration artifact that associates an application with release-signing credentials and distribution capabilities.
- HorizontalStackLayoutHorizontalStackLayout is a .NET MAUI layout that arranges child views sequentially along a horizontal axis.
- native applicationA native application is an installable program built to run directly on a target platform rather than in a web browser.
- AppCompatEditTextAppCompatEditText is an Android text-input widget from AndroidX AppCompat.
- EntryHandlerEntryHandler is the .NET MAUI handler that maps Entry views to platform-specific native text-input controls.
- UITextViewUITextView is a UIKit control that displays and edits multiline text on Apple platforms.
- ColumnSpanColumnSpan is a .NET MAUI Grid property that specifies how many columns a child view spans.
- color stopA gradient stop is a brush element that associates a color with a fractional position along a gradient axis.
- cross-platform codebaseA cross-platform codebase is a shared source-code base that can be built or deployed for multiple target platforms.
- native user interfaceA native user interface is a platform-specific interface whose controls and visual behavior correspond to the conventions of the operating system.
- iOS build jobAn iOS build job is a workflow job that compiles, signs, and packages an application for iOS.
- buttonButton is a .NET MAUI control that presents an actionable user-interface element.
- .NET CLI.NET CLI is the command-line interface for creating, building, running, testing, and managing .NET projects.
- HTTP clientHttpClient is a .NET class that sends HTTP requests and receives HTTP responses from network resources.
- ICommandICommand is a .NET interface representing an executable action together with its availability state and execution operation.
- IBrowserIBrowser is the IdentityModel.OidcClient interface that abstracts launching an authentication browser interaction and returning its result.
- ItemTemplateItemTemplate is a CollectionView property that specifies the DataTemplate used for each displayed item.
- model-view-updateMVU is a unidirectional UI architecture in which an immutable model is replaced by updates and the view renders the resulting state.
- attached propertyAn attached property is a XAML property mechanism that lets one object provide position or configuration metadata for another object.
- authenticationAuthentication is the process of verifying the identity of a user, application, or service before allowing access.
- Android App BundleAndroid App Bundle is Google's publishing format containing an Android application's compiled code and resources for distribution through Google Play.
- Android signingAndroid signing is the process of applying a cryptographic signature to an Android application package for release and distribution.
- dotnet publishdotnet publish is a .NET CLI command that compiles, packages, and prepares a .NET application for deployment.
- upload-artifact actionupload-artifact is a GitHub-maintained action that stores files produced by a workflow job as downloadable artifacts.
- workflow jobA workflow job is a group of GitHub Actions steps executed together on a specified runner.
- device idiomA device idiom is a category of device defined by its form factor and typical interaction conventions, such as phone, tablet, desktop, TV, or watch.
- HeightRequestHeightRequest is a .NET MAUI visual-element property specifying a preferred height subject to layout constraints.
- iconAn app icon is a visual identifier for an application shown by an operating system, application store, or other application interface.
- ObservableCollectionObservableCollection is a .NET collection type that notifies observers when items are added, removed, or changed.
- clicked propertyThe Clicked event is a .NET MAUI event raised when a menu item is activated by a user click.
- ApplicationApplication is the .NET MAUI base class representing the root application object and its application-level state.
- entry pointAn entry point is the method or platform-specific component at which an application begins execution.
- CreateMauiAppCreateMauiApp is the static startup method in a .NET MAUI template that constructs and returns the MauiApp instance.
- HostBuilderA host builder is a .NET hosting configuration object that constructs and configures an application host.
- IApplicationIApplication is the .NET MAUI interface implemented by an application root object.
- MauiAppMauiApp is the .NET MAUI application object produced by application startup configuration.
- UseMauiAppUseMauiApp is a .NET MAUI host-builder extension method that registers an application type for the host.
- visual stateA visual state is a named condition of a .NET MAUI visual element associated with property values that describe its appearance.
- visual state managerVisualStateManager is a .NET MAUI mechanism for organizing and applying property changes associated with visual states.
- App Store ConnectApp Store Connect is Apple's web-based platform for managing, testing, and distributing applications through its software stores.
- App Store Connect API credentialAn App Store Connect API credential is a set of Apple-issued values that authenticates programmatic access to App Store Connect.
- GitHub actionA GitHub Action is a reusable automation component that performs a step in a GitHub Actions workflow.
- upload-google-playupload-google-play is a community GitHub Action that uploads Android application artifacts to Google Play.
- upload-testflight-buildupload-testflight-build is a community GitHub Action that uploads an iOS application archive to App Store Connect for TestFlight distribution.
- service accountA service account is a non-human identity used by software to authenticate to cloud or application services.
- borderBorder is a .NET MAUI view that draws a border around a single child view and can provide a visual container for content.
- code reloadingHot reload on file save is an automatic hot-reload mode that applies supported changes when a source file is saved.
- handlerA handler is a .NET MAUI component that connects a cross-platform control representation to its platform-specific native control and applies property mappings.
- change handlerA change handler is a callback method invoked when a property value changes so that dependent state can be updated.
- DelegatingHandlerA delegating handler is an HTTP message handler that can inspect or modify a request or response before passing it to another handler.
- single responsibility principleThe single-responsibility principle is a software design principle stating that a component should have one primary reason to change.
- triggerA workflow trigger is a condition or event specification that determines when an automation workflow starts.
- YAMLYAML is a human-readable data serialization format that represents structured data through indentation, whitespace, and key-value syntax.
- Common Language RuntimeThe Common Language Runtime is the .NET execution environment that manages and runs compiled managed code.
- OnIdiomOnIdiom is a XAML markup extension that supplies property values conditionally according to the device idiom.
- behaviorBehavior is the part of user-interface logic that specifies what interface elements do in response to conditions or interaction.
- mockingA mock implementation is a test or development substitute that provides a controlled implementation of an interface or dependency.
- modal pageA modal page is an application page presented above the current page that requires dismissal before normal navigation continues.
- visual state groupA visual state group is a named collection of mutually exclusive visual states for a .NET MAUI element.
- API keyAn API key is a credential that identifies or authorizes a client when it accesses a service API.
- AbsoluteLayoutAbsoluteLayout is a .NET MAUI layout that positions and sizes child views using explicit or proportional bounds within its available area.
- menuA menu is a user-interface component that presents a list of commands or destinations for selection.
- UI logicUI logic is the presentation-layer logic that defines how application information is displayed and how interface elements behave.
- BaseViewModelA base viewmodel is a reusable superclass that provides shared state, behavior, and notification functionality to page-specific viewmodels.
- GoToAsyncGoToAsync is a .NET MAUI Shell navigation method that asynchronously navigates to a route and can carry parameters.
- binding source propertyA binding source property is the property whose value is propagated by a data binding to its target property.
- OnAppearingOnAppearing is a .NET MAUI page lifecycle method invoked when a page becomes visible.
- rowA row is a horizontal subdivision of a .NET MAUI Grid used to position child views.
- EventToCommandBehaviorEventToCommandBehavior is a .NET MAUI behavior that invokes a command when a specified UI event occurs and can pass event-derived parameters.
- data transfer objectA data transfer object is a data structure that carries serialized data between application or service boundaries without encapsulating business behavior.
- BlazorBlazor is a .NET web UI framework for building interactive web user interfaces with .NET and Razor components.
- cross-platform UI applicationCross-platform UI development is the practice of creating user interfaces that run across multiple operating systems from a shared codebase.
- popupA popup is a .NET MAUI Community Toolkit user-interface element that displays transient content above the current page.
- selected stateThe selected state is the visual state of a selectable .NET MAUI item that is currently selected.
- transient lifetimeA transient scope is a dependency-injection lifetime in which a new service instance is created each time the service is requested.
- write once, run anywhereWrite once, run anywhere is a software development approach in which one application is intended to run across multiple platforms without platform-specific modification.
- absolute sizingAbsolute sizing assigns rows or columns fixed dimensions expressed in device-independent units.
- columnA column is a vertical subdivision of a .NET MAUI Grid used to position child views.
- menu bar items collectionMenuBarItems is a .NET MAUI application property containing MenuBarItem objects that define a desktop menu.
- multiwindowingA multiwindow interface is an application interface that supports multiple independently managed windows.
- handler mappingA handler mapping is a customization definition that associates a view property or other key with logic for modifying its platform-specific handler.
- handlerAn event handler is a method that executes in response to an event raised by a software component.
- business logicBusiness logic is software logic that represents an application's business rules, processes, and decisions.
- viewmodel-first approachA viewmodel-first approach is an application-building technique that establishes functional viewmodel behavior before constructing the corresponding view.
- triggerAn event trigger is a .NET MAUI trigger that responds to an event raised by a control and does not automatically revert its applied change.
- reuseCode reuse is the practice of using existing software logic or source code across multiple applications, components, or target platforms.
- IHttpClientFactoryIHttpClientFactory is a .NET dependency-injection service for creating configured HttpClient instances and managing their underlying handlers.
- navigation stateNavigation state is the data associated with the current or requested navigation destination and its transition.
- ContentViewContentView is a .NET MAUI view that displays a single content object and can provide the visual basis for a templated control.
- custom stepper controlA custom stepper control is a user-defined interface control that displays a numeric value and provides controls for increasing or decreasing it.
- application identifierA bundle identifier is a case-sensitive reverse-DNS identifier that uniquely identifies an application package on a target platform.
- device-independent unitA device-independent unit is a display-size unit adjusted for screen density to provide approximately consistent physical sizing across displays.
- WeakReferenceMessengerWeakReferenceMessenger is a .NET Community Toolkit messaging component that delivers messages to recipients through weak references.
- SearchBarSearchBar is a .NET MAUI control that accepts search text and can expose a command for initiating a search.
- StepperStepper is a .NET MAUI control that lets a user adjust a numeric value using increment and decrement controls.
- validationValidation is the process of checking user-provided data against validity rules and informing the user when the data is invalid.
- desktop application layoutA desktop application layout is an interface arrangement optimized for large screens, pointer input, and desktop interaction conventions.
- MenuFlyoutItemMenuFlyoutItem is a .NET MAUI menu item that displays text and exposes actions through events or commands.
- OpenWindowOpenWindow is a .NET MAUI application method that displays a supplied window instance.
- SceneA Scene is an iOS or Mac Catalyst running instance of an application that manages its windows and user interface.
- SceneDelegateSceneDelegate is an iOS and Mac Catalyst delegate object that coordinates the lifecycle and configuration of an application scene.
- windowA window is a .NET MAUI top-level display container that hosts a page and can be opened as an application window.
- hierarchical navigationHierarchical navigation is a navigation pattern in which pages are organized in parent-child levels and users move through that hierarchy.
- .NET.NET 7 is a major release of Microsoft's .NET software development platform and runtime.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
