basic_feed_fetcher 0.0.1+3 copy "basic_feed_fetcher: ^0.0.1+3" to clipboard
basic_feed_fetcher: ^0.0.1+3 copied to clipboard

An all-inclusive plugin, for fetching your own posts, from Facebook, Instagram and Twitter.

example/lib/main.dart

import 'dart:async';

import 'package:basic_feed_fetcher/basic_feed_fetcher.dart';
import 'package:basic_feed_fetcher/data/models/social_media_post_models.dart';
import 'package:flutter/material.dart';

import 'env/env.dart';

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

class MyApp extends StatefulWidget {
  MyApp({super.key});

  late final InstagramBasicDisplay _instagramBasicDisplay;

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    initPluginState();

    super.initState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPluginState() async {
    if (!mounted) return;

    widget._instagramBasicDisplay = InstagramBasicDisplay(key: Env.instagramApiKey);
    // await for initialization here, or use a more elegant FutureBuilder in the build() directly
    //await widget._instagramBasicDisplay.isReady.future;
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: FutureBuilder(
            future: widget._instagramBasicDisplay.isReady.future,
            builder: (context, snapshot) {
              switch (snapshot.connectionState) {
                case ConnectionState.none:
                case ConnectionState.waiting:
                case ConnectionState.active:
                  return const CircularProgressIndicator();
                case ConnectionState.done:
                  return ValueListenableBuilder<List<InstagramPostModel>>(
                    valueListenable: widget._instagramBasicDisplay.instagramPosts,
                    builder: (context, final instagramPosts, _) => GridView.count(
                      crossAxisCount: 7,
                      shrinkWrap: true,
                      children: [
                        for (final instaPost in instagramPosts)
                          Image.network(
                            instaPost.thumbnailUrl.toString(),
                            loadingBuilder: (context, child, loadingProgress) =>
                                (loadingProgress == null)
                                    ? child
                                    : Center(
                                        child: CircularProgressIndicator(
                                          value: loadingProgress.expectedTotalBytes != null
                                              ? loadingProgress.cumulativeBytesLoaded /
                                                  loadingProgress.expectedTotalBytes!
                                              : null,
                                        ),
                                      ),
                          ),
                      ],
                    ),
                  );
              }
            },
          ),
        ),
      ),
    );
  }
}
1
likes
110
points
3
downloads

Publisher

unverified uploader

Weekly Downloads

An all-inclusive plugin, for fetching your own posts, from Facebook, Instagram and Twitter.

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

dio, flutter, talker

More

Packages that depend on basic_feed_fetcher