flutter_project_kit 0.0.2 copy "flutter_project_kit: ^0.0.2" to clipboard
flutter_project_kit: ^0.0.2 copied to clipboard

'Package Description Overview The App Essentials Package is a comprehensive solution designed to streamline and enhance your Flutter application development process. This package handles critical aspe [...]

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_project_kit/provider/app_theme_provider.dart';
import 'package:flutter_project_kit/provider/text_field_provider.dart';
import 'package:flutter_project_kit/theme/app_theme.dart';
import 'package:flutter_project_kit/theme/app_theme_model.dart';
import 'package:flutter_project_kit/theme/project_kit.dart';
import 'package:flutter_project_kit/util/screen_util.dart';
import 'package:flutter_project_kit/widgets/pro_kit_button.dart';
import 'package:flutter_project_kit/widgets/pro_kit_text.dart';
import 'package:flutter_project_kit/widgets/pro_kit_text_field.dart';
import 'package:provider/provider.dart';
import 'package:flutter_project_kit/theme/core_theme.dart' as theme;

final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  /// This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (_) => ProKitFieldProvider()),
        ChangeNotifierProvider(create: (_) => AppThemeProvider()),
      ],
      child: Consumer<AppThemeProvider>(
        builder: (context, value, _) => HomePage(
          provider: value,
        ),
      ),
    );
  }
}

class HomePage extends StatefulWidget {
  final AppThemeProvider? provider;

  const HomePage({super.key, this.provider});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  bool lightTheme = true;

  initTheme() {
    ProjectKit.initialize(
        context: context,
        navigatorKey: navigatorKey,
        customDarkTheme: AppThemeModel(
            scaffold: Colors.black,
            text: Colors.white,
            appBarBackground: Colors.green,
            button: Colors.red,
            tabBarBackground: Colors.white),
        customLightTheme: AppThemeModel(
            scaffold: Colors.white,
            text: Colors.deepOrange,
            appBarBackground: Colors.yellow,
            button: Colors.yellow,
            tabBarBackground: Colors.black));
  }

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    initTheme();
  }

  @override
  Widget build(BuildContext context) {
    final appProvider = Provider.of<AppThemeProvider>(context, listen: false);
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Muhammad Rauf',
      theme: theme.themeLight,
      darkTheme: theme.themeDark,
      navigatorKey: navigatorKey,
      themeMode: widget.provider!.themeMode,
      home: Scaffold(
        body: Container(
          color: AppTheme.cT.scaffold,
          child: Column(
            children: [
              ProKitButton(
                text: 'Primary Button',
                onPressed: () {
                  print('Primary Button Pressed');
                },
                buttonColor: AppTheme.cT.button,
                showIcon: true,
                iconColor: Colors.white,
              ),
              SizedBox(height: 10.h),
              ProKitButton(
                text: 'Secondary Button',
                onPressed: () {
                  print('Secondary Button Pressed');
                },
                buttonColor: Colors.green,
                showIcon: true,
                iconColor: Colors.white,
              ),
              Container(
                margin: EdgeInsets.only(bottom: 20.h),
                padding: EdgeInsets.all(16.w),
                decoration: BoxDecoration(
                  color: AppTheme.cT.tabBarBackground,
                  borderRadius: BorderRadius.circular(12.w),
                ),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const ProKitText(
                      text: 'Sample Text 1',
                    ),
                    SizedBox(height: 10.h),
                    const ProKitText(
                      text: 'Sample Text 2',
                    ),
                    const ProKitTextField(
                      hintText: 'Enter your email',
                      keyboardType: TextInputType.emailAddress,
                      borderColor: Colors.blue,
                      focusedBorderColor: Colors.blueAccent,
                    ),
                    SizedBox(height: 20.h),
                    const ProKitTextField(
                      hintText: 'Enter your password',
                      isPassword: true,
                      showHideIcon: true,
                      borderColor: Colors.red,
                      focusedBorderColor: Colors.redAccent,
                    ),
                    SizedBox(height: 20.h),
                    const ProKitTextField(
                      hintText: 'Enter your name',
                      borderColor: Colors.green,
                      focusedBorderColor: Colors.greenAccent,
                      prefixIconPath: 'assets/icons/sample_icon.svg',
                    ),
                  ],
                ),
              ),
            ],
          ),
        ),
        floatingActionButton: ElevatedButton(
          onPressed: () {
            lightTheme = !lightTheme;
            appProvider.setTheme(lightTheme ? ThemeMode.light : ThemeMode.dark);
          },
          child: const Text("ChangeTheme"),
        ),
      ),
    );
  }
}
3
likes
0
points
44
downloads

Publisher

unverified uploader

Weekly Downloads

'Package Description Overview The App Essentials Package is a comprehensive solution designed to streamline and enhance your Flutter application development process. This package handles critical aspects such as app theming, routing, and responsiveness, ensuring a consistent and efficient development experience'

Homepage

License

unknown (license)

Dependencies

flutter, flutter_svg, provider, shared_preferences

More

Packages that depend on flutter_project_kit