1
0
mirror of https://github.com/nisrulz/flutter-examples.git synced 2026-08-30 19:50:40 +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

@@ -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();
}