viva_network_kit 2.1.8 copy "viva_network_kit: ^2.1.8" to clipboard
viva_network_kit: ^2.1.8 copied to clipboard

A lightweight and developer-friendly network manager for Flutter, built on Dio, with automatic connectivity checks before every API request.

example/lib/main.dart

import 'package:example/presentation/view/main_screen.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

import 'core/di.dart';
import 'data/datasource/call_example_datasource.dart';
import 'data/repository/call_example_repository_impl.dart';
import 'domain/repository/get_call_repository.dart';
import 'domain/usecase/get_all_posts.dart';
import 'domain/usecase/post_request.dart';
import 'presentation/viewmodel/post_bloc.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  setupLocator();
  runApp(MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MultiRepositoryProvider(
      /// Define the repositories that will be provided to the widgets below in the widget tree.
      ///
      /// [CallExampleRepository] is responsible for data operations.
      /// [CallExampleRepositoryImpl] is the implementation of [CallExampleRepository].
      /// [CallExampleDataSource] is the data source for the repository.
      /// [GetAllPosts] is a use case that uses the repository to fetch all posts.
      /// [CreatePost] is a use case that uses the repository to create a new post.
      ///
      /// These repositories are provided using [RepositoryProvider] from the flutter_bloc package.
      providers: [
        RepositoryProvider<CallExampleRepository>(
          create: (context) =>
              CallExampleRepositoryImpl(CallExampleDataSource()),
        ),
        RepositoryProvider<GetAllPostsUseCase>(
          create: (context) => GetAllPostsUseCase(
            RepositoryProvider.of<CallExampleRepository>(context),
          ),
        ),
        RepositoryProvider<CreatePostUseCase>(
          create: (context) => CreatePostUseCase(
            RepositoryProvider.of<CallExampleRepository>(context),
          ),
        ),
      ],
      child: BlocProvider(
        create: (context) => PostBloc(
          RepositoryProvider.of<GetAllPostsUseCase>(context),
          RepositoryProvider.of<CreatePostUseCase>(context),
        ),
        child: MaterialApp(
          debugShowCheckedModeBanner: false,
          home: MainScreen(),
        ),
      ),
    );
  }
}
0
likes
140
points
40
downloads

Publisher

verified publishervivasoftltd.com

Weekly Downloads

A lightweight and developer-friendly network manager for Flutter, built on Dio, with automatic connectivity checks before every API request.

Topics

#dio #http #connectivity

Documentation

API reference

License

MIT (license)

Dependencies

built_collection, built_value, connectivity_plus, dartz, dio, flutter, get_it

More

Packages that depend on viva_network_kit