X Tutup
Skip to content

schmidtwmark/BetterBlue

Repository files navigation

BetterBlue

BetterBlue on iPhone BetterBlue on Apple Watch

Download on TestFlight

Visit Website

A modern iOS app for controlling your Hyundai or Kia vehicle using BlueLink and Kia Connect services. Built with SwiftUI and powered by BetterBlueKit.

Features

🚗 Vehicle Control

  • Lock/Unlock your vehicle remotely
  • Climate Control with custom temperature, defrost, and seat heating
  • Charging Control for electric and plug-in hybrid vehicles
  • Real-time Status monitoring

🔋 Multi-Powertrain Support

  • Electric Vehicles (BEV) - battery level, range, charging status
  • Gas Vehicles - fuel level and range
  • Plug-in Hybrids (PHEV) - both electric and gas systems

📱 iOS Features

  • Home Screen Widgets - quick vehicle status on your home screen
  • Lock Screen Widgets - see battery and range at a glance
  • Control Center Widgets - lock, unlock, and control climate from Control Center (iOS 18+)
  • Live Activities (Beta) - real-time charging progress on your Lock Screen and Dynamic Island
  • Apple Watch App - control your vehicle from your wrist
  • Watch Complications - battery percentage on your watch face
  • Siri Shortcuts - automate vehicle actions with voice commands
  • Dark Mode - full support for light and dark themes
  • Multiple Accounts - manage vehicles from different accounts
  • MFA Support - seamless multi-factor authentication for Kia accounts

🛠 Developer Features

  • HTTP Logging - detailed request/response debugging
  • SwiftData - modern data persistence
  • SwiftUI - native iOS user interface
  • Async/Await - modern Swift concurrency
  • Fake Vehicle Mode - test the app without a real vehicle

Project Structure

BetterBlue/
├── BetterBlue/                 # Main iOS app
│   ├── Views/                  # SwiftUI views
│   ├── Models/                 # SwiftData models
│   ├── Utility/                # Helper classes
│   └── BetterBlueApp.swift     # App entry point
├── BetterBlueWatch Watch App/  # Apple Watch app
├── Widget/                     # iOS widgets, Control Center, Live Activities
├── WatchWidget/                # Watch complications
├── LiveActivityBackend/        # Backend for Live Activity push notifications
├── BetterBlueKit/              # Swift package for API communication
└── README.md                   # This file

Architecture

  • BetterBlueKit: Swift package handling all API communication
  • SwiftData: Modern Core Data replacement for persistence
  • SwiftUI: Declarative UI framework
  • Combine/Async: Reactive programming and concurrency
  • CloudKit: iCloud sync for settings and accounts

Development

Linting

The project uses SwiftLint for code style enforcement:

swiftlint lint

Debugging

  • HTTP requests are logged in the app under Settings > HTTP Logs
  • Vehicle status can be monitored in real-time
  • Fake vehicles support custom scenarios for testing

Live Activities (Beta)

Live Activities display real-time charging progress on your Lock Screen and Dynamic Island. This feature is off by default and can be enabled in Settings > Widget Settings.

How it works

To keep the Live Activity updated, BetterBlue uses a lightweight backend service that sends silent push notifications to refresh the charging status periodically.

Privacy

  • No vehicle information is sent to the backend
  • No account credentials leave your device
  • Only your device's push token is stored temporarily
  • Tokens are automatically deleted after 8 hours

The backend is fully open source - see LiveActivityBackend/ for the source code.

Privacy & Security

  • Credentials: Stored securely in iCloud with SwiftData
  • Network: All API calls use HTTPS encryption
  • Live Activities: Only push tokens are sent to the backend (no vehicle data)

Important Notes

  • Subscription Required: You need an active BlueLink/Kia Connect subscription
  • Battery Impact: Frequent remote commands may drain your vehicle's 12V battery
  • Rate Limits: Respect API rate limits to avoid account suspension
  • Unofficial: This app is not affiliated with Hyundai or Kia
  • Terms of Service: Ensure you comply with your vehicle service terms

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

An iOS native app for controlling Kia and Hyundai vehicles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

X Tutup