flutter_pro_tools 2.0.5
flutter_pro_tools: ^2.0.5 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"),
),
),
],
),
),
),
);
}
}