Gurpay is a mobile application that runs on both iOS and Android. It allows roommates to manage and split a set of bills among them. Because of its cross platform nature, it required work on many different fronts to give a unified app experience.
I build Gurpay to meet the needs of my friends in college. My goal was to simplify their current solution of using a whiteboard to track everything and do all of the math. With the addition of the app, they gained many quality of life features that would not have been possible otherwise
From the start, I knew that I would need to build an API. This would allow both apps to share the same business logic, and each app would only have to worry about displaying the infomation returend from it. I chose to create native apps for each platform because I have had terrible experiences working with cross platform libraries in the past, and because I already had most of the knowledge required to build each of the native apps.
One of the biggest obstacles I encountered on this project was setting up push notifications for both platforms. Going in to the project, I had no knowledge of how they worked or what was required, but after lots of research and trial and error I managed to get them working, so that users could notify each other and recieve notifications when their bills were due.
The biggest lesson that I learned in this project is the importance of planning. Since this project has 3 seperate code bases, any change to the API would need to be updated in both apps. Thinking ahead to what will be required was essential to keeping both apps on schedule.