flutter_pro_tools 2.0.4 copy "flutter_pro_tools: ^2.0.4" to clipboard
flutter_pro_tools: ^2.0.4 copied to clipboard

is a Flutter package that provides a collection of utilities and tools to help streamline your development process.

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_pro_tools/login_page.dart';
import 'package:flutter_pro_tools/model_page.dart';
import 'package:flutter_pro_tools/new_page.dart';
import 'package:flutter_pro_tools/src/app_locale.dart';
import 'package:flutter_pro_tools/src/flutter_pro_tools.dart';
import 'package:flutter_pro_tools/src/language_change_provider.dart';
import 'package:flutter_pro_tools/src/responsive_text.dart';
import 'package:flutter_pro_tools/src/socket_connection.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  FlutterProTools.setFirebaseProjectConfig(
      apiKey: 'apiKey',
      appId: 'appId',
      messagingSenderId: 'messagingSenderId',
      projectId: 'projectId');
  if (!kIsWeb) {
    await FlutterProTools.initFlutterNotifications();
  }
  await FlutterProTools.setPortraitDevice();
  runApp(
    const ProviderScope(
      child: MyApp(),
    ),
  );
}

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

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    var state = ref.watch(languageStatus);
    return MaterialApp(
      navigatorKey: FlutterProTools.navigatorKey,
      scaffoldMessengerKey: FlutterProTools.snackBarKey,
      title: 'App name',
      home: const HomePage(),
      locale: state.locale,
      supportedLocales: AppLocale.supportedLocale(),
      localeResolutionCallback: AppLocale.localeResolutionCallback,
      localizationsDelegates: AppLocale.localizationsDelegates(),
    );
  }
}

class HomePage extends ConsumerWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    ref.watch(languageStatus);
    var languageState = ref.read(languageStatus.notifier);
    SocketConnection.initConnection(socketURL: 'socketURL');

    return Scaffold(
      appBar: AppBar(title: ResponsiveText(FlutterProTools.translate('home'))),
      body: Center(
        child: SingleChildScrollView(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {
                  FlutterProTools.showBarModal(
                    page: const ModelPage(),
                    enableDrag: true,
                    isDismissible: true,
                  );
                },
                child: ResponsiveText(
                  FlutterProTools.translate("open_bar_model"),
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  FlutterProTools.showMaterialModel(
                    const ModelPage(),
                  );
                },
                child: ResponsiveText(
                  FlutterProTools.translate("open_material_model"),
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  SocketConnection.get(
                    event: 'event',
                    function: (data) {
                      FlutterProTools.logFile(message: "$data");
                    },
                  );
                  SocketConnection.post(
                    event: 'event',
                    data: {"name": "my name"},
                  );
                },
                child: ResponsiveText(
                  FlutterProTools.translate("send_data_to_socket"),
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  SocketConnection.withAck(
                    event: 'event',
                    data: {"name": "my name"},
                    function: (data) {
                      FlutterProTools.logFile(
                          message: data.toString(), name: 'my socket log');
                    },
                  );
                },
                child: ResponsiveText(
                  FlutterProTools.translate("send_ack_data_to_socket"),
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  FlutterProTools.navigationPush(
                    const NewPage(),
                  );
                },
                child: ResponsiveText(
                  FlutterProTools.translate("navigate_to_new_page"),
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  FlutterProTools.showLoadingDialog();
                  Future.delayed(const Duration(seconds: 2), () {
                    FlutterProTools.dismissLoadingDialog();
                    FlutterProTools.showSnackBar(
                      message: FlutterProTools.translate("loading_completed"),
                    );
                  });
                },
                child: ResponsiveText(
                  FlutterProTools.translate("show_loading_dialog"),
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  FlutterProTools.getRequest(
                    url: "https://jsonplaceholder.typicode.com/posts/1",
                    response: (data) => FlutterProTools.showAlertDialog(
                      title: "GET Request",
                      content: ResponsiveText(
                        data.body,
                      ),
                    ),
                  );
                },
                child: ResponsiveText(
                  FlutterProTools.translate("perform_get_request"),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  await FlutterProTools.saveLocalData(
                      key: "username", value: "JohnDoe");
                  String? username =
                      await FlutterProTools.getLocalData(key: "username");
                  FlutterProTools.showAlertDialog(
                    title: "Local Storage",
                    content: ResponsiveText(
                      "${FlutterProTools.translate("saved_username")}: $username",
                    ),
                  );
                },
                child: ResponsiveText(
                  FlutterProTools.translate("save_and_retrieve_local_data"),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  ref.watch(languageStatus).locale.languageCode == "en"
                      ? languageState.changeLanguage('ar')
                      : languageState.changeLanguage('en');
                },
                child: ResponsiveText(
                  FlutterProTools.translate("change_language"),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  FlutterProTools.navigationPush(const LoginPage());
                },
                child: ResponsiveText(
                  FlutterProTools.translate("go_to_login_page"),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  FlutterProTools.removeLocalData(key: 'username');
                },
                child: ResponsiveText(
                  FlutterProTools.translate("remove_local_data"),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  FlutterProTools.cameraCapture();
                },
                child: ResponsiveText(
                  FlutterProTools.translate("open_camera"),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  FlutterProTools.chooseImage();
                },
                child: ResponsiveText(
                  FlutterProTools.translate("image_picker"),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
2
likes
0
points
268
downloads

Publisher

unverified uploader

Weekly Downloads

is a Flutter package that provides a collection of utilities and tools to help streamline your development process.

Repository (GitLab)
View/report issues

License

unknown (license)

Dependencies

firebase_core, firebase_messaging, flutter, flutter_local_notifications, flutter_localizations, flutter_riverpod, fluttertoast, geolocator, http, image_cropper, image_picker, intl, modal_bottom_sheet, riverpod_context, shared_preferences, socket_io_client, url_launcher

More

Packages that depend on flutter_pro_tools