Inside Xamarin: Helping Windows developers build for iOS and Android
With smartphones and tablets rapidly becoming the most common computing devices in our lives, you’re likely to want to start building your own mobile apps. You could start with the web: HTML5 applications work well on mobile devices, especially when wrapped as standalone apps using tools like WebWorks and PhoneGap. But for real power you’re going to need to build a native app, one that can take advantage of the speed and capabilities of today’s devices.
That’s where the dilemma comes in. Do you want to build iOS apps in Objective C, Android apps in Java, or Windows Phone apps in C++? All have their idiosyncrasies, and their learning curves – and that means code you develop for desktop applications will be tricky to port. That’s all very well for large development teams, but how does the solo developer support the largest number of users and devices as possible? While write-once, run-anywhere is an impossible dream, what you really need is a single development language and environment with support for each mobile platform’s native features.
That’s where Xamarin comes in, with its Xamarin 2.0 toolset. Built around Microsoft’s C# language, it uses Xamarin’s open source Mono framework to deliver C# applications on iOS, Mac,use and Android as well as Windows. Unlike other cross-platform frameworks Mono doesn’t assume you’ll be using the same user interface components on each device. Instead Xamarin 2.0 is focused on letting you support core code and business logic across platforms, and then building a native user experience on top of your code. Think of it as build once, customize many times.
C# is a popular language, even though it’s focused on Microsoft’s .NET platform. Coming from a heritage that goes back through Delphi to Turbo Pascal, it’s designed for rapid application development – and for apps that work with remote web services. It’s also easy to learn, with syntax that’s familiar to developers coming from raw metal languages like C++, from interpreted code like Java, and from scripting languages like Perl and Python. It’s been my go to language for application development since the early days of .NET, and recently added language features make it well suited for mobile apps that need to communicate asynchronously with remote web services.
We spoke to Xamarin co-founder and CTO Miguel de Icaza about the latest version of the company’s tools and how users were taking advantage of it. De Icaza described the Xamarin strategy simply: “We’re bringing C# to mobile and to Mac”. He went on to give more detail, “We’re supporting native experiences on different devices, taking advantage of their UI models and integrating with their operating systems”.
This week, a National Transportation Safety Board judge dismissed a $10,000 fine that the U.S. Federal Aviation Administration had lodged against a photographer who had used a drone to take aerial photos for the University of Virginia. The judge found that the FAA hadn't actually issued any enforceable rules regarding the use of commercial drones.
If you've got a Windows XP machine -- either at home or in the office -- consider yourself lucky. In the past, you'd upgrade to a more recent Windows operating system without a thought. Today, you have many options.
It's designed for the 3.5 billion people who have feature phones today. It solves technical problems Google is not interested in and is a better fit for the pre-paid phones popular in developing countries. The only trick is getting developers on board.
The cloud has overcome a lot of its technical challenges, especially when it comes to security. But the biggest problems in cloud computing now are cultural.