Mobile Application for Firefly III written in Kotlin
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Added issue template Oct 13, 2018
.idea Add accordion view for optional parameters when adding tags Jan 21, 2019
app Bump app version Feb 10, 2019
art Point to Wiki page for authentication Dec 24, 2018
buildSrc Set help text for certain views Feb 9, 2019
gradle/wrapper Update build tools Nov 27, 2018
languagepack Update locale strings Feb 10, 2019
scripts
.gitignore Updated .gitignore Sep 25, 2018
LICENSE.txt First commit Sep 1, 2018
README.md
build.gradle.kts Add accordion view for optional parameters when adding tags Jan 21, 2019
gradle.properties Update build tools Nov 27, 2018
gradlew First commit Sep 1, 2018
gradlew.bat
settings.gradle

README.md

Firefly III(Android)

Get it on F-Droid

An unofficial Android client for Firefly III, written in Kotlin.

Disclaimer

This software is using Firefly III APIs. It is under heavy development and should be considered alpha quality as it might work in unexpected ways. In order to use this app, you must first setup a Firefly III instance.

Other alternative include this software written by mconway using Ionic framework.

Features

✔ Support Kitkat and up!

✔ Offline: View offline data

✔ Automation: Add data non-interactively allowing powerful automation. Read the wiki for more info.

✔ Reporting: Financial reports give you overview of your spending and income

Customization

Change the default oAuth callback URL

  1. Change config.hostname value in config.properties to your desired value.

Certificate pinning

There are many write up on the internet with regards to certificate pinning. This project shall not go into details. 1 2 3

A quote from okhttp docs

Warning: Certificate Pinning is Dangerous! Pinning certificates limits your server team's abilities to update their TLS certificates. By pinning certificates, you take on additional operational complexity and limit your ability to migrate between certificate authorities. Do not use certificate pinning without the blessing of your server's TLS administrator!

If you are still brave, carry on reading.

To enable certificate pinning:

  1. Run cert_pinning.sh
$ ./cert.sh www.google.com
/C=US/ST=California/L=Mountain View/O=Google LLC/CN=www.google.com
47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
/C=US/O=Google Trust Services/CN=Google Internet Authority G3
f8NnEFZxQ4ExFOhSN7EiFWtiudZQVD2oY60uauV/n78=
Script requires bash and openssl to run.
  1. Copy the sha256 value hash of the certificate's Subject Public Key Info to the app settings.

Running the Software

Building

With your device plugged into your PC and ADB enabled

git clone https://github.com/emansih/FireflyMobile.git
cd FireflyMobile
./gradlew clean installDebug

Pre-built APK

An APK is provided in the release page for convienent purposes. All APKs are signed with the same release key, this ensure that the APK comes from me and your financial data will not be exposed to nefarious actors. The APK SHA256 public key is 40:F2:02:B8:CC:D1:68:87:56:8A:F7:9E:27:44:5B:E1:82:51:CC:B9:1E:89:08:8B:04:3D:2F:35:A2:0D:C3:8F. All commits in this repo are signed with my GPG key and the public key can be found on keybase and Github

To get latest update notifications, add this RSS feed.

It's also available via F-Droid here. I have also added my own FDroid repo for users with Privileged Extension. For more info, take a look at the wiki

If there is enough interest, I might upload it to Google Play Store.

Authentication

Check the wiki page for more info

Screenshots

Dashboard Piggy Bank Adding Piggy Bank Piggy Bank Details
1 3 4 5
Transactions Bills Login Report Bills Details
2 6 7 8 9

Thanks to Screener - Better Screenshots for the device frame!

Icons in this app are taken from:

  1. Flaticon
  2. Material Design Icons
  3. Android Iconics
  4. App icon taken from Firefly III server(favicon). Original source

Known Limitations / bugs

Heh... I left this to the last.

Please see this for updates.

License

    Copyright (C) 2018 Daniel Quah(emansih)

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.