

Ask HN: frameworks vs native apps - crisedward

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
======
emmett
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.

~~~
crisedward
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

~~~
emmett
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.

~~~
crisedward
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

------
mooreds
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

~~~
zbowling
3rd one is easy to work around. generating bindings is easy.

~~~
crisedward
But for that you don't need to know Objective-C?

~~~
zbowling
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.

~~~
crisedward
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.

------
gte910h
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

------
gexla
List of limitations.

<http://docs.xamarin.com/ios/about/limitations>

~~~
crisedward
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?

~~~
gexla
I have never done mobile app development. I just knew of that link so I
thought it might be helpful. ;)

~~~
crisedward
It did, Thanks :)

------
yamalight
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)

~~~
crisedward
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?

~~~
yamalight
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.

------
bluesign
Actually if you cannot find "good reasons to not use it" by yourself, usually
it is better to "use it"

~~~
caller9
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.

------
PythonDeveloper
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)

