My GWA Calculator Side Project

When I initially started working on this project, I wanted to cover a few things I wanted to do with this single project. I wanted to learn more about a software architectural principle or design, or just something that would make me a better software engineer in terms of structuring project code. I also wanted to explore the much hyped, first class supported, new android programming language, Kotlin. I have read many articles citing the advantages and improvements of this language over the old reliable Java. And the last thing I wanted to cover was that I needed to calculate my General Weighted Average so I can adjust my target grades for my subjects. To hit those three things with one project was a good enough reason to spend my time on the project.



MVP
In this project I implemented the widely used pattern in android app development called Model View Presenter or MVP for short. It's a variation on another commonly known pattern in Java known as the Model View Controller or MVC. I created another blog post expounding on how to implement it here. From what I did, I realized that this pattern employs a lot of principles of good software design which includes segregation of responsibility, designing by contract, focus on testability, etc.

Kotlin
My overall experience working with Kotlin throughout the project was very pleasant. The language was obviously well designed since it was created by and continually updated by the brains behind Android Studio and other popular IDE's, JetBrains (badum tss, pls don't click away yet). Kotlin runs on the JVM and has full interoperability with Java which makes it easier to transition to Kotlin. Compared to Java, the language is more concise in its syntax and has features that are very useful for developers which were lacking in Java (extension functions, inferential typing, null safety etc.) I can see this being a really good alternative and competitor to Java now and in the future especially with the backing and support from Google.

GWA
This was the main idea behind the project, I just wanted to calculate my GWA. In a native interface. Because our university's stupid site didn't. Actually, the MyUste site computed and displayed it in the past, but I guess something wen't wrong and rather than just fixing it, they just removed it entirely. You can tell how professional their developers are. I really dislike UST now.

Anyways, I'd say that the effort I put into this is more than the value of the output product. But I did get valuable experience with the things I mentioned above so It was still worth it. One sad thing though is that once I was done with the app and inputed my grades, I realized that getting a 1.75 overall grade wasn't possible anymore so I can't have latin honors once I graduate.

Source code

Comments

Popular Posts