

Ask HN: help me lord, please help me - sixQuarks

Although I'm not a technical person, I have managed to build a photo-gallery web site by myself which attracts several hundred thousand visitors per month.
My web visitors have been constantly asking for an iPhone app, so I gotta stop procrastinating and get it done.<p>I have a pretty good idea on how I want the app to look and function (it will basically be a photo gallery that is updated weekly with new photos). I plan to hire someone on oDesk to get this completed. Before I do so, I'd like to get your advice on some things.<p>1. What's the best way to host the images?. Should the app just serve the photos from my current web server? Or should I use Amazon web services? Is this what Heruko is used for? Sorry for my ignorance, I don't really know much about how iOS apps work and how the content is "pulled" into the app.<p>2. I've studied some current "pics" apps, and I noticed that some apps load images really quickly, while other ones seem to have a lag every time a new image is loaded. Are the ones that load it quickly pre-loading images? Or are they just using a fast server to load them?<p>3. Any other advice I should know about before I look for an iOS developer for this?
======
kls
1\. Amazon S3 would be a good way to host them, or you can write them directly
to a directory on your web server either will do, Amazon will probably be
faster and more resilient than your webserver. Dollar for dollar, you just
can't scale and provide services like Amazon and the other do, at the price
point that they are competing at. I always advice people that don't have
infrastructure yet, to not get in that game. It has been turned into a
commodity that few small companies can do at anywhere near the quality or
speed per dollar that the providers can. If you want deep control of your
systems go with Amazon and set your server up as an image on EC2 while using
S3 for cheap storage. If you are not so concerned with having control of every
little detail, go with StackMob or Heruko, just remember that these services
have their own API's and platform, it can be a pain to port the back end away
from them should you choose to.

2\. Some apps are probably storing them on a flat file structure while others
may be databasing them, the latter can cause performance degradation. If you
need to store them in a searchable or index-able datastore it is better to
store the attributes you need in a datastore with the filename and then return
the path to the file in the filesystem. Also some are probably prefetching
while others are not, you are going to have to look at your application
requirements and see if you can reliability predict what images the user is
going to access, if you can and the likelihood that they will look at the
image is high, you should prefetch them.

3\. Why an IOS developer? Why not find someone good with jQuery mobile. Most
of the mobile web toolkits can provide 90% of the ondevice features and all
you have to do to make them a native app that can be provided in app stores is
create an application with a web view type controller in it, and point it to
the HTML file. By doing this, you just have to have a small launcher
application build for iOS, Android and whatever else comes along.

~~~
sixQuarks
Great feedback. Thank you for the advice. I'll definitely look into jQuery
mobile.

Quick question. I do want the ability to have users to upgrade to a "pro"
version which would get rid of ads and give them access to more photos. Would
that be possible with jQuery mobile?

~~~
kls
yes it would be the same as a native app, you would release a free app and
then a pro app with the ad code removed.

------
ecubed
Does your current app have any sort of external-facing API built into it? That
might be step one would be to implement an API to your server that would allow
your iOS app to access the photos.

Another option would be to design a mobile version of the site, and then to
use <http://phonegap.com/> to turn it into an iOS and Android app. This way
you could continue serving the photos from your server in its current form,
and the only real programming to be done would be creating mobile views for
the site. Would probably help you avoid shelling out $$ to a freelancer as
well.

~~~
sixQuarks
I don't have an API yet, but I'll probably create one. I have heard of
phonegap.com before, will need to take a closer look at it. The problem is, I
don't know anything about programming, so it's hard for me to judge what the
best thing to do is.

------
jacksondeane
1) I normally use Amazon's S3 service to host and serve images to iOS apps.
Your backend will maintain and "serve" up the URL's to these photos and the
iOS app will have to pull them by that URL.

2) I am sure they are pre-loading and/or caching the images inside the app.
The image size, sever performance and device network speed will also determine
how quickly they load.

3) Be very wary of extremely short/low estimates from candidates on oDesk. You
get what you pay for.

------
olalonde
Your iOS developer will be able to answer those questions.

~~~
sixQuarks
well, they should, but I'm asking for advice so I'm not totally blind when I
go into this.

