Xamarin Blog

An open source mobile platform for building Android, iOS, macOS, watchOS, and tvOS apps with .NET.

Introducing Objective Sharpie
Introducing Objective Sharpie
UPDATED (December 2014): a new overhauled version of Objective Sharpie has been publicly released. The original contents of this blog post have been removed to avoid confusion as the new version is quite different (and that's a very good thing). See you in the forums...
Using custom Fonts in Xamarin.iOS
Using custom Fonts in Xamarin.iOS
Apple introduced a great feature when it released the iOS 3.2 SDK way back in 2009: support for adding custom fonts to apps. Since then, developers have made their apps stand out by using different fonts. Although adding fonts should be a very simple process, developers often express confusion over how to do it for Xamarin.iOS apps. The ...
Producing Better Bindings #4: Signatures
Producing Better Bindings #4: Signatures
This blog post is about producing better bindings of Objective-C libraries for Xamarin.iOS and Xamarin.Mac. Read the series introduction to get a better idea why this is important and how it can save you time and headaches. What can go wrong ? Binding a selector using a correct [Export("")] attribute is only half the job. The .NET ...
Producing Better Bindings #3: Selectors
Producing Better Bindings #3: Selectors
This blog post is about producing better bindings of Objective-C libraries for Xamarin.iOS and Xamarin.Mac. Read the series introduction to get a better idea why this is important and how it can save you time and headaches. What can go wrong ? Binding selectors is largely done using the [Export("")] attribute. As such, it shares a lot ...
Producing Better Bindings #2: Fields
Producing Better Bindings #2: Fields
This blog post is about producing better bindings of Objective-C libraries for Xamarin.iOS and Xamarin.Mac. Read the series introduction to get a better idea why this is important and can save you time and headaches. What can go wrong ? Maybe nothing! Not every library use fields, e.g. there are no fields in the Cocos2D library. However...
Producing Better Bindings #1: Constructors
Producing Better Bindings #1: Constructors
This blog post is about producing better .NET bindings for using Objective-C libraries on Xamarin.iOS and Xamarin.Mac. Read the series introduction to get a better idea of why this is important and how it can save you time and headaches. What can go wrong ? It's not immediately obvious, but Objective-C object initialization (init... ...
Producing Better Bindings for Xamarin.iOS and Xamarin.Mac
Producing Better Bindings for Xamarin.iOS and Xamarin.Mac
For .NET developers with some knowledge of Objective-C, writing .NET bindings for Objective-C libraries is not very hard. It is well documented and several complete examples are available to guide you. Still, the process can be quite error-prone. Many typos and mistakes will only be caught at runtime and only when you use the specific ...
Xamarin Previews C# Async on iOS and Android
Xamarin Previews C# Async on iOS and Android
One of the most requested features we’re hearing at Xamarin these days is support for async in C#.  Today, we are very happy to announce the first preview of async support in our products. The code is available now on the Alpha channel in the Xamarin Updater. First-class support for asynchronicity is a powerful and brilliantly simple...
Android Tricks: Vignette Image Effect
Android Tricks: Vignette Image Effect
The code in this blog post is based on code from Romain Guy's blog. Today, we are going to discuss a really nice effect that you can apply to your ImageView to automatically add rounded corners and extra shadowing to the displayed Bitmap: These effects are based on a couple of Shader classes like BitmapShader, RadialGradient and ...
Android Tricks: Flash Bars
Android Tricks: Flash Bars
The artwork and underlying idea in this blog post is based on Romain Nurik's work. He is a great source to follow for insight into Android application design. The new GMail app that comes with Android 4.0 is full of interesting UI tricks. If you have ever been on dodgy data connection, you probably have already encountered this one that ...