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 (https://github.com/Redth/xamarin.binding.helpers) which helps make it easier to create slim bindings on Android, as well as Platform Channels (https://github.com/Redth/Microsoft.Maui.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