Skip to content

marlonlom/mocca

Repository files navigation

💰 Mocca

License API Build Status Repo Size CodeFactor

Mocca is a modern Android application for mobile and Wear OS that simplifies money transfer cost calculations. Based on Efecty rates, it provides a clean, fast, and reliable way to calculate fees and total costs on the go.

✨ Features

  • 💰 Smart Calculator: Real-time fee calculation with range validation.
  • 🕒 History: Keep track of your successful calculations locally.
  • Wear OS Support: A streamlined version optimized for your wrist.
  • 🎨 Material 3: Full support for Dynamic Colors and Adaptive Layouts.
  • 🌓 Theme Support: Seamless switching between Light and Dark modes.

📸 Screenshots

Mocca Application Screenshots

🏗 Architecture

The project is built using modern Android development standards:

  • Pattern: MVVM (Model-View-ViewModel) + UDF (Unidirectional Data Flow).
  • Modularization: Feature-based modular structure for high scalability.
  • Concurrency: Kotlin Coroutines and Flow for reactive data streams.
flowchart BT
  subgraph Core
  fcc[":features:core:calculator"]
    fcd[":features:core:database"]
    fcp[":features:core:preferences"]
    fcu[":features:core:ui"]
  end
  subgraph Mobile
    fmu[":features:mobile:ui"]
    fmc[":features:mobile:calculator-*"]
    fmo[":features:mobile:onboarding"]
    fms[":features:mobile:settings"]
    appm[":apps:mobile"]
    bmm[":benchmarks:macro:mobile"]
  end
  subgraph WearOS
    fwu[":features:wearos:ui"]
    fwc[":features:wearos:calculator-*"]
    fwo[":features:wearos:onboarding"]
    appw[":apps:wearos"]
    bmw[":benchmarks:macro:wearos"]
  end
  Core --- Mobile
  Core --- WearOS
  fmu --- fmc
  fmc --- appm
  fmo --- appm
  fms --- appm
  fwu --- fwc
  fwc --- appw
  fwo --- appw
  appm --- bmm
  appw --- bmw
Loading

🛠 Tech Stack

The application is built with the following cutting-edge technologies:

📂 Project Structure

  • apps/: Main entry points for :mobile and :wearos.
  • features/core/: Shared business logic, :calculator rules, :database persistence, and shared :ui components.
  • features/mobile/: Mobile-specific feature modules like :calculator-fees, :onboarding, and :settings.
  • features/wearos/: Wear OS-specific feature modules like :calculator-fees, :onboarding, and :ui.
  • benchmarks/: Macrobenchmark tests for performance monitoring on both :mobile and :wearos.
  • build-logic/: Custom Gradle convention plugins for project configuration.

🚀 Getting Started

  1. Clone the repo: git clone https://github.com/marlonlom/mocca.git
  2. Open in Android Studio Ladybug (or later).
  3. Sync Gradle and run the :apps:mobile or :apps:wearos module.

🤝 Documentation

📄 License

Copyright 2023 Marlonlom

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

    https://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

Android application for mobile phones and smartwatches, that showcases money transfers cost calculation based in Efecty related feature

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Contributors

Languages