Version 1.0 Beta has now been released. It can be found here.
This project started as a simple coding exercise to develop a simple budgeting application for both Android and iOS devices that would showcase some interesting and useful design patterns.
EasyBudget is a multi-platform personal budget application for mobile devices, built using Xamarin Forms.
I like to keep and produce full design notes on projects where it makes sense to do so. This project’s Design Notes are located here and include UML diagrams and detailed notes about specific portions of the project.
Application User Interface
EasyBudget Status Page
The main status page for EasyBudget shows a birds eye view of the budget categories and bank accounts. Click ‘Budgeting’ to go to Budget Categories or click ‘Banking’ to go to Bank Accounts.
Budget Categories Page
Budget Category Pages
Budget Item Pages
Bank Accounts Page
Bank Account Pages
UWP Version Added to Project
This project was originally intended just to explore iOS and Android development in Visual Studio, using the Xamarin.iOS and Xamarin.Android libraries. It was also, hopefully, going to provide me with a cool app I could use over time to record and track income and expenses for our family.
While coding this application and taking courses through Xamarin University, I began to look at this as an opportunity to expand the scope of this project to explore some other aspects of mobile development. Here is a rough road map for where I plan to take this project.
Version 1.0 Development Backlog
- Complete Developer’s Notebook
- Compile Release Notes
- Package for Deployment
- Distribute for Device Testing
- Review Testing Feedback
- Re-package for Deployment (v1.0 production)
- Deploy to App Store and Google Play
Version 2.0 Backlog of Features
- Support UWP devices
- Integrate discrete Budget Category recurrence, including frequency types Once, Weekly, Bi-Weekly, Monthly, Semi-Monthly or Annual.
- Incorporate more granular adjustments to status graphs and charts that correspond to frequency integration
- Enable online data retrievals via Web API
- Add features to capture the state of the application when devises are powered down so that users can continue where they left off (or close enough to that point) once the device is powered on again and the application has been started.
- Introduce a server-based database and API service that will allow for multiple users to do the same thing, providing a Single Sign On layer that will authenticate users from their mobile devices and provide API authentication capabilities so that the API can use tokenized access methods to ensure security of the shared application layer.
- Alter the iOS and Android applications with minimum amount of duplicated code, to allow offline use and online synchronization of data via the API service layer.
- Add features such as the ability to capture photos of checks and receipts and store those records on a server.
Who doesn’t love screenshots? Here are a few of what the app looks like so far.
Testing and Deployment
With version 1.0 Beta nearing completion, it’s time to start looking at ways to distribute this and test on as many different types of devices as I can. I would ultimately like to have this as a finished application available in the app stores.
Project Source Code
The working copy of this project’s code can be found here.
I do have a variety of Open Source projects that I work on when I have time. These include some example code as well as a personal budgeting application designed for Android, iOS and UWP mobile devices.
I use the Apache License 2.0 for most Open Source projects. I’m open to other licenses as warranted.