PictionFlow will be a mobile application seeded with data from Quick, Draw!
Current Trajectory
# Current Plan (For Static Model) Cost minimization will be one aspect of the project. IOS applications will have to compiled on a Mac OS; as such, I plan to use CloudInMac, which will charge a monthly fee. While it is not too high cost, to save money, and so we know where we're shooting, we will design the back-end first. Incase you're wondering what I mean by "static model," we will first get the app communicating with a rudimentary model. The TensorFlow model will be trained with seeded data, and simply be inquired for a prediction. The dynamic model, where new data will be added to the model, will be kept in mind as we design the API.
The data from the client will be processed to conform to the expected input of the model. Since we would like to minimize the amount of memory the consumer uses, it would be ideal to do as much of this processing on our end as possible, while maintaining reasonable request package size. The classification the model predicts will most likely be a concise string to be sent back to the client-side.
As you can see, it's unlikely we will need to have a database for this stage. If we were to design a dynamic model, the data would have to be maintained in perhaps a mySQL database.
This will probably be in python. I've heard models can be saved in a file.
We will have to acquire an SSL certificate, and use HTTPS.
I will update more on the API shortly.
The application client-side is made in flutter with Dart code. The language itself is quite reminiscent of Java, so it's relatively easy to learn. Currently, we have a drawing canvas that stores data as a point, however we intend to make it more elegantly connected to the Model-View-Controller paradigm, as having a seperate file that contains all of the model data could prove quite useful for us. More research will have to be done.
In Flutter, Widgets are the talk of the town, and flutter updates it's tree by doing depth-first traversal, this means we will have to be careful to keep this traversal as efficient as possible. The goal there is to learn methods for optimizing and controlling the nature of the traversal itself.