Announcing Xamarin 2.0
blog.xamarin.com
blog.xamarin.com
Any comments from Miguel or anyone from Xamarin?
That said, the Indie edition is something that a lot or people were asking for and the price is attractive. The components look good too. I think its going to be a big success.
Edit: See Nat Friedman's response below [1]. Existing Pro subscribers are automatically upgraded to Business and can renew at their existing renewal price. This is described in the FAQ [2] which I didn't read far enough down.
Hope that helps :-)
I had a lot of updates over the last year and was very satisfied with the value for money that I got.
A cross platform, non-allied company like Xamarin doesn't benefit from that back door revenue as they make no money from my app.
It is a tough bill to swallow but the problem seems to be our perspective, free wasn't always free. $399 was a young company trying to gain traction with a small team and if we want bigger, faster, stronger then it costs.
Sucks, but after 10+ years of consulting in the Windows space I realize that cross-plat mobile is my next 10 years and in that light, 1K is not that bad.
Our lowest tier, previously, cost $399. Now it costs $299.
Our highest tier, previously, cost $2499. Now it costs $1899.
old: 999 first time and 599 for upgrades for "enterprise", 399 first and 249 for upgrades for "professional" and company with 10 or less people;
new: flat rate 999 for any companies (2+ people) and 299 (only for single person)
Sorry this may sound bitchy , I just don't like price-ups as I live in a location where inflation is killing me (and the salary is like half of what US rates are so software are twice as expensive in that thinking).
I am not against price ups and it's always better to be an early customer, but one a longer run, new customers (or existing customers as well if they don't get the upgrade price after the first renewal) is definitely paying more. That greatly affects small businesses because they can no longer use lower tier one just to get the juices with cross-platform joy on a more affordable rate.
http://www.youtube.com/watch?feature=player_detailpage&v...
VS2012 integration w/OSX build host. Oh yeah.
Pricing changes have positives and some potential major negatives - In my eyes the "pay money to get started" approach served as a nice filter against pathological customers/mechanism to balance signal to noise. The introduction of a free tier generates mixed feelings within. Xamarin please, please don't allow the inevitable eternal september that will follow to become a distraction.
Seen it happen it happen a few times - forums/support become overrun with noise and the companies were inadequately prepared staffing wise for the eternal september, with staff unable to keep up the resulting quality of product/support dropped considerably.
From a different perspective the introduction of a free their now makes the toolchain available to those whom could not possibly pay for it - students and countries with weaker purchasing power. (where $xxxUSD is equates to x months/a years wage)
Kudos to Miguel and the rest of the Xamarin team, the update looks amazing.
What damage, exactly? I don't think Linux adoption is in any way harmed by the removal of all Mono packages from the default installs of several distros.
> Mono is now the most popular game and one of the most popular app development environments
I find that a bit hard to believe unless you are talking about cross-platform mobile game development.
edit: Would be quite awesome if they somehow incorporated the Mono runtime on the new Playstation as well for indie development. Here's for wishful thinking!
As far as I remember, the problem was that the Mono libraries took far too much space on the CD to justify it for one or two applications...
You'd be surprised.
Last time i tried to get MonoDevelop with those Android tools to check out cross-platform app development with Mono and it's a no-go. Now Xamarin Studio appears to be Mac and Windows only. Very disappointing!
It's true that we don't currently have a version of the Mono-for-Android addin available for the Linux versions of MonoDevelop, though.
The MonoDevelop rewrite (Xamarin Studio) also has a clean, fresh and fast feel to it. I cannot say that X is empirically faster or better but the experience does feel better overall.
I think they are heading in the right direction here and the holy grail for breaking strongly into the enterprise may be the ability to build for iOS without the need for a Mac. It is not there yet but you can see the direction they are going and how that will likely come to pass at some point.
http://7sharpnine.com/posts/monotouch-and-fsharp-part-i/ http://7sharpnine.com//posts/monotouch-and-fsharp-part-ii/
I'm still waiting for part 3 if Dave is reading :-)
We have built on the great work that the F# community has done and will be shipping it in future versions of the product.
We are looking at a beat of our F# support for March.
I have much respect for Miguel and the other guys at Xamarin. They work on some great stuff, I think C# has a great future for mobile development because of all the work these guys have done.
"No iOS simulator on Windows. The iOS Simulator runs on Mac OS X, so it’s necessary to switch to the Mac’s screen when testing on the simulator."
Visual Studio basically just talks to MonoTouch on a Mac to do the final build steps, to run the Simulator, etc.
I guess you will be able to use a device from Windows, or something like that. Otherwise it won't make sense to provide iOS support for VS.
Correction - you will need a Mac for the final build of the product. VS will connect through network to this Mac ... Not sure if it makes more sense to just use VS as a glorified C# editor. I suppose if you are a hard core VS user it will be easier to do your development from VS.
- 'Xamarin Studio' just a new coat of paint on monodevelop, but it has some nice things in this version; new ui, the autocomplete especially is vastly improved.
- Seems a bit laggy on my mac mini for some reason, which is a bit disappointing, but works fine on my imac. Both mountain lion, so who knows?
- Still no PCL's for macs. :( sigh (yes, you still need to have a separate project for each platform, which includes all the same files).
PCL's are coming. An upcoming Xamarin Studio 4.0.1 will improve PCL support even more - as in, it'll work on Mac, but it won't build true-PCL libraries (it'll link with the Xamarin.iOS or Xamarin.Android BCLs instead of with the true PCL assemblies).
This blog post by Stuart Lodge links to a custom build of MonoDevelop 3.1.1 with my PCL patches if you want to try them out: http://slodge.blogspot.com/2013/02/a-patched-monodevelop-for...
The other question is that, when running on iOS, is it the .NET IL running on top of the runtime, or C# code is compiled into native binary code that can be directly executed on CPU? I'm trying to figure out if there's something like a micro VM running.
There is no virtual machine.
The IL linker operates over the IL code (typically C# produced, but we are working now on adding also F#) and produces the minimal set needed to run.
Then we compile the resulting linked IL to ARM code, and then we run the result using the C linker (so the same removal of unused code takes place, this time for the C bits of Mono).
ls -sl ~/Desktop/HelloWorld.apk
10144 -rw-r--r-- 1 doug core 5191787 20 Feb 23:46 /Users/doug/Desktop/HelloWorld.apkI haven't had a chance to download it and try it out yet, but Xamarin Studio looks amazing. I've long thought that MonoDevelop has a very solid core but little polish- it looks like Studio adds that polish.
"Customers that purchased within the past 90 days may request a partial refund for the price difference between their purchase price and Indie. If you choose to make this downgrade, you will lose access to many great Xamarin Business features you already enjoy, including Visual Studio and email-based support."
Anyone know if debugging C/C++ code on Mac is still unsupported as it is in MonoDevelop 3.0?
It says on http://xamarin.com/Windows that Xamarin does support all three platforms, but I don't see anything about the Xamarin studio there.
Microsoft already provides a complete and capable product for that space.
Not on OS X.
Or does this include some of the iOS extended library (if any?) from Apple?
Sorry if this is a dumb question, I'm not quite familiar with iOS ecosystems.
You can still use all of Apple's APIs and bindings for third-party Objective-C libraries.
Meanwhile, over in Javaville, I can do just about anything Android related my heart desires with Maven and even CocoaPods in its infancy was a better experience than NuGet. Just my 2 cents.
They still don't have a Linux version though, which is disappointing, since I can't try it.
In my experience, 75% of my mobile app code tends to be either working with platform-specific APIs or just quite trivial. Is the potential for code reuse high enough to justify the extra layer of stuff to understand (and potentially break)?
Edit: I can see how being able to use C# is a plus for some people, I guess I'm just slightly skeptical of the cross-platform selling point.
iCircuit http://praeclarum.org/post/42378027611/icircuit-code-reuse-p...
TouchDraw http://lipsky.me/blog/2012/9/11/touchdraw-code-reuse-updated
I wonder how folks are thinking about that problem - i.e., if you are starting a new app from scratch - even if you are doing iOS only initially - do you go objective-c or xamarin/c# ?
it's quite hard to make an educated decision.
any thoughts?
My worry is there are so many nuances in building a rich UI app - that even searching/finding samples online for specific things will make me want to have native/objectiveC elements into it - as opposed to trying to hack the sample in C#. I just want to copy and paste!
How does that native-C# binding happen? Is it user friendly? Is it your expectation that most folks out there will have this duality? (if not most of the UI code being native?)
I am literally sitting on a new idea that will be multi platform by nature and am wondering all these things as we speak here.
For third-party ObjC libraries, a lot of the more popular ones are already bound.
Writing your own C# bindings for ObjC isn't that difficult, but there is a learning curve involved. We're working on making improved tools to automate more of it, though. In the meantime, we've got a guy that is writing the bindings for libraries based on popular demand.
A lot of the bindings can be found here: https://github.com/mono/monotouch-bindings
The other thing I will say is that while there are 1:1 API mappings they have also went out of their way to make some common and rigorous tasks simpler. TableViewSource is one that comes to mind, simplifies the UITableView scenarios.
In my experience, copy-paste development is seldom a recipe for creating high-quality applications. So I do not think you should be worried about not being able to cut and paste code, you will be better off understanding what the code is doing and adapting your code (even if you do so in Objective-C).
As for how the C# binding happens, it is very simple.
Each Objective-C type exists with the same name in C#. You typically use intellisense to navigate the API.
For example, the Objective-C code: [foo addSubview:bar] becomes: foo.AddSubview (bar) in C#
The best thing to do is to follow our tutorials to get a taste for it.
It is simpler to think of Xamarin as providing you with:
* C# language on iOS, Android, Mac * 1:1 API bindings to whatever is native on a given platform. On iOS, the CocoaTouch APIs, on Android, the Android APIs, on Mac the Cocoa/CoreFoundation-based APIs.
From this basic setup, you can already see that you wont get code that will run on all platforms. You will need to split your code into cross-platform code (database access, web services, xml, json parsing, offline caches, authentication) and things that are UI-specific (Android activities, Android widgets, iOS View Controllers, and so on).
This actually is the reason I keep away from Xamarin, and I guess I'm not alone...
I think that there is a room for having a cross-platform lowest-common-denominator, including UI, File system, Networking, etc... with ability to dive into platform specific details when needed.
But it also supports the full experience for each platform.
At least, that's my understanding and OP (Miguel) confirms it. And I guess your mileage won't vary in this aspect ;)
Although, Xamarin.Mobile is a step in the right direction, as commented here.
Yes, but they do offer a "base" abstraction layer besides the C# libraries, that includes stuff like GPS access, accelerometers, etc.
As for the UI part, one could use a Webkit View as the view, and link the various heavy actions to C# code. For something like a common denominator UI, for a simple calculator or some form based stuff, it would be perfectly fine.
I think for me, having a decade plus of C# experience this was a no-brainer. Moving from building web apps to mobile on a new platform was a big shift and removing the confusion of a new language helped smooth the transition.
Working with monodevelop was a pain in MacOS.
Downloading it now, but from the sales page alone they got me.
Good work!
It will be interesting to see how they strike a balance between making money and keeping things (like Mono.Mac, MonoDevelop, etc.) open... and if they are able to build a community of outside contributors around the open-source parts of their solution(s).
http://github.com/mono/monodevelop
http://github.com/mono/monomac
http://github.com/mono/maccore
Xamarin also has a number of open source modules on github: https://github.com/xamarin
My blogging has gone down, due to twitter mostly, but this is a good chance to talk about our open source work.
Cheers! Miguel
I look forward to your blog post.
The new Studio looks great, but there isn't a Linux version. This makes me very, very sad.
The one thing that could make me very happy, however, is if they target the Ubuntu mobile/touch SDK in the future. Wonder if this is on the horizon?
We're always looking into supporting other mobile platforms.
We've just pushed all of our MonoDevelop source code to public github and I'm sure that the Ubuntu packagers will be packaging it for Ubuntu very soon.
(Edit: I've been reluctant to upgrade from Snow Leopard, but maybe I should reevaluate.)
The main reason I always wait to upgrade is for kinks to be worked out in OS X ports of mainly-GNU/Linux software.
Oh well, at least I can do some testing on a real device without buying anything for the moment.
From looking at the comparison chart on https://store.xamarin.com/ , the LLVM optimising compiler only seems to be available for Business or above. What does this mean in practice?
Our servers buckled a little bit under the load. We load-tested, but missed a piece of infrastructure in the chaos. We've since beefed up that last piece of infrastructure, and you should be all set now to use the download form at http://xamarin.com/download. If you're still having trouble, contact our support at support@xamarin.com. Cheers!
Really easy to setup and get up and running!