Nat Friedman and Joseph Hill from Xamarin join us for several big announcements: Xamarin Studio, Xamarin Component Store, iOS development in Visual Studio, and a new free Starter edition.
Download / Listen:
Herding Code 158: Nat Friedman and Joseph Hill announce Xamarin 2.0 [audio://herdingcode.com/wp-content/uploads/HerdingCode-0158-Xamarin-2.mp3]
Show Notes:
- (00:45) Nat begins by catching us up on Xamarin’s first eighteen months.
- Xamarin’s focus is on helping developers build mobile apps across multiple platforms.
- They have 230,000 developers in their community, adding 700-800 per day, with over 12,000 paying customers.
- They’ve had top iPad (Bastion), music apps (Rdio) and some large mission critical line of business apps.
- What’s special about their platform is that you can target iOS, Android, and Windows Phone, share C# code across all those platforms, and still deliver a native experience.
- Nat say’s they’re the overnight success that took ten years to prepare, referencing the ten years they took to build Mono.
- (03:20) Xamarin’s value proposition and customer base
- Kevin asks which of their value propositions (.NET based development, cross-platform development) resonates more with users.
- Nat says that many developers are initially attracted by C# development, although that’s not always the case (referencing an internal app at GitHub written by Objective-C developers who just liked sharing code between platforms).
- Nat says there’s no real way to be a mobile developer now without having a cross-platform strategy – iOS might have looked like the only platform that mattered a few years ago, but now Android is more popular and Windows Phone is growing in popularity.
- (04:47) Code reuse strategy
- Kevin asks how the code reuse happens, since these are true native applications.
- Nat talks about different cross-platform strategies and says that they don’t believe in write once, run anywhere.
- With Xamarin, you separate the backend and UI code and write specific UI code for each platform, although you still write it in C#.
- Rdio has over 150,000 lines of code which are shared between iOS, Android and Windows which covers networking, caching, authentication, etc.
- (07:55) First big announcement: Joseph Hill announces support for building for iOS applications in Visual Studio.
- Nat says that you can have one Visual Studio solution targeting iOS, Android and Windows Phone, and step through the code with the full debugging support you’re used to.
- How does the Mac support work?
- Scott K asks if this means that you have to run Visual Studio on a Mac. Nat says that’s not necessary, you just need to pair your Visual Studio instance with a Mac – it just needs to be on the network somewhere. That’s required both to be able to sign releases and to meet Apple’s license terms.
- Jon asks if this would work with a Mac Mini, and Nat says that’s a popular option.
- Scott K asks about a "Mac in the cloud" option; Nat says they’re not planning that.
- Kevin asks if several developers could share one Mac. Nat says that Apple’s requirement is that each developer is supposed to have a license, and Joseph says that the Apple toolchain is build for single user rather than server support.
- Jon ask if he can start playing with iOS support without having a Mac, Joseph explains that you can install and look around a bit, but you can’t build or deploy.
- Kevin asks about the Interface Builder interaction.
- Kevin asks if it was incredibly painful to set up this support for Visual Studio.
- (16:14) Second big announcement: Nat announces the release of Xamarin Studio.
- Xamarin Studio runs on OSX, Windows, and Linux.
- It’s based on Mono Develop, but it’s a completely new user interface with a lot of great new features.
- Visual Studio Express users can’t install extensions so Xamarin Studio allows them to do Xamarin development, also it’s what all Mac users will be using.
- Kevin asks if it’s a fork of Mono Develop.
- Kevin asks if Xamarin Studio is open source.
- Jon asks how it was developed. Joseph says it’s still C# Mono code using GTK. Developers write Xamarin Studio in Xamarin Studio.
- K. Scott asks if you can target non-mobile scenarios. Joseph says you can still target ASP.NET, console, class libraries, etc.
- Kevin asks what happens to Mono Develop. Nat says it continues as an open source project, and they’ll contribute back to it as they develop Xamarin Studio.
- (22:35) Xamarin as a Mono producer and consumer
- Jon says it’s interesting watching the evolution of the Mono / Xamarin efforts as they’ve moved from supplying the Mono framework to being both building Mono and building a business on Mono.
- Nat says it’s great working for a customer base rather than an opinionated crowd. "A really good signal that we’re doing good work is that people give us money for it."
- Joseph talks about their model, explaining how their Xamarin business works well with their role as stewards of the Mono project.
- (25:28) Third big announcement: Nat announces the Xamarin Component Store
- Nat says they see developers solving the same problems over and over again, giving an example of a common requirement for a signature capture control.
- The Xamarin Component Store is a library of pre-built components. Nat gives an example of an Azure Mobile Service component.
- It works in both Visual Studio and Xamarin Studio.
- Components include documentation, screenshots, and sample projects. Nat says it’s conceptually similar to NuGet, but gives you a lot better experience and makes it easier to get started.
- There are a lot of component vendors who are contributing both free and paid components, and Xamarin has also contributed several based on their experience in supporting Xamarin developers.
- Jon asks how they handle cross platform, native user interface with components.
- Kevin asks how people can submit components to the store.
- Nat says he thinks this will really be a compelling feature of their platform, since developers won’t have to build everything from scratch.
- Kevin asks they handle purchases and vender payments.
- Kevin asks if the components are curated.
- Jon asks about component support for Android and Windows Phone.
- Kevin asks if it’s possible to create Xamarin components using native Objective-C components. Nat says they support both Objective-C and Java code reuse.
- Jon says the design on the Xamarin Component store website looks great and asks about Xamarin’s approach to design. Nat says that they’re selling a good design experience and design is an important part of that.
- Kevin says he like hover screenshots, Nat says he really likes the hover menu control.
- (39:35) Fourth big announcement: Nat announces the free Xamarin Studio Starter Edition
- You can use Starter Edition to get started, build, and deploy applications.
- Starter Edition is limited to 32KB of IL code.
- Jon loves the idea of limiting the free edition based on compiled code size.
- Kevin asks what kind of app will fit in 32KB. Nat says that using a lot of DLL’s will put you over the limit quickly, but images aren’t content. About 20% of the apps in the store would fit under the limit.
- Joseph says they didn’t want to limit based on features. Jon talks about the frustration people see in Visual Studio version based feature limitations. Nat says pricing is hard; ultimately they want to get a lot of people using Xamarin and they think this is a good way to do that.
- (44:53) Jon asks about support for languages other than C#.
- Nat says they see people using F# and Java (using IKVM).
- Joseph says that C# is their main focus – all the documentation is in C# – but they’re happy to see people using other languages.
- Kevin asks for JavaScript support. Nat says they think it’s hard to build large scale apps in JavaScript.
- (47:35) Nat talks about their upcoming developer conference.
- The first two days are focused completely on training.
- The second two days feature some great talks by community leaders, user interface designers, and more. The entire team will be on hand to answer questions.
Show Links:
- Nat Friedman (site, @NatFriedman)
- Joseph Hill (blog, @JosephHill)
- Xamarin
- Announcing Xamarin 2.0 (Xamarin blog)
- Xamarin Evolve – April 14-17, Austin, TX