appcare_flutter
An all-in-one, enterprise-grade Flutter utility package for app maintenance, auto-upgrader UI, hardware diagnostics, security anti-cheat checks, system controls, and native launchers β using RAW CODE ONLY.
Zero External Dependencies on the Dart/Flutter side. Pure performance using native Platform Channels and platform SDKs.
π Key Highlights
- π Zero External Dependencies: Lightweight and eliminates conflict with third-party packages.
- π± All-in-One Utility Suite: Replace 15+ standalone packages (
url_launcher,wakelock,upgrader,in_app_review,vibration,clipboard, etc.) with a single package. - π‘οΈ Built-in Security & Anti-Cheat: Screenshot blocking, Fake GPS mock location detection, network auto-time verification, and screen recording detection.
- π System & Hardware Controls: Native flashlight, volume control, silent mode, app icon badging, biometrics check, and system audio beeps.
- π Network & Diagnostics: Server ping latency (ms), local IP discovery, Wi-Fi signal strength, battery status, disk storage space, and thermal diagnostics.
π» Platform Support
| Platform | Support | Notes |
|---|---|---|
| Android | β | Native Kotlin SDK integration |
| iOS | β | Native Swift with Swift Package Manager (SPM) |
| Web | β | Pure Dart web plugin with browser APIs |
| macOS | β | Dart desktop platform interface |
| Windows | β | Dart desktop platform interface |
| Linux | β | Dart desktop platform interface |
π Comprehensive Feature Overview & Code Examples
1. π In-App Rating & Review
Prompt users for store reviews with built-in cooldown logic to prevent spamming.
final appCare = AppCare();
// Request review (prompts only if minDaysBeforePrompt interval has passed)
bool prompted = await appCare.requestReview(minDaysBeforePrompt: 7);
// Reset prompt cooldown history
await appCare.resetReviewHistory();
2. π Automatic Upgrader UI Widgets
Drop-in replacement for the upgrader package. Automatically prompts users when a new version is released.
// Wrap your root app with UpgradeAlert
void main() {
runApp(
const UpgradeAlert(
child: MyApp(),
),
);
}
// Or embed an UpgradeCard in Settings / Profile screens
const UpgradeCard(
elevation: 3,
title: 'New Update Available!',
)
3. π¦ Flashlight / Torch Controller
Direct camera flashlight control without external packages.
await appCare.turnFlashlightOn();
await appCare.turnFlashlightOff();
await appCare.toggleFlashlight();
4. π‘οΈ Security & Anti-Cheat Helpers
Protect your application from fake GPS, time tampering, screenshot leaks, and unauthorized screen recording.
// Check if user is using Fake GPS / Mock Location
bool isMock = await appCare.isMockLocation();
// Check if device time is automatically synced with network
bool isAutoTime = await appCare.isAutomaticTime();
// Check if app screen is currently being recorded or cast
bool isRecording = await appCare.isScreenBeingRecorded();
// Enable screenshot & screen recording block on sensitive screens
await appCare.setScreenSecurity(enable: true);
5. π System Volume & Silent Mode
Read/set system media volume and check for ringer silent mode.
double currentVol = await appCare.getVolume(); // 0.0 to 1.0
await appCare.setVolume(0.7); // 70% volume
bool isMuted = await appCare.isMuted();
6. π‘ Network Diagnostics & Ping Latency
Measure actual server ping response latency, inspect Wi-Fi signal strength, and retrieve local IP address.
// Ping server in ms (e.g. 15ms)
int latencyMs = await appCare.pingHost(host: '8.8.8.8');
// Get local IPv4 address
String? localIp = await appCare.getLocalIpAddress();
// Get Wi-Fi signal strength (0 to 4 bars)
int signalStrength = await appCare.getWifiSignalStrength();
// Check active internet connection
bool isOnline = await appCare.checkConnectivity();
// Detailed network type (wifi, cellular, ethernet, none)
NetworkType netType = await appCare.getNetworkType();
7. π Biometrics Hardware & App Icon Badge
Check fingerprint / FaceID enrollment and set unread badge counts on the app icon.
// Biometrics hardware availability
bool canAuth = await appCare.canAuthenticateBiometrics();
// Set app icon unread badge count
await appCare.setAppBadgeCount(5);
await appCare.clearAppBadge();
8. π System Accessibility Font Scale & Beep
Read user font scale factor for responsive layouts and trigger native system audio feedback.
double fontScale = await appCare.getFontScale(); // e.g., 1.0 or 1.5
await appCare.playSystemBeep();
9. π² External App Presence Check
Verify if specific apps are installed on the device before attempting to launch them.
bool hasWhatsApp = await appCare.isAppInstalled('com.whatsapp');
10. π Native App & URL Launchers
Launch URLs, emails, and phone dialer directly without requiring url_launcher.
await appCare.openUrl('https://www.rahulreza.com');
await appCare.openEmail('your-email@gmial.com', subject: 'Inquiry');
await appCare.openDialer('+8800000000000');
11. π‘ Keep Screen Awake (WakeLock)
Keep device screen turned on during video playback or reading screens.
await appCare.setKeepScreenOn(keepOn: true);
12. π³ Haptic Vibration Engine
Trigger tactile feedback across multiple intensity presets.
await appCare.vibrate(type: HapticType.light);
await appCare.vibrate(type: HapticType.medium);
await appCare.vibrate(type: HapticType.heavy);
await appCare.vibrate(type: HapticType.success);
await appCare.vibrate(type: HapticType.error);
13. π Clipboard & Screen Orientation Controls
Copy and read system clipboard text, and lock screen orientation.
await appCare.copyToClipboard('Hello World!');
String? text = await appCare.getTextFromClipboard();
await appCare.setOrientation(ScreenOrientation.portrait);
await appCare.setOrientation(ScreenOrientation.landscape);
await appCare.setOrientation(ScreenOrientation.unlock);
14. π‘οΈ Thermal & RAM Diagnostics
Monitor RAM memory pressure and thermal overheating status.
bool lowRam = await appCare.isLowMemory();
ThermalStatus thermal = await appCare.getThermalStatus();
15. π Battery & Disk Storage Info
Retrieve battery level percentage, charging state, low power mode, and free/total storage capacity.
BatteryInfo battery = await appCare.getBatteryInfo();
print('Battery: ${battery.batteryLevel}% (Charging: ${battery.isCharging})');
StorageInfo storage = await appCare.getStorageInfo();
print('Free storage: ${storage.freeGB.toStringAsFixed(2)} GB / ${storage.totalGB.toStringAsFixed(2)} GB');
βοΈ Platform Setup
Android Setup
Permissions are automatically merged by the plugin's AndroidManifest.xml:
<uses-permission android.permission.INTERNET />
<uses-permission android.permission.ACCESS_NETWORK_STATE />
<uses-permission android.permission.ACCESS_FINE_LOCATION />
<uses-permission android.permission.ACCESS_COARSE_LOCATION />
iOS Setup
For location features, add NSLocationWhenInUseUsageDescription to ios/Runner/Info.plist:
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need your location for app features.</string>
π¨βπ» Author & Maintainer
Md. Rahul Reza
- π Website: rahulreza.com
- π¬ Email: contact@rahulreza.com
π License
This project is licensed under the MIT License.
Libraries
- appcare_flutter
- An all-in-one Flutter utility package for app maintenance and user engagement using RAW CODE ONLY.