4 ms·
Has anyone used Xamarin to build an app on iOS and Android? What was the experience and time to market like? Is the end product a full native app, not a hybrid
by notastartup 13y ago
Has anyone used Xamarin to build an app on iOS and Android? What was the experience and time to market like? Is the end product a full native app, not a hybrid app? Are there any cons?
I am currently learning Intel XDK but surprised why I have never given Xamarin a thought.
p.s. What about QT creator?
- keithwarren 13y agoI have built multiple iOS and Android apps with Xamarin and found the experience to be great. I love C# so being able to use that was a plus and there are some cases where Xamarin made the APIs of the native platform a bit cleaner by implementing some abstractions. All the native plumbing was still there but implementing a tableview in Xamarin on iOS was quite a bit shorter in code than in ObjC. It really is a phenomenal piece of engineering. Biggest drawback, hard to find examples of things in C# so you have to be able to read documentation and code samples in ObjC or Java and mentally map them to C#.
- tedpeters 13y agoExactly true. Given the importance these days of using example code, you will spend time "porting" these samples to c#.
- tluyben2 13y agoThat's why I suggest you learn 'native' on both first before moving to Xamarin; it's very easy for me to map those code examples. Actually especially when Xamarin used more idiomatic .NET for a particular case; it is more natural to me so it's actually the first thing I try when I see an example.
- pistle 13y agoYes. iOS. Everything but UI was C#/Xamarin. Biggest pain was ramping on iOS and not realizing just how awful Storyboard was and how many was the Xcode designer wanted to screw me. The integration between the two using Xamarin Studio on the mac felt slightly clunky at times. Tweak UI, hook up event handlers, go back to Xamarin... watch it pull those changes across. If it failed, and it did at times, you could end up repeating changes. Xamarin Studio is not Visual Studio. Better than Xcode, but it's not nearly the tool VS is. Final app is a native experience nearly on par, performance-wise, with objective-c stuff. Most perf issues I hit also had more to do with working through iOS patterns & practices (e.g. long table views/lists with custom cells). The cons are usually friction and requirements to understand more than a single tool/language. You will need to bring up multiple games at once. There is a 1:1 mapping between iOS SDK and library access in the Xamarin API. I also did the kata thing and made simple apps to deploy across platforms just because I could. That was fun.
- tluyben2 13y agoI have built a lot of apps with Xamarin (and others like Intel XDK and it's predecessors); Xamarin has been the best experience for me so far. I don't mind Objective-C, but compared to C#/F# (yep F#! Nice!) it's not very nice for my taste. Xamarin fixes that with 2 very nice languages and a solidly written small layer on the native API. I have produced apps for iOS and Android with it after having written many native apps for both, so the transition was very easy as you use the same API's. You just reuse a lot of non-UI code. Note that I don't use visual tools for either platforms; not in Xamarin nor native; all UI is handcoded which, for me, has been proven to be a lot faster indeed. Reuse, refactoring and reasoning with UI code are easy that way while these visual aids don't really do anything beyond "Hello World". QT Creator is nice but when I tried it 6 months ago it was not ready for prime time mobile wise and it is an abstraction over the gui/api meaning it is farther away from the API/device than you would sometimes want. Intel XDK to me was a horrible experience, but after making so many HTML5 mobile / hybrid apps, I learned to hate the process. It's not ready; just forget about it for now. Make web stuff (responsive, web apps) in HTML5, make apps in something else. I would suggest learning native (Java/Objective-C) first, getting some good experience with that in, then moving away from the visual tooling like storyboards etc (It's a matter of taste but > 100 apps later I would never use it again unless it improves a lot somehow... and I don't see that happening) and then maybe use something like Xamarin if you don't like the original native languages or want to reuse a lot of code. A more painful way of reuse which is used in games a lot is to write the common code in C++ and only the UI in the native tech. This is not a nice process at the moment IMHO esp as Android requires you to do that via the NDK and I have had issues with that.
- ternaryoperator 13y agoDr. Dobb's did a review of this experience: http://www.drdobbs.com/tools/xamarin-20-review/240150634 http://www.drdobbs.com/tools/xamarin-20-review/240150634
- andyjohnson0 13y agoI've also used Xamarin to develop for both Android and iOS, and I found it to be a good experience. The tools deliver what they promise, in my opinion. Built application look and feel like full native apps. I don't want to repeat the comments made by others, but one other other thing that impressed me was being able to compile c# code into a portable class library dll on windows, then just copy the binary to a macbook and link it into my iOS app project. Very cool code reuse. Not knowing ObjC made getting started on iOS harder than it could have been because examples tend to be in ObjC - although Xamarin have some useful snippets and recipes on their site. Android was easy because of the similarity between Java and C#. You still need to learn the platform APIs, obviously. Its been some time since I felt so positive about a new piece of developer-orientated technology. Definitely recommended.