September 2008 Archives

  1. Sep16

    Inside the iPhone App Store acceptance process

    Apple's iPhone OS App Store is a little over two months old and already the focus of both hype and fear among members of the press. KPCB has already invested more than $30 million through its iPhone-specific fund. Established companies are writing iPhone applications for the first time. A few applications have been banned, as expected with most platforms. Apple's relative secrecy regarding the iPhone platform and distribution policies have caused market uncertainties in need of some further clarity. In this post I will examine the iPhone OS 2.0 platform and the iPhone App Store from the point of view of Apple and other hosted storefront providers.

    As I write this post there are over 3400 applications available from the iTunes App Store. 90% of those apps are available for both iPhone and iPod touch. 76% of App Store listings require payment ($1 or more). Developers may distribute an iPhone OS 2.0 application directly to handsets using their own infrastructure or distribute through Apple's App Store built-in to iTunes and iPhone OS.

    1. Inside the App Store
    2. Podcaster rejection
      1. Submitting to App Store
    3. Ad-Hoc Distribution
    4. Summary

    Inside the App Store

    Apple's iPhone App Store connects developers large and small to millions of iPhone OS devices around the world. Apple handles payment processing, international business licenses, distribution, marketing, and delivery of applications to iPhone and iPod Touch devices over WiFi, cellular data, and tethered experiences. App developers may list items for sale in Apple's App Store in exchange for a consignment fee of 30%.

    Carrying third-party content inside your store and on your devices does carry some risk. Developers pay to access the iPhone developer program, sign their applications with unique keys, and assume some of the support burden for their applications. There are a few obvious reasons why a platform such as iPhone might choose not to carry an application in its storefront:

    • Chargebacks. Buyers frequently return your product for reasons including buyer's remorse or just receiving a different product than they expected. The "I Am Rich" $1000 iPhone app carries a heavy chargeback risk.
    • Insufficient differentiation. App authors should be able to submit an application to App Store and expect there won't be a knock-off product sold directly alongside. Open-source applications can swap out an application title and submit the app as their own without adding new functionality.
    • Misleading marketing, including trademarks. Don't misrepresent yourself or your product or cause obvious confusion.
    • Horrible customer experience. Apple will recommend interface designers who can assist you with visual aspects of your application. Long load times or heavy resource utilization might will make both you and the platform look bad.

    Podcaster rejection

    The Podcaster application was initially rejected for redistribution through Apple's iPhone App. I downloaded a copy of the app, version 1.0.9b, directly from the developer, installed it on my iPhone, and reviewed the app from the point of view of the Apple based on existing publications and guidelines.

    Podcaster navigation screen

    Navigating the tab bar to content sections such as newest podcasts or featured podcasts brings up a splash advising 3-5 minute wait times before content is returned. Red flag. My previous search input does not disappear when I change navigation modes.

    Podcaster for iPhone add podcast confirmation

    The developer used a single button action sheet with a vibration action to confirm each new podcast download. Apple adds a badge to the Downloads tab for a similar action in iTunes. The user has to dismiss a confirmation sheet for every new addition.

    Podcaster 1.0.9 compared to iPod podcasts 2.1

    Pictured above is a view of the same podcast in Podcaster and iPod. Duplicate functionality when tethered but Podcaster does provide over-the-air updates direct from the handset. Podcaster has some obvious errors with text display in the regular table view but the display does work. Displaying the sound disclosure indicator on every row is a bit overkill: Apple only includes this disclosure indicator when the audio file is currently playing. Small fit and polish issue.

    Submitting to App Store

    Podcaster submitted the first release candidate of their iPhone application to iTunes Connect, App Store's web-based management tool, on August 14. Application release notes are available through the developer's Twitter feed. The version submitted to Apple in mid-August had problems downloading and playing many podcasts including FeedBurner's redirect URLs or large downloads (likely a Range issue). On September 12 Podcaster heard back from Apple regarding their App Store submission. The $4.95 application was not accepted for distribution through App because it it duplicates the functionality of the Podcast section of iTunes.

    The developers resubmitted Podcaster to iTunes Connect on September 13 with a new description before launching a media campaign and ad-hoc distribution.

    Ad-Hoc Distribution

    iPhone application distribution

    Apple designed Ad-Hoc distribution for direct distribution of iPhone OS applications. Each application build is limited to 100 provisioned handsets. Ad-Hoc distribution is a primary distribution mechanism for beta testers, classrooms, workshops, or corporate environments that do not desire worldwide distribution through App Store.

    As of yesterday afternoon Podcaster had provisioned 1130 devices for distribution across 12 different copies of the application hosted on Google Code. Each new uploaded build included up to new 100 authorized devices after the publisher received payment via PayPal. It's stretching the Ad-Hoc distribution model a bit but the application may have collected approximately $11,000 over the weekend through suggested donations of $10 per handset. At the time of writing Apple has not pulled the application or developer certificates from their central certificate authority.

    Summary

    It's not always clear what Apple is up to but there are legitimate reasons to not carry an item for sale in your store. iPhone OS will continue to be a popular development platform even if Apple is overwhelmed with interest and developer support. The best developer information comes from within the confines of ADC, WWDC, and iPhone developer programs, and other privileged access forums restricted by Apple and its partners.

  2. Sep03

    The story behind Google Chrome

    Ben Goodger and Google Chrome

    Google released its second web browser yesterday afternoon, adding additional headroom for web applications stretching the limits of what it's possible to accomplish within a web browser. The Google Chrome team assembled domain experts in various fields over the past six years, both through direct hires and acquisitions, to create a new browser and its critical components from scratch. GMail and Google Maps pushed the Web to its limits, taking advantage of browser technologies invented in Redmond but left dormant for far too long. Contributing to Firefox's core, writing browser extensions, and championing HTML could only take the $150 billion company so far: they needed to own the full browser to push their Web efforts forward at full speed.

    1. Growing Frustrations
    2. Acquisition Boost
    3. A New Browser from Scratch
    4. Rev your JavaScript Engines
    5. Meet the Team
    6. Summary

    Growing Frustrations

    Brian Rakowski joined Google in July 2002 as the company's first associate product manager. His first assignment? Launch GMail with features and responsiveness to rival desktop mail clients. Gmail tapped into relatively dormant browser features such as XMLHttpRequest, sockets, prefetch, and more to create a web applications stretching the limits of what was possible inside web browsers of 2004. Today's Gmail continues to run into a browser's limits, setting minimum requirements of Internet Explorer 7+ and Firefox 2+. Google web apps teams such as Maps and Mail continually bump their heads against the latest capabilities of web browsers and in some cases invent their own runtimes.

    Ian Hickson first learned the inner workings of web browsers while an intern at Netscape. After working on Opera for a few years and creating tests for Firefox Ian joined Google to continue his work on new browser features. HTML5 and browser compliance "acid" tests are significant attempts by Ian and others to redefine Web browsers through specs, test, and implementations but until now Google could only offer development help and browser extensions such as Gears to accelerate browser capabilities.

    Google extended what it could not immediately add to the browser core. Gears for new application functionality on multiple browsers. Browser Sync to synchronize browser settings and data across multiple computers. Safe Browsing to create more web trust. Teams from each of these extensions are now working on Google Chrome.

    Acquisition Boost

    Google released its first official Web browser on August 18, 2008 with the beta release of the Android mobile operating system. Google acquired Android in August 2005 to establish a foot-hold on the fastest growing computer (and Web) market: mobile handsets. Android highlights Google's web properties through its WebKit-based browser and dependent applications. Google acquired Ottawa-based Reqwireless and its mobile web browser in the summer of 2005 to team up with the Android team on its web interface. Web views are an integral part of Android and Google Chrome shares much of Android's code, including its graphics engine.

    Google Chrome and Android both take advantage of the Skia vector graphics library developed by a small company in North Carolina Google acquired in 2005. The Skia team formerly worked on Openwave's popular mobile browser's graphics engine. Google Chrome browser includes Skia graphics engine ports for Windows, Mac, and Linux.

    Google acquired application security company GreenBorder in May 2007. GreenBorder technology automatically sandboxes web code and network traffic by creating a bridge between applications. The GreenBorder technology isolated Internet Explorer or Firefox instances into a "sandbox" inside virtual machine instances. These sandboxes form the code isolation layers of Google Chrome, protecting other tabs and the parent operating system from the code executing on each web page.

    A New Browser from Scratch

    Ben Goodger, Google Chrome's tech lead, is best known for assembling the Firefox web browser out of Mozilla's SeaMonkey application suite. Manticore, Camino, and later Firefox were all attempts in 2001 to rethink the Web browser for the modern age. Browsing took center stage away from a communications suite, user interfaces reimagined for Web efficiency, and (some) legacy cruft tossed to the side. Google hired Ben in 2005 to strengthen its own browser contributions and eventually fully rearchitect a web browser for the modern Web.

    Google hired top Firefox developers in 2005 and 2006 such as Darin Fisher, Pam Greene, and Brian Ryner. In Spring 2006 the team began work on a new browser prototype built on top of WebKit designed for broadband-connected, always-on, web applications such as Gmail or Google Maps. Could the browser experts give web apps some breathing room?

    Modern computers feature multi-core multi-gigahertz CPUs, gigabytes of memory, megabits of bandwidth, and bulky hard drives. Our web browsers should separate browser tabs into their own processes, multi-thread all communications with the operating system, boost cache sizes, and not be afraid to command more bandwidth when available. Internet Explorer 8, Firefox 3.1, and Apple Safari are taking fresh approaches to web browsers for modern machines but Google Chrome has the advantage of a fresh start to achieve some features not currently possible in other browser architectures.

    Features such as tab-isolation and task monitoring are difficult tasks to add inside an existing browser architecture of shared run-times and window models (as John Resig mentioned). Internet Explorer 8's Loosely Coupled IE partially abstracts browser tab instances and the industry is generally headed in this direction.

    Web application-specific resource monitoring should motivate more websites to reduce their browser bloat now that they've been identified. Individual users can also compare web application resource usage directly with their desktop counterparts.

    Rev your JavaScript Engines

    Lars Bak and his team in Århus, Denmark have spent many years writing virtual machines: the run-times that translate programming code into machine code. Lars wrote Sun's Java VM, HotSpot, and later slimmed down the VM for J2ME (CLDC HI project Monty). A few years ago Lars and his team in Denmark began work on a new interpreted JavaScript engine optimized for x86 and ARM architectures.

    The V8 engine is specifically tuned for recursive JavaScript tasks, optimizing commonly used components of your application. V8 is multi-threaded, opening up new parallel processing on multiple computing cores. V8 guesses how you might use your JavaScript code, and backtracks over any faulty assumptions. It's just one of the new engines we'll see inside our web browsers by the end of 2008.

    Google Chrome could have used the same JavaScript interpreter as its WebKit rendering engine (JavaScriptCore, SquirrelFish) but the team had an opportunity, and the funding, to rewrite an interpreter from scratch for desktop and mobile runtimes.

    The V8 engine enables new feature sets for Google's web applications such as Gmail and Google Maps. Web application developers avoid adding features that visibly slow down browsers or cause processing pauses in your application experience. New speed in new areas adds functionality to existing apps. Google programmers should create more efficient code, tested against multiple interpreters, and optimized for modern computers as a result of V8. Even if Google Chrome gains no significant browser market share I still expect it will be the best single-site browser for Google web applications.

    Google Chrome adds additional JavaScript functionality through Gears. Gears is bundled with every Chrome install, adding new features to the web browser faster than previous plugins. The Gears libraries include support for new local cache structures, local databases, location data, background tasks, and file handling. Chrome boosts the available Gears footprint for web developers, including Google's own apps such as Google Reader and Google Docs (and my blog). The current Gears code included in Chrome replicates V8 and sqlite code already present in the browser, a bolt-on that will hopefully be integrated in the near future.

    Chrome, V8, and Gears will be a new testing ground for Google's HTML5 efforts, winning a new seat at the table as an implementor with upstream standards groups such as W3C.

    Meet the Team

    Google Chrome team leads

    I am tracking at least 20 people involved in the Google Chrome project across Google. I'm sure Chromium commit logs will reveal even more (update: more complete list here), but below is a quick summary of Chrome staff.

    Brian Rakowski, Lead Product Manager
    Brian was Google's first associate product manager in 2002, assigned to Gmail. He later worked on the Google Browser Sync Firefox plugin.
    Ben Goodger, Software Engineer
    Ben is the former Firefox 1.0 project lead. He also authored the Firefox extensions system. He joined Google as 2005.
    Mike Pinkerton, Technical Lead
    Mike is one of the Google team members responsible for bringing Chrome to the Mac. Mike worked at Netscape and later on the Gecko-powered AOL client before co-founding the Camino project. Mike joined Google in September 2005 and continues to lead Camino development.
    Darin Fisher, Software Engineer
    Darin was a frequent contributor to the Firefox codebase. He specialized in network libraries, cookies and permissions, and the Netscape Portable Runtime. Darin joined Google in 2005.
    Lars Bak, Software Engineer, V8
    Lars was the core developer on Java HotSpot VM and Monty VM in J2ME for Sun. He co-founded object-oriented VM companies for embedded devices before joining Google. Lars worked on V8 from a farm in Århus, Denmark before moving the team to university offices.
    Kasper Lund, Software Engineer, V8
    Kasper shares a long history with Lars Bak working on virtual machines.
    Brian Ryner, Software Engineer
    Brian is a former contributor to Firefox where he added mousewheel support, tweaked the Gecko rendering engine core, password management, and Linux installers.
    Pam Greene, Software Engineer
    Pam is a long time Firefox contributor. She added OpenSearch to the browser and contributed to full-text search in Places/AwesomeBar.
    Ian Fette, Product Manager
    Ian is a former Firefox contributor who worked on anti-phishing, anti-malware, spelling correction, and the Safe Browsing API.
    Arnaud Weber, Software Engineer
    Arnaud is a former Director of Research and Development at Netscape and Borland before joining Google to work on a "secret project" in September 2006.
    Brett Wilson, Software Engineer
    Brett formerly worked on the Google Toolbar. He contributed to Firefox history and bookmarks functionality.
    Mike Belshe, Software Engineer
    Mike helped write an Outlook add-on called Chrome for Lookout Software before being acquired by Microsoft. Mike also formerly worked at Netscape and Good Technology.
    Huan Ren, Software Engineer
    Huan works on network flow control, negotiating browser interactions with network resources. Huan formerly worked at Microsoft.
    Erik Kay, Software Engineer
    Erik formerly worked on the AvantGo browser, Qurb anti-spam software for Outlook and Outlook Express.
    Glen Murphy, Software Engineer
    Glen specializes in user interface design. He previously worked on user interface. Firefox extensions. Google Browser Sync, Google Blog Search
    Evan Martin, Software Engineer
    Evan writes automated testing tools for Chrome and the Web.
    John Abd-El-Malek, Software Engineer
    John is part of the Windows specialist team at Google bringing Google Desktop, Google Talk , and Breakpad onto Windows XP and Windows Vista.
    Amanda Walker, Software Engineer
    Amanda is one of the people responsible for Chrome's upcoming Mac version.
    Mark Mentovai, Software Engineer
    Mark was heavily involved in moving Firefox for Mac to its current Intel-based architecture. He has worked on the Breakpad project and many levels of Chrome's code.
    Carlos Pizano, Software Engineer
    Carlos formerly worked on GreenBorder and continues to work on Chrome sandboxing.
    Mark Larson, Program Manager
    Mark is also formerly of GreenBorder and its sandboxing specialties.
    Aaron Boodman, Software Engineer, Gears
    Aaron improves user experience with JavaScript. He's best known for his work on Gmail, Greasemonkey, and Gears.

    Summary

    Google Chrome logo Google's business depends on the speed and availability of Web access to search, advertising, and applications. Chrome is Google's second attempt to better control the front-door to its content with full applications optimized for its heavy apps. Google Chrome builds on top of the work of Android by adding individual applications to already popular operating systems. Google has flirted with the idea of its own web browser for many years but has only recently released working implementations of its own full browser applications.

    Android, Chrome, and Gears will continue to grow in unison and extend individual pieces into established operating systems. Google is building a new suite of application extraction layers that should have strong leverage across Windows, Mac, and Linux to directly control the company's destiny on these platforms.

    It's an exciting time for new browser technologies as Internet Explorer, Firefox, and WebKit each compete over standards implementations and performance. Officially adding Google Chrome to the browser space only strengthens Google's position strengthening the future web and delivers strong single site browsing experiences for their core web applications.

Niall Kennedy Niall Kennedy is a web technologist in San Francisco, California in the United States. I am very interested in the world of... MORE »

Search this weblog:

Subscribe:

Latest feature: Widget development

Archives: Popular Categories

Sites: More from Niall