Hacker News new | ask | show | jobs
Ask HN: frameworks vs native apps
10 points by crisedward 5040 days ago
I been told by my boss to use a framework named Xamarin's MonoTouch (http://xamarin.com/), I don't want to use it, anyone has good reasons to not use it instead of native apps (that is licensed and on C# doesn't count) Edit: added framework name
7 comments

This is the opposite of how you should approach the problem in my mind. Why don't you want to use the framework? There must be some reason.
I know, the thing is that my boss is a fan of .net and all of those technologies, and I'm not, even when I'm the one that will develop the apps, I know that saying that I don't like the language is a good reason to not use it, so I'm looking for cons and pros so that can make him or me change our minds
Ah, but the true reason is that you don't like the language. So anything else I tell you is actually useless, you've already decided you don't want to use the framework. The true reason is your dislike for C#.

I encourage you to read http://lesswrong.com/lw/js/the_bottom_line/ and think about how it's related to your current dilemma.

W/ regards to the framework itself, I think you should ask your boss why he wants you to use it. He might have some very good reasons! Or none at all. But that's very important context for the decision.

Thanks for the read, it really makes me think. He only wants to use it because is C#, he doesn't know anything about mobile development, in the end I guess the debate will be between cross platform vendors and native apps
Good reasons not to use it:

* you are only interested in developing for one platform--ios.

* you have obj c and any other language talent in house, but don't have c# talent

* you need to use tons of custom native libraries that the framework doesn't have bindings for

* you want to avoid vendor lockin

3rd one is easy to work around. generating bindings is easy.
But for that you don't need to know Objective-C?
sure, but the benefits of using C# with MonoTouch over Objective-C is not because you don't have to learn Objective-C but that it can be a more productive environment to write the bulk of your code.
so if you love C# and know how Objective-C works, this is a great framework, lame I'm not truly a fan of C#.. So i guess it won't be a time saver for me.
It is going to allow you to use slightly more familiar syntax

You're still going to have to learn and use all the libraries in your iPhone app in ObjC

If you have crushing large amounts of business logic, you might see gains

I see that most of the limitations are about dynamic code generation, but it's on general because of the iphone?, so trying to do a java-objective c in these cases won't work?
I have never done mobile app development. I just knew of that link so I thought it might be helpful. ;)
It did, Thanks :)
well, monotouch is a really nice framework. but, speaking about downsides, you'll need to spend time on writing custom objc bindings if you would want to use something that is not bound yet (e.g. custom library). and that can take quite some time. other than that - it's quite the same as native (may be a tiny-tiny bit slower)
This. I am currently using Mono for Android, also from Xamarin. I use it because the client wants me to use it instead using Java. Like what yiu said, one thing that I dont really like about using Mono for Android is I cant just use Android libraries out there since I need to create the binding first. Other than that, it's just a matter of language preference.
so, if it's for normal development it should be fine, but if need to use libraries, plugins and stuff for a more deep app I should learn objective-c?
well, for normal dev you would also need to know the basic iOS SDK classes, structure and their usage. the main advantage is all the c# features and c# syntax (i personally don't like objc at all) you can use in iOS dev with monotouch.
Actually if you cannot find "good reasons to not use it" by yourself, usually it is better to "use it"
No that could mean you find the reason 2 months from now as you start hammering toward your solution and reach an impass.

Design your app and determine if MonoTouch supports everything you need to do. Dig around to see if it has any runtime quircks found by others. yaknow research.

MonoTouch is what you're referring to, and it has its pros and cons. Pros are, one app can be published on multiple platforms with little to no change.

Minuses, it's expensive and you have to wait for access to new features until they've been released by Xamarin.

Writing an app for iPhone using this is easily 2x faster than learning and then writing it in Objective C. It does generate a "native" app, for what it's worth.

Sounds like you just need to get past your dislike of C#, and your boss sounds like a pretty smart person ;-)

(disclosure : I'm not his boss)