Skip to content

Commit 6926d1c

Browse files
docs: Replace flutter_workmanager with workmanager and remove marketing docs
- Replace all instances of 'flutter_workmanager' with 'workmanager' - flutter_workmanager package does not exist, correct reference is 'workmanager' - Remove marketing/strategy documents (ACTION_PLAN, ADOPTION_BARRIERS, etc.) - Add SPM analysis document for future reference Changes: - Updated README, CHANGELOG, and all documentation - Updated example code and benchmarks - Removed 7 strategy/marketing documents - No functional code changes
1 parent 31cf00a commit 6926d1c

26 files changed

+230
-3784
lines changed

CHANGELOG.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ Consider sending large data as JSON in request body instead
480480

481481
#### User Guides (3 files)
482482
- `docs/GETTING_STARTED.md` - 3-minute quick start guide
483-
- `docs/MIGRATION_GUIDE.md` - Step-by-step migration from flutter_workmanager
483+
- `docs/MIGRATION_GUIDE.md` - Step-by-step migration from workmanager
484484
- `docs/README.md` - Updated documentation index
485485

486486
#### Technical Documentation (3 files)
@@ -1143,7 +1143,7 @@ await NativeWorkManager.enqueueChain(
11431143
#### Documentation
11441144
- ✅ **Comprehensive documentation** (~6,000+ lines total):
11451145
- ARCHITECTURE.md - System architecture and design
1146-
- MIGRATION_GUIDE.md - Migration from flutter_workmanager
1146+
- MIGRATION_GUIDE.md - Migration from workmanager
11471147
- TROUBLESHOOTING.md - Common issues and solutions
11481148
- Multiple implementation summaries and guides
11491149

@@ -1155,7 +1155,7 @@ await NativeWorkManager.enqueueChain(
11551155

11561156
### Performance
11571157

1158-
| Metric | flutter_workmanager | Native WorkManager | Improvement |
1158+
| Metric | workmanager | Native WorkManager | Improvement |
11591159
|--------|---------------------|-------------------|-------------|
11601160
| **RAM (Native)** | 50MB | 2-5MB | **90-96% reduction** ⚡ |
11611161
| **Cold Start (Native)** | 500-1000ms | <50ms | **10-18x faster** ⚡ |
@@ -1178,10 +1178,10 @@ await NativeWorkManager.enqueueChain(
11781178

11791179
### Migration Guide
11801180

1181-
From `flutter_workmanager`:
1181+
From `workmanager`:
11821182

11831183
```dart
1184-
// Old (flutter_workmanager)
1184+
// Old (workmanager)
11851185
Workmanager().initialize(callbackDispatcher);
11861186
Workmanager().registerOneOffTask("1", "task");
11871187
@@ -1276,22 +1276,22 @@ See [MIGRATION_GUIDE.md](MIGRATION_GUIDE.md) for complete migration guide.
12761276
## Performance Benchmarks
12771277

12781278
### RAM Usage
1279-
| Scenario | flutter_workmanager | native_workmanager | Improvement |
1279+
| Scenario | workmanager | native_workmanager | Improvement |
12801280
|----------|---------------------|-------------------|-------------|
12811281
| Native Worker (HTTP) | ~50MB | ~2-5MB | 90-96% less |
12821282
| Dart Worker (Cold) | ~50MB | ~30-50MB | 0-40% less |
12831283
| Dart Worker (Warm) | ~50MB | ~5-10MB | 80-90% less |
12841284

12851285
### Execution Speed
1286-
| Scenario | flutter_workmanager | native_workmanager | Improvement |
1286+
| Scenario | workmanager | native_workmanager | Improvement |
12871287
|----------|---------------------|-------------------|-------------|
12881288
| Native Worker Cold Start | 500-1000ms | <50ms | 10-20x faster |
12891289
| Dart Worker Cold Start | 500-1000ms | 500-800ms | 1.25-2x faster |
12901290
| Dart Worker Warm Start | 500-1000ms | 100-200ms | 5-10x faster |
12911291

12921292
### Battery Efficiency
12931293
- Native workers: **89% better** battery efficiency (minimal FlutterEngine overhead)
1294-
- Dart workers: **Similar** to flutter_workmanager (uses FlutterEngine when needed)
1294+
- Dart workers: **Similar** to workmanager (uses FlutterEngine when needed)
12951295

12961296
---
12971297

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
## ⚡ Performance Comparison
2828

29-
| Metric | flutter_workmanager | native_workmanager | Improvement |
29+
| Metric | workmanager | native_workmanager | Improvement |
3030
|--------|:------------------:|:------------------:|:-----------:|
3131
| **Memory** | 85 MB | 35 MB | **-50 MB (58%)** |
3232
| **Startup** | 500ms | <100ms | **5x faster** |
@@ -102,7 +102,7 @@ await NativeWorkManager.enqueue(
102102

103103
---
104104

105-
## 🔄 Migrating from flutter_workmanager?
105+
## 🔄 Migrating from workmanager?
106106

107107
**Good news:** ~90% API compatibility, most code stays the same!
108108

@@ -115,7 +115,7 @@ await NativeWorkManager.enqueue(
115115

116116
### Common Migration Pattern
117117

118-
**Before (flutter_workmanager):**
118+
**Before (workmanager):**
119119
```dart
120120
Workmanager.registerPeriodicTask(
121121
'myTask',
@@ -180,7 +180,7 @@ NativeWorkManager.enqueue(
180180

181181
### Feature Comparison
182182

183-
| Feature | native_workmanager | flutter_workmanager | workmanager |
183+
| Feature | native_workmanager | workmanager | workmanager |
184184
|---------|:--:|:--:|:--:|
185185
| Native Workers (zero overhead) | ✅ 11 types |||
186186
| Task Chains (A→B→C) | ✅ Built-in | ❌ Manual | ❌ Manual |
@@ -320,7 +320,7 @@ A: Yes, but on iOS each task in the chain must complete within 30 seconds. Use n
320320
**Q: What happens if a task in a chain fails?**
321321
A: The chain stops. Subsequent tasks are cancelled. You can use retry policies to handle failures.
322322

323-
**Q: Is this compatible with flutter_workmanager?**
323+
**Q: Is this compatible with workmanager?**
324324
A: ~90% compatible. Most code works with minor syntax changes. See [migration guide](doc/MIGRATION_GUIDE.md).
325325

326326
**Q: Can I use this for location tracking?**

SPM_ANALYSIS.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Swift Package Manager (SPM) Support Analysis
2+
3+
## 📊 Current Status
4+
5+
**Pub.dev Score Impact:** 0/0 points (not affecting score YET)
6+
7+
**Warning from pub.dev:**
8+
> "Package does not support the Swift Package Manager on iOS. This package for iOS or macOS does not support the Swift Package Manager. It will not receive full points in a future version of the scoring model."
9+
10+
---
11+
12+
## 🔍 What is SPM?
13+
14+
**Swift Package Manager** is Apple's official dependency manager for Swift projects. It's an alternative to CocoaPods for managing iOS/macOS dependencies.
15+
16+
### Current Setup (CocoaPods)
17+
- ✅ Works with `podspec` file
18+
- ✅ 100% functional for iOS plugin
19+
- ✅ Used by Flutter plugin system
20+
- ❌ Does not support pure Swift Package Manager projects
21+
22+
### Future (SPM Support)
23+
- ✅ Modern Apple-recommended approach
24+
- ✅ Better Xcode integration
25+
- ✅ Will be required for full pub.dev score (future)
26+
- ⚠️ Requires additional configuration
27+
28+
---
29+
30+
## 💡 Should We Fix This Now?
31+
32+
### **Reasons to DEFER (Recommended)**
33+
34+
1. **No Score Impact Yet**
35+
- Currently: 0/0 points
36+
- Not affecting our 160/160 score
37+
- Timeline unclear ("future version of scoring model")
38+
39+
2. **CocoaPods Works Fine**
40+
- 99% of Flutter plugins use CocoaPods
41+
- All users can install without issues
42+
- Proven, stable ecosystem
43+
44+
3. **Implementation Complexity**
45+
- Requires creating `Package.swift`
46+
- Need to restructure iOS folder layout
47+
- Testing required on multiple Xcode versions
48+
- Risk of breaking existing CocoaPods setup
49+
50+
4. **Low User Demand**
51+
- Most Flutter developers use CocoaPods
52+
- SPM adoption in Flutter ecosystem is still early
53+
- No user requests for this feature yet
54+
55+
5. **Time Investment**
56+
- Estimated: 4-6 hours implementation + testing
57+
- Better spent on features users actually need
58+
- Can add when pub.dev actually enforces it
59+
60+
### **Reasons to FIX NOW**
61+
62+
1. **Future-Proofing**
63+
- Get ahead of the requirement
64+
- No rush when pub.dev enforces it
65+
66+
2. **Modern Best Practice**
67+
- Apple recommends SPM over CocoaPods
68+
- Better Xcode integration
69+
70+
3. **Developer Experience**
71+
- Some developers prefer SPM
72+
- Broader compatibility
73+
74+
---
75+
76+
## 🎯 Recommendation
77+
78+
**DEFER** SPM support for now because:
79+
80+
1.**Zero score impact** (0/0 points)
81+
2.**No user demand** (no issues/requests)
82+
3.**Working solution exists** (CocoaPods)
83+
4.**Unclear timeline** (when will it be enforced?)
84+
85+
**When to implement:**
86+
87+
- ⏰ When pub.dev announces SPM will affect score (with timeline)
88+
- 📢 When users request it (GitHub issues)
89+
- 🎯 During a major version bump (v2.0.0)
90+
- 🔧 When restructuring iOS plugin architecture
91+
92+
---
93+
94+
## 📋 Implementation Checklist (For Future)
95+
96+
When we decide to add SPM support:
97+
98+
- [ ] Create `Package.swift` manifest
99+
- [ ] Restructure `ios/` folder for SPM compatibility
100+
- [ ] Configure binary framework inclusion (KMPWorkManager.xcframework)
101+
- [ ] Test with pure SPM project (not Flutter)
102+
- [ ] Test CocoaPods still works (dual support)
103+
- [ ] Update documentation
104+
- [ ] Test on Xcode 15+
105+
106+
**Estimated effort:** 4-6 hours
107+
108+
---
109+
110+
## 🏁 Current Priority: DEFER
111+
112+
**Focus instead on:**
113+
1. ✅ User-requested features
114+
2. ✅ Bug fixes from real-world usage
115+
3. ✅ Performance optimizations
116+
4. ✅ Documentation improvements
117+
118+
**Monitor:**
119+
- Pub.dev announcements about SPM scoring
120+
- User requests for SPM support
121+
- Flutter ecosystem SPM adoption trends
122+
123+
---
124+
125+
**Decision:** Keep monitoring, implement when it becomes necessary or requested.
126+
127+
**Current Score:** 160/160 points ✅ (SPM not affecting this)

benchmark/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Independent benchmarking tool to verify native_workmanager performance claims.
44

55
## Purpose
66

7-
This tool allows **anyone** to run benchmarks and verify the performance differences between `native_workmanager` and `flutter_workmanager` on their own devices.
7+
This tool allows **anyone** to run benchmarks and verify the performance differences between `native_workmanager` and `workmanager` on their own devices.
88

99
## Why This Matters
1010

@@ -62,7 +62,7 @@ This will:
6262
3. Wait 10 seconds for stabilization
6363
4. Measure PSS (Proportional Set Size) via `dumpsys meminfo`
6464
5. Kill process
65-
6. Repeat with flutter_workmanager worker
65+
6. Repeat with workmanager worker
6666
7. Compare results
6767

6868
**Expected difference:** ~50MB (flutter_wm spawns Flutter Engine)
@@ -75,7 +75,7 @@ This will:
7575
1. Clear cache
7676
2. Start native_workmanager download task
7777
3. Measure time to completion
78-
4. Repeat with flutter_workmanager
78+
4. Repeat with workmanager
7979
5. Average over 5 runs
8080

8181
**Expected difference:** ~25-35% faster (native OkHttp vs Dart http)
@@ -86,7 +86,7 @@ This will:
8686

8787
**Method:**
8888
1. Clear logcat
89-
2. Run 10 tasks with flutter_workmanager
89+
2. Run 10 tasks with workmanager
9090
3. Count "Beginning load of flutter" messages
9191
4. Repeat with native_workmanager
9292
5. Compare
@@ -108,19 +108,19 @@ Results are saved as JSON in `results/`:
108108
"benchmarks": {
109109
"memory": {
110110
"native_workmanager_mb": 34.5,
111-
"flutter_workmanager_mb": 84.2,
111+
"workmanager_mb": 84.2,
112112
"difference_mb": 49.7,
113113
"difference_percent": 59.0
114114
},
115115
"io_performance": {
116116
"native_workmanager_ms": 8420,
117-
"flutter_workmanager_ms": 11350,
117+
"workmanager_ms": 11350,
118118
"difference_ms": 2930,
119119
"difference_percent": 34.8
120120
},
121121
"battery": {
122122
"native_workmanager_spawns": 0,
123-
"flutter_workmanager_spawns": 10,
123+
"workmanager_spawns": 10,
124124
"difference": 10
125125
}
126126
},

doc/BENCHMARKS.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ Detailed methodology and results for native_workmanager performance claims.
3333
- Flutter: 3.16.5
3434
- Dart: 3.2.3
3535
- native_workmanager: 1.0.0
36-
- flutter_workmanager: 0.5.2
36+
- workmanager: 0.5.2
3737
- kmpworkmanager: 2.2.1
3838

3939
## Benchmark 1: Memory Footprint
4040

4141
### Hypothesis
4242

43-
`flutter_workmanager` spawns a Flutter Engine (~50MB) for each background task. `native_workmanager` runs pure native code without engine overhead.
43+
`workmanager` spawns a Flutter Engine (~50MB) for each background task. `native_workmanager` runs pure native code without engine overhead.
4444

4545
**Expected difference:** ~50MB less memory usage
4646

@@ -74,7 +74,7 @@ Detailed methodology and results for native_workmanager performance claims.
7474
adb shell am force-stop dev.brewkits.benchmark
7575
```
7676

77-
7. **Repeat steps 2-6 with flutter_workmanager worker**
77+
7. **Repeat steps 2-6 with workmanager worker**
7878

7979
8. **Run 10 times** and average
8080

@@ -123,7 +123,7 @@ PSS is the industry standard for measuring app memory.
123123

124124
### Hypothesis
125125

126-
Native workers use platform-optimized HTTP clients (OkHttp on Android, URLSession on iOS). flutter_workmanager uses Dart's http package with isolate overhead.
126+
Native workers use platform-optimized HTTP clients (OkHttp on Android, URLSession on iOS). workmanager uses Dart's http package with isolate overhead.
127127

128128
**Expected difference:** ~25-35% faster I/O
129129

@@ -155,7 +155,7 @@ Native workers use platform-optimized HTTP clients (OkHttp on Android, URLSessio
155155

156156
6. **Repeat 5 times** and average
157157

158-
7. **Repeat with flutter_workmanager**
158+
7. **Repeat with workmanager**
159159

160160
### Results (Android - Pixel 6, WiFi)
161161

@@ -173,7 +173,7 @@ Native workers use platform-optimized HTTP clients (OkHttp on Android, URLSessio
173173

174174
### Why the Difference?
175175

176-
flutter_workmanager overhead:
176+
workmanager overhead:
177177
1. **Dart isolate spawn:** ~50-100ms
178178
2. **Data marshalling:** Convert bytes between Dart ↔ Platform
179179
3. **Dart http client:** Less optimized than native OkHttp
@@ -187,7 +187,7 @@ native_workmanager advantages:
187187

188188
### Hypothesis
189189

190-
Each flutter_workmanager task spawns a Flutter Engine. native_workmanager spawns zero engines.
190+
Each workmanager task spawns a Flutter Engine. native_workmanager spawns zero engines.
191191

192192
**Expected difference:** 0 vs N spawns
193193

@@ -215,14 +215,14 @@ Each flutter_workmanager task spawns a Flutter Engine. native_workmanager spawns
215215
adb logcat -d | grep "Beginning load of flutter" | wc -l
216216
```
217217

218-
4. **Repeat with flutter_workmanager**
218+
4. **Repeat with workmanager**
219219

220220
### Results
221221

222222
| Package | Engine Spawns | Battery Impact |
223223
|---------|---------------|----------------|
224224
| native_workmanager | **0** | ✅ Minimal |
225-
| flutter_workmanager | **10** | ❌ High |
225+
| workmanager | **10** | ❌ High |
226226

227227
**Conclusion:** Each engine spawn costs:
228228
- ~500ms CPU time
@@ -312,7 +312,7 @@ cd native_workmanager/benchmark
312312

313313
**Battery Test:**
314314
1. Clear logcat: `adb logcat -c`
315-
2. Run 10 tasks with flutter_workmanager
315+
2. Run 10 tasks with workmanager
316316
3. Count spawns: `adb logcat -d | grep "Beginning load of flutter" | wc -l`
317317
4. Expected: 10
318318
5. Repeat with native_workmanager
@@ -343,7 +343,7 @@ We need YOUR help to build credibility!
343343

344344
For background tasks, this is complete overkill.
345345

346-
### Q: Does this mean flutter_workmanager is bad?
346+
### Q: Does this mean workmanager is bad?
347347

348348
**A:** No! It's great for tasks requiring:
349349
- Complex Dart business logic

0 commit comments

Comments
 (0)