Native iOS SwiftUI Client for Actual Budget

1 month ago 8

A modern, native iOS app for managing your personal finances with the Actual Budget backend. Built with SwiftUI and designed for a clean, intuitive user experience.

  • Dashboard: Quick insights with spending metrics and recent transactions
  • Account Management: View all your accounts with real-time balances
  • Transaction Tracking: Comprehensive transaction history with filtering
  • Budget Planning: Visual budget management with category breakdowns
  • Sample Data: Test the app with realistic demo data
  • Toggle On/Off: Switch between demo and real data seamlessly
Dashboard

Dashboard

Accounts

Accounts

All Transactions

All Transactions

Account Transactions

Account Transactions

New Transaction

New Transaction

Budget

Budget

  1. Clone this repository
  2. Open iOSApp/ActualAccounts.xcodeproj in Xcode
  3. Ensure you have a valid Apple Developer account for device testing
  1. Configure Actual Budget Backend:

    • Set up your Actual Budget server and Actual Http API
    • Note your API endpoint, API key, and sync ID
  2. App Configuration:

    • Launch the app
    • Go to Settings (via Accounts → gear icon)
    • Enter your Actual Budget credentials:
      • Base URL (e.g., https://your-actual-http-server.com/v1)
      • API Key
      • Sync ID
      • Budget Encryption Password (optional)
  3. Alternative - Demo Mode:

    • Enable "Demo Mode" in Settings
    • The app will show sample data for testing

The app integrates with the Actual Budget API to provide real-time financial data:

  • Authentication: API key-based authentication
  • Data Sync: Real-time synchronization with Actual Budget server
  • Offline Support: Graceful handling of network issues
  • Error Handling: User-friendly error messages and retry mechanisms
  1. Open a terminal and run make in the project root directory. This will build the iOS app and generate an unsigned .ipa file.
  2. After the build completes, you can find the unsigned IPA at iOSApp/build/ActualAccounts-unsigned.ipa.
  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

This project is licensed under a custom "Personal Use Only" license - see the LICENSE file for details.

Quick Summary:

  • Personal Use: Free to use, modify, and learn from for personal purposes
  • Open Source: Full source code available for viewing and study
  • Commercial Use: Not allowed for business, corporate, or commercial purposes
  • Distribution: Cannot be sold, licensed, or distributed commercially

For commercial licensing inquiries, please contact the author.

  • Actual Budget: The open-source budgeting backend that powers this app
  • Actual Http API: The open source http wrapper around the actual budget app, link here
  • SwiftUI Community: For inspiration and best practices

For support, feature requests, or bug reports:

  • Open an issue on GitHub
  • Check the documentation
  • Review the demo mode for feature examples

Built with ❤️ using SwiftUI and Actual Budget

Read Entire Article