Skip to content

kevinguitar/budgetplus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,395 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Budget+ Multiplatform App(極簡記帳)

Android CI iOS CI License

Budget+ is an easy-to-use co-spending tracker to track expenses together with your friends and family.

Now available on both Android and iOS!

Android iOS

Feature Overview

overview_1

overview_2

Some cool animated features!! ✨

Pie Chart Color Tone Picker Customize Color Tone
screen-20240707-170558.2.mp4
screen-20240707-170638.3.mp4
screen-20240707-170638.4.mp4

Tech Stack

Business Logic and Core

Open-Source Libraries for KMP

Android Specific


Supported Deeplinks


Performance Optimization (Baseline Profile)

The project uses Baseline Profiles to improve startup performance.

Generating a Profile

To run the generator:

./gradlew :benchmark:connectedReleaseAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile

The output can be found in: benchmark/build/outputs/connected_android_test_additional_output/release/connected/[device].

Copy and rename the file to baseline-prof.txt and place it in the src/main directory of the app module.

Running Macrobenchmarks

./gradlew :benchmark:connectedReleaseAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=Macrobenchmark

Build the Project Locally

If you want to build the project locally, follow these steps:

  1. Clone the repository.
  2. Add a google-services.json file under :androidApp folder. Here's a valid dummy file you can use:
{
  "project_info": {
    "project_number": "dummy_project_number",
    "project_id": "dummy_project_id"
  },
  "client": [
    {
      "client_info": {
        "mobilesdk_app_id": "dummy_app_id",
        "android_client_info": {
          "package_name": "com.kevlina.budgetplus"
        }
      },
      "api_key": [
        {
          "current_key": "dummy_api_key"
        }
      ]
    }
  ]
}
  1. Now you should be able to build both Android and iOS apps:
    • Build the Android app, run ./gradlew assembleDebug
    • Build the iOS app, run ./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64
  2. If you want to have the app running with real functionalities, you'll need to create a new project on Firebase and wire your API keys in the project.

Backend: Firebase Cloud Functions

Database interactions and push notifications are implemented using Firebase Cloud Functions.

The backend repository is also open-sourced: budgetplus-cloud-functions


License

Copyright (c) 2024 Kevin Chiu

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
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.

About

Budget+ is a co-spending tracker, available on Android and iOS. Built with KMP and CMP.

Topics

Resources

License

Stars

Watchers

Forks

Contributors