Ask HN: help me lord, please help me

3 points by sixQuarks ↗ HN
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.

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.

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.

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?

3. Any other advice I should know about before I look for an iOS developer for this?

8 comments

[ 3.2 ms ] story [ 32.1 ms ] thread
Your iOS developer will be able to answer those questions.
well, they should, but I'm asking for advice so I'm not totally blind when I go into this.
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.

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.
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.

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.

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?

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.