@@ -71,14 +71,16 @@ flutter run
7171
7272## 🛠️ Development Tools
7373
74- The template includes several utility scripts to streamline development:
74+ The template includes powerful command-line tools to streamline your development workflow :
7575
76- - ** App Renaming** — Update app name and package ids across platforms
77- - ** Feature Generator** — Scaffold new features with clean architecture
78- - ** Language Generator** — Add and manage translations
79- - ** Test Generator** — Create test scaffolds for features
76+ | | | |
77+ | :--:| :--:| :--:|
78+ | ![ App Renamer] ( https://img.shields.io/badge/-%F0%9F%93%B1%20App%20Renamer-6366f1?style=for-the-badge&logoColor=white ) | ![ Feature Generator] ( https://img.shields.io/badge/-%E2%9A%A1%20Feature%20Generator-f43f5e?style=for-the-badge&logoColor=white ) | ![ Language Generator] ( https://img.shields.io/badge/-%F0%9F%8C%90%20Language%20Generator-22c55e?style=for-the-badge&logoColor=white ) |
79+ | Update app name and package IDs across all platforms | Scaffold new features with clean architecture | Add and manage translations |
80+ | ![ Test Generator] ( https://img.shields.io/badge/-%F0%9F%A7%AA%20Test%20Generator-d946ef?style=for-the-badge&logoColor=white ) | ![ Feature Creator] ( https://img.shields.io/badge/-%F0%9F%9B%A0%EF%B8%8F%20Feature%20Creator-ec4899?style=for-the-badge&logoColor=white ) | ![ CI/CD Tools] ( https://img.shields.io/badge/-%F0%9F%94%84%20CI/CD%20Tools-0ea5e9?style=for-the-badge&logoColor=white ) |
81+ | Create test scaffolds for features | Create new features with boilerplate code | Automate build and deployment |
8082
81- [ Development Tools Documentation] ( docs/TOOLS.md )
83+ [ Complete Development Tools Documentation] ( https://ssoad.github.io/flutter_riverpod_clean_architecture/tools.html )
8284
8385## 🧪 Testing
8486
@@ -401,169 +403,13 @@ final truncated = longString.truncate(20);
401403
402404### Locale-Aware Router
403405
404- Navigate with locale support using GoRouter:
406+ For more advanced features, check out the [ Advanced Features Summary ] ( https://ssoad.github.io/flutter_riverpod_clean_architecture/advanced_features_summary.html ) .
405407
406- ``` dart
407- // Navigate with the current locale
408- context.go('/products');
409-
410- // Navigate with a specific locale
411- context.goWithLocale('/products', const Locale('es'));
412-
413- // Get localized routes
414- final path = LocaleAwareRouter.getLocalizedPath('/settings');
415- ```
416-
417-
418-
419- ## 🤝 Contributing
420-
421- Contributions are welcome! Please read our [ Contributing Guidelines] ( docs/CONTRIBUTING.md ) for more information.
422-
423- ## 📄 License
424-
425- This project is licensed under the MIT License - see the [ LICENSE] ( LICENSE ) file for details.
426-
427- ## � Resources
428-
429- - [ Flutter Documentation] ( https://docs.flutter.dev/ )
430- - [ Riverpod Documentation] ( https://riverpod.dev/ )
431- - [ Clean Architecture Guide] ( https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html )
432- - [ Effective Dart Style Guide] ( https://dart.dev/guides/language/effective-dart )
433- - ** Feature Generation** : Scaffold new features with clean architecture structure
434- - ** Linting** : Custom lint rules for code quality
435- - ** Documentation** : Comprehensive guides and examples
436-
437- ## � Advanced Features
438-
439- ### Accessibility
440-
441- Make your app inclusive and usable by everyone:
442-
443- ``` dart
444- // Access accessibility settings
445- final accessibilitySettings = ref.watch(accessibilitySettingsProvider);
446-
447- // Check if screen reader is active
448- if (accessibilitySettings.isScreenReaderActive) {
449- // Provide additional context for screen readers
450- }
451-
452- // Announce messages to screen reader
453- final notifier = ref.read(accessibilitySettingsProvider.notifier);
454- notifier.announce('Item added to cart successfully');
455-
456- // Use accessible widgets
457- AccessibleButton(
458- onPressed: () => doSomething(),
459- semanticLabel: 'Save changes',
460- child: Text('Save'),
461- )
462-
463- // Extend regular widgets with accessibility
464- myButton.withMinimumTouchTargetSize()
465- myImage.withSemanticLabel('Profile picture')
466- ```
467-
468- See the [ Accessibility Guide] ( /docs/ACCESSIBILITY_GUIDE.md ) for more details.
469-
470- ### Offline-First Architecture
471-
472- Keep your app working seamlessly with or without an internet connection:
473-
474- ``` dart
475- // Queue changes when offline
476- await offlineSyncService.queueChange(
477- entityType: 'task',
478- operationType: OfflineOperationType.create,
479- data: {
480- 'title': 'Buy groceries',
481- 'completed': false,
482- },
483- );
484-
485- // Watch for pending changes
486- final pendingChanges = ref.watch(pendingChangesProvider);
487- pendingChanges.when(
488- data: (changes) => Text('Pending changes: ${changes.length}'),
489- loading: () => CircularProgressIndicator(),
490- error: (_, __) => Text('Error'),
491- );
492-
493- // Show sync status
494- OfflineStatusIndicator()
495- ```
496-
497- See the [ Offline Architecture Guide] ( /docs/OFFLINE_ARCHITECTURE_GUIDE.md ) for more details.
498-
499- ### App Update Flow
500-
501- Manage app updates with customizable flows:
502-
503- ``` dart
504- // Check for updates
505- final updateController = ref.read(updateControllerProvider.notifier);
506- await updateController.checkForUpdates();
507-
508- // Show update dialog
509- if (result == UpdateCheckResult.updateAvailable) {
510- final updateInfo = await updateController.getUpdateInfo();
511- showDialog(
512- context: context,
513- builder: (context) => UpdateDialog(
514- updateInfo: updateInfo!,
515- isCritical: false,
516- ),
517- );
518- }
519-
520- // Force critical updates
521- if (result == UpdateCheckResult.criticalUpdateRequired) {
522- // Prevent app usage until updated
523- }
524- ```
525-
526- ### App Review System
527-
528- Get feedback and ratings from your users:
529-
530- ``` dart
531- final reviewService = ref.read(appReviewServiceProvider);
532-
533- // Record significant actions that might trigger a review
534- await reviewService.recordSignificantAction();
535-
536- // Show feedback form before store review
537- final hasFeedback = await reviewService.showFeedbackForm(
538- context: context,
539- title: "Enjoying the App?",
540- message: "We'd love to hear your feedback!",
541- );
542-
543- // Request store review
544- if (shouldRequestReview) {
545- await reviewService.requestReview();
546- }
547- ```
548-
549- ### CI/CD Integration
550-
551- Automated build, test, and deployment workflows:
552-
553- ``` bash
554- # Build for development
555- fastlane android build env:development
556-
557- # Deploy to TestFlight
558- fastlane ios deploy env:production
559- ```
560-
561- See the [ CI/CD Guide] ( /docs/CICD_GUIDE.md ) for more details.
562-
563- ## �📚 Further Resources
408+ ## 📚 Further Resources
564409
565410- [ Flutter Documentation] ( https://docs.flutter.dev/ )
566411- [ Riverpod Documentation] ( https://riverpod.dev/ )
567412- [ Clean Architecture Guide] ( https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html )
568413- [ Effective Dart Style Guide] ( https://dart.dev/guides/language/effective-dart )
414+ - [ Advanced Features Summary] ( https://ssoad.github.io/flutter_riverpod_clean_architecture/advanced_features_summary.html ) - Detailed technical features
569415- [ Advanced Features Summary] ( /docs/ADVANCED_FEATURES_SUMMARY.md )
0 commit comments