4 ms·
My experience with Xamarin: I've been working for half a year with Xamarin Forms. I Think using Xamarin is the way to go, there is no need to re-code something
by Avalaxy 12y ago
My experience with Xamarin:
I've been working for half a year with Xamarin Forms. I Think using Xamarin is the way to go, there is no need to re-code something for 3 different platforms when you can just have a shared codebase. Tools like Cordova and Phonegap don't work. They produce a very crappy experience that doesn't use the native OS functions, doesn't look and feel native, feels slow and has many bugs (for example they can't use the hardware back button).
So Xamarin can create real native apps, which is a HUGE advantage over Cordova/Phonegap/others, but there are also serious downsides:
1) It's BUGGY. Many components have bugs, and the code often behaves in very very weird ways (I had exceptions not being caught by catch blocks for example), many debugger functions don't work properly with mono (like locals) and very, very often exceptions are thrown without ANY indication what caused them or where they occurred exactly.
2) You a limited in the features you can use because it's a wrapper (as mentioned in OPs post).
3) Documentation sucks and is very limited. It's getting better (mostly because of StackOverflow), but it's still not sufficient.
4) It has XAML which is very nice combined with MVVM, but the XAML implementation sucks. It doesn't have intellisense and it's just generally very awkward.
I don't think the 'big cost' is a valid argument against Xamarin. If you can develop 1 app for $40k where you would normally have to develop 2 or 3 apps for $30k each, that's a BIG win and Xamarin's costs are negligible.
- JamesMontemagno 12y agoHey there, I am James Montemagno a developer evangelist at Xamarin. I have been developing native apps with Xamarin for nearly 4 years now across iOS, Android, and of course Windows (I was a customer for 2 years before joining Xamarin). I just wanted to clarify a bit about Xamarin and Xamarin.Forms. It is important to know that Xamarin.Forms is a cross platform UI layer that sits on top of the core Xamarin platform. Using native Xamarin you are still sharing your backend C#/.NET code and then building out native user interfaces for each platform. The Xamarin.Forms library adds an abstraction over common controls available on iOS, Android, and Windows Phone. Xamarin.Forms is extremely extensible, but it is not for every app, especially if you need a lot of custom UI or API access. For data entry, proofs-of-concept, or other simple apps it is great and we have a guide to help you select: http://cdn1.xamarin.com/Architecture%20Selector.pdf http://cdn1.xamarin.com/Architecture%20Selector.pdf. The nice thing here is that either approach can use a shared-code backend. I think I can address some of your concerns below: 1.) I would love to know which components you were having issues with and I can work with the team. There are a lot of settings in Visual Studio and Xamarin Studio as far as when to break on exceptions so I would love to help out here. 2.) If you are exclusive to using Xamarin.Forms then yes you will have a limited set of controls, since Xamarin.Forms is a subset of common controls. It is extensible via “CustomRenderers”, but that require some work and if you need a lot of them then it might be worth looking into the native approach without Xamarin.Forms as this approach will automatically give you access to every control on each platform you are creating. 3.) We are always looking to expand our documentation across all of our products and highly recommend checking out our updated developer portal: http://developer.xamarin.com http://developer.xamarin.com there is a plethora of Xamarin.Forms related documentation as well as http://developer.xamarin.com/guides/cross-platform/xamarin-forms/ http://developer.xamarin.com/guides/cross-platform/xamarin-f... It is pretty extensive, but if there is something missing please please please let us know and we will work with the documentation team to add it. In addition to this documentation we do have a book that has been written by Charles Petzold on Xamarin.Forms that is freely available: http://developer.xamarin.com/guides/cross-platform/xamarin-forms/creating-mobile-apps-xamarin-forms/ http://developer.xamarin.com/guides/cross-platform/xamarin-f... 4.) For XAML intellisense it is built right into Xamarin Studio, for Visual Studio there is an extension that you can install: http://www.cazzulino.com/mobileessentials.html http://www.cazzulino.com/mobileessentials.html This will be integrated automatically in the future. I apologize that this is tricky to find. Hopefully this helps out a bit with some of the issues that you have run into, but again please please feel free to email me with any questions, encounter any problems please reach out to us so we know and can fix them. You have my direct line: james@xamarin.com.
- seanmcdirmid 12y agoHi James, What would be the best way to do 2D graphics using Mono? I have an editor project written in WPF, but mostly uses 2D APIs (since...I'm building my own editor, some videos here [1]). Anyways, my only Windows platform dependency is WPF (most of the magic is platform independent), and I'm wondering how to make my app cross platform. The most appropriate I can find is mono.cario, but it doesn't seem to be very active. [1] http://research.microsoft.com/en-us/people/smcdirm/managedtime.aspx http://research.microsoft.com/en-us/people/smcdirm/managedti...
- bernadus_edwin 12y agoHi james, I'm following your blog. In last month, you try to prove UI xamarin form capable do all layout Here is the idea, if you dont mind, would you convert ListViewAnimation android to xamarin component (Warning: this is not a light library) At the moment, there is no listview xamarin component support drag and drop swap row. Need that to move and reorder and row sequence I'm sure every project need powerfull listview Love your work Thx
- seanwilson 12y agoAbout PhoneGap: > They produce a very crappy experience that doesn't use the native OS functions, doesn't look and feel native, feels slow and has many bugs (for example they can't use the hardware back button) Can you elaborate on what you mean here? Sure, the apps never feel completely native but you can still invoke native features including the back button on Android, reuse the same code to make a web app and while bugs happen it isn't any worse than trying to create a cross-browser web app (which is essentially what you're writing). Pretty much every software development choice is a trade off and PhoneGap is a good one sometimes.
- mbesto 12y agoI've used PhoneGap. There is a huge conflation of "feeling native" and the "native controls" aspect of PhoneGap's features. Can you access the camera on a phone using PhoneGap? Sure, but you know those apps you use every day? They are polished and you can't polish with PhoneGap. Scrolling is snappy, navigation doesn't lag, etc. etc.
- seanwilson 12y agoBut you're dealing with trade-offs unless you have unlimited resources. If you want an iOS, Android and web app as soon as possible with a decent UI on a limited budget, PhoneGap is hard to compete with. If you want the slickest possible iOS UI, native is likely the way to go but it costs significantly more resources if you want to support other platforms as well. You're not getting anything for free and you have to decide what you want to spend your resources on.
- mbesto 12y agoSure, I'm not disputing tradeoffs. > If you want an iOS, Android and web app as soon as possible with a decent UI on a limited budget, Your chances of business/users/engagement success quickly dwindle if that's the rationale.
- seanwilson 12y ago
- beermann 12y agoOur app Pacifica (http://thinkpacifica.com http://thinkpacifica.com) is built with Cordova and the Ionic Framework. It's far from a crappy experience. I think that too often people pick these frameworks and assume that it's a substitute for good design. You still need to put in the effort. There's also the fact that the bar is a bit lower to get an app finished and released with something like Ionic. So you might see more apps that aren't quite up to par, but that doesn't mean that it isn't possible to create something beautiful with them.
- aliakhtar 12y agoI gave your app a try. I think its fairly good. It was a -bit- choppy when clicking on sign up, but once signed in, I couldn't tell it apart from a native app. The 'swipe to move to next screen' was pretty good too. Cheers.
- iLoch 12y ago> Tools like Cordova and Phonegap don't work. They produce a very crappy experience that doesn't use the native OS functions, doesn't look and feel native, feels slow and has many bugs (for example they can't use the hardware back button). Have you taken a look at Facebook's new framework, React Native?
- madeofpalk 12y agoJust to be clear (for you or anyone else), React Native is nothing like Cordova or Phonegap - Using Javascript, you instruct React Native to draw native components (UINavigationBar, UIButton etc) with native interactions. The end user is not touching HTML and CSS. They touch native components with native performance.
- iLoch 12y agoThanks, I've been using it for two months - I know how it works.
- aliakhtar 12y ago> (for example they can't use the hardware back button). I've used Phonegap, and was able to use the back button without any issues.
- natfriedman 12y agoHey, Xamarin CEO here, thanks for your feedback. A couple comments/questions on the issues you raised. 1) We aren't aware of any debugger issues like this. Is it possible you were debugging optimized code which had the local variables optimized away? Similarly, when an uncaught exception is thrown, it comes with a stack trace with line numbers. Were you not getting these? 2) Xamarin does map the entire set of iOS and Android APIs into C#, so yes it is a "wrapper," but you should NOT be limited in what native features you can use. We literally cover almost 100% of the entire set of native APIs. What limitations were you running into? 3) We have a ton of docs at http://developer.xamarin.com http://developer.xamarin.com including nearly 300 sample apps and a lot of very detailed guides: http://developer.xamarin.com/guides/ http://developer.xamarin.com/guides/ Which part of the docs did you find inadequate? 4) We do include XAML intellisense in Xamarin Studio. To get it in Visual Studio you have to install an extension: http://www.cazzulino.com/mobileessentials.html http://www.cazzulino.com/mobileessentials.html This will be included by default in a future version of Xamarin. I'm sorry about the trouble you had, and I'd like to get to the bottom of those issues. Please feel free to contact me at nat@xamarin.com.
- deleted 12y ago[deleted]