Through my computer science university experience, my need to download SDK’s was limited. Much of our work was done in Java and so the biggest requirement was to download and install Eclipse and the Java JDK. I was fortunate to be able to take a course in iOS development at university as well (one of the best courses I took by far). The setup experience for iOS development is similarly simple. Just download and install the iOS SDK. XCode and all the other tools are automatically configured and prepared for you. You just open XCode and start coding. I found these setup experiences to be generally quick and painless. I recently needed to test a PhoneGap application in an Android context. I had never done so before and I, perhaps naively, expected the setup to do so to be equally as painless as I had experienced before. Wow was I wrong.
Starting from the PhoneGap wiki, I was instructed to install Eclipse, the Java JDK, the Android SDK, the ADT plug-in for Eclipse, Apache ANT, Ruby and Git. Some of these I had already but that still left me several new elements to install and configure. I was lead to the Android SDK download page which provides a short version of the entire install process but didn’t provide enough detail for me to be able to complete the process. I had to check the ‘Installing the SDK’ page which had a more complete set of instructions but required me to then view the System Requirements page and the ADT Plugin for Eclipse page. I thought I was good to go at that point so I opened Eclipse, looked into writing the Android version of the classic Hello World program and after getting the code ready discovered that the ADT had to be told where the Android SDK was located on my machine and I had to configure the emulator for the specific Android platform, screen size, and device characteristics. No default was provided. Suffice it to say I was quite frustrated at this point. Why was this much effort required just to get my first Android app running? I hadn’t even gotten to the PhoneGap part of the process yet :S.
Don’t get me wrong. My issue here is not with the need to view multiple webpages in order to see all the necessary documentation to get all of this work (although it certainly could be better organized) nor is it with the provided tools themselves. I find Eclipse to be a good environment and the Android simulator works well. My issue is the amount of things to download and install and the continuing idea and concept of an SDK. For example, I was also interested in testing my PhoneGap app on a BlackBerry. The install process involved adding the BlackBerry plugin to Eclipse (which included the SDK piece :D) and downloading a simulator for my device of interest (in my case, just the Torch). BlackBerry still required a whole SDK but was really only one download to get started. In the extreme case, to write a webpage you really only need a text editor and a browser, two things that every computer has.
Whether your app is based on web tech or runs natively, the current SDK and setup process to do development is too lengthy and complicated in it’s current form. I’m all for great tools and integration between them in order to be more productive but lets streamline it ok?