Share your knowledge and create a knowledgebase.
A week ago, I put together a roundtable about the upcoming mobile platform wars between the iPhone, Googleās Android, and older platforms like Nokiaās. One thing I discovered as I was organizing the event was that it was really hard to find anyone developing Android apps other than the 50 people who won the Android Developerās Challenge. (We tried to get someone from Android on the panel, but Google declined to participate).
Most of the 20 CEOs, developers and VCs on the roundtable were more interested in the iPhone, Nokia, and other platforms that actually exist as something other than a software emulation. Their attitude seemed to be: Show me the phones.
Pandora CTO Tony Conrad went even further, saying, āI need Android like I need a hole in the head.ā To which Michael responded: āAs soon as it launches, you are going to be kissing Googleās ass and you are going to be launching on their platform.ā Hereās a clip with Tony and Michael going at it:
Another debate was whether the iPhone is really anything new. AdMob CEO Omar Hamoui (in T-shirt) argued that it indeed represents a fundamental shift because it is the first time most people are actually using the mobile Web, regardless of how long itās been around. (This was basically the premise of the panel). Skydeck CEO Jason Devitt (in striped shirt) pointed out that the existing mobile Web is already a fairly large market, citing a figure of $700 million spent on mobile games alone. Devitt, though, is old-school (he previously founded Vindigo), and even he admits that he doesnāt browse the Web on most phones other than the Phone.
Source : http://www.techcrunch.com/2008/08/02/mobile-web-wars-videos-does-anybody-care-about-android/

Copy and Paste has long been one of the most requested features on the iPhone, and its continued absence has been both frustrating and confusing for many. How can it be that the iPhone - running a finely tuned version of Mac OS X - is unable to perform functions that have been included in text editors since the 80ās?
MagicPad, a new application from Proximi that is currently waiting for approval on Appleās App Store, is finally making copy and paste a reality on the iPhone. The application is essentially an improved version of āNotesā, and features rich text editing, allowing users to modify font type, size, and color. And best of all, it allows for copy and paste. Users need only drag their fingers over text to select it, and adjustments can then be made on a menubar that appears above the onscreen keyboard (see the video below).
Unfortunately, MagicPad isnāt going to bring true Copy-and-Paste to the iPhone, as there will be no way to copy text between applications (say, from Safari to the Mail client). Youāll be able to copy and paste between multiple notes within MagicPad, which will make it a step up from Notes, but in reality it serves as more of a proof of concept than a solution.
So when will we finally get true, systemwide, copy and paste? Earlier this month, Appleās Greg Joswiak finally commented on the issue, explaining that it was on Appleās to-do list but that it hasnāt been a priority. The lengthy wait is almost certainly due to issues with creating an intuitive interface for copy and paste on the iPhoneās buttonless touchscreen. MagicPadās interface looks like it works well enough, but it takes up a large portion of screen real estate and is less elegant than what weāll probably see from Apple.
Thanks to Apple iPhone Apps for the video.
First Look - MagicPad from Apple iPhone Apps on Vimeo.
Back in 1984, Apple was on top of the computing world with top-notch sexy hardware and it partnered with Microsoft for some top-notch [not so] sexy practical software. It was a winning combination for both Apple and Microsoft. Microsoftās strategy in 1984 was hardware agnostic making its software available on any popular platform. Appleās strategy in 1984 wasĀ holistic. Weāll call the period between 1984 and 2000, Round 1.
In Round 1, it turned out that Microsoftās strategy was the clear-cut winner. By being hardware agnostic, hardware vendors competed with one-another to drive down the price of hardware much faster than anyone could have imagined. Clone prices fell so fast and so much lower than the price of a Macintosh that it simply became impractical to own a Mac. Software vendors also took note and quickly the non-Mac-PC became the standard. Apple nearly died.
2007 set off Round 2. This time around itās in the cell phone business. Once again, Apple is on top of the Cell Phone game with top-notch sexy hardware and it has partnered with Google this time for some top-notch [not so] sexy practical software (think Google Maps, YouTube and other web-based Google Apps for the iPhone). Once again, itās a winning partnership for both Apple and Google. And Once again, Googleās strategy is exactly the same to that of Microsoft in 1984: stay hardware agnostic. Appleās strategy is also identical to its own strategy back in 1984: stay holistic. Round 2 has begun.
The similarities are eery. In 1984, while Microsoft was building the most popular application software on the Mac, it had begun a similar hardware-agnostic operating system (Windows) on its own. In 2007, while Google has some of the most popular application software on iPhone, it has begun a similar hardware agnostic Cell-Phone operating system (Android) on its own. Appleās strategy has not changed a single bit. It refuses to license its operating system or any other technology while it continues to want more and more control over the entirety of the experience. The iPhone in 2007 has set off a brand new race much like the original Macintosh did in 1984. Interestingly, 24 years later, the strategies are still identical on both sides.
So will Round 2 end in the same way with Googleās Android prevailing due to exceptionally cheap phones that are sure to emerge using Android? Maybe not. There is one key difference between Round 1 & Round 2: Steve Jobs. Steve didnāt get to finish fighting the strategy that he helped establish for Apple in Round 1. He left Apple in 1985. So thereās no telling how things would have turned out. The fact that Apple lost round 1 may have taught everyone a lesson and it might falsely embolden Google to think Microsoftās winning strategy was the better strategy. After all, Googleās chief, Eric Schmit, has been learning from (and losing to) Microsoft for 20+ years. Eric is now using Microsoftās own strategy to successfully beat them. Google is the new Microsoft.
But this time around Steve is much smarter than he was in 1984. So smart in fact, that heāsĀ resurrectedĀ Round 1 from the dead and may still pull off a win (the Mac is coming back). Itās possible that Steve & Appleās holistic approach will still be the winning approach for Round 1, assuming you extend round 1 to at least 2015. But in Round 2 Appleās chances are a lot better. Everybody is at the beginning of the race. There are no clear winners and just like in 1984, Apple has a major lead. Itāll be interesting to see what happens.
Iām curious to know your thoughts on:
On Monday, November 12, 2007, Google released Android, a complete Linux based software stack aimed directly at the cell phone marketplace. I’ll let others talk about what it means for other players in the marketplace, the intricacies of GPL2 vs the Apache License, etc. This article dives straight into the heart of the SDK and API itself, summarizing some of the documentation provided by Google, then jumping into building an application using Android.
(Click to enlarge)
So, what Is Android?
Android is a complete software stack for mobile devices such as cell phones, PDAs and high end MP3 players. The software stack is split into four layers:
Cell phone users obviously work with applications in the application layer. Android developers write those applications using the application framework. Unlike many embedded operating environments, Android applications are all equal — that is, the applications that come with the phone are no different than those that any developer writes. In fact, using the IntentFilter API, any application can handle any event that the user or system can generate. This sounds a bit scary at first, but Android has a well thought-out security model based on Unix file system permissions that assure applications have only those abilities that cell phone owner gave them at install time. The framework is supported by numerous open source libraries such as openssl, sqlite and libc. It is also supported by the Android core libraries — more on that in a second. At the bottom of the stack sits the Linux 2.6 kernel, providing the low level hardware interfaces that we all expect from a kernel. This is a Unix based system — that is, the Unix C APIs are available — but don’t expect to drop to a shell and start executing shell scripts with your old friends grep and awk. Most of the Unix utilities are simply not there. Instead Android supplies a well thought out API for writing applications — in Java using the Android core libraries.
That’s right, Android applications are almost exclusively written in Java. The Android core library is a big .jar file that is supported by the Dalvik Virtual Machine — a fast and efficient JVM work-alike that enables java-coded applications to work on the Android cell phone. This is similar to, but not the same as using Sun’s JVM directly.
Building your development environment
Google provides three versions of the SDK; one for Windows, one for Mac OSX (intel) and one for Linux (x86). They also provide two development environments — one is Eclipse based, and the other is a “roll your own.” The Eclipse based environment is quite feature-rich and should suffice for most developers. There is no reason that you can’t use both Eclipse and “roll your own.”
If you get stuck in eclipse (like I did), you may find yourself dropping to the command-line interfaces to see what’s really going on. However for this article, I’ll assume that you’re using the Eclipse IDE for your Android software development needs. Once you’ve downloaded the Android SDK, Eclipse and the Eclipse Plugin, you should work through the first few sections of Google’s install document (System and Software Requirements, Installing the SDK, Installing the Eclipse Plugin). I’d leave the rest of the document for later as it does get quite detailed quickly.
Read the Friendly Manual
Google has done a good job of writing a lot of documentation for Android. However, there isn’t a great way of knowing what’s important to read now vs. what can wait. Here are some links to documents that are important to understand what Android is and how to develop applications using it. If you read them in the order listed, then you’ll gain understanding more quickly as you read increasingly detailed documents. Note that a lot of the documentation is available both online and in the SDK_ROOT/docs/index.html directory on your machine. If you have a fast enough connection, I would suggest using the on-line versions since they will be more up to date.
Here’s the order in which I suggest you read the documentation:
There’s a lot of documentation, but if flows together nicely, reflecting the architecture of the environment.
Dissecting the SDK
Whenever I download an SDK, I like to take a look at the files I’ve installed. Often, there is a wealth of information hidden in the SDK itself that is not readily visible from the documentation. So here’s what you’ll find in the Android SDK on a Windows machine:
Exercising the SDK
Now that you have read the documentation and set up and debugged a simple project, it’s time to look at some real code. Since Google has provided us with several sample applications, the best place to begin is by examining them.
Repeat for the other applications in the samples directory. This exercise should only take a few minutes — besides, the Snake game is fun too! If you’ve taken the time to go through the Notepad Application Tutorial, then you’ll be familiar with the NotePad sample — however, the NotePad sample is fully developed and has features beyond the NotePad developed during the Tutorial.
A File System Explorer Application
Finally, we’ll use our new understanding of the Android to develop a simple file system explorer. The version in this article is pretty simple, but it can serve as a jumping-off point for a more serious application down the road.
Design
Before we start writing code, let’s think about what a reasonable file system browser should do. It should
Process
This article will only cover Phase I of the project — but when we’re done, we’ll have a functional file system explorer in just a few dozen lines of code.
| To proceed with this hands-on example, click here. |
New Android Project
(Click to enlarge)
It works!
If you clicked above to follow the hands-on example, you found that in about twenty lines of Java, and a small amount of XML, you’ve created a useful little application that will allow you to explore the Android’s file system. For example, I found the ringtones in /system/media/audio/ringtones, as shown below.

Oooh, ringtones
(Click to enlarge)
As I mentioned in the design section, a lot can be done with this application, and we’ve hardly touched the surface of what you can do with the Android application environment. There’s three billion cell phones out there. I suspect Google will get their fair share of them, so start cranking out code!
Conclusion
Android is a well-engineered development environment. Writing an Eclipse plug-in was a smart move by Google — one that should be emulated by other SDK developers. Eclipse gives a developer and environment where he can really think about the business problem without worrying about the boring details. Adding the functionality of the plugin helps developers just sit down and start coding — without having to worry about all the ins and outs of configuration files and the like.
Dislikes
Android is brand new to the general developer’s world. As I write this, it’s Wednesday, and the SDK came out on Monday of this week. Since it’s brand new, there are some little problems that will have to be solved in the coming releases.
Likes
Theres a lot to like about Android:
Schmap, publisher of over 200 free online travel guides, has opened access to their guides for iPhone and iPod Touch users by way of a remarkably nifty web application. The guides cover cities throughout the US, Europe, Australia, Canada, and New Zealand, and provide information on everything from the cityās historical background to the best places to get your drink on.
As portrayed in the image, the web app utilizes the iPhoneās gyro sensors and a Safari specific JavaScript function to determine how the device is currently oriented, and swaps between two display modes accordingly. If the device is oriented vertically, points of interest are displayed as a simple list; if horizontal, the points are overlaid on a map of the area. This allows the user to jump back and forth between modes without having to dig through menus, and is an ingenious way to make the most of the available screen real estate.
In addition to the city guides available for many major cities, Schmap is working on implementing a local search feature to provide similar functionality for cities they havenāt charted out yet. While local search results obviously wonāt be as in-depth as the custom written city guide entries, it provides enough to get by: the business name, street address, and phone number. It did a good job of finding coffee shops in my area, even pointing out a few Iād somehow managed to ignore. I was unable to get the local search to recognize any zip codes, so you may need to type out the cityās name for the time being.
My only dislike with the service thus far is the tiny size of some of the buttons. I definitely donāt have sausage fingers, yet I constantly found myself tapping just outside of the detection areas. This was especially true of the arrows at the top and bottom of the interface.
Overall, Schmap for iPhone/iPod Touch is an incredibly handy application, especially while traveling or getting to know a new area. Iād expect to pay a few bucks a month for the service; that itās free is just the mega delicious icing on the cake.