/FinanceApp

A simple Android app to handle transactions on the go

Primary LanguageJava

FinanceApp

A simple app to handle transactions on the go. Originally designed as a knockoff of "Checkbook" by Digital Life Solutions, it has since evolved to attempt to follow the Google Android Design Guidelines better (Material Design, ToolBar, Fragments, ...).

Screen Shots

Home NavDrawer Checkbook Categories Plans Searching Options

Usage

There is currently no license I'm releasing this code under (subject to change). Feel free to use it in whatever way you see fit.

Known Issues

  • Wizard text is now white? Was black recently...
  • Adapter is showing the wrong subcategories for a newly added category (fixes after leaving activity)
  • Transfer spinner looks ugly now. Needs custom adapter/layout.

Things To Do

  • Construct Observer Pattern so Cards can be refreshed appropriately
  • Pass Parcelable Objects instead of all their parameters
  • Plan Rate should be Enum
  • Plan Rate should have year and seconds/minutes to test internally
  • Let Drawer handle Accounts?
  • RecyclerView doesn't have a ripple when clicked (needs to be on account_layout, but then we lose card background...)
  • Improve Drawer/Hamburger menu
  • Fix Memory Leaks (look into LeakCanary)
  • Fork Wizard Pager and put up an aar on Maven/Gradle
  • Fork (https://github.com/Androguide/cardsui-for-android) and put up an aar on Maven/Gradle
  • Improve the way we handle & store dates/times (we should store dates as System.currentTimeMillis? UTC?)
  • Figure out how to handle memo (does it need an auto complete? Or should we go with a spinner like categories?)
  • Realm database (doesn't seem to have an easy way to hook into content providers...)
  • Google Cloud back up (using Google Account?)
  • Add Archive support (ie keep balance when making back ups)
  • Add warning of liability to Pattern. Add encryption and possibly email for recovery?
  • Make the Attachment code available
  • Add custom search suggestions
  • PDF/CSV/XML/HTML Reports
  • Improve First-Time Run (use third party library to draw attention to objects, wizard in the beginning for database importing/syncing, ...)
  • Export/Import oxf (Make sure to support required fields)
  • Improve look (icons, animations, fonts, item views, default colors, slide menu, big notifications)
  • Encrypt entire database (SQLCipher)
  • Clean up some of the Android Lint warnings
  • Update Screenshots

Optimizations

  • Optimize layouts for performance
  • Condense size (Clean up, delete useless assets, ProGuard,...)
  • Index Database Tables properly
  • Make Virtual Tables for Searching
  • Update third-party libraries and support library
  • Use ASyncTask/threads for when you do heavy operations (don't do the operations on the UI)

Notes to Self

  • Need more spinners, less typing
  • Need a number picker for entering rate
  • Calculator Activity (for result) to launch a custom calculator
  • What should happen when a user clicks on a search result? Advance Transaction View?
  • More granular search options?
  • Link a contact (own table?) - Isn't this a Payee field option?
  • Share Option?
  • Intro - (Import option, ask for their main currency)
  • Account - Transfer fee.
  • Account - Billing and payment dates. Notification when a bill is happening soon (with amount).
  • Plans - Should support business days (lunch)
  • Plans - should support an end date (or never, if there is none)
  • Plans - Option to opt-out of notifications
  • Plans - when date in past, have option to make transactions up til present day
  • Transactions - Payee field.
  • Transactions - Project field (Personal, Business, Travel...)
  • Transactions - Currency options (with rate exchange)
  • Transactions - Need to remember Category and Subcategory fields (for better reports)
  • Category - Icons?
  • Subcategory - Icons? More defaults.
  • Budget - "Include in the budget" checkbox for transactions. Percentage reminder. By category option.
  • Statistics - View Account "health" by year/month/bi-week/week
  • Statistics - Option to filter out certain transactions from the reports
  • Statistics - PDF/export/share/archive option
  • Options - Schedule a reminder to notify you to enter your daily transactions
  • Options - Themes (Dark theme)
  • Options - Choose main currency
  • Options - Sync attachments to Google Drive account?
  • Options - Periodic Archive support (email me a pdf report every month)
  • Options - About me section

Attachments

Supported

  • Pictures
  • Music (mp3, wav)
  • Video (mpg, flv)
  • Documents (doc, pptx, xls)

Attachments Not Working

  • .mp4 files (found through the file manager), can be returned. You can view them by hitting the file manager in the selected programs which pops up another popup with video player in the list (Bug?). Selecting video player from that list makes it load the file, but the video stutters & audio not synced. This is due to lack of codec support on the platform.
  • .avi files (found through the file manager) can be returned. When you select the video player to view it, it only has audio. This is due to lack of codec support on the platform.

Third-Party Libraries Used

Icons Used