Robert Iannicca
Lurker
Sorry if this is a bit of an open ended question. I'm asking about the entire broad concept of building an app and running a database server, and how the two work in relation to each each other.
For years I've been interested in building apps and have read endless articles & success stories in Entrepreneur Magazine, which always go something like this:
"One day John Doe had his 'Aha' moment, and thought 'Why has no one else solved this?', so he built an app, raised funding, sold it to XYZ Comp, and now is a millionaire."
Ok... so that's a great story and all, and there's tons of them like it. But these stories do little to nothing to show what happens between A and Z. That is where my questions stems from.
Now, I happen to be a competent web developer, and I am highly familiar with HTML5, PHP, MySQL and running databases for things like ecommerce, Wordpress, forum systems etc (Even Xenforo forum such as is used here at the Android forums). I know the interaction between PHP code and pulling/sending information to a SQL database. But this is all web development - I don't know if/how this translates to the app realm.
So... based on peripheral knowledge, this is my theory on how I believe it works, and please correct me if wrong:
I assume an app can use one of the following methods (not mentioning others or combinations):
So using one concept for example - an app allows people to post local events in a city; yard sales, art shows, concerts, meetups, etc. These are stored in a web server database. Another user can then search by attributes such as Location, Time, Distance, Keywords/purpose, etc, and the system would display a list of events that match that criteria.
So using this example, again correct me if I am wrong, but I assume this would be done via the following (and you will see my web developer bias coming out here, this is what I'm trying to self-check against); A website and server database would be used, such as SQL or NGINX, and all the functionality would be built using PHP scripts to handle posting, processing, data retrieval and filtering to show results.
A mobile app would simply access these same DB and scripts, which would execute on the server, and communicate back to the app the results (the app wouldn't technically be "doing any work" other than communicating and displaying).
Is this somewhat correct, or totally off the mark?
Is the setup and relation between app, server and database always different according to the app's purpose? Is there a common setup?
Using the aforementioned example, would it be a safe statement to say that if the app or brand has a main website with all functionality done on the website itself (I.e. Craigslist.com but also has a Craiglist app, Match.com and it's Match app), then there's very little work needed for the app itself - wouldn't it just be remotely executing the same server scripts, and fetching the data?
There's dozens of major app/database setups and providers out there - how can one figure out the best setup to take?
How did John Doe and the countless others figure all this out when they just "went and made their app", did they learn, or raise funding and pay much more knowledgeable people to build all this? (Not that there's anything wrong with that).
Sorry for the lengthy writeup, as I've encountered very little specific discussion on this whole topic. It would be amazing to hear any feedback from developers who have gone through this whole process!
Thanks for reading,
For years I've been interested in building apps and have read endless articles & success stories in Entrepreneur Magazine, which always go something like this:
"One day John Doe had his 'Aha' moment, and thought 'Why has no one else solved this?', so he built an app, raised funding, sold it to XYZ Comp, and now is a millionaire."
Ok... so that's a great story and all, and there's tons of them like it. But these stories do little to nothing to show what happens between A and Z. That is where my questions stems from.
Now, I happen to be a competent web developer, and I am highly familiar with HTML5, PHP, MySQL and running databases for things like ecommerce, Wordpress, forum systems etc (Even Xenforo forum such as is used here at the Android forums). I know the interaction between PHP code and pulling/sending information to a SQL database. But this is all web development - I don't know if/how this translates to the app realm.
So... based on peripheral knowledge, this is my theory on how I believe it works, and please correct me if wrong:
I assume an app can use one of the following methods (not mentioning others or combinations):
- The app is rather complicated and/or mostly based on offline or real time use, without being tied to a central server or database for functionality (Some apps may not even need a database at all, and are end-user based on the device or can function autonomously). Here I'd imagine all the code, functionality, and data would be built into the app itself, sometimes even using an internal database system (I'm aware Android uses an internal SQLlite DB or something of that nature).
- The app is primarily reliant on a database or web server, sends & receives data to display, and does not necessarily have data processing done in the app itself. Here I'd imagine everything is stored and performed on the web server, and the app acts merely as a shell to display that data upon request.
So using one concept for example - an app allows people to post local events in a city; yard sales, art shows, concerts, meetups, etc. These are stored in a web server database. Another user can then search by attributes such as Location, Time, Distance, Keywords/purpose, etc, and the system would display a list of events that match that criteria.
So using this example, again correct me if I am wrong, but I assume this would be done via the following (and you will see my web developer bias coming out here, this is what I'm trying to self-check against); A website and server database would be used, such as SQL or NGINX, and all the functionality would be built using PHP scripts to handle posting, processing, data retrieval and filtering to show results.
A mobile app would simply access these same DB and scripts, which would execute on the server, and communicate back to the app the results (the app wouldn't technically be "doing any work" other than communicating and displaying).
Is this somewhat correct, or totally off the mark?
Is the setup and relation between app, server and database always different according to the app's purpose? Is there a common setup?
Using the aforementioned example, would it be a safe statement to say that if the app or brand has a main website with all functionality done on the website itself (I.e. Craigslist.com but also has a Craiglist app, Match.com and it's Match app), then there's very little work needed for the app itself - wouldn't it just be remotely executing the same server scripts, and fetching the data?
There's dozens of major app/database setups and providers out there - how can one figure out the best setup to take?
How did John Doe and the countless others figure all this out when they just "went and made their app", did they learn, or raise funding and pay much more knowledgeable people to build all this? (Not that there's anything wrong with that).
Sorry for the lengthy writeup, as I've encountered very little specific discussion on this whole topic. It would be amazing to hear any feedback from developers who have gone through this whole process!
Thanks for reading,