Overview
"Today!" is an Android app demo developed by my team (Great Team Name) in the spring of 2023 for UTSA's Application Programming course (CS 3443). Written in Java, this app allows a user to create and manage notes and tasks; notes store title and content fields, whereas tasks also store "completed" statuses and date/time deadline fields. This functionality may be accessed from the app's main screen, which automatically orders tasks and notes, and allows for their deletion with a simple long press.
Regarding the app's development, this project posed several challenges from beginning to end; the most significant of which was the proper management of a team of developers. As this project required working with multiple classmates, defining each member's duties and encouraging participation was necessary to foster an efficient working group. In addition, it was necessary to constantly communicate between one another and with the professor, to ensure that we were on the right track. Communication was also key in allowing us to recognize our strengths and limitations that could impact the project—for instance, while communicating with my professor, it became clear that the process of writing data to the Android device's storage was out of the scope of the course. This, paired with the time constraints for the project, meant that this app was ultimately designed as a volatile demo.
However, while the development process was a largely positive experience, it also posed a few setbacks that held back the efficiency of the app’s development. In particular: the lack of self-imposed milestone deadlines led to a "crunch" for development close to the turn-in date; the lack of enforcing duties caused some team members to develop overlapping feature sets; and the assumption of all team members' technical abilities meant that some members did not make direct contributions to the project's Git repository. I look forward to overcoming these setbacks in any of my future team programming projects, for the sake of both me and my teammates.
Regardless of these challenges, we were able to pull together a well-functioning app with an intuitive interface and feature set, whose code follows the Model-View-Controller (MVC) software design principles. In addition, we were also able to successfully work with GitHub, merging branches and using code from our partners to create a functional, attractive final open-source product—which is something to be proud of.
Methods used
Skills
- Clear understanding and ability to apply software design principles, such as Model-View-Controller (MVC)
- Ability to use the Git version control system to progress through and share development within a team
- Proficiency in using GitHub to view development progress, and to share and distribute code to the public
- Communication and leadership abilities for directing team members and combining multiple people's work into a usable product
- Ability to thoroughly explain the functionality of an application to a potential user in an informative presentation
- Proficiency in Android Studio for writing, testing, and evaluating features on emulated and real-world devices
- Knowledge of design principles to create an attractive, intuitive user interface
- Ability to sift through platform documentation (e.g., Android developer docs, Oracle Java API docs) and use code examples to implement ideas from paper to software
- Skills in mockup design to create a concept design that was initially presented to my professor
Software, tools, and libraries
Project files
Github repository Project presentation (.pdf)Media credits
Article thumbnail, showcase clip, library photo, and Adobe Illustrator icon created by me.
Android Studio, Git, and Microsoft PowerPoint icons created by Icons8. Adobe Illustrator icon created by me.