6 ms·
Is it hard to become an Android developer?
- kreci 16y agoAs usual comments are welcome and very desired ;)
- netcan 16y agoAny answer to such a question is at least a little 'how long is a piece of string' in nature. It might help if you added some examples. How competent is competent. How hard is hard. From where you started, how long did it take to be able to create a basic own use app with a quanta of usefulness. If it makes it easier, compare it to starting in php. In the time it would take a non web programmer to learn enough to make a do list app, how far would you get in android?
- kreci 16y agoIt took me about a month to write my first useful app - "WP Stats" for Android. I think it is quite fast especially I have not even known Java too well...
- deleted 16y ago[deleted]
- narag 16y agoExcuse me if this is a little off-topic, but the article just reminded me of it. There seems to be a recent trend over here of stories in HN appearing before the actual news. See speculation about recent NASA and Apple announcements. Sometimes, I can't find later stories that tell "the answer". What ever happened to new Google Phone? I was first planning to buy the Desire for programming, like you. But the possibility of a "clean" phone has me waiting...
- kreci 16y agoYesterday google has presented new Nexus S and most probably it will be available for sale in a few days/weeks and it will come with Android 2.3 (Gingerbread). So it may be really good idea to wait for it :)
- chrisbroadfoot 16y agoStopped reading when I read "JAVA". Java is not an acronym.
- kreci 16y agoThank you for seeing this - fixed :)
- andrew1 16y agohttp://chrisbroadfoot.id.au/2008/03/21/essential-mac-osx-apps http://chrisbroadfoot.id.au/2008/03/21/essential-mac-osx-app... Stopped reading as I found a grammatical error on the first line. I mean, I could just accept that articles that people put on their personal websites might not be copy-edited by professional editors and that despite errors they might be useful or interesting. Probably easier to just dismiss the whole article though.
- wallflower 16y agoExcellent and practical tips and a few highly-recommended book recommendations/study materials from the HN community: "Ask HN: Jumping into Android Development" http://news.ycombinator.com/item?id=1347170 http://news.ycombinator.com/item?id=1347170 The general consensus from my extended network of mobile developer friends and acquaintances: Android is harder to develop for than iOS - you will spend more time and effort on building something nice than you would in iOS. Windows Phone 7 is not an easy transition for .Net and C# developers because it is basically Silverlight framework programming. No one I know is doing WebOS (Palm) development. Also, the money in mobile development is almost always from making apps for companies and organizations that want to have their own app (e.g. consulting). This is from my knowledge of how my friends are making a living. Yes, they have their own apps but to succeed in the direct to consumer device marketplace is really is more about being a better marketer, designer than a mobile developer. The consumer who downloads your program only sees the tip of the iceberg (the UI, the functionality, the user experience). Does it make them feel cool (or appear cooler to their peer group) and/or add some bit of value to their life workflow? They don't care how it was made. Note: This is why HTML5 apps are at a disadvantage - there is only so much you can do with Canvas.
- brown9-2 16y agoyou will spend more time and effort on building something nice than you would in iOS Can you elaborate on the reasons why?
- wallflower 16y agoTwo things: Device fragmentation and the UI layout Device fragmentation means that you will need to test your app on multiple Android devices and operating systems to ensure the experience you built is up to par with what the user sees UI layout: To build a decent UI requires taking the wayback machine to Java Swing and GridBagLayout. It is getting better though with Gingerbread. Third thing: Too much decoupling in the development environment
- zrgiu 16y agoI can. My opinion might be biased because I don't do iOS development (but all my friends do), instead I do Android, WebOS and Bada development. So, here are a few reasons: 1. On iOS, if you use the native interface the app would look good. On Android, it will look like crap :-) 2. On iOS you have predefined UI effects and transition, on Android you'd have to do custom 3. iOS is faster, and has a much higher memory limit than Android. Allows apps to use more resources (because it's not multi-tasking) 4. iOS doesn't have a capped app size. Most Android phones have application storage limited to around 10Mb. Android introduced lately support for installing apps on external storage but.. check #5 5. Fragmentation. You currently have to suppor 2 major Android versions (4 minor). Believe me, that really caused me a lot of problems in the past 2 years 6. Screen sizes. On Android, you currently need to support 5 different screen size ratios, as well as over 10 screen sizes. handle that!
- campnic 16y agoI became a full time android developer about 45 days ago and had been dabbling before that for about 2 months. A few points and comments about the article. - If you are going to pick up a phone to do android development, my recommendation would be a used original Droid or the HTC Desire. And its not because these are good phones but because these are the phones that I see a lot of people using. I have a Nexus One and I find that it is too powerful and does things other android phones can't. (read on) - Understand what device fragmentation means for your development. Are you creating a form based native application? Different handsets generally handle native layouts, text and buttons very similarly so fragmentation may not be a huge issue. Are you creating a game or an application that uses video/audio? Prepare to be buried in a multi-dimensional matrix of hell :) As an example, take for example streaming raw AAC audio from the internet. Android as a base platform does not support this in hardware or kernel, but some sprint phones do support this. - Keep in mind the relative power of the different devices. As with most emulators, the Android emulator has slow draw times and fast network times (though network can be adjusted). Just keep in mind that, if you have a device, where does it rank in the spectrum of devices. Developing an android app that runs 'smoothly' on a Nexus One can leave a lot of customers having a 'jerky' experience. Some of this, in my experience, is also cause by poor design decisions. How hard is it? Doing something trivial is, by design, trivial. A todo list app would take you, with knowledge of any other programming language, less then 8 hours. I find that the expensive part of the process is knowledge of the fringe, as with all things. Things like knowing how button requests cascade, how a view hierarchy should be organized or how to stream media (can you tell I'm hung up?) are the sorts of things that aren't extremely well documented and take more time to understand than similar concepts for web programing (IMO). Like kreci, I'm open to questions.
- kreci 16y agoThanks for great comment. It adds a lot to my post. As you have written the biggest problem is the Android versions fragmentation (but it is getting to look better) and many of devices on the market (as I have written you will never be sure if your app works well on all of them).
- ctrager 16y agoWhat turned out to be necessary for me was looking at the source code of the android apps themselves, rather than the sample apps in the SDK. Specifically, I developed an app that used the camera (http://ifdefined.com/blog/post/BugTrackerNET-app-for-Android.aspx http://ifdefined.com/blog/post/BugTrackerNET-app-for-Android...) and I couldn't have done it without studying/stealing code from the built-in Camera app: http://android.git.kernel.org/?p=platform/packages/apps/Camera.git;a=tree;f=src/com/android/camera;h=f68f175adfda95ee342877e5139b94e5c9e5622a;hb=HEAD http://android.git.kernel.org/?p=platform/packages/apps/Came...
- masklinn 16y ago> It is helpful to test your app with real touch screen but for most cases an Android phone emulator (that is included in Android SDK) is really enough. This is a very good way to release complete garbage.
- kreci 16y agoAs I written at all it is good to test it on real device. But if you just want to learn emulator is enough!
- grammaton 16y agoNot really. Trust me, there will come a point when it's phone or nothing, and that point comes sooner than you think. Like ALL mobile emulators, the android emulator is slow, buggy, and frustrating to use.
- tocomment 16y agoMy biggest obstacle in getting into Android development is thinking of ideas for apps to make. It seems especially hard to think of simple ideas that would make a good first project. When I try to sit down and do a "toy" app to learn the platform better I find myself getting bored because I'm not excited about the app I'm making. Does anyone have an advice on finding or coming up with ideas? Or better yet, does anyone need a simple app made? (Maybe I should do an offer HN if that's still around).
- deleted 16y ago[deleted]
- parfe 16y ago>My biggest obstacle in getting into Android development is thinking of ideas for apps to make. I just got a Droid X. I had been trying to brainstorm ideas for dev'ing on it but realized on my commute home yesterday that was the wrong way, for me, to go about it. Basically I need to just use the phone and anytime I think "wow, i could really use X to do Y" go and try to find X, and if I can't maybe work out a plan for developing X myself. Like on my commute, I have several routes I can take. I got the idea to make an app that collects statistics based on time of day, route, speed/traffic that will help predict which route is the best depending on when I leave the office. And hey! It already exists. But can I compete? Or should I just be happy someone already did the work for me?
- tocomment 16y agoWow, I had that exact same idea! Does it already exist? I figured it wouldn't be a good first project, but maybe. Also GPS kills my battery in under two hours on the incredible :-(
- parfe 16y agoFor this specific idea, the battery is irrelevant as you have ready access to a car charger. CommuteTrack[1] is the app I found. It's listed for $5.00 but I haven't purchased it so I can't comment on the quality or functionality. [1] http://frequal.com/CommuteTrack/index.html http://frequal.com/CommuteTrack/index.html
- brown9-2 16y agoCan anyone here comment on either of the two Android books kreci recommends, or have any other recommendations to add?
- zizee 16y agoIf it is not considered off topic, I'd like to hear if anyone has used Rhomobile* to develop an android app. Even better if you can share experience as a Rails programmer making the jump. * Rhomobile/Rhodes is a Ruby framework for developing Android and iOS apps from the same codebase.
- donaq 16y agoSo what do you really need… Free IDE like Eclipse You don't even need to use an IDE if you don't want to. Google, in typical hacker-friendly fashion, has provided pretty complete instructions for developing in your environment of choice. Personally, I use vim, but in case you're not as masochistic/in love with vim as I am, the instructions should work just as well for your favourite code munger. http://developer.android.com/guide/developing/other-ide.html http://developer.android.com/guide/developing/other-ide.html
- nuclear_eclipse 16y agoEven better is using Eclipse with the Vrapper plugin to get Vim emulation from inside the IDE. There are some limitations, but for when I need to work on Java code, it's much better to use Eclipse+Vrapper than to go without any of the IDE benefits. http://vrapper.sourceforge.net/home/ http://vrapper.sourceforge.net/home/
- technomancy 16y ago> You don't even need to use an IDE if you don't want to. Heck, you don't even need to use Java: https://github.com/technomancy/Garrett https://github.com/technomancy/Garrett
- gte910h 16y agoYou can even use javascript via Appcelerator Titanium: http://www.appcelerator.com/ http://www.appcelerator.com/ (It's even moderately crossplatform with iOS and soon blackberry).
- loca 16y agoI haven't used, but PhoneGap seems to offer something similar: http://www.phonegap.com/ http://www.phonegap.com/
- gte910h 16y agoI really detest eclipse. I haven't found that it helps with android development at all. VIM is fine at it.
- krschultz 16y agoWhat phone do experienced Android developers recommend getting? The Droid X, Droid 2, and HTC Incredible are seemingly the most popular ones people are buying in the stores, but I was thinking of getting a Droid 1 or Nexus One for development. The Droid 1 is a bit slower and I think it is best to develop for slower hardware than for faster hardware, and the Nexus One is seemingly the fastest to be updated. Any recommendations?
- mitchellhislop 16y agoNexus One- It was designed as a hacker phone and a developer phone. I love my Droid, but for developing, the N1 takes the cake.
- stanleydrew 16y agoNexus one. Hands down the best phone given that carriers can't cripple it or clutter it up with crappy apps or extra branded ui. Use it on T-Mobile with their out-of-contract plans.
- ydant 16y agoOriginal Droid and you can have updates very soon after N1 gets them thanks to Cyanogen. You also will be working with a bit more limited resources - less memory, and slower processor, which should help save you from writing stuff that will only run well on the N1. The Droid is very capable for foreground processes, but once you start running too much, the memory constraints kick in - this can be useful to test if you rely on a background service. Once the Droid is rooted and has a good recovery image loaded, you can back up and go from "Stock" to some aftermarket ROM for testing a variety of scenarios if needed. I would recommend testing with an HTC Incredible as well - with that, there's the possibility of switching between Stock HTC build and Cyanogen using the bootloader (requires "rooting"). I'm finding quirks with SenseUI (most annoyingly, the keyboard throwing the same event multiple times) that I would have never caught without the device in my hand. Also, keep in mind depending on what you're doing, some built in Vendor app (Verizon, etc) might interfere, so testing on a purely stock Google build phone might cause you to miss something.
- grammaton 16y ago
- count 16y agoDeveloping apps for Android isn't especially hard - much of the documentation is geared toward that. Developing on Android itself (porting to new devices, adding functionality, etc) is insanely difficult and very poorly documented (if at all).
- grammaton 16y agoFunny, from my experience i'd have said the exact opposite. Then again I started out on J2ME feature phones, so "difficult" porting is a pretty relative term for me ;)
- trotsky 16y agoI love your attitude kreci. Thanks for the informing blog posts.
- grammaton 16y agoThe hardest part of becoming an Android developer is the steep learning curve - Google doesn't exactly do you a lot of favors with it's documentation there. However, relative to the learning curve, it's no more difficult to pick up the requisite bits of software and start learning than it is to become, say, a Rails developer (I've done both professionally).
- gord 16y agoWhats the HTML5 rich web app development experience like for Android? ie. do webkit style animated transitions work? smoothly? [ Found a partial answer to my own question, here : http://blazingcloud.net/2010/08/11/jqtouch-slide-transition-fix-for-android-2-0/ http://blazingcloud.net/2010/08/11/jqtouch-slide-transition-... ]