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

flutter_overboard 표지
패키지 상세v3.1.3

flutter_overboard

Flutter용 온보딩 위젯으로 최소한의 코드로 아름다운 온보딩 슬라이드를 만들 수 있습니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
1.9천
좋아요
158
Pub 점수
145

패키지 설치

flutter pub add flutter_overboard

패키지 개요

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

Flutter Overboard는 최소한의 코드로 시각적으로 매력적인 온보딩 슬라이드를 만들 수 있는 가벼우면서도 사용자 정의 가능한 Flutter 위젯입니다. 부드러운 전환과 직관적인 탐색을 지원하여 앱 기능이나 튜토리얼을 안내하는 데 이상적입니다. 이 패키지는 Android, iOS, Web, macOS, Windows, Linux 등 주요 플랫폼에 원활하게 통합됩니다. 간단한 구성 옵션을 통해 디자인 유연성을 희생하지 않고도 다중 슬라이드 온보딩 경험을 빠르게 설정할 수 있습니다.

사용 사례

  • 앱 온보딩 튜토리얼
  • 사용자 기능 안내
  • 초기 사용자 경험
  • 제품 소개 화면
  • 모바일 및 웹 앱에서의 온보딩 흐름

주요 기능

  • 최소 코드 설정
  • 사용자 정의 가능한 슬라이드 디자인
  • 부드러운 전환 애니메이션
  • 크로스 플랫폼 호환성
  • 내장형 탐색 컨트롤
  • 슬라이드별 사용자 정의 콘텐츠 지원

적합한 대상

  • 빠른 온보딩 구현을 원하는 개발자
  • 사용자 참여를 유도하는 온보딩이 필요한 앱
  • 다중 플랫폼을 대상으로 하는 프로젝트
  • 디자인 중심 애플리케이션
  • 프로토타이핑 온보딩 흐름

고려 사항

  • 기본 스타일링을 넘어서는 내장 사용자 정의 기능은 제한적
  • 복잡한 탐색 로직을 수동으로 처리해야 합니다
  • 매우 동적 콘텐츠에 최적화되지 않음
  • 고급 기능을 위해 외부 종속성에 의존합니다
  • 현지화 지원을 위해 추가 작업이 필요할 수 있습니다

원본 README

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

flutter_overboard

pub package

Onboarding widget for flutter to create beautiful onboarding slides with minimal code.

Demo

Example Gif

Usage

Add following command in your pubspec.yaml & install package

flutter_overboard:3.1.3

or run

flutter pub add flutter_overboard

Import in your dart page

import 'package:flutter_overboard/flutter_overboard.dart';

Create a pages array like

    final pages = [
        new PageModel(
            color: const Color(0xFF0097A7),
            imageAssetPath: 'assets/01.png',
            title: 'Screen 1',
            body: 'Share your ideas with the team',
            doAnimateImage: true),
        new PageModel(
            color: const Color(0xFF536DFE),
            imageAssetPath: 'assets/02.png',
            title: 'Screen 2',
            body: 'See the increase in productivity & output',
            doAnimateImage: true),
        new PageModel(
            color: const Color(0xFF9B90BC),
            imageAssetPath: 'assets/03.png',
            title: 'Screen 3',
            body: 'Connect with the people from different places',
            doAnimateImage: true),
    ];

You can also pass widgets as page model

    PageModel.withChild(
        child: new Padding(
          padding: new EdgeInsets.only(bottom: 25.0),
          child: new Image.asset('assets/02.png', width: 300.0, height: 300.0),
        ),
        color: const Color(0xFF5886d6),
        doAnimateChild: true)

Add follwing in you dart code widget

    OverBoard(
        pages: pages,
        showBullets: true,
        skipCallback: () {
          // WRITE SKIP BUTTON ACTION HERE
        },
        finishCallback: () {
          // WRITE THE FINISH BUTTON ACTION HERE
        },
      ),

That's it. You are done with the setup now try to run your app.

To customize the circle reveal center point use (Overboard Widget)

    center: Offset(dx, dy);

To customize the text of buttons (Overboard Widget)

    skipText: "Go Out",
    nextText: "Go Forward",
    finishText: "END",

To customize the color of buttons (Overboard Widget)

    buttonColor: Colors.blue,

To customize the color of bullets (Overboard Widget)

    activeBulletColor: Colors.white,
    inactiveBulletColor: Colors.white30,

To customize the background of pages (Overboard Widget)

  backgroundProvider: NetworkImage('https://picsum.photos/720/1280')

OR

  backgroundProvider: ImageProvider('assets/images/bg.jpg')

To customize the color of page text (PageModel Widget)

    titleColor: Colors.blue,
    bodyColor: Colors.red,

To add the scroll support using keyboard & mouse wheel (Overboard Widget)

    allowScroll: true,
Overboard Widget
PROPERTY TYPE REQUIRED DETAILS
pages List yes List of pages to render on-boarding
center Offset no Offset to set center point of revealing circle
showBullets Boolean no Enable/disable bullets visibility
skipText String no Customize skip button text
nextText String no Customize next button text
finishText String no Customize finish button text
buttonColor Color no Customize button color
activeBulletColor Color no Customize active bullet color
inactiveBulletColor Color no Customize inactive bullet color
backgroundProvider ImageProvider no Overboard background image provider
skipCallback VoidCallback no Skip button click callback
finishCallback VoidCallback no Finish button click callback
PageModel Widget
PROPERTY TYPE REQUIRED DETAILS
color Color no Background color of the page
imageAssetPath String no Image path from asset to show in page
title String no Title text of the page
body String no Body text of the page
child Widget no Custom widget to pass as image in page
doAnimateChild Boolean yes To enable/disable child animation
doAnimateImage Boolean yes To enable/disable image animation
titleColor Color no Change color of title text
bodyColor Color no Change color of body text

Example

import 'package:flutter/material.dart';

import 'package:flutter_overboard/flutter_overboard.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Overboard Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final GlobalKey<ScaffoldState> _globalKey = new GlobalKey<ScaffoldState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _globalKey,
      body: OverBoard(
        pages: pages,
        showBullets: true,
        skipCallback: () {
          _globalKey.currentState.showSnackBar(SnackBar(
            content: Text("Skip clicked"),
          ));
        },
        finishCallback: () {
          _globalKey.currentState.showSnackBar(SnackBar(
            content: Text("Finish clicked"),
          ));
        },
      ),
    );
  }

  final pages = [
        PageModel(
            color: const Color(0xFF0097A7),
            imageAssetPath: 'assets/01.png',
            title: 'Screen 1',
            body: 'Share your ideas with the team',
            doAnimateImage: true),
        PageModel(
            color: const Color(0xFF536DFE),
            imageAssetPath: 'assets/02.png',
            title: 'Screen 2',
            body: 'See the increase in productivity & output',
            doAnimateImage: true),
        PageModel(
            color: const Color(0xFF9B90BC),
            imageAssetPath: 'assets/03.png',
            title: 'Screen 3',
            body: 'Connect with the people from different places',
            doAnimateImage: true),
        PageModel.withChild(
            child: Padding(
              padding: EdgeInsets.only(bottom: 25.0),
              child: Image.asset('assets/02.png', width: 300.0, height: 300.0),
            ),
            color: const Color(0xFF5886d6),
            doAnimateChild: true)
  ];
}

LICENSE

MIT LICENSE

카테고리

소스 저장소

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

아직 데이터가 없습니다.