7

I am the only mobile developer in my job. Before I was hired, my currently boss was thinking on using Xamarin as their marketing says the words Shared code and native. I consider myself an advanced Android developer since I've build large information systems. Right now I'm working on simple apps I could finish in a week, but Xamarin is giving me headache since its too buggy, and the reusable code is about 10% that could easily be copy/pasted into iOS, and despite the fact that you can share that 10% code, sometimes you still have to use compilation directives #if / #endif.

I mean, there is no really any advantage for me, since I already know both Java and Objective-C languages. I already have vast knowledge of SQLite and data storage with Core Dataon both iOS and Android SDK so that learning Xamarin will not only making slower, but Expensive since the licence is about USD $4k for enterprise.

I have already tried to talk them into not going for Xamarin since its only a little code you can share, but they don't seem either to understand or they DO want to spend $4k on it

I need some good argument to convince them not to buy it, so I can do my job in a more productive and faster way. Thank you in advance.

  • 9
    You seem to be focused a lot on your own abilities and not on your "legacy". It might be easier for you to copy-paste code with the language knowledge you already have but this is the kind of stuff that leaves a mess behind when you leave the company and they now have to find a replacement that knows both Java and Objective-C instead of just C#. It seems to me that you're not accounting for any scalability. As a sidenote: your question would be improved a lot if you'd add your boss's concerns and made it less specific. – Jeroen Vannevel May 12 '14 at 16:31
  • 8
    @JoeStrazzere: Stack Overflow won't accept it. Programmers might. – Jeroen Vannevel May 12 '14 at 17:00
  • 3
    This does seem better on programmers, though I question the 10% shared code. At that point 90% of your app is UI and bindings, which means you're doing trivial apps (possible) or you're putting too much in your UI layer. – Telastyn May 12 '14 at 17:10
  • 1
    This does not really belong here because of the specific coder stuff. It belongs on programmers though I am sure they would say its off topic because they all want to work in a vacuum – IDrinkandIKnowThings May 12 '14 at 18:11
  • Is there a policy that you have to use a specific IDE? If so, what does it say? – MDMoore313 May 12 '14 at 19:22
  • @gnat, yes, stackoverflow sent me here. There is no policy about specific IDE, by boss just read the features 'share code' with 'native' and yes it is impressive, but since Xamarin projects are too dependant on... well Xamarin itself, it will only bring disadventages for a developer advanced on java and objective-c, so it won't really be productiv – Christopher Francisco May 12 '14 at 20:06
  • I agree with Telastyn about the code reuse. Either the applications in question are heavy on UI and extremely light on (business) logic, or there isn't proper separation of the different application layers. Copy-paste might work for a while but for business application writing the code is just part of the equation, you still have to test and maintain it. That is where code sharing helps tremendously in the long run. – SKall May 12 '14 at 20:15
  • Hey Christopher, and welcome to [workplace.se]. I've put your question on hold because I think that the details about programming are off-topic, and the core question is answered in the linked question. At any rate, you've already gotten (and accepted) an answer, so hopefully this shouldn't be a problem. In the future, consider focusing less on specific technical details, and more on the general problem you are facing which should be technologically agnostic. Would it make a difference if the question referred to a separate IDE or any technical library in general? Thanks in advance! – jmac May 12 '14 at 23:29
  • 2
    I'd be surprised if there really is only 10% code sharing possible. More likely you're putting too much into the ui layer which really should be one of the smallest layers. – Andy Jan 09 '15 at 02:25
  • Cross-posted: http://stackoverflow.com/questions/23613764 – BlueRaja - Danny Pflughoeft May 27 '15 at 02:43
  • I'm pretty sure you're using Xamarin wrong if you're only able to reuse 10% of the code... – T. Sar Oct 04 '17 at 20:05
  • @Andy in many applications where the logic is trivial and all the hard stuff is in already existing libraries, that might indeed be the case (the UI bells and whistles taking most of the cyclomatic complexity). Chances are they are doing something of that kind. – Display Name Oct 05 '17 at 05:38
  • @SargeBorsch It seems unlikely that is the case; even then, for complex UI code, MVVM help keeps things clean, and sharing the VMs and defining a single UI in XAML will still bring a lot of code sharing. I stand by more original statement, and suspect the OP just doesn't want to learn something new bc its not the cool way in his eyes. Also, please refrain from necroing old questions to plug your framework. – Andy Oct 06 '17 at 00:20
  • @Andy but it's not mine… – Display Name Oct 06 '17 at 04:58
  • @SargeBorsch Its still irrelevant on Workplace. – Andy Oct 06 '17 at 22:09

3 Answers3

9

You have to sit down and talk to your boss. Don't try and do this via an email or a phone call.

Explain that you see his side of the story.

I understand that Xamarin looks appealing because...

Transition that

In my experience...

Start to make your case

In trying to use Xamarin, I've been having issues with...

Close your argument

I feel as if the best solution is...

The bottom line is you need to talk to him and advocate face to face, but remember, you are both on the same team. You need to make sure he knows that. I've had problems like this before.

Sometimes the non-developers can be very naive to the real world, but us devs need to remember that if we can't communicate our argument effectively, the whole internet will be built in Wix and Site Grinder, and Java will reign over the future of desktop development. Don't let this happen, communicate honestly and effectively.

OneChillDude
  • 987
  • 10
  • 19
3

Chris, it sounds like you're trying to fight a propaganda war. There are two camps:

  • First, there's your story. But you don't work for somebody who does mobile apps. I haven't worked with Xamarin myself enough to know if the cross-OS claims are true or if they're a load of crap. But I'll say that such such claims are very attractive to someone who doesn't know any better; i.e. your boss.
  • Then, there's Xamarin's story, and marketing, and support channels, etc. Yes, very convincing to the folks above you who write those checks!

You might be 100% right about how much is sharable code. But if someone at the top is feeling a bit greedy and is seeing dollar signs already from all the "double" work you're supposedly saving, then you are wasting your time by arguing because your points are not going to be heard. Money talks.

So do the work in Xamarin, and if at the end it turns out to be a b.s. product and doesn't work as advertised, you won't be to blame for it.

I am a C# and SQL developer, BTW. So I understand where you're coming from.

Xavier J
  • 42,848
  • 10
  • 86
  • 146
-10

Off the top of my head, these are the points you could make:

  1. Most IDEs that are worth anything are Open Source. In fact, some of the best tools anywhere are Open Source.

  2. You are far more likely to get a good software engineer who makes their bones on an Open Source IDE than on a commercial IDE - especially, a commercial IDE that no one has ever heard of.

  3. The most prevalent Open Source are really well supported by the Open Source community when it comes to bug fixes and security vulnerability fixes.

  4. The source code for the Open Source IDE is available for inspection, modification and recompiling. This means that we don't need to worry about a company going out of business and leaving us stranded. As long as the community is there, we can recreate the binaries and run the product.

  5. You've never heard of Xamarin. Your latest attempt to use Xamarin was an unmitigated disaster e.g. unfixed bugs, dependence on commercial support, unsatisfactory documentation, etc.

  6. Tell them to put out a test out a job ad that requires Xamarin. See how many bites they get.

You have an Open Source IDE in mind that does a better job, right?

Vietnhi Phuvan
  • 72,342
  • 8
  • 133
  • 268
  • **comments removed**: Please avoid using comments for extended discussion. Instead, please use [chat]. On Workplace SE, comments are intended to help improve a post. Please see What "comments" are not... for more details. – jmort253 May 13 '14 at 03:49
  • 12
    These are all terrible points and quite frankly id fire a developer that used even one as an argument. – Andy Jan 09 '15 at 02:26
  • 1
    Was this suppose to be a sarcastic response? – Donald Jan 12 '15 at 00:40
  • 2
    Xamarin Studio is based on an open-source IDE. XCode is not. So all of your bullet-points would be pros for Xamarin, if they were legitimate points. – BlueRaja - Danny Pflughoeft May 27 '15 at 02:45
  • 1
    Ask the employer to put out a test job ad? Is this for real? What employer would do that - maybe one where the president is your dad? – code4life Sep 25 '15 at 17:28
  • "Most IDEs that are worth anything are Open Source" cof Visual Studio cof cof – T. Sar Oct 04 '17 at 20:06
  • well, if we talk about software freedom, then developing anything, anyhow for iOS is against freedom, because it's a totally hopelessly closed platform (you must know what I mean) and therefore supporting it in any way is bad. And if you stick to Android, then Xamarin obviously doesn't have any benefit anymore. – Display Name Oct 05 '17 at 05:32