패키지, 저장소 및 앱 카테고리 검색

패키지 상세v3.6.1+1

giphy_get

순수한 다트 코드로 Giphy에서 이모지, 스티커 또는 GIF를 선택합니다. Android, iOS, 웹 및 데스크톱을 지원합니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
3.7천
좋아요
134
Pub 점수
140

패키지 설치

flutter pub add giphy_get

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

giphy_get는 개발자가 Flutter 애플리케이션에 Giphy의 이모지, 스티커 및 GIF 검색 기능을 직접 통합할 수 있도록 해주는 Dart 패키지입니다. Android, iOS, Web, macOS, Windows, Linux 등 주요 플랫폼을 모두 지원하여 장치 간 일관된 사용자 경험을 제공합니다. 네이티브 코드 종속성이 없이 순수한 Dart로 구현되어 있어 통합과 유지보수가 간편합니다. Giphy의 방대한 라이브러리에서 콘텐츠를 가져오고 표시하기 위한 직관적인 API를 제공하며, 소셜 또는 메시징 기능을 강화하는 데 이상적입니다.

사용 사례

  • 채팅 인터페이스에 GIF 추가하기
  • 이모티콘을 통한 사용자 표현 강화
  • 스티커 선택기 컴포넌트 만들기
  • 소셜 앱에 Giphy 검색 통합
  • 인터랙티브 메시징 기능 구축

주요 기능

  • 크로스 플랫폼 지원
  • 순수한 다트 구현
  • GIF, 이모지 및 스티커 검색
  • 간단한 통합용 API
  • 네이티브 코드가 필요하지 않습니다

적합한 대상

  • 메시징 앱
  • 소셜 미디어 플랫폼
  • 인터랙티브 UI 컴포넌트
  • 표현적인 콘텐츠가 필요한 앱
  • 플랫폼에 관계없이 작동하는 솔루션을 찾는 개발자

고려 사항

  • Giphy 접근을 위해 인터넷 연결이 필요합니다
  • Giphy UI의 사용자 정의 제한
  • Giphy의 API 사용 가능 여부에 따라 달라집니다
  • 고-traffice 앱에서는 레이트 제한이 필요할 수 있습니다
  • 내장된 오프라인 캐싱 없음

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

🚀 New: Batch & Progressive Loading (vNEXT)

Smarter, User-Friendly GIF Loading

This release introduces a modern loading experience:

  • Batch Loading: Only visible GIFs are loaded/rendered, reducing network and memory usage. Off-screen GIFs are loaded as you scroll.
  • Progressive Loading: While a GIF loads, a blurred static thumbnail (if available) is shown, then swapped for the full GIF when ready—just like YouTube thumbnails!
  • Custom Loading/Failed Widgets: You can pass your own widgets to display while loading or on error, for a fully branded experience.
Example: Custom Loading/Failed Widgets
GiphyTabDetail(
  type: GiphyType.gifs,
  scrollController: myController,
  loadingWidget: MyCustomLoadingWidget(),
  failedWidget: MyCustomFailedWidget(),
)
How it works
  • The grid uses a lazy builder, so only visible GIFs are loaded.
  • Each GIF first shows a blurred static image (if available) as a placeholder, then swaps in the full GIF when loaded.
  • This keeps users confident that something is happening, even on slow networks.

See the documentation in GiphyTabDetail and GiphyGifWidget for more details.

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', ''),
        Locale('da', ''),
      ],
      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.
  debounceTimeInMilliseconds: 350, // Optional- time to pause between search keystrokes
);
Options
Value Type Description Default
lang String Use ISO 639-1 language code or use GiphyLanguage constants GiphyLanguage.english
randomID String An ID/proxy for a specific user. null
searchText String Input search hint, we recomend use flutter_18n package for translation "Search GIPHY"
tabColor Color Color for tabs and loading progress, Theme.of(context).accentColor
debounceTimeInMilliseconds int Time to pause between search keystrokes 350
showGIFs bool Whether to show the GIFs tab or not true
showStickers bool Whether to show the stickers tab or not true
showEmojis bool Whether to show the emojis tab or not true
tapTopBuilder Widget Function(BuildContext context) A custom builder for tab top. Must return a widget that will replace default Giphy-like tab top null. Displays default Giphy-like tab top
tabBottomBuilder Widget Function(BuildContext context) A custom builder for tab bottom. Must return a widget that will replace default Giphy credits logo. Note that credits are required to be shown by Giphy null. Displays default Giphy credits logo
searchAppBarBuilder Widget Function(BuildContext context,FocusNode focusNode,bool autofocus,TextEditingController textEditingController,void Function() onClearSearch) A custom builder for search app bar. Must return a widget that will replace default Giphy-like search bar input null. Displays default Giphy-like search bar input
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

카테고리

의존성

의존성 목록 6 개

소스 저장소

이 패키지를 사용하는 프로젝트