The quick stuff
- Tope over at AppDesignVault has a cheat sheet for getting your app reviewed on the major websites (TUAW et al). I plan on try his tips when I'm done with the major rework of Trip Wallet that I'm nearly done with.
- Meng To has a lovely visual guide on how to design for Android devices, including back buttons, the major resolutions, and proper use of the action bar. Well worth a read.
And now the major stuff!
Today, Xamarin launched a host of new stuff for mobile developers - Xamarin 2.0.
A re-designed and re-thought out version of MonoDevelop, now called Xamarin Studio. It takes a lot of its look and feel from Xcode, but without the complexity. At its core, it's still MonoDevelop, but it feels like a whole new beast.
MonoTouch is now Xamarin.iOS, and Mono for Android is now Xamarin.Android. Xamarin.Mac was a good indication of where and why this was going in the direction it was going. This divorces the Mono brand (which I think Xamarin doesn't own) from the products.
Each one now has three editions: Starter, Indie and Business. Business is the old professional, and is licensed per seat. It's everything. Indie is targeted at individuals who are putting apps in the store (like me), and is licensed to a person. There is no Visual Studio support or LLVM. Starter is the free version, which now allows you to do on device deployment, with a few limitation. If you had a professional license, you now have a Business license, but I suspect you can change it when you upgrade again. All the pricing has changed, too, so check the site if you had discounted these tools because of the cost. (the old 5% discount I used to have isn't working now, but I'm told it'll be coming back - talk to me or Xamarin sales if that was a deal breaker)
[Updated]: If you bought MonoTouch/Mono for Android, you get upgrades at the existing, pre-Xamarin 2.0 price ($249.00?) - no expiry date. More info in the FAQ.
All of the products now support on-device deployment with the free Starter Edition. You can use the starter edition to build real apps, and deploy them to your own devices or the AppStore. There is a limit on size (32k of IL, no P/Invoke), and you don't get the LLVM optimisations, but for smaller projects or people testing the waters, this is ideal.
The new Component Store is a nice way to find and get Xamarin.iOS and Xamarin.Android components - I've put BTProgressHUD up there - and it's been approved already. It's not a replacement for something like NuGet, but it's a nice discovery tool. If you put your components in there, you can charge for them too - Xamarin handles the payment, you get 70%. The component store even includes some skins and non-code resources to help make your apps look great.
All the dll's (monotouch.dll etc) are now signed, so you can also sign your own assemblies. The down side of this is that a lot of things need to be recompiled against the signed version, but you only have to do this once.
I'm told, lots of bug fixes. Lots and lots of bug fixes, which is another way of saying polish. It was a stable and polished product before, now it's even more so.
For those wondering, it does not including C# 5 async support. This is in Mono 3.x, but Xamarin.iOS and Xamarin.Android have their own internal Mono version, which is in the process of being upgraded. Watch the space, because async/await is so incredibly useful for mobile development.
I've been using Xamarin Studio full time for the last few months (thanks Xamarin!), and it's rock solid and stable. If you are used to Visual Studio and found MonoDevelop hard to use, then it may not change your mind, but if you liked MonoDevelop, Xamarin Studio is a nice evolution of that. Just not having to have a 100GB VM sitting on my SSD was enough for me to persevere with it, and now I love it.
The other huge new feature is that Xamarin.iOS now officially works inside Visual Studio. No more hacking the project files and copying over monotouch.dll - it works out of the box, including doing builds and deploying to your device.
This works by communicating to a service running on your Mac, which does most of the hard work of building and deploying - yes, you still need a Mac, there is (and never will be) no way around this. But on the up side, you get to use Visual Studio, Resharper, and all the tools that most .NET developers know and love.
The model is either a VM (windows) on a Mac (running the service), or a separate windows machine communicating over the network to a remote Mac. Either will work, but you can't share the Mac between developers (that would be a license nightmare).
(Personally, I'm sticking with Xamarin Studio - I've got very used to it in the past 2 years, and I don't have any major issues with it, but I know a lot of people who much, much prefer Visual Studio)
All up, outstanding work from all the folks at Xamarin - this has been a while in the making, and it's great to see it released!
Hope to see you at Xamarin Evolve in April!