Developing bindings, tools and a platform for developers to create mobile applications is an especially challenging task, sitting as it does in between two complex blocks of code - the system platform and the application - translating and mediating every interaction, providing services and extra features, all this while striving to keep a low profile and provide a seamless experience to developers and users.
In this talk we'll take a look inside this challenging task, throwing back the curtain to reveal what goes on inside Mono for Android and how it integrates with the Android platform. How does it work? How are java libraries bound? How does the GC work (and how many GCs are you really running)? We'll see how the runtime and platform code work, how it all comes together, and also how it all comes apart sometimes and breaks, too - we'll take a look at some of the tiniest changes in Android that gave us the biggest headaches, how memory management can really ruin your day, and why you really have to be wary of emulators.
In the end, you'll hopefully come away with an extra bag of tricks and tips, a much better idea of what your code is doing behind the scenes, and had fun in the process.