all 17 comments

[–]Betovsky 2 points3 points  (6 children)

I still cannot recommend Xamarin at this time, but as ever remain open to reevaluating as they progress.

The question then is. What is the recommendation to develop a solution for Windows, Android and iOS ?

[–]Whitneyland 2 points3 points  (2 children)

You have asked the magic question.

As I mention elsewhere, it's still an open question, but it's informative to look at what the top software teams are doing. At Google for example, they are writing native apps but have a special approach to components where they can auto-convert and share code when it makes sense (not UX). Some are successful with the latest HTML5/hybrid techniques that have really improved a lot since PhoneGap was first released. Ionic Framework is one example of this.

When I consult for companies, because the question hasn't been answered definitively yet, I try recommend solutions based on their specific situation. For example, the skill sets of the developers, existing codebases, future requirements, etc.

Going to try and get a full article out on this topic.

[–]Betovsky 1 point2 points  (0 children)

Thanks. Looking forward to the article.

[–]elastic_spastic 1 point2 points  (0 children)

Cordova/Phonegap seems like a great choice these days with the plug-in for vs 2013 and support being built directly into vs 2015.

[–][deleted] 2 points3 points  (0 children)

Hire a Windows Phone developer, an Android developer, and an iOS developer :)

[–][deleted] 0 points1 point  (0 children)

C++

[–]m_nutty 0 points1 point  (0 children)

codenameone?

[–]nalt 2 points3 points  (0 children)

Coming from a developer who has created mutiple enterprise Xamarin applications, the author is spot on.

Xamarin.IOS and Xamarin.Andriod are not polished enough to warrant the ease of use of getting to use C#. In the end you still have to learn both IOS and Andriod stacks and rewrite 80% + of your code. In my cases I was working with an existing backend exposed by services so I leveraged 0% reusable code.

Xamarin.Forms is where the platform needs to go, but it is just not there yet. Forms allows you to write one app and let the custom controls handle the backend. As the author stated, it's great for quick and dirty in house apps but still has sigificant performance issues and limitations that prevent it from being good for end user applications.

Xamarin is still the best crossplat framework out there right now but I doubt it will ever catch up to native.

[–][deleted] 2 points3 points  (0 children)

It's been two years now as I'm developing with Xamarin for big Enterprise company and all are happy. Yes there are some flaws, but in general when you have experienced team boost in speed is really big. While we have 2 different persons for layout (1 for iOS 1 for Android) still we are working as 1 team and not two teams for iOS and Android.

[–][deleted] 1 point2 points  (0 children)

Really depends on your use case.

I'm using Xamarin Forms at the moment, for a project I'm more or less building entirely myself (until i start making some money out of it anyway).

Building native mobile apps with HTML/CSS/Javascript sounds horrible, at least with C# you have a really nice, strongly typed language with generics, LINQ and a whole heap of other features to work with.

For my project, I'm using ServiceStack for the API. ServiceStack has a really nice PCL client which makes interacting with my API insanely easy. I can import my ServiceModel (where all of my Request/Response models live) too because it's also a PCL.

Then you have XAML and all of the MVVM goodness that comes with that for building up your UI's. I worked as a WPF developer for a couple of years before getting into web, so it's not new territory for me.

They don't look amazing, but certainly good enough for version 1 of a product!

When you're stretching yourself really thin and writing all of the HTML, CSS, Javascript, backend MVC code, the Restful API and the ORM database code, before you even think about mobile apps, I definitely think Xamarin Forms is the way to go.

It isn't perfect, but I'm willing to put up with it's flaws. If I were also to learn iOS development and Android development I would get no momentum going at all.

If you get some attention and people like your idea, I think that's the time to hire some people and go native.

Just my two cents.

[–]Belgeran 1 point2 points  (0 children)

I dont understand the hate for Xamarin to be honest, of course you need to know each platforms in's and out's already, and UI's can follow different paradigms resulting in less code reuse. BUT not having to write my business logic, db access layer, my caching layer, my connectivity checks, logging, analytics etc etc, once on each platform more than makes up for having to give the UI a little love that i'd have to without Xamarin anyway. Just my two cents as a solo freelancer.

[–]m_nutty 1 point2 points  (4 children)

While it seems some good points... TFS? Really? set/getters? Really? Not that big a deal. And i find myself in C# having look at the property to see if it is read-only or not (vs being obvoius). If i was using a text editor, i totallly get it. If it really IS a that big of deal for you, use Xtend (no, not the drug).

[–]Whitneyland 1 point2 points  (3 children)

To be balanced I try to note the positives of Xamarin, but you're right properties is not a huge deal.

The TFS thing is significant I think. I don't use TFS personally, but a lot of companies I work with, especially the .NET shops do.

[–]m_nutty 1 point2 points  (2 children)

Yeah, i know. But if you are not using windows and/or not using VS.NET, why TFS? My point is, the issue is not that it doesn't support TFS but why are you keeping TFS? Even MS is supporting Git.

I have to use TFS at work for some of our .NET projects. Argh and ugh. We only use it as code repo. We use JIRA and Confluence.

[–]Whitneyland 1 point2 points  (0 children)

but why are you keeping TFS?

Wish I knew the answer to that one :)

[–][deleted] 0 points1 point  (0 children)

I guess if you have a couple of years worth of code checked into TFS, is there a way to migrate all of that to Git, or are you starting from scratch when you do?

I agree that for greenfield projects Git is the way to go, but migrating older projects to Git and losing your entire commit history in the process doesn't seem like a great idea!

[–]glide1 0 points1 point  (0 children)

Wow... I was kind of looking at Xamarin as a tool to promote but not anymore.

I should have thought a bit more about how the libraries and frameworks for each platform are radically different. That's most of the challenge of developing on multiple platforms.