Hello Stackoverflowers experts! I really do need a good start point here. I'm developing an application on iOS and Android, something more or less like whatsapp but with some extra stuff for my work. The problem is, that i'm not quite sure about where to begin with the server side. I mean, for the protocol in the client side i'm using XMPP, now. I want to know the path to learn to achieve the server side. Many of the answers i have read before tells about using BaaS but with the size of the company and that many more people could join etc. Some of the costs are high to keep paying them monthly as in the case of Parse.com.
My questions are these:
1.- MySQL will be the best for data storage and handling it? 2.- What kind of technology is the best to achieve this, speaking in terms about this will be used in iOS and Android app? Ruby On Rails?, Node.js? PHP? 3.- What is the best way to handle data, meaning photos, videos, etc? The database will be enough? 4.- is XMPP my best choice for communication and Presence Protocol? 5.- What others technologies should i learn to begin this adventure?
Is out there any good book or resource where i can learn that? it will be awesome that you can help me! Thanks for reading me!
There several different options that you could go with, I think it all depends on your goals and your skills. I will order them from more to less level of difficulty, and spot some advantages/drawbacks:
Server from scratch: you could create a database (MySQL or SQLite or SQLServer) and design and write code in the language that you feel more confortable with (PHP, Java, .NET,...). Obviously the level of configuration and optimization of resources that you can achieve here is huge, but the cost is a hell of work setting it up. It requires a server.
Framework such as Laravel or Symfony: in this case you would start from a pre-created minimum system prepared for extend the functionality. I really like Laravel and I think is the best option if you want to have a backend really customized. It also requires a server.
Just a cloud host: there are several as Parse, AppEngine, Heroku. They are really convinient because you don't need to care about setting the server and configuring everything, you just design the database and start with the functions that your API would provide. On the other hand, it is easy to feel limited with the tools provided and you don't have control of the server.
I hope these lines would help you to decide.
Instead of implementing a whole new server side. Why don't you try to use a cloud service like Parse.
It will save you time, effort and money.