I am trying to create an iPhone app for a large website (as big as amazon.com) and it involves using cookies and what not to get authenticated via the Apache intercepter and access the web services exposed by the main website. For that I am looking for strategies to go about developing it. I am new to iPhone development and I am mostly looking for some architectural guidance. Does anyone know how services like eBay and Amazon work seamlessly across the website and iPhone app?
As big as amazon.com? Amazon has poured millions of hours into their web site, and they have had to deal with a myriad of issues:
- Massive volumes of traffic. This alone encompasses a world of scaling challenges that would have most architects running screaming from the building.
- An incredibly diverse business allowing sales, marketing, I.T., delivery chain, partners, suppliers, corporate and private customers, dozens of LOBs, etc., etc., all to interact with the web site.
- The site must work across platforms, browsers, countries, tax and legal agencies, currencies, regional sales and marketing arms, etc., etc.
- An army of programmers, architects, designers and testers working on infrastructure, UI, business integration, performance, security, privacy, data management, data mining, auditing, etc., etc., all working to contribute to a common customer experience.
In the face of all this complexity, their seamless integration has, I suspect, been built at a gargantuan expense.
Is this really what you meant?
I'd say it depends on your technical background and your app design. But basically you'll be developing a big API for your big site, exposing the data you want to be read by your iphone app. You'll have to get your hands dirty and delve into iphone development, but you know, just the basic stuff, like retrieving that data, generating your views dynamically according to this data and there you go! So, i'd say that this is will be only a simple, compact client for your big site, I mean, it should't be just as the same as the real site, you can only pull out the big features/functionality and port those to the app, or balancing some features with another ones only capable of be done on the iphone (geolocation, gps, camera, etc...). If you choose this path, the services stuff could be the hardest part, the client side will be easier (new grounds for you though).
You can even fake an iphone app with jQtouch, if you are on the web side on css,jquery and feel comfortable in this area. As a drawback you are not going to be able to sell this "app", since it'll be only a web page optimized for iphone (and even so, you'll miss the ipad users). If you choose this approach you can even go for the real thing with phonegap, compiling your web application (with jQtouch, or name any tool or web framework) into a native app, being able to sell it or distribute by apple in it's store.
my 2 centavos.