Digital Ruby Software – Home

Greetings. I’m Jeff Johnson and I founded Digital Ruby in 2009 in order to learn how to run a software company, teach myself mobile programming and expand my skills and knowledge. I craft iOS apps, websites and server software.
My latest blog post:

Using Xamarin to put You Doodle on Android

Aug 27, 2015

A few months ago I started using Xamarin to create You Doodle for Android. Then I got really sick with H-Pylori and had spinal fusion back surgery and lost a few months. Now I’m to the point I can work a little again and I’ve picked up where I left off.

Xamarin business edition lets you use Visual Studio on Windows to develop for Android. This is an ideal environment for high productivity and enjoyable development. I’ve even been pretty productive on my 5K iMac using Xamarin Studio to develop as well, although Visual Studio is still the preferred development tool. If you go with the indie edition, Xamarin Studio is what you will have to use. It’s not a bad IDE, but Visual Studio is better.

I’ve been impressed with how well Xamarin wraps the native Android libraries and exposes the same user interface builder and tools that Android Studio does. It sure is nice to be able to use C# instead of Java. In addition, I am making a Portable Class Library with a lot of shared code that I will hopefully be able to re-use on the MAC and Windows versions of You Doodle down the road. I’ve learned from the way I made the iOS version of You Doodle of where some architectural problems are and I’ve been able to correct those. The new version of You Doodle on Android will have proper layers for example.

Xamarin has even allowed me to use unsafe C# code to get that extra performance, which is really important when manipulating bitmaps, copying memory around, or doing a blur on the CPU. Accessing native C functions like memcpy is a snap with DllImport. Speaking of which, here’s a snippet on importing the Android memcpy function:

public static class PInvokeAndroid
{
    [System.Runtime.InteropServices.DllImport("libc")]
    public static extern void memcpy(IntPtr dest, IntPtr src, uint count);
}

All in all, I would highly recommend Xamarin to anyone. I do wish they would tweak their licensing a little (such as giving Visual Studio to the indie edition), but even so I believe they are the best tool for cross-platform native app development as of August 2015.

0 Comments

Recent articles…