get_it_future_builder 0.3.0 copy "get_it_future_builder: ^0.3.0" to clipboard
get_it_future_builder: ^0.3.0 copied to clipboard

Wait for your async `get_it` dependencies to be ready in the presentation layer.

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:get_it_future_builder/get_it_future_builder.dart';
import 'package:get_it_future_builder_example/locators.dart';

void main() {
  initLocator();
  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 MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const HomePage(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Get It Future Builder Example'),
        elevation: 4,
        centerTitle: true,
      ),
      body: ListView(
        padding: const EdgeInsets.all(16),
        children: [
          //-----------------------------------//
          // Example for single future builder //
          //-----------------------------------//
          Column(
            children: [
              Text(
                'Application Documents Directory',
                style: Theme.of(context).textTheme.headlineMedium,
              ),
              const SizedBox(height: 8),
              GetItFutureBuilder<Directory>(
                instanceName: 'documents_dir', // optional
                loading: (context) => const LinearProgressIndicator(),
                ready: (context, instance) =>
                    Text('Documents directory: ${instance.path}'),
              ),
            ],
          ),
          //------------------------------//
          // Example for future builder 2 //
          //------------------------------//
          Column(
            children: [
              Text(
                'Other Directories',
                style: Theme.of(context).textTheme.headlineMedium,
              ),
              const SizedBox(height: 8),
              GetItFutureBuilder2<Directory, Directory>(
                instanceName1: 'temp_dir', // optional
                instanceName2: 'support_dir', // optional
                loading: (context) => const LinearProgressIndicator(),
                ready: (context, instance1, instance2) => Text(
                  'Temporary dir is ${instance1.path} and support dir is ${instance2.path}',
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }
}
1
likes
0
pub points
11%
popularity

Publisher

verified publishererayerdin.com

Wait for your async `get_it` dependencies to be ready in the presentation layer.

Repository (GitHub)
View/report issues

Topics

#widget #ui

License

unknown (license)

Dependencies

flutter, get_it

More

Packages that depend on get_it_future_builder