Holy crap…As a mentor I have committed to help a team of high-school students to implement and deliver an Android application with mobile client and back-end server. How am I going to do this without getting too technical? The main question to ask is:
is there any chance for this team to successfully build an application with the knowledge this team currently owns?
I’ve started to do my own research. Nowadays you can build an API with pretty much any technology out there. But is it friendly enough for people who don’t have strong programming skills? Also, I have an API pretty much similar to what we need, but I’m not allowed to code and do their job.
I promised to myself that I’ll do my best to provide them with a “fail-safe environment”.
So days of research and try-outs, I presented the technical approach that we are going to take:
- For API, we will start using Swagger Design Platform which provides its own DSL. It makes it easy for non-technical people to write API definitions.
- For Android we investigated Ionic & Xamarin but we’ve decided to use plain Android SDK, since there are lots of tutorials and code examples out there and find solutions to any problems
- For deploying and hosting the application, we chose Heroku which also provides the data consistency layer.
- For the Data consistency layer we went for MongoDB since is already integrated with Heroku and it’s a install and run approach. As easy as it sounds
Swagger has a great feature which allows exporting the API definition to JSON format. Next thing was to use Swagger-code-generator to generate the Java code for the project. It was a risk that I personally took, trusting the team they are up for the challenge to understand basic Java concepts while reading the code.
I also knew that I have my own API so providing them with a real life example enabled the team to synthesise the information and apply it into their own example.
It is said that younger generations are much smarter now. It’s the moment to prove it.
Let’s get to work!