Log in

goodpods headphones icon

To access all our features

Open the Goodpods app
Close icon
Gone Mobile - 88: Return of Gone Mobile and the State of .NET MAUI

88: Return of Gone Mobile and the State of .NET MAUI

01/05/24 • 48 min

Gone Mobile

Summary

In this episode, Jon and Allan discuss the state of .NET Maui, the challenges of mobile development, and the benefits of using Blazor WebView in Maui apps. They also talk about the evolution of the Mono runtime, the use of handlers in Maui, and the transition from custom renders to source generators. Overall, they highlight the improvements and advancements in the .NET Maui framework and its potential for creating cross-platform mobile apps. In this episode, Jon and Allan discuss app profiling and performance optimization, highlighting the use of tools like DS router and DS dotnet trace to profile apps and identify performance issues. They emphasize the importance of measuring and optimizing early in the development process to avoid potential problems. The conversation then shifts to the introduction of a new segment called 'Plugin Package or Product,' where they showcase a library called compiled bindings that enhances the XAML experience by providing additional operators and reducing verbosity. They express their interest in incorporating such concepts into the core product. The episode concludes with a call to action for listeners to subscribe, leave reviews, and provide topic suggestions for future episodes.

Takeaways

The .NET Maui framework has made significant progress, with improvements in tooling, performance, and support for modern mobile app development.
Blazor WebView in Maui allows developers to leverage their existing Blazor skills and codebase to build hybrid mobile apps.
The transition from custom renders to handlers in Maui simplifies the development process and improves performance.
Source generators in Maui enable automatic code generation, reducing the need for manual coding and improving productivity. App profiling and performance optimization are crucial for identifying and resolving performance issues in apps.
Tools like DS router and DS dotnet trace can be used to profile apps and gather trace files and speed scope logs for analysis.
Early measurement and optimization can help prevent performance issues and improve the overall user experience.
Compiled bindings is a library that enhances the XAML experience by providing additional operators and reducing verbosity, making it easier to work with XAML.

Plugins, Packages, and Products

This week we're talking about Compiled Bindings: https://github.com/levitali/CompiledBindings which provides {x:Bind} Markup Extension for WPF, MAUI and Xamarin Forms.

Chapters

  • 00:00 Introduction and Changes to the Podcast
  • 06:17 State of .NET Maui
  • 09:24 Dependency Injection in .NET Maui
  • 11:12 Evolution of the Mono Runtime
  • 13:14 Challenges of Mobile Development
  • 19:22 Long-Term Release of .NET Maui
  • 21:20 Blazor Hybrid App
  • 23:43 Benefits of Blazor WebView
  • 25:49 Mixing Blazor and Maui
  • 31:35 Handlers in .NET Maui
  • 35:13 Porting Custom Renders to Handlers
  • 37:03 Source Generators in .NET Maui
  • 38:56 App Profiling and Performance Optimization
  • 41:29 Plugin Package or Product: Compiled Bindings
  • 47:04 Closing Remarks and Call to Action

Links:

plus icon
bookmark

Summary

In this episode, Jon and Allan discuss the state of .NET Maui, the challenges of mobile development, and the benefits of using Blazor WebView in Maui apps. They also talk about the evolution of the Mono runtime, the use of handlers in Maui, and the transition from custom renders to source generators. Overall, they highlight the improvements and advancements in the .NET Maui framework and its potential for creating cross-platform mobile apps. In this episode, Jon and Allan discuss app profiling and performance optimization, highlighting the use of tools like DS router and DS dotnet trace to profile apps and identify performance issues. They emphasize the importance of measuring and optimizing early in the development process to avoid potential problems. The conversation then shifts to the introduction of a new segment called 'Plugin Package or Product,' where they showcase a library called compiled bindings that enhances the XAML experience by providing additional operators and reducing verbosity. They express their interest in incorporating such concepts into the core product. The episode concludes with a call to action for listeners to subscribe, leave reviews, and provide topic suggestions for future episodes.

Takeaways

The .NET Maui framework has made significant progress, with improvements in tooling, performance, and support for modern mobile app development.
Blazor WebView in Maui allows developers to leverage their existing Blazor skills and codebase to build hybrid mobile apps.
The transition from custom renders to handlers in Maui simplifies the development process and improves performance.
Source generators in Maui enable automatic code generation, reducing the need for manual coding and improving productivity. App profiling and performance optimization are crucial for identifying and resolving performance issues in apps.
Tools like DS router and DS dotnet trace can be used to profile apps and gather trace files and speed scope logs for analysis.
Early measurement and optimization can help prevent performance issues and improve the overall user experience.
Compiled bindings is a library that enhances the XAML experience by providing additional operators and reducing verbosity, making it easier to work with XAML.

Plugins, Packages, and Products

This week we're talking about Compiled Bindings: https://github.com/levitali/CompiledBindings which provides {x:Bind} Markup Extension for WPF, MAUI and Xamarin Forms.

Chapters

  • 00:00 Introduction and Changes to the Podcast
  • 06:17 State of .NET Maui
  • 09:24 Dependency Injection in .NET Maui
  • 11:12 Evolution of the Mono Runtime
  • 13:14 Challenges of Mobile Development
  • 19:22 Long-Term Release of .NET Maui
  • 21:20 Blazor Hybrid App
  • 23:43 Benefits of Blazor WebView
  • 25:49 Mixing Blazor and Maui
  • 31:35 Handlers in .NET Maui
  • 35:13 Porting Custom Renders to Handlers
  • 37:03 Source Generators in .NET Maui
  • 38:56 App Profiling and Performance Optimization
  • 41:29 Plugin Package or Product: Compiled Bindings
  • 47:04 Closing Remarks and Call to Action

Links:

Next Episode

undefined - 89: Bound for greater Bindings

89: Bound for greater Bindings

This conversation discusses the concept of bindings in a mobile.NET, Maui world. Bindings are used to integrate native libraries into the.NET ecosystem. The conversation covers the challenges and complexities of creating bindings for Android and iOS platforms. It explores the differences between Android X libraries and platform APIs. The concept of slim bindings is introduced, which involves creating a simplified interface for interacting with native libraries. The conversation also touches on the use of platform channels for message passing between.NET and native code. The future of bindings and the need for improved tools and processes are discussed. The conversation discusses the challenges and considerations when integrating platform channels in Xamarin projects. It explores the difficulties of referencing native frameworks and dependencies in Xcode projects and suggests the need for improved tooling to simplify the process. The conversation also delves into the complexities of handling AndroidX dependencies and the potential issues with duplicate libraries. Additionally, it highlights the concept of platform channels in Maui and the potential for creating a seamless integration experience. The recommended plugin for this episode is Xamarin Binding Helpers.

Plugins, Packages, and Products

This week we're talking about Xamarin.Binding.Helpers which helps make it easier to create slim bindings on Android, as well as Platform Channels which is an experiment for creating a message passing interface between native code and .NET MAUI apps.

People

  • Hosts: Jon Dick, Allan Ritchie
  • Audio Engineer: Jim Heath

Chapters

  • 00:00 Introduction
  • 01:09 Understanding Bindings in a Mobile.NET, Maui World
  • 02:00 Projections of Native APIs into the Managed.NET World
  • 03:41 The Evolution of Bindings
  • 04:06 The Challenge of Android X Libraries
  • 05:00 Dealing with Bindings in Xamarin
  • 06:07 The Complexity of Android Libraries
  • 07:03 Creating Android Bindings
  • 07:30 The Process of Android Binding
  • 08:16 Challenges with Java and Kotlin Libraries
  • 09:08 Handling Complex Inheritance in Java and Kotlin Libraries
  • 10:22 The Sprawl of Android X Libraries
  • 11:31 The Challenges of Binding Android X Libraries
  • 12:09 The Simplicity of Binding Platform APIs
  • 13:16 The Differences Between iOS and Android Bindings
  • 14:22 Creating iOS Bindings
  • 15:48 The Challenges of Objective-C and Swift Libraries
  • 18:36 The Need for Slim Bindings
  • 20:00 The Challenge of Dependency Chains
  • 21:54 The Concept of Slim Bindings
  • 23:46 The Advantages of Slim Bindings
  • 27:11 Determining When to Bind the Whole Library
  • 29:34 Debugging Slim Bindings
  • 34:52 The Concept of Platform Channels
  • 38:58 Performance Considerations of Platform Channels
  • 40:37 The Future of Bindings
  • 40:46 Integration with Xcode Project
  • 42:41 Challenges with Tooling
  • 46:48 Handling AndroidX Dependencies
  • 50:15 Platform Channels in Maui
  • 53:00 Plugin Recommendation: Xamarin Binding Helpers

Links:

Episode Comments

Generate a badge

Get a badge for your website that links back to this episode

Select type & size
Open dropdown icon
share badge image

<a href="https://goodpods.com/podcasts/gone-mobile-433688/88-return-of-gone-mobile-and-the-state-of-net-maui-59415365"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to 88: return of gone mobile and the state of .net maui on goodpods" style="width: 225px" /> </a>

Copy