7 ms·
Ask HN: What would life be like as an Android Developer?
I did some casual development on the iPhone about a year ago but got frustrated figuring out all of the certificate stuff to test my app, and then waiting 4 months to get my app denied.
I'm thinking about getting an android phone and making some apps mostly for fun, maybe someday for profit. Is the experience a lot better? What should I know before taking the plunge?
- BrianHammond 17y agoAsk tocomment: try it and let us know!
- cheald 17y agoI've only done basic experimentation, but it's not bad at all. You can even download the Android SDK and try developing apps and running them in an Android emulator before committing to a phone.
- jared314 17y agoIt is just as frustrating as most other frameworks. Find someone to commiserate with before you jump in.
- aphyr 17y agoI started writing android apps four months ago. My co-worker started developing iPhone apps two months ago. We have similar levels of "Arrrgh, this is so broken" conversations--but about entirely different things. The android emulator is way slower, but running on a real device is quick and easy. Android has way better support for libraries--you cut and paste far less code. The APIs are saner, in general. Error handling is simpler, and you don't have to allocate as much by hand. Also, the store is a dream. We went from zero to installed via the market in ten minutes. On the other hand, Android is Java--and all the horror that entails. There are also fewer people developing for android. The source is open, though--you can git clone the official apps and refer to them, which is invaluable. The docs are okay, but a lot of android plumbing is really complicated. Rightly so, when you realize what the platform accomplishes, but it takes longer to spin up. Overall, I like it.
- DrewHintz 17y ago> What should I know before taking the plunge? Along with the SDK, use the Eclipse plugin.
- gte910h 17y agoI can't disagree more. Eclipse is probably not worth picking up if you're not already a user.
- markkanof 17y agoWhat tools would you recommend?
- jrockway 17y agoIt's just programming. Use whatever you normally use for that task.
- gcb 17y agoThe SDK cames with a suite of command line tools that are far more easy to understand then the eclipse crud. help > install. Really?
- gte910h 17y ago> The SDK cames with a suite of command line tools that are far more easy to understand then the eclipse crud. I very much agree with this statement. Here are some resources: http://benlynn.blogspot.com/2009/01/developing-android-without-eclipse-or.html http://benlynn.blogspot.com/2009/01/developing-android-witho... http://java.dzone.com/articles/google-android-tutorial http://java.dzone.com/articles/google-android-tutorial http://blogs.nitobi.com/joe/2010/03/26/android-without-eclips/ http://blogs.nitobi.com/joe/2010/03/26/android-without-eclip...
- GeneralMaximus 17y ago$TEXT_EDITOR and $TERMINAL_EMULATOR running $SHELL. What else?
- gte910h 17y agoThe audio and video is a alot harder. The Layout issues without an interface builder type tool are rough. It's possible, for sure, and you can get up on the store in minutes. If you've never done eclipse, I don't recommend starting now. Develop without it. Learn how to use ADB from the command line.
- gte910h 17y agoAlso, you can do Flash CS5 and Appcelerator Titanium on it now instead of pure java. Check those out too.
- Magneus 17y agoIt's not perfect, but if you're learning Android UI, check out http://droiddraw.org/ http://droiddraw.org/. It's a WYSIWYG interface editor, like Interface Builder. It's not pretty, but I found it to be a good way to understand the fundamentals.
- gte910h 17y agoI honestly plan on seeing if CS5 can create anything serviceable as a UI for business apps. I can honestly see adobe going on the warpath there after this bullshit and now they have all the iPhone platform compatibility guys with nothing to do. If that fails, droiddraw looks like a possibility. I just tried it out. Would need to test it further, but has promise.
- gcb 17y agowas using the command line tools (plus vim, of course) and then installed eclipse and the plugins just to see 'what i was loosing'. Compiled the Hello world example. 20kb. Compiled then under the command line tools... 12Kb. It was by no mean scientific as I used some different titles and app names. but that was it. http://meme.yahoo.com/gbarros/p/1hKEYg-/ http://meme.yahoo.com/gbarros/p/1hKEYg-/
- gte910h 17y agoIt's not a performance thing. It's a productivity thing. Eclipse is not particularly intuitive for an IDE (and if you're a java developer who uses it all the time, you have no clue if it is as you're past the point where you're learning it). Eclipse is very testy on some platforms to get working Eclipse really confuses the issue when there are some compile errors in your android code. Eclipse is a fullscale ecosystem for some problem you are not solving (largely enterprise java development). 90% of the tool has nothing to do with android. Most if not all of the "Android Plugin" is calls to standalone EXE's you can use without eclipse, and which make gobs more sense when eclipse isn't doing the calls for you. I honestly made a pretty pure run using Android via Eclipse, then read 1 article of "Android Without Eclipse" and was able to Compile repeatedly, deploy and debug the apps I was working with easily once I jettisoned it.
- Magneus 17y agoThe experiences are comparable. First, I'll address your concerns about code signing: Android doesn't require you to go through quite the same certificate/provisioning profile insanity, but you will have to sign your applications before distributing them in the Android Market. See here: http://developer.android.com/guide/publishing/app-signing.html http://developer.android.com/guide/publishing/app-signing.ht... To develop on a device, it's brain-dead simple. Just plug in the device, install the driver (or config udev on Linux), and go! Details here: http://developer.android.com/guide/developing/device.html http://developer.android.com/guide/developing/device.html The one case where you need to get anything 'approved' is if you're going to use Google Maps. There's a quick automated process where you submit your development key in return for a maps API key. See here: http://code.google.com/android/maps-api-signup.html http://code.google.com/android/maps-api-signup.html Regarding development itself: In terms of learning the development APIs and how everything fits together, I contend that Android is going to be tougher to learn at first, because you'll have to figure out fundamentals like Activity lifecycle, Intents, etc. However, after you've gotten past the initial hurdles, I find that Android development (at least for the most part) feels more predictable and logically-designed than iPhone development. In my experience, Android also has some better libraries out of the box. For example, doing basic REST calls, JSON, and SQLite are all in the standard library. On iPhone, you're best off using 3rd party libraries for each of those. But there's always two sides to the coin. I find that iPhone is less structured, which can be good, depending on your tastes. I also feel that iPhone gives you a better-looking, better-feeling application with less effort (prettier default buttons, colors, animations, and there's always Interface Builder if you need it). If you're a game dev, also, iPhone tends to run faster and can utilize C libraries more readily than Android, whose ability to run C code relies on NDK/JNI, which can be a PITA. To wrap things up, don't expect an entirely new process when you switch over to Android. If you didn't have the patience to stick it out on iPhone, don't think that Android will be the magic bullet that makes things easy. However, you'll be able to develop applications using the tools you like (not wedded to XCode), under the OS you like (Win/Linux/OS X), and best of all: no approval process to publish your applications. I've found that it takes minutes, as opposed to the App Store's days/weeks, for Android applications to arrive in the market. I hope that helped. P.S. I recommend The Busy Coder's Guide to Android. There's plenty of examples to get you started.
- orangecat 17y agoI've found the Android API itself to be about on par with Cocoa Touch; some things are easier and some things are harder, but it seems to balance out. A major advantage for Android is that it uses Java instead of Objective C, giving you real memory management, no header files, and generally better built-in libraries. Also you don't have to muck with certificates nearly as much; apps can deploy to your phone immediately, and you just pay Google $25 (one time, as opposed to $99/year for Apple) and use a self-signed certificate to put it on the Android Market. And your app shows up on the market a few minutes after you upload it, and won't get pulled unless it's malicious. For fun, Android easily wins IMO. For profit it's less clear; there are certainly more iPhone users, but it may be easier for a quality Android app to stand out. My paid Android app is earning around $10/day (before Google's cut), which from what I hear is on par with typical iPhone apps.
- CrazedGeek 17y agoWhat's your app?
- cheald 17y agoI'd love a link to your app, if you're comfortable sharing.
- alayne 17y agoI doubt the experience is better than iPhone development from a tools perspective. I often feel like I'm participating in a Google Labs experiment. If you can deal with some rough edges and lack of direct developer support, you will be okay. Developing games seems to be relatively difficult. Java has GC issues and the NDK APIs don't support most application UI features.
- pkulak 17y agoIn my experience it's really tough to make an Android app look good. I started building an Android app, but got frustrated trying to muck with XML, never getting anything to layout how I wanted it to. I decided to give Cocoa Touch a try and found that the built in libraries take care of just about everything you need. I probably just didn't give it enough time though. I do plan on revisiting though. Objective C is a _giant_ pain in the ass, though. Just adding a property to a class means adding four lines between 2 files. I can't even imagine how people coped before 3.0.
- endlessvoid94 17y agoI agree about Object-C being a pain, disagree about making Android apps look good. Perhaps it's a trade off. The iPhone has Interface Builder, we get the shitty eclipse builder (plus the ability to use straight xml, or do it all programmatically). We get to use Java, but we have to use eclipse. the iphone has to use objective c, but they get xcode.
- biafra 17y agoI disagree about Objective-C being a pain. When I was doing osx development. Desktop and iPhone, I liked it. You do not have to use Eclipse at all! I use maven and the community edition of IntelliJ IDEA. But I could also use Netbeans. Or a simple text editor. For the GUI you can use DroidDraw. And you do not have to use Java. You can use Scala. Although I would recommend using Java until you are familiar with the APIs and concepts.
- uptownben 17y agoHope you're in the United States or some other country that Google decided to support. I don't mean to sound bitter, but I'm in Israel and it's seems that even with a decent size Google presence here, Israeli Android devs can not sell apps on the Google Marketplace. I found this out AFTER I paid the signup fee. That was about 9 months ago, and Google still hasn't responded to my emails requesting a solution. So, you should basically check, and double check that your country is supported if you want to sell apps and get paid.
- uptownben 17y agoHere is a link to the list of supported locations for developers who want to sell apps. Seems kind of short but I'm keeping my Android developer account open in the hopes that this list will get significantly longer in the near future. http://market.android.com/support/bin/answer.py?hl=en&answer=150324 http://market.android.com/support/bin/answer.py?hl=en&an...
- gte910h 17y agoHire a proxy in a valid country to sell them. For instance, I'd happily sell your apps for you on the marketplace after licencing them from you (I run a US based iPhone and Android* development shop[see my profile for contact info]) *Still only 2 projects deep into android.
- uptownben 17y agoThat sounds like an interesting option but I just think we shouldn't have to do that.
- gcb 17y agoOne word: Virtualization.
- mooism2 17y agoThat probably says a lot to someone who understands the implications in this context, but many of us don't. So, could you expand on that please?
- veemjeem 17y agoSounds like someone is speaking without experience here. I signed up as an app developer for the iPhone, got approved in 3 days. I wrote a new app in 4 days (a decent rss reader that pulls feeds from facebook) and the app was accepted in less than 2 days. Figuring out the certificate stuff was not hard as long as you know how to RTFM. I mean seriously, how about give it a shot before complaining on hacker news?
- tocomment 17y agoAny advice on the best phone to get? Droid or nexus maybe? Does it matter for development? Do i need a developer phone?
- gte910h 17y agoActually it matters a whole hell of a lot. There is a dev phone you can buy once you create a market account. It appears to be an HTC phone similar to the T-Mobile myTouch. It may be the best longterm solution as you can update the OS with Google Images. The issue with android is that there are 4 separate versions of it in the wild: 1.5, 1.6, 2.0, and 2.1. If you want your app to have the widest penetration, you need to target 1.5 or 1.6 The moto cliq (one of the the T-Mobile phones) are stuck at 1.5 and haven't been updated to 1.6 or 2.0 yet. The G1 will likely never be able to update to 2.x (too small of on board flash space on the phone). I've settled on a myTouch from t-mobile as my dev platform as it has 1.6 on it (which was required to run Appcelerator's Titanium). It may get returned for a cliq if they release an upgrade or any 2.x phone that comes out this month while I'm in the 30 day return period which all cells have in the US when bought without contract subsidy, or perhaps even the dev phone. The Droid has a 2.x series android release on it. Do not ask the people in the store, they're clueless about what version is on a particular phone. You can see it in the about menu on many of the phones if you dig in the floor models. The android phones are not user updateable a la the iPhone. They image gets updated over the cellular network semi-randomly. http://en.wikipedia.org/wiki/List_of_Android_devices http://en.wikipedia.org/wiki/List_of_Android_devices can be very helpful in picking a phone.
- tocomment 17y agoHmm sounds like I should get the dev phone then. Could I have a dev phone and a personal phone and swa the sims between them as needed? Or would the dev phone work fine as a personal phone?
- gte910h 17y agoDev phone works fine as a personal phone from what I've read if your network is supported.
- hyung 17y agoBe careful with the type of app you want to make. For example, we're trying to port our iPhone dual-thumb shooter and we've run into touch-recognition problems on the Nexus One and Droid. Nexus One doesn't handle multitouch correctly: http://www.youtube.com/watch?v=dsSUqkh8pcI http://www.youtube.com/watch?v=dsSUqkh8pcI Droid doesn't register a tap if one finger is already touching.