Google recently showed the first Android device, there has been a lot of attention from the open source operating system. Given the problems faced by iPhone developers to write applications for the Apple device, caused by a restrictive NDA that forbids them to discuss the code and therefore solve problems in collaboration, Androind will-t there a more attractive system for application developers? And if that's the case, does that mean it will be an iPhone killer? In a word, no. Here's why:
Android is already late, Google has messed up by keeping developers hooked. They tried to fix it, but a lot of damage had already been done. The iPhone platform has been around for a year, and the official SDK for several months, giving it a head start.
But the real problem is the handsets. In fact, everything is a problem. Android is open source, which means that anyone can use it and anyone (including handset manufacturers) can make their own changes.
On one side, you have the iPhone under Mac OS X same thing). Each copy of iPhone OS is more or less the same (at least if you consider version 2 as iPhone OS and version 1 discount that currently only works with a minority of devices).
iPhone OS currently works with only four hardware devices, 1st generation iPhone, 2nd generation iPhone (3G), 1st generation iPod Touch and 2nd generation iPod Touch. Between these, there are only four differences in the available hardware: camera (not present on iPod), GPS (not present on the iPhone 1 or iPod), even if geolocation services are always supported by wifi polling or triangulation), access to the cellular / phone network (iPhone only) and 3G data (only present on the iPhone 3g). You could also argue about the vibration function that is only for the iPhone, but it's a phone-centric component that hardly deserves to be mentioned.
So, if you want to write an application for iPhone OS, it's relatively easy to know exactly what you're dealing with. For example, if you need to access an image, the operating system does all the heavy work for you – it gives you an easy way to check if you have an available camera. If you have, it allows you to access it in a standard way, otherwise you will have access to the integrated Photos application. In any case, you know that you will have access to the images in a standard way.
If you want location-based services, well, you have access to all the material. If you find yourself running on an iPhone 3G, the operating system will provide GPS data so that you are more accurate, but it will work on the other hardware.
devices – same screen size, resolution, languages, keyboards, accelerometers, audio capabilities, etc. etc.
Compare this to an Android device. From the hardware point of view alone, you can use any of the potentially different devices. You do not know what screen size you have – it could be as big as the iPhone, could be tiny like a Nokia flip phone. So already, how do you start designing a user interface when you do not know how much space you have to do it?
So you do not know how many colors you can support, or if the device has a keyboard or not. It could have a touch screen, or it might not. He might have a joystick or a d-pad, or maybe not. So, how do you let users interact with your app if you do not know all of the above?
To continue … the device can work in English, or French, or 100 different languages. You do not know if there is a camera or not, and if there is one, what kind of camera? What resolution? Does he make video? The same goes for GPS. And what kind of sound capacity is there? The list is long.
So, in hardware, there are thousands of possible combinations, and you'll never be able to test them before launching your app, unless you buy all Android devices. to be published in the future.
But it gets worse because remember that the handset manufacturer can also change itself! So you can write code that uses a "standard" part of the operating system, and then Sony pulls out a phone that does not have that part, because it has it removed or replaced by something that he wrote himself. Your application crashes.
Assuming you were able to write an application capable of adapting to all possible hardware configurations, and to take into account the fact that it works on an operating system identical to that for which you have developed it. maybe not, then you have to distribute it in the Google App Store.
Unlike the iTunes App Store that vets all software before they go on sale, ensuring a minimum level of quality, in the Google Store, anything is possible. Which means that it will be inundated with useless applications (many of which will not work for reasons already discussed). Users download one or two applications, see that they do not work and give up. Chances are that they will never discover your artwork among all the garbage.
Apart from that, Android is a good idea. And the mobile market needs it because Nokia has bought Symbian and will probably kill it, and Windows Mobile is just horrible. So Android will boost competition. And if Google sees their vision, it will end up spinning DVD players, washing machines, and who knows what else. It is therefore a useful project.
But to write applications and distribute them, the iPhone OS is light years away. He also has the know-how of Apple's consumer marketing. Android is too techie, and will take a lot more time to go with the general public. After all, apart from the iPhone users, who buys a phone based on the operating system that it runs?