All Projects → Apparence-io → pal-plugin

Apparence-io / pal-plugin

Licence: BSD-3-Clause license
The Flutter onboarding editor

Programming Languages

dart
5743 projects
C++
36643 projects - #6 most used programming language
CMake
9771 projects
ruby
36898 projects - #4 most used programming language
HTML
75241 projects
swift
15916 projects

Projects that are alternatives of or similar to pal-plugin

Flutter Concentric Transition
A Flutter plugin to create views using concentric transition effect.
Stars: ✭ 122 (+662.5%)
Mutual labels:  onboarding, flutter-plugin
pal-widgets
A collection of widgets for making amazing onboarding experience in your flutter applications
Stars: ✭ 21 (+31.25%)
Mutual labels:  onboarding, flutter-plugin
etalab
Livret de bienvenue destiné aux membres d’Etalab.
Stars: ✭ 24 (+50%)
Mutual labels:  onboarding
Motion-Tab-Bar
A beautiful animated flutter widget package library. The tab bar will attempt to use your current theme out of the box, however you may want to theme it.
Stars: ✭ 237 (+1381.25%)
Mutual labels:  flutter-plugin
acr cloud sdk
🎵 🎶 ACR Cloud SDK For flutter
Stars: ✭ 19 (+18.75%)
Mutual labels:  flutter-plugin
stream-feed-flutter
Stream Feed official Flutter SDK. Build your own feed experience using Dart and Flutter.
Stars: ✭ 67 (+318.75%)
Mutual labels:  flutter-plugin
link text
Easy to use text widget for Flutter apps, which converts inlined urls into working, clickable links
Stars: ✭ 20 (+25%)
Mutual labels:  flutter-plugin
flutter-maplibre-gl
A flutter package for showing customizable vector/raster maps with Maplibre GL (forked from tobrun/flutter-mapbox-gl)
Stars: ✭ 69 (+331.25%)
Mutual labels:  flutter-plugin
flutter custom tabs
A Flutter plugin to use Chrome Custom Tabs.
Stars: ✭ 117 (+631.25%)
Mutual labels:  flutter-plugin
flutter facebook app events
Flutter Plugin for Facebook App Events
Stars: ✭ 88 (+450%)
Mutual labels:  flutter-plugin
stepper-indicator
Step indicator for onboarding or simple viewpager
Stars: ✭ 180 (+1025%)
Mutual labels:  onboarding
flutter freshchat
The unofficial flutter plugin for Freshchat
Stars: ✭ 31 (+93.75%)
Mutual labels:  flutter-plugin
flutter displaymode
A Flutter plugin to set display mode in Android
Stars: ✭ 118 (+637.5%)
Mutual labels:  flutter-plugin
flutter google maps
A Flutter plugin for integrating Google Maps in iOS, Android and Web applications. It is a wrapper of google_maps_flutter for Mobile and google_maps for Web.
Stars: ✭ 86 (+437.5%)
Mutual labels:  flutter-plugin
nats-dart
NATS client for Dart lang
Stars: ✭ 31 (+93.75%)
Mutual labels:  flutter-plugin
flutter statusbar manager
Flutter StatusBar Manager for iOS & Android
Stars: ✭ 189 (+1081.25%)
Mutual labels:  flutter-plugin
fancy bar
A fancy yet beautiful animated widget for your Flutter apps
Stars: ✭ 33 (+106.25%)
Mutual labels:  flutter-plugin
simple gesture detector
Easy to use, reliable and lightweight gesture detector for Flutter apps, exposing simple API for basic gestures
Stars: ✭ 26 (+62.5%)
Mutual labels:  flutter-plugin
CoachMarks
UI component to focus the user's attention on parts of the app
Stars: ✭ 37 (+131.25%)
Mutual labels:  onboarding
plugins
Flutter plugins for Tizen
Stars: ✭ 40 (+150%)
Mutual labels:  flutter-plugin

pal logo

Pal - Flutter onboarding and messages plugin

  • Create guide tours for new users
  • Ask questions and get feedbacks from your users
  • Inform about what’s new in your update
  • Improve your onboardings and app experience using analytics

flutter anchored onboarding screen

Wants a fast demo?

We got a live demo just for you -> check it here

flutter anchored onboarding screen

📱 How it works ?

No code editor for all your app screens directly in your app
  • Go to a screen where you want to add helper.
  • Select your helper type.
  • Select and customize your theme.
Pal is splitted in two modes
  • Editor, create & manage helpers.
  • Client, all created helpers are displayed here.
Editor mode flow
  1. Navigate to the screen you want to show your helper.
  2. Choose how it should trigger (on first visit, on new update...)
  3. Create the helper you want with all texts, colors, fonts...
  4. Publish!
Client mode flow
  1. Fetch all onboarding on application start.
  2. Trigger an onboarding each time we detect anything that you configured for.
  3. Don't show an helper again if user has already seen it.

That's it !

🚀  Getting started

  • Create an administration account here.
  • Create a new project in your dashboard.
  • Get your token & save it for later.

token

Install on your flutter application now

  • Add Pal dependency
dependencies:
  ...
  pal: ^latest_version
  • Import Pal in the main.dart
import 'package:palplugin/palplugin.dart';
  • Wrap your app with Pal
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  final _navigatorKey = GlobalKey<NavigatorState>();

  @override
  Widget build(BuildContext context) {
    return Pal(
      editorModeEnabled: true,
      appToken: 'REPLACE_WITH_YOUR_APP_TOKEN',
      // --------------------
      // YOUR APP IS HERE
      childApp: MaterialApp(
        navigatorKey: _navigatorKey,
        navigatorObservers: [PalNavigatorObserver.instance()],
        home: YourApp(),
      ),
      // --------------------
    );
  }  
}

For GetX users:

class GetXMyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Pal.fromAppBuilder(
      navigatorKey: navigatorKey,
      editorModeEnabled: false,
      appToken: 'MY_APP_TOKEN_HERE',
      childAppBuilder: (context) => GetMaterialApp(
        navigatorKey: navigatorKey,
        title: 'Pal Plugin Demo',
        navigatorObservers: [PalNavigatorObserver.instance()],
        onGenerateRoute: routes,
      ),
    );
  }
}

🔥 Configure Events

You can manually specify events within your code so we can use them to let you configure hints with editor.

Push a page

(If you use named route, you don't need to use this as we recognize automatically new pages)

   PalEvents.instance().pushPage(String routeName, {Map<String, String> arguments});

🎥  Youtube Videos

  Parameters

Param Type Description Required Default
childApp Widget your application.
navigatorKey GlobalKey<NavigatorState> a reference to the navigator key of your application childApp.navigatorKey
navigatorObserver PalNavigatorObserver used to manage state of current page childApp.navigatorObservers first entry
editorModeEnabled bool enable or Disable the editor mode true
textDirection TextDirection text direction of your application TextDirection.ltr
appToken String the app token created from the admin

🙋‍♂️🙋‍♀️ Questions

Why I'm getting an error PageCreationException: EMPTY_ROUTE_PROVIDED when creating a new helper?

When you push a new route, you always need to give it an unique name if you use .push(....).

We recommend you to use .pushNamed(...) method (by using it, Pal know automatically the route name without specified it). But if you prefer using .push(...) instead, you have to create RouteSettings like this:

Navigator.push(
  context,
  MaterialPageRoute(
    settings: RouteSettings(
      name: 'page1', // <- Type here an unique route name
    )),
    builder: (context) => YourNewPage(),
);

Why don't I see all my items as selectable when I create an anchored helper?

To detect any widget and get it back in your application we needs you to add a key on every widget you want to be selectable. For exemple to detect a container :

...
Container(
  key: ValueKey("myContainerKey"),
  ...
)

📣  Author


Initiated and sponsored by Apparence.io.

  More

📑 Full documentation

🌍 Official website

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].