1
0
mirror of https://github.com/nisrulz/flutter-examples.git synced 2026-08-25 01:05:36 +00:00

refactor: standardize Dart and Android config across all 54 apps

- Bump all apps to sdk >=3.0.0 <4.0.0 and add flutter_lints + a shared
  analysis_options.yaml to every app (flutter analyze is now green repo-wide)
- Fix real compile errors in firebase_google_authentication and image_editor,
  plus deprecated APIs (Matrix4, SvgPicture.color, textScaleFactor),
  missing async 'mounted' guards, and misc lints via dart fix + manual fixes
- Align pubspec 'name' with each folder and Android namespace/applicationId
  with the documented github.nisrulz.* convention
- Convert bmi_calculator from a legacy Flutter module to a standard app
  with a proper android/ scaffold; fix missing android:exported in launcher
  manifests across 22 apps so all Android builds pass
- Untrack generated build files (GeneratedPluginRegistrant,
  .flutter-plugins-dependencies) and ignore them
This commit is contained in:
Nishant Srivastava
2026-08-17 17:26:39 +02:00
parent c8d2d4fffc
commit 5c53498119
297 changed files with 2037 additions and 930 deletions

View File

@@ -0,0 +1,23 @@
# Lint rules for Flutter apps.
# See https://dart.dev/guides/language/analysis-options
include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- build/**
- android/**
- ios/**
- web/**
- windows/**
- macos/**
- linux/**
linter:
rules:
# Noise in small sample apps; keep the code readable.
avoid_print: false
avoid_unnecessary_containers: false
file_names: false
library_private_types_in_public_api: false
non_constant_identifier_names: false
strict_top_level_inference: false

View File

@@ -12,6 +12,7 @@
android:icon="@mipmap/ic_launcher">
<activity
android:name="io.flutter.embedding.android.FlutterActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"

View File

@@ -1,19 +0,0 @@
package io.flutter.plugins;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import io.flutter.Log;
import io.flutter.embedding.engine.FlutterEngine;
/**
* Generated file. Do not edit.
* This file is generated by the Flutter tool based on the
* plugins that support the Android platform.
*/
@Keep
public final class GeneratedPluginRegistrant {
private static final String TAG = "GeneratedPluginRegistrant";
public static void registerWith(@NonNull FlutterEngine flutterEngine) {
}
}

View File

@@ -1,19 +0,0 @@
//
// Generated file. Do not edit.
//
// clang-format off
#ifndef GeneratedPluginRegistrant_h
#define GeneratedPluginRegistrant_h
#import <Flutter/Flutter.h>
NS_ASSUME_NONNULL_BEGIN
@interface GeneratedPluginRegistrant : NSObject
+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry;
@end
NS_ASSUME_NONNULL_END
#endif /* GeneratedPluginRegistrant_h */

View File

@@ -1,14 +0,0 @@
//
// Generated file. Do not edit.
//
// clang-format off
#import "GeneratedPluginRegistrant.h"
@implementation GeneratedPluginRegistrant
+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry {
}
@end

View File

@@ -8,6 +8,8 @@ import './models/transaction.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
@@ -38,6 +40,8 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
_MyHomePageState createState() => _MyHomePageState();
}
@@ -75,8 +79,8 @@ class _MyHomePageState extends State<MyHomePage> {
builder: (_) {
return GestureDetector(
onTap: () {},
child: NewTransaction(_addNewTransaction),
behavior: HitTestBehavior.opaque,
child: NewTransaction(_addNewTransaction),
);
},
);

View File

@@ -7,7 +7,7 @@ import '../models/transaction.dart';
class Chart extends StatelessWidget {
final List<Transaction> recentTransactions;
Chart(this.recentTransactions);
const Chart(this.recentTransactions, {super.key});
List<Map<String, Object>> get groupedTransactionValues {
return List.generate(7, (index) {

View File

@@ -5,13 +5,13 @@ class ChartBar extends StatelessWidget {
final double spendingAmount;
final double spendingPctOfTotal;
ChartBar(this.label, this.spendingAmount, this.spendingPctOfTotal);
const ChartBar(this.label, this.spendingAmount, this.spendingPctOfTotal, {super.key});
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Container(
SizedBox(
height: 20,
child: FittedBox(
child: Text('\$${spendingAmount.toStringAsFixed(0)}'),
@@ -20,7 +20,7 @@ class ChartBar extends StatelessWidget {
SizedBox(
height: 4,
),
Container(
SizedBox(
height: 60,
width: 10,
child: Stack(

View File

@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
class NewTransaction extends StatefulWidget {
final Function addTx;
NewTransaction(this.addTx);
const NewTransaction(this.addTx, {super.key});
@override
_NewTransactionState createState() => _NewTransactionState();
@@ -72,7 +72,7 @@ class _NewTransactionState extends State<NewTransaction> {
keyboardType: TextInputType.number,
onSubmitted: (_) => _submitData(),
),
Container(
SizedBox(
height: 70,
child: Row(
children: <Widget>[

View File

@@ -7,11 +7,11 @@ class TransactionList extends StatelessWidget {
final List<Transaction> transactions;
final Function deleteTx;
TransactionList(this.transactions, this.deleteTx);
const TransactionList(this.transactions, this.deleteTx, {super.key});
@override
Widget build(BuildContext context) {
return Container(
return SizedBox(
height: 450,
child: transactions.isEmpty
? Column(
@@ -23,7 +23,7 @@ class TransactionList extends StatelessWidget {
SizedBox(
height: 20,
),
Container(
SizedBox(
height: 200,
child: Image.asset(
'assets/images/waiting.png',

View File

@@ -5,6 +5,8 @@ import './transaction_list.dart';
import '../models/transaction.dart';
class UserTransactions extends StatefulWidget {
const UserTransactions({super.key});
@override
_UserTransactionsState createState() => _UserTransactionsState();
}

View File

@@ -28,6 +28,7 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^6.0.0
# For information on the generic Dart part of this file, see the