Gone Mobile
00:00:00
/
00:53:37

89: Bound for greater Bindings

January 12th, 2024

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

Episode Comments