views:

67

answers:

2

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?

A: 

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:

  1. Massive volumes of traffic. This alone encompasses a world of scaling challenges that would have most architects running screaming from the building.
  2. 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.
  3. The site must work across platforms, browsers, countries, tax and legal agencies, currencies, regional sales and marketing arms, etc., etc.
  4. 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?

Marcelo Cantos
His question was quite clear and this answer is not helpful.
Mark
You are entitled to your opinion, Mark, but I find that a realistic perspective of what one is trying to accomplish is of crucial importance, as it determines both the quantity and quality of engineering warranted. I wasn't trying to be facetious, merely suggest that the nature of the problem the OP wants to solve is quite different, depending on the scope of the existing web site, and the answer will likewise vary considerably. I considered just putting it in as a comment, but it would have been difficult to format it well.
Marcelo Cantos
A: 

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.

Rigo Vides
Thanks Rigo,I do have APIs being exposed by the big site to get interaction from the client. Recently we did a Mobile Web app using the exposed APIs.My worry here is, we have more than 10 cookies that get set and received after authentication. The MobileWeb app was easily able to handle them but I am not sure how well a native iphone app will play.Do you know if iPhone can get/set cookies for http requests? Also, how easy it is to create a wrapper around the MobileWeb app (inside a native app) and use jQTouch and make it look like an iphone app?
xoail
Yeah, it should be really easy to adapt your current web app with jQTouch, if you want a button, just define a div with the "button" class... Want a iPhone like list? use a ul with "edgetoedge" list. Also works that easy for transitions, for example, if you want to make a cool transition between page and page, you just link with a class "slide" and so on.If you still need to go native, I'm not pretty sure about cookies. One thing that could help saving stuff locally on the device could be the local storage dictionary. I don't know about the requests querying for cookies for the server side..
Rigo Vides