Where Android Beats the iPhone
snydeq writes "Peter Wayner provides a developer's comparison of Android and the iPhone and finds Android not only competitive but in fact a better choice than the iPhone for many developers, largely due to its Java foundation. 'While iPhone developers have found that one path to success is playing to our baser instincts (until Apple shuts them down), a number of Android applications are offering practical solutions that unlock the power of a phone that's really a Unix machine you can slip into your pocket,' Wayner writes, pointing out GScript and Remote DB as two powerful tools for developers to make rough but workable custom tools for Android. But the real gem is Java: 'The pure Java foundation of Android will be one of the biggest attractions for many businesses with Java programmers on the staff. Any Java developer familiar with Eclipse should be able to use Google's Android documentation to turn out a very basic application in just a few hours. Not only that, but all of the code from other Java programs will run on your Android phone — although it won't look pretty or run as fast as it does on multicore servers.'"
It's not DRM-laden patent trolling Apple.
"The difference between genius and stupidity is that genius has it's limits" - Albert Einstein
Unfortunately right now it appears that for users it's the other way around.
"although it won't look pretty or run as fast...". That's all, Folks!
Fiat Homos et Pereat Theos
To those about to complain that screen resolution differences makes developing for android harder, then try using a UI measurement that does not rely on pixels, like em
Incidentally bitmaps that use em have not been invented yet. Vectors are not good for everything, and may take more power to render on the fly.
Also, em solves exactly nothing about how much content can you fit on a display before it becomes unreadable, a problem you may get if you treat DPI as a free variable. Oh and it also doesn't factor in display ratio, unless you think squashing things is the way to go.
You mean Windows? you can't possibly mean Nokia - which, although Maemoblin is very very new, should do well given Nokia's business-friendly sales and general market dominance.
Then according to his logic, Windows Mobile is better than Android and iPhone combined, because not only can it run Java apps, but you can author software for it in practically any mainstream programming language.
What about Blackberry? It is a pure Java based platform, even more so than Android.
I just think it's silly to say "This device is LISP based, so it is better than device X because some corporation might have LISP developers sitting around that can write apps for it in a language they're used to!"
Better known as 318230.
You can buy and play FIFA10 or even Grand Theft Auto on the iPhone. The games are a pretty good indicator IMHO. When complex and expensive productions from big studios start coming out for a platform, you know that the platform is popular.
And if you think Java makes any kind of difference, think again. The guys that are developing these applications do not seem to care. It's not about happy programmers, it's about happy users. And right now the iPhone still has the edge.
As far as I can tell, 99% of the iphone apps are pure and utter shit.
That Java is something that makes Android superior to iPhone is a dubious claim.
Objective-C has advantages, such as that it is compiled. While Android has lots of libraries implemented in C and C++ that speed execution of Android applications, and developers can choose to implement intensive computations in C using the NDK, Objective-C requires no JNIs or other complications of splitting an implementation between Java and C/C++.
X-Code is a purpose-built, clean-sheet IDE that may lack a few power features found in Eclipse, and Eclipse has numerous plug-ins, but Eclipse also has a pretty diabolical UI, especially compared to software from Apple.
Java, Eclipse, and the other Android SDK tools are more than good enough, but they are not a big advantage, or, depending on your tastes, any advantage. There is a rough equivalence here that will probably extend to Android doing for client Java what iPhone did for Objective-C - making it popular. That is, Android apps will probably be the most common form of interactive client Java apps, if they have not already eclipsed AWT, Swing, SWT, and other Java UI libraries. This is going to have a big influence on Java, considering the fact that iPhone programming books crowd the top of the list or programming books at Amazon.
Android's advantage is in openness. Android developers are not just app developers. They can be system customizers and extenders. They can be technology vendors to a large number of OEMs using Android. They can have all kinds of products, customer, and business models, throughout the mobile economy, not just retail customers of the app store.
I wrote parts of this stuff
Java does not just allow bad programmers to write sloppy code, it also allows good programmers to write better code (than in C/C++ and direct derivatives). Shitty programs are available in all languages. I managed to write a shit application in Lua in a minute flat. How difficult is it to grasp this concept? Do you really want a programming language that makes it harder to write manageable code, on purpose?
I'm getting sick of this argument. Most of my esteemed C++ colleagues like Java once they've actually tried it out for real. Unfortunately we don't always get Java libs for the hardware we are using.
Politics
Religion
Mac Products
Can I bum a sig?
That a phone that caters to developers is NOT a phone that the rest of the world has much interest in using. I love the flexibility promised by Android, but if smartphones are going to take over the world I would not want my grandmother to have to deal with fragmentation and software complexity. Android phones and the iPhone occupy two different market niches. This is a good thing for both developers and consumers.
We heard so many complaints from customers it was rather eye-opening.
Then your layout sucked. Nothing is more annoying than a static 1280x1024 layout on an iPhone, that requires me to zoom in and out constantly. For a good flow layout, take a look at Wikipedia or Amazon's mobile sites. Just because you couldn't do it right doesn't mean all flow layouts are wrong.
As a result, the cost of us building an Android app is now double that of an iPhone app.
You are supporting more hardware devices, so you have to test on more hardware devices, which costs more. Would you rather that each of those pieces of hardware have a different operating system? You should be thanking Google for Android, because the only reason you are even capable of supporting all these devices is because it is so much cheaper because of Android. Before Android, you had to write for even more operating systems.
Android it has. Not to mention the other hardware inconsistencies.
"Inconsistencies?" Has it occurred to you that there is actually a demand for these varieties of devices? The iPhone resolution and keyboard simply don't work for me (I tried). They don't work for many other people either. We want high resolution devices with a keyboard. I'm sorry that inconveniences you as a developer, but you'll just have deal with it (unless Apple succeeds into turning us into the United Socialist Apple Republic, where everybody is forced to use a single standard device by Apple Corporate).
As a result, the cost of us building an Android app is now double that of an iPhone app. And at the rate the new Android phones are coming out, that is likely to increase if customers want a full compatibility guarantee.
And the market share is likely going to be double that of the iPhone soon as well. Again, go deal with it. Or if you don't want to deal with it, fine, that's your choice; I'm sure other developers will be happy to take your market share.
We've spent over $2500 acquiring Android hardware just in the last six months of last year and have already spent another $1400 this year.
I hardly call $5000 in hardware per year a significant expense for a development shop. But you don't have to do it anyway since you can test on emulators.
Professionals who tell their clients that "the software sill work on all shipping Android phones" better have tested on actual hardware. Emulators could not replicate for you chipset quirks, subtle timing problems, and many other issues that only occur on hardware. If you've shipped commercial software tested only against an emulator, I would strongly urge you to not admit it, and maybe get a lawyer.
"All shipping Android phones" is a somewhat silly claim to make. Do you tell your clients that your desktop software will run "on all shipping Windows laptops?" Your testing costs must be through the roof. It's amazing that anyone makes any money in this field.