MCPcopy Index your code
hub / github.com/codinguser/gnucash-android

github.com/codinguser/gnucash-android @v2.4.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.4.1 ↗ · + Follow
2,144 symbols 9,125 edges 188 files 1,073 documented · 50%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Travis build status

Introduction

GnuCash Android is a companion expense-tracker application for GnuCash (desktop) designed for Android. It allows you to record transactions on-the-go and later import the data into GnuCash for the desktop.

Accounts Transactions Reports
Accounts List Transactions List Reports

The application supports Android 4.4 KitKat (API level 19) and above.

Features include:

  • An easy-to-use interface.

  • Chart of Accounts: A master account can have a hierarchy of detail accounts underneath it.
    This allows similar account types (e.g. Cash, Bank, Stock) to be grouped into one master account (e.g. Assets).

  • Split Transactions: A single transaction can be split into several pieces to record taxes, fees, and other compound entries.

  • Double Entry: Every transaction must debit one account and credit another by an equal amount. This ensures that the "books balance": that the difference between income and outflow exactly equals the sum of all assets, be they bank, cash, stock or other.

  • Income/Expense Account Types (Categories): These serve not only to categorize your cash flow, but when used properly with the double-entry feature, these can provide an accurate Profit&Loss statement.

  • Scheduled Transactions: GnuCash has the ability to automatically create and enter transactions.

  • Export to GnuCash XML, QIF or OFX. Also, scheduled exports to 3rd-party sync services like DropBox and Google Drive

  • Reports: View summary of transactions (income and expenses) as pie/bar/line charts

Installation

There are different ways to get the GnuCash app for Android; through the app store, from github or building it yourself.

App Store

Android app on Google Play

From GitHub

Download the .apk from https://github.com/codinguser/gnucash-android/releases

Building

With Gradle

This project requires the Android SDK to be installed in your development environment. In addition you'll need to set the ANDROID_HOME environment variable to the location of your SDK. For example:

export ANDROID_HOME=/home/<user>/tools/android-sdk

After satisfying those requirements, the build is pretty simple:

  • Run ./gradlew build installDevelopmentDebug from the within the project folder. It will build the project for you and install it to the connected Android device or running emulator.

The app is configured to allow you to install a development and production version in parallel on your device.

With Android Studio

The easiest way to build is to install Android Studio v2.+ with Gradle v3.4.1 Once installed, then you can import the project into Android Studio:

  1. Open File
  2. Import Project
  3. Select build.gradle under the project directory
  4. Click OK

Then, Gradle will do everything for you.

Support

Google+ Community: https://plus.google.com/communities/104728406764752407046

Contributing

There are several ways you could contribute to the development.

  • Pull requests are always welcome! You could contribute code by fixing bugs, adding new features or automated tests. Take a look at the bug tracker for ideas where to start. It is also preferable to target issues in the current milestone.
  • Make sure to read our contribution guidelines before starting to code.

  • Another way to contribute is by providing translations for languages, or improving translations. Please visit CrowdIn in order to update and create new translations

For development, it is recommended to use the Android Studio for development which is available for free. Import the project into the IDE using the build.gradle file. The IDE will resolve dependencies automatically.

Licence

GnuCash Android is free software; you can redistribute it and/or modify it under the terms of the Apache license, version 2.0. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Extension points exported contracts — how you extend this code

Refreshable (Interface)
Interface for fragments which are refreshable @author Ngewi Fet [17 implementers]
app/src/main/java/org/gnucash/android/ui/common/Refreshable.java
OnAccountClickedListener (Interface)
Interface for implemented by activities which wish to be notified when an action on account has been requested This is t [4 …
app/src/main/java/org/gnucash/android/ui/account/OnAccountClickedListener.java
OnTransferFundsListener (Interface)
Interface to be implemented by classes which start the transfer funds fragment [4 implementers]
app/src/main/java/org/gnucash/android/ui/transaction/OnTransferFundsListener.java
CommonColumns (Interface)
(no doc) [10 implementers]
app/src/main/java/org/gnucash/android/db/DatabaseSchema.java
OnColorSelectedListener (Interface)
Interface for a callback when a color square is selected. [3 implementers]
app/src/main/java/org/gnucash/android/ui/colorpicker/ColorPickerSwatch.java

Core symbols most depended-on inside this repo

getUID
called by 289
app/src/main/java/org/gnucash/android/model/BaseModel.java
add
called by 137
app/src/main/java/org/gnucash/android/model/Money.java
equals
called by 132
app/src/main/java/org/gnucash/android/model/Money.java
addRecord
called by 129
app/src/main/java/org/gnucash/android/db/adapter/SplitsDbAdapter.java
toString
called by 111
app/src/main/java/org/gnucash/android/model/Money.java
getRecordsCount
called by 87
app/src/main/java/org/gnucash/android/db/adapter/DatabaseAdapter.java
add
called by 75
app/src/main/java/org/gnucash/android/ui/passcode/KeyboardFragment.java
getSplits
called by 71
app/src/main/java/org/gnucash/android/model/Transaction.java

Shape

Method 1,895
Class 224
Enum 14
Interface 11

Languages

Java100%

Modules by API surface

app/src/main/java/org/gnucash/android/db/adapter/AccountsDbAdapter.java55 symbols
app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java44 symbols
app/src/main/java/org/gnucash/android/model/ScheduledAction.java44 symbols
app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java43 symbols
app/src/main/java/org/gnucash/android/ui/account/AccountsListFragment.java36 symbols
app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java35 symbols
app/src/main/java/org/gnucash/android/model/Split.java35 symbols
app/src/main/java/org/gnucash/android/ui/account/AccountsActivity.java34 symbols
app/src/main/java/org/gnucash/android/db/adapter/DatabaseAdapter.java34 symbols
app/src/androidTest/java/org/gnucash/android/test/ui/TransactionsActivityTest.java34 symbols
app/src/main/java/org/gnucash/android/ui/util/CursorRecyclerAdapter.java33 symbols
app/src/main/java/org/gnucash/android/ui/transaction/TransactionsActivity.java33 symbols

For agents

$ claude mcp add gnucash-android \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact