⮜ Go Back
MyShoppingList
About
MyShoppingList is a phone app that was thought to be implemented to Albert Heijn app as an interactive shopping list. Here people can write their shopping list or add products directly from the supermarket products list or even from the integrated recipe book.
Project Info
Introduction
Working on this project was very interesting and a really good experience for me to learn more about Unity. That because for a project like this Unity is not the right choice, as it's specific for video games and not for applications.
This wasn't my first time working in Unity but this project was nonetheless challenging and inspiring. Thanks to that, I had the opportunity to exploit Unity how I never did during my studies and pushing myself more and more.
I really liked working on the shopping list because I was able to use and expand my knowledge at the same time. The real challenge laid in connecting all the scripts together keeping the best efficiency possible, so I tried to limit the use of the Update method as much as possible to save memory and computational time.
Anyways implementing the gyroscope was really hard both because it was the first time I used it and because of the difficulty in replacing it with an analogue one to move the view. Because of that I had to spend almost a third of my time researching it's documentation and learning how to use it properly.
On this project I worked as the only programmer of the group and because of the type of project it allowed me to move freely between every script without worry about conflicts with other programmer. I think that it was the best choice for me but I still recognize that for the sake of the project it would be better to have more than one programmer.
The lists
For this project I took creating the shopping and products list as a competition between myself. It is true that I already used Unity before so I already had some experience, but first I never did a project this big and second I never programmed anything with filters for text.
For the products list my first though was to use a List type variable to store names and prices of the products, but after creating that I soon realized it's inefficiency. So I scraped everything and decided to use a siriptable object to store every products data. Doing so I was able to add images for each product and the relative amount, and also avoiding multiple copy in different scripts and having to always keep an eye for changes. In that way I connected the products list and the shopping list together easly, as everything depended from the amount of item in the scriptable object. So I decided to improve the list system, adding total amount of price for each product that was written multiple times and a system to show if an item was already inside the shopping list.
After that I only needed to create the recipe book. For that I decided to write a txt file for each recipe and let a script show it on screen. Having each recipe on different files allowed me to also recude the amount of code needed to create a list of recipe and instantiate their personal prefab in the scene.
The gyroscope
The gyroscope was the most difficult part to implement into the app. Our idea for this project was to create along the interactive shopping list also a map based on the supermarket the user is and help him find his way to have a better shopping experience. In other words we wanted to create a 3D navigation map that follow and help the user during his shopping.
This turned out to be a more difficult task than expected, as we underestimated our abilities for a project bigger than our (and my) ability. Even if the task turned out to be very hard and exausting I still enjoyed working on it. I researched a lot of material for the gyroscope and had to spend a considerate amount of time to test everything in order to make it work.
Also because of the the impossibility of precisely estimating the user's position with GPS and without precise triangulation, I decided to switch the movement from that to a simple touch joystick. That allowed me to focus better on the other parts of the project and have a perfectly working showcase, without having to worry about the inaccuracy of the GPS that may have hindered the presentation. Anyways, due to time and some bugs I wasn't able to implement properly the gyroscope, so I had to create a joystick for the camera.
What I learned
During this project I learned a lot about everything. Fist of all thanks to my fail in creating a gyroscope I learned that my time management wasn't perfect and also the importance of recognizing the difficulty of a task before putting time into it. That because if I was able to recognize it before I could have managed my time better to improve other mechanics more important that this.
Another thing that I learned is having teammates that works alongside me and help me improve the work. It is true that during this project I was the only programmer, so it could seem a contraddiction. But, if I had to work on the level design too I'm sure that I wouldn't be able to finish everything in time. And here my teammates helped me in creating a level for me to properly test the mechanics, that also because I recognized that breybox testing is good in certain limit. Even though greybox is essential during early stages, sometimes what it looks perfect during greyboxing may change drastically once the level is complete, having then to fix everything accordingly.