In this section I will try to explain and summarize everything you need to create, publish and manage an Android app yourself.
The first thing, how could it be otherwise, is to install Android Studio to be able to develop it, in it you can program in Java, a language that I have used, or Kotlin.
For this, the portal https://developer.android.com/, has guides, examples and very complete documentation, where you will find everything you need.
The second and very important step is to decide if Preferences and a local database like Realm are enough, or if a remote database and web services are needed to communicate between the application and the database.
If it requires a high interaction with the user and to show a lot of changing data, a remote database is advisable so as not to store everything on the device and to be updating the local database continuously.
In my case I have set up a MySQL database with functions, procedures and events as needed, and a Tomcat with all the web services that the application uses to obtain the precise data.
If we also want the application to send our own emails and we have our own domain, we can install the iRedMail package, on its website https://www.iredmail.org/ comes everything necessary to have our own mail server.
This last package is for Linux, in my experience it is always more robust, reliable and gives a better performance to a Linux server than Windows, but everyone can choose what they like best.
You could install everything on your own Linux machine, hire a Linux machine in the cloud or mount a Linux virtual machine with VMWare under Windows, any of the options would work. As a distribution I have used Ubuntu 18.04
The order to follow so that everything works on the same machine would be the following:
- iRedMail (it will be necessary to change the ports in the nginx)
- Xampp for linux (its apache we will use it as main)
- Tomcat (ports will have to be changed)
Later I will explain in detail each part and its peculiarities if it is interesting and has an audience.
You can also see one of our apps/games: SpeedMehc