

Ask HN: What is easier to learn iPhone development or Android development? - Stan_Tsarevskiy

What languages do you need to build an iPhone app? What languages do you need to build one for Android?<p>As of now I am learning html css and javascript. Is that all I need to build an android app?
======
DougWebb
For Android, you need to set up the Android development kit, which is the Java
language, Eclipse IDE, and some packages from Google. You can get all of this
for free from Google. I found it to be a PITA to set up, but I've never liked
Eclipse. You can set this up on any hardware/OS.

For iOS, you need to download and install xCode from Apple, which means you
need a Mac. You'll also have to pay for a development license so you can sign
your apps and sell them through the store. You'll be developing in ObjectiveC
here, which is kind of an odd language. I also found xCode to be an odd IDE,
but if you're used to Macs it might be more intuitive.

If you want to develop in HTML, CSS, and Javascript, you can just create a
website, or you could do a single-page app design and wrap it up in Phonegap
to create a native-ish app that can be sold through the stores. There is a
phonegap version for each platform so you still need to set up dev
environments for each, just like if you were doing native development. In
fact, Phonegap's installation guide on their website is a great introduction
to setting up development environments for a bunch of mobile devices, not just
Android and iOS.

My recommendation is to stick to a regular website, perhaps using jQueryMobile
if you want a mobile-specific UI, if your app does not require much offline
functionality or hardware apis beyond location. Other hardware apis are being
defined and are slowly becoming available to standard Javascript, but they're
mostly not ready for prime time yet.

If you need offline functionality and/or access to the hardware, but you don't
have the resources to do native development on each platform and you don't
want to focus on just one, Phonegap is the best choice. Your apps will still
feel like a non-native website rather than a native app, but 90% of your
effort will be cross-platform so you can save yourself a lot of time.

If you have the resources and/or want to focus on a single device platform, go
native. You'll get better integration with the platform, better performance,
and a lot more capabilities.

PS: It _is_ possible to use other dev languages. Android is Linux underneath,
and you can write code in any language Linux supports, which is most of them.
The drawback is that Google wrote the Android SDK libraries in Java and Java
doesn't interoperate with other languages nicely, so you don't have access to
the SDK in other languages. This is being addressed by Google, but slowly. I
think you can probably use other languages on iOS too, but with the same
caveat.

------
jlees
Check out <http://phonegap.com/> \- if you're more interested in getting to
the end point of having an app, vs. learning the platforms natively, you'll
probably find it a lot easier to stick with the technologies you're already
somewhat familiar with than learn a whole new set.

------
hobonumber1
Definitely iOS. The developer tools are a lot better/easier to grasp. I also
find Objective-C syntax to be very nice.

~~~
Stan_Tsarevskiy
I heard the C is more for advanced programmers. can i use java (taking it at
college) or javascript for iOS?

~~~
one-two
You can build an html5 app for either mobile platform, but it will have to run
in a browser, not natively.

~~~
Stan_Tsarevskiy
ok, but how would I get paid for my app? the only way i can think of is
advertisements.

------
ideamonk
iOS can seem vast. If you know Ruby, <http://rubymotion-tutorial.com> is a
must see. I'm finding the ecosystem around Rubymotion to be more productive.

