Hacker News new | ask | show | jobs
Ask HN: What is easier to learn iPhone development or Android development?
4 points by Stan_Tsarevskiy 5027 days ago
What languages do you need to build an iPhone app? What languages do you need to build one for Android?

As of now I am learning html css and javascript. Is that all I need to build an android app?

4 comments

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.

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.
Definitely iOS. The developer tools are a lot better/easier to grasp. I also find Objective-C syntax to be very nice.
I heard the C is more for advanced programmers. can i use java (taking it at college) or javascript for iOS?
You can build an html5 app for either mobile platform, but it will have to run in a browser, not natively.
ok, but how would I get paid for my app? the only way i can think of is advertisements.
I have to agree on this one, no bias.
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.