Xamarin is today announcing version 2.0 of its cross-platform mobile development framework, which allows developers to develop native apps for iOS, Android, and Windows Phone from a single codebase.
The updated platform, which is used by Rdio, WebMD, and NASA, among others, introduces new support for Microsoft Visual Studio, an integrated development environment (IDE); a Xamarin-built IDE; and the Component Store, a marketplace for code snippets meant to help Xamarin customers streamline their software development.
“With our platform you can share, on average, about 75 percent of your code between operating systems,” says Xamarin co-founder and CEO Nat Friedman. He calls this the “business logic” of an application, and says that all of the user interface elements of an app are developed with code native to each platform, allowing developers to optimize the user experience for iOS, Android, and Windows Phone.
Xamarin 2.0 allows developers to write their apps in Visual Studio, Microsoft’s IDE (think Xcode, but on Windows). Developers will have to use somewhere between development and deployment, thanks to Apple’s restrictions on the App Store, but besides that they will be able to use Visual Studio for all of their development needs. Eighty percent of Xamarin customers use Visual Studio for software development, Friedman says, and supporting the tool allows Xamarin customers to use their preferred development tool.
For developers who want to branch out and try a new tool, however, Xamarin has developed its own IDE, Xamarin Studio, for Xamarin 2.0. “We basically created a new, vastily simplified service tailored for mobile development,” Friedman says. Xamarin Studio integrates with TestFlight, which allows developers to deploy beta versions of their apps to testers, the iOS and Android simulators that allow devs to try an app on their PC, and WiFi-based deployment, which allows them to give their app a go on the device proper without having to tether to a computer and connect to another tool.
Releasing Xamarin Studio goes a long way towards making Xamarin a one-stop solution for developers. The company is hedging its bets and allowing devs to use the tools they know, as demonstrated by the new Visual Studio support, but it isn’t hard to imagine a Xamarin developer writing almost exclusively in Xamarin Studio. Unfortunately, that “almost” is important — an iOS app will have to pass through Xcode at some point, which limits any non-Xcode IDE.
The most interesting aspect of Xamarin 2.0 is the Component Store, a marketplace baked into Xamarin Studio that allows developers to use others’ code in their own applications.
“Again and again you see people reinventing the wheel,” Friedman says. Developers will devote their energies to building a tool or screen that has already been built many times over — a waste of time and effort, in Friedman’s eyes. The Component Store, which ships with 36 components — user interface features, SDKs, and simple-yet-near-ubiquitous features, so far — is Xamarin’s solution to that problem.
Developers will be able to download components, along with instructions and code required to make the component perform as advertised, with a single click, Friedman says. A process that may have taken hours, days, or weeks of development could be finished in a matter of minutes. That’s the hope, anyway.
Installing a pre-built user interface kit or using someone else’s code to perform a mundane function within an application could save time in the short-term, but long-term it seems that developers are the type of people who would rather know who wrote every single line of code in their application, “reinventing the wheel” be damned. Potluck code might get the job done, and it will be interesting to see how the Component Store evolves over the next few years, but it’s not an end-all solution for developer woes.
These features, combined with a new free tier Xamarin is introducing in conjunction with Xamarin 2.0, make for a powerful platform that allow developers to build mobile apps without worrying about the stress involved with developing for multiple platforms. The platform is especially attractive to Microsoft developers, Friedman says, who have largely been forgotten after the rise of mobile. Mobilizing (pun intended) these developers and giving them the tools to develop for iOS an Android — in their preferred environment, if they are trained to use Visual Studio — is one of Xamarin’s goals for its platform.
The other? To help developers develop and deploy applications without having to rewrite thousands of lines of code for each platform while preserving the native experience. Xamarin 2.0 brings the company that much closer to realizing those goals, and Friedman says that the Component Store in particular has the potential to make a genuine difference to software developers.
Of course, there are other ways for developers to deploy software across platforms. There are Web-based applications, championed by companies like Sencha and Mozilla; Adobe AIR apps, which are popular among game developers; and then there are other cross-platform development tools, like the Appcelerator-developed Titanium, which is said to power over 50,000 applications. Xamarin is far from the only tool meant to solve developing for multiple platforms, and, in some cases, doesn’t support as many operating systems (think BlackBerry) as other solutions.
That’s why the tools announced today are so important. Xamarin can’t promise to deliver to the most platforms, or to support the most code languages, but it can allow developers to write in a language they already know (C#) in an IDE that they’re used to (Visual Studio) or a brand-new tool built specifically for mobile development. This is versatility rooted in legacy, a modern tool built on top of old solutions to solve a common problem. Xamarin 2.0 isn’t the only way to develop for multiple platforms, but if the new Visual Studio support, Xamarin Studio, or the Component Store fit a developer’s workflow, it could just become their tool of choice.