This app was developed as an SNHU class project for CS 260 - Mobile Architecture and Programming
The requirements for this inventory app were to create an inventory app that utilized a SQLite database for storing login data and inventory item data. The app required a login screen to allow a user to login to the app before accessing the inventory tracker. The main inventory tracker screen needed to be setup in a grid-like structure to display all the items from the database. The typical functions of interacting with the database were required. There needed to be a function to add or remove items, as needed, from the inventory as well as a mechanism allowing the user to alter the number of each item as the stock of the warehouse changed. The third screen used for this app, a settings screen, met the final requirement of allowing a user to turn on and off notifications, and subsequently permissions, for the app to send a message to the user when an item has reached a critically low inventory level, in this case < 5 on hand.
When creating the logic and code for this app, I approached it very systematically. I broke down the whole assignment to smaller tasks, and each of those tasks to even smaller tasks. I tackled each one individually, testing and coding until it would work on its own before moving on to the next task. When I finally had all my smaller tasks completed, I would then integrate them into the larger project and test that integration. This went on for the whole project with a few speedbumps throughout. When a few of these issues came up, it was important for me to move on to something unrelated to clear my mind of the issue and come back to it later with a fresh outlook. Throughout the many projects I have worked on at SNHU, this approach has been the most successful for me and I will utilize this systematic approach in future projects.
The UI choice that I made in constructing my fragments to display the item data as well as individual delete buttons and "+" and "-" buttons strayed a bit outside the learning examples we came across during our course. I feel like this design choice made this project much harder for me, but I also think that the choice was extremely beneficial to my understanding of the app life cycle as well as how different UI elements interact with each other. I feel the implementation of these fragments and the complexity of each one is the area that I was the most successful in demonstrating my knowledge and skills as a programmer. By not having similar examples to draw from, it really made me learn the material on a deeper level which I am very grateful for.