Project methodology

1.Mobile App development


There is lots of app develop framework which support both iOS and Android, and they required only some minor changes to the source code and native settings to build the app.


In this project, we are planned to use Flutter as our mobile app frontend framework. Flutter is developed by Google and its stable is released at 9th March 2018. It uses Dart as the programming language and it has a build-in UI framework (which use Google’s Material UI). General developer tools like debug logger, hot update function… are included. So we believe Flutter would be good enough to be used in our development.


Framework compare


React-Native is another cross platform framework that serve very similar function as Flutter and it is quite popular nowadays. Based on the React framework, React-Native uses javascript and require a packager to maintain the application. Libraries of React-Native are mature and it does have a large variety (since React and javascript libraries are also supported). There are also many choices of UI framework, including Material UI, that can be work with.


Objectively, both framework would qualify enough to be our pick, but there are some reasons that support us to prefer Flutter over React-Native.


It is all about the developing experience. During development, React-Native require the computer to run a Node packager to maintain the app state, so when we test the app with the real machine, our machine need to connect, through network socket, to the hosting computer. Whenever there is hot update, the packager will push the update to the device. It means that if we take our device away from the hosting computer network, the app cannot run.


Flutter uses another approach, the ‘packager’ (not sure how is it called) is run in the device and if you want hot update, you need to connect the device to the computer (physically). Flutter will figure out what is your recent changes and only update them accordingly.. After the update, you can disconnect the device from the computer, which mean you can test the app wherever you want. So, in terms of the experience, we think Flutter would give us a better feeling.

2. Server development


We will need a database to store all users’ information and a server to handle all of the matchmaking requests.


In this project, we will use Node.js to develop our server. Node.js is a javascript based framework and it allows the server to run the javascript. We know that Node.js would not be the best choice since this project may involve a large volume of data process if there are many users. However, we believe that in this project scope, Node.js server is good enough to handle such data flow. Time and resource is limited in this project, so we pick a framework we are more familiar with.

3. Machine learning


Machine learning is required in this project in order to study the user’s behaviour. We planned to study the possibility of using  Amazon Web Service’s machine learning module. If it is possible, we will try to use it, or we will do it ourselves by using Python.


There are lots of data we have to collect as it is required to train a machine learning model. Besides the user’s schedule and basic information, we need to collect some information such as location, how often they use the app, when they use the app and what they usually do in the app.


Leave a Reply

Your email address will not be published. Required fields are marked *