For our final project we developed an events driven dating application in Swift. You can read my development diary for the project here.
In two weeks we built a commercially viable MVP, in a totally new language and paradigm (Swift) as well as building the backend infrastructure needed to support it.
A simplified model of the application is shown below:
The backend of the application was built across a NodeJs server hosted on Heroku. This server provided the brains of the application and was responsible for all business logic. It ran automated tasks to pull in events data from external sources, and stored all user details, event RSVPs and matches. The Node Server had the RESTful routes needed for the operation of our Application:
The Node server was complemented by Firebase for the in app chat, allowing us to easily add realtime communication to our application.
The Frontend of the application was built in Swift, and is solely responsible for the presentation logic. While I personally would have liked to use React Native for this project, the team settled on Swift as it seemed to have a shallower learning curve than either React Native or Java.
Overall, the project was a really useful challenge to gauge how much we have learnt in the last twelve weeks. At the end of the day, I feel the quality of the work is pretty impressive given that we had two weeks to build the whole system in a environment and language we’d never used before. TDD in xCode remains a massive headache and it’s something I’d want to face into head on the next time I take on a challenge like this. The quality of the code is also fairly low, and is in need of a good cleanup refactor, which is high on my list of things to do.