giphy_get

Flutter_Tests pub package pub package style: lint

Overview

This package allow to get gifs, sticker or emojis from GIPHY in pure dart code using Giphy SDK design guidelines.

Inspiration

Result

Getting Started

Important! you must register your app at Giphy Develepers and get your APIKEY

Localizations

Currently english and spanish is supported.

return MaterialApp(
      title: 'Giphy Get Demo',
      localizationsDelegates: [
        // Default Delegates 
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,

        // Add this line 
        GiphyGetUILocalizations.delegate
      ],
      supportedLocales: [

        //Your supported languages
        Locale('en', ''),
        Locale('es', ''),
      ],
      home: MyHomePage(title: 'Giphy Get Demo'),
      themeMode: Provider.of<ThemeProvider>(context).currentTheme,
    );


Get only Gif

This is for get gif without wrapper and tap to more

import 'package:giphy_get/giphy_get.dart';

GiphyGif gif = await GiphyGet.getGif(
  context: context, //Required
  apiKey: "your api key HERE", //Required.
  lang: GiphyLanguage.english, //Optional - Language for query.
  randomID: "abcd", // Optional - An ID/proxy for a specific user. 
  tabColor:Colors.teal, // Optional- default accent color.
);

Options

ValueTypeDescriptionDefault
langStringUse ISO 639-1 language code or use GiphyLanguage constantsGiphyLanguage.english
randomIDStringAn ID/proxy for a specific user.null
searchTextStringInput search hint, we recomend use flutter_18n package for translation"Search GIPHY"
tabColorColorColor for tabs and loading progress,Theme.of(context).accentColor

Get Random ID


GiphyClient giphyClient = GiphyClient(apiKey: "YOUR API KEY");
String randomId = await giphyClient.getRandomId();

Widgets

Optional but this widget is required if you get more gif's of user or view on Giphy following Giphy Design guidelines

giphy

GiphyGifWidget

Params | Value | Type | Description | Default | |---------------------------|--------------------------------------------------|-----------------|------------| | gif required | GiphyGif |GiphyGif object from stream or JSON | null |
|giphyGetWrapper required| GiphyGetWrapper |instance required for tap to more | null | | showGiphyLabel | boolean | show or hide Powered by GIPHYlabel at bottom | true| |borderRadius| BorderRadius ex: BorderRadius.circular(10)| add border radius to image | null| |imageAlignment| Alignment | this widget is a STACK with Image and tap buttons this property adjust alignment| Alignment.center|

GiphyGetWrapper

Params | Value | Type | Description | Default | | ---------|-------------|--------------------|--------------- | | giphy_api_key required | String | Your Giphy API KEY | null | | builder| function | return Stream<GiphyGif> and Instance of GiphyGetWrapper | null |

Methods

void getGif(String queryText,BuildContext context)

return GiphyGetWrapper(
    giphy_api_key: REPLACE_WITH YOUR_API_KEY, 
    // Builder with Stream<GiphyGif> and Instance of GiphyGetWrapper
    builder: (stream, giphyGetWrapper) => StreamBuilder<GiphyGif>(
      stream: stream,
      builder: (context, snapshot) {
        return Scaffold(
          body: snapshot.hasData
              ? SizedBox(
                // GiphyGifWidget with tap to more
                child: GiphyGifWidget(
                  imageAlignment: Alignment.center,
                  gif: snapshot.data,
                  giphyGetWrapper: giphyGetWrapper,
                  borderRadius: BorderRadius.circular(30),
                  showGiphyLabel: true,
                ),
              )
              : Text("No GIF"),
          floatingActionButton: FloatingActionButton(
            onPressed: () async {
              //Open Giphy Sheet
              giphyGetWrapper.getGif('', context);
            },
            tooltip: 'Open Sticker',
            child: Icon(Icons
                .insert_emoticon)),
        );
    })
      
    });

Example APP

First export your giphy api key

export GIPHY_API_KEY=YOUR_GIPHY_API_KEY 

and ther run.

Contrib

Feel free to make any PR's

Libraries

giphy_get
l10n