Skip to content

Wishfly-dev/client

Repository files navigation

Wishfly

pub package Website Twitter

Put your users to driver's seat. Wishfly allows you to know what functions should your app have.

Features

  • User can create feature request with title and description.
  • In Admin you can change status of each feature request.
  • All new feature requests must be approved by you before popping up in user list.

Getting started

🤘 It takes less than 180 seconds to integrate Wishfly into your app.

  1. Go to the Wishfly Admin and create account.
    Click on plus button to create a new project and enter your app's name.

  2. Add dependency to your pubspec.yaml file

$ flutter pub add wishfly: ^<latest version>

or

dependencies:
  flutter:
    sdk: flutter
  ...
  wishfly: ^<latest version>

Don't forget to flutter pub get.

  1. Import package in your dart file
import 'package:wishfly/wishfly.dart';
  1. You can place Widget in you widget tree. It could be a screen, modal or whatever you want. You can see example below.
import 'package:wishfly/wishfly.dart';

class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Wishfly(
      apiKey: "your-api-key-here", // your API key
      projectId: 0, // your project ID
    );
  }
}

Additional information

Even though you can customize almost every color, Wishfly doesn't have to perfectly fit your needs. No problem. There is API client so you can perfectly match it with your design system.

Localization

Default language is English.

For supporting other languages, you can add corresponding keys to your own localization file and pass it to Wishfly widget. You can see localization keys here.

To get localization done, add WishflyLocalizations.delegate to your MaterialApp widget.

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Wishfly Demo',
      supportedLocales: const [Locale('en')],
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
        WishflyLocalizations.delegate, // Add this line
      ],
      home: ...,
    );
  }
}

Theme

You can customize colors in UI. Here you can see what you can customize:

class WishflyThemeData {
  final Color? voteIconColor;
  final Color? addWishButtonColor;
  final Color? titleTextColor;
  final Color? tileBackgroundColor;
  final Color? descriptionTextColor;
  final Color? shadowColor;
  final Color? voteCountTextColor;
  final Color? primaryBackgroundColor;
  final Color? itemTileColor;
  final Color? progressBarBackgroundColor;

  //...
}

In order to support dark or light mode, use WishflyThemeData.light() or WishflyThemeData.dark() factory method.

Example usage could be:

child: Wishfly(
    apiKey: "your-api-key-here", // Paste your API key here
    projectId: 0, // Paste your project ID here        
    theme: WishflyThemeData.light(
        voteIconColor: Colors.black,
        addWishButtonColor: Colors.black,
        // more..
    ),      
),

You can see complete example here


Note: ⚠️ Wishfly is currently in beta and under development. The SDK API might change in future.