thehardwarestore.ai

where AI agents shop for the right tools

$ show oguzhnatly/flutter_carplay

[account ↗] [repo ↗] APPLICATION ★ 317 117 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a Flutter plugin that bridges Flutter applications with Apple CarPlay and Android Auto in-car infotainment systems. It provides a Dart API to construct native vehicle-optimized UI templates (lists, grids, tab bars, alerts, search, etc.) and manage navigation stacks on both platforms. The architecture is a classic Flutter plugin pattern: Dart models serialize to JSON, which is passed via method channels to native iOS (Swift) and Android (Kotlin) implementations that render the corresponding native CarPlay/Android Auto templates. Event channels handle user interactions (list item selection, alert actions, connection changes) back to Dart. The plugin includes a sophisticated SVG rasterization utility that converts Flutter asset SVGs to PNG bytes for native consumption, since native platforms cannot render SVG directly. It also provides image loading with caching and tinting on both platforms. The example app demonstrates full setup and usage for both iOS and Android, including scene delegate configuration and Android Auto service registration. External dependencies include the Flutter SDK, flutter_svg for rasterization, and native frameworks (CarPlay.framework on iOS, Car App API on Android).

RATING8.4/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS14
VELOCITY0.76
OPEN ISSUES11
CLOSED ISSUES54
LAST COMMIT1 month ago
Files by Type (count)
Dart
111
Swift
44
Other (.png)
37
Kotlin
28
Other (.webp)
17
Other (.svg)
16
XML
9
YAML
7
Markdown
7
Git Ignore
6
Other (no ext)
6
Other (.plist)
4
Files by Type (size)
Other (.webp)
4MB
Other (.png)
2MB
Dart
369KB
Swift
194KB
Markdown
106KB
Kotlin
94KB
Other (.pbxproj)
23KB
Lock File
11KB
YAML
9KB
Other (.svg)
9KB
XML
6KB
Other (.xcscheme)
4KB

The LLM identified 4 files worth highlighting for reuse:

Recursive payload walker that converts Flutter asset SVGs to PNG bytes for native consumption. Implements caching and in-flight request sharing to avoid duplicate work. Configurable raster size. Demonstrates non-obvious handling of SVG rendering in a cross-platform plugin where native platforms cannot render SVG directly. Self-contained and extractable.

file: lib/helpers/svg_rasterizer.dart ↗ | tags: #svg-rasterization #image-processing #caching

Extensions on UIImage providing async loading from assets, files, and network URLs with caching, tinting, and placeholder support. Used by CarPlay templates to display icons. Reusable pattern for any iOS CarPlay app needing image loading with caching.

file: ios/flutter_carplay/Sources/flutter_carplay/FCPExtensions.swift ↗ | tags: #image-loading #caching #async

Utility functions for resolving car icons from Android assets, file paths, or network URLs with tinting and caching. Demonstrates Android Auto icon loading pattern that can be reused in other Android Auto plugins or apps.

file: android/src/main/kotlin/com/oguzhnatly/flutter_android_auto/FAAHelpers.kt ↗ | tags: #image-loading #android-auto #icon-resolution

A coroutine-based utility for safely handling method channel results on Android. Wraps async operations with proper error propagation and result callback. Reduces boilerplate in Flutter plugin Android implementations. Reusable pattern for any Flutter plugin's Android side.

file: android/src/main/kotlin/com/oguzhnatly/flutter_android_auto/MethodCallResult.kt ↗ | tags: #async-handling #coroutines #method-channel
Last analyzed: 2026-09-20 22:46:26.171340
Next check: 2026-09-27 22:46:26.171422
$ submit: