Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

ArtOfWarfare

macrumors G3
Original poster
Nov 26, 2007
9,462
5,888
A friend has designed a social networking app and got a lot of investors to back it. He asked me to program it all for him. It's going to be an iOS app - that part I entirely know how to do - that's going to rely on a server end.

I've never done server side stuff before. What kinds of technologies would you recommend I look into? We're going to need to be able to handle account creation, account recovery, logging in, following, posting/viewing text and pictures, and posting/viewing audio and video clips.

It kind of sounds like something SQL would do, except I've heard that doesn't scale well. Also, I'm not sure that SQL would really lend itself to binary files like pictures, audio, and video (but then again, would anything else?)
 

1458279

Suspended
May 1, 2010
1,601
1,521
California
As far as SQL scaling, I've heard the many high volume sites use SQLite.http://www.sqlite.org/famous.html

One upside to SQL is that it's pretty standard, it's been around for a long long time and there's a huge body of support for it.

You might want to search around for someone that's done this and posted a writeup on it.

I've read some studies about storage where they compared renting a server vs Amazon's AWS and others, the price difference was huge. IIRC, one company saved $250,000.00/month by switching services. Well worth looking into because getting it wrong can be costly.

A large part of getting something to work well is understanding it, what it can and can't do.
 

ArtOfWarfare

macrumors G3
Original poster
Nov 26, 2007
9,462
5,888
As far as SQL scaling, I've heard the many high volume sites use SQLite.http://www.sqlite.org/famous.html

One upside to SQL is that it's pretty standard, it's been around for a long long time and there's a huge body of support for it.

You might want to search around for someone that's done this and posted a writeup on it.

I've read some studies about storage where they compared renting a server vs Amazon's AWS and others, the price difference was huge. IIRC, one company saved $250,000.00/month by switching services. Well worth looking into because getting it wrong can be costly.

A large part of getting something to work well is understanding it, what it can and can't do.

AWS makes sense for a small number of server applications - those that are too large to fit in the house of one of your team members, but that are small enough that it wouldn't be worth it to have a dedicated IT guy (or team) to keep it up and running. While we're in the testing stage, I'll probably just have my development machine double as the server - once we deploy well probably buy several MacMinis or something to use as our servers.

I'm thinking I'll run with SQL initially - I'll migrate to something else if it proves that it can't scale adequately.

The issue is: how do I actually get this kind of backend server stuff set up?
 

DennisBlah

macrumors 6502
Dec 5, 2013
485
2
The Netherlands
To keep it easy and working on a mac you could consider an mySQL server.
Or just dual-boot your mac with windows and there are plenty sql servers out on the net like MS SQL.

Basically for good performance and updates I would go to an windows server, because Xservers are not being supported anymore.

When you got an server running you just have to open your ports of your router to the server to make it access-able from the outside.
This will come with some security where you have to work on tho.
 

firewood

macrumors G3
Jul 29, 2003
8,096
1,331
Silicon Valley
He asked me to program it all for him.
...
I've never done server side stuff before.

If you want to succeed, interview and hire someone who's experienced and done scalable reliable secure server stuff before. There are 1000 ways an amateur back-end server setup can bog down, crash and get hacked. Trashing the reputation of a new social site is not a good way to start.
 

ArtOfWarfare

macrumors G3
Original poster
Nov 26, 2007
9,462
5,888
If you want to succeed, interview and hire someone who's experienced and done scalable reliable secure server stuff before. There are 1000 ways an amateur back-end server setup can bog down, crash and get hacked. Trashing the reputation of a new social site is not a good way to start.

We'll probably hire somebody with that kind of experience in the coming months. How should we get started right now?
 

firewood

macrumors G3
Jul 29, 2003
8,096
1,331
Silicon Valley

Sean7512

macrumors 6502a
Jun 8, 2005
854
37
For custom back-ends, Grails is my go to framework.

Others are suggesting mySQL server, and thats fine. If your server is going to be Java based, I hope you use Hibernate so that it doesn't matter what database you use.

For my iOS app, I am using Google App Engine as the back-end server. It scales really well and is significantly cheaper than AWS.

Using stuff like Google App Engine though really limits you in how the server works. If they don't fit well for your needs, then I'd suggest doing Grails or some other server back-end and renting out a JBoss server to host it.
 

Felasco

Guest
Oct 19, 2012
372
2
I've never done server side stuff before. What kinds of technologies would you recommend I look into?

Apologies, no offense intended, but this question reveals you're not the right person for this job.

You know, have your friend go to the investors and ask if they want someone who has never done server side stuff before to build what they've put their money in to. The answer will be no.

Be kind to your friend, keep him your friend, and find another role for yourself.
 

MattInOz

macrumors 68030
Jan 19, 2006
2,760
0
Sydney
Dropbox are doing a datastore and sync API for Apps as well now. The big difference is they use the capacity of the users account with them to determine cost. The developers don't pay the user pays if they need more space.

https://www.dropbox.com/developers/datastore

Might not suit your project and haven't used it yet but very interested for future project. So just though I'd add it to the mix of the discussion.
 

D.T.

macrumors G4
Sep 15, 2011
11,050
12,459
Vilano Beach, FL
A few recommendations:

Build a RESTful API for handling backend services. It’s easily consumed by iOS, plus, it’ll give you an API for other native clients or a web interface should you choose to pursue it.

Use a PaaS provider like Heroku. Platform as a Service moves most of the administrative overhead out of your hands. There’s a number of good services out there, most support several stacks, but you’ll see that there’s “faves” for specific languages. They all support really easy to use plugins for performance monitoring, logs, notifications, etc.

Heroku offers a free level of service too: single dyno/proc, a dev database costs nothing. There’s a few limits, but nothing you wouldn’t expect at a dev/test level, and scaling to a production level of service is _fantastically_ simple.

Choose a stack/framework that reinforces +good+ dev patterns (MVC, DRY), I’m a big fan of Rails (i.e., Ruby on Rails), but would also consider Python + <framework> (probably Django). If you go with something like PHP, drop a framework on top of it: Zend, CakePHP, Yii. All of these are open-source as well, so you won’t have to worry about licensing, just infrastructure costs.

If you want to use a traditional SQL database, vs. a KVP/no-SQL (like Redis, Mongo), then I’d suggest Postgres (any of those state/storage solutions are easily provisioned through a PaaS).

For storage of content, you’ll want to look into a cloud based storage solution, like AWS S3. Not only is that easily integrated into a project, it scales well, and has high availability options for CDN right in the AWS solution stack.

Look into the open source community of the tech you pursue for pre-existing solutions for authentication, S3, image handling, social integration, or any of the major modules you’ll need. No need to reinvent the wheel.

FWIW, one my startups is a social product (including a native iOS app), that has many of the same moving parts. Let me know if you have any specific questions :)
 

abnerhawkins

macrumors newbie
Mar 18, 2014
10
0
Today social media is booming and will. There are so many scripts and frameworks available on the web. You just need to find some of them free of cost and customize it as per your wish.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.