EZ Flutter is a collection of widgets, packages and many more usefull things, mixed up in little framework.

Overview

EZ Flutter (Alpha)

EZ Flutter is a collection of widgets, packages and many more usefull things, mixed up in a little framework. The aim is to make standard features easily available from scratch.

Table of Contents

  1. Install
  2. Import
  3. Features
  4. Documentation
  5. Contribution
  6. Used Packages
  7. Changelog
  8. Copyright and license

Install

pubspec.yaml

Update pubspec.yaml and add the following line to your dependencies.

dependencies:
  ez_flutter: ^0.7.1

Update your pubspec.yaml file and add the following assets locations :

flutter:
  assets:
   - assets/
   - locale/

Import

Import the package with :

import 'package:ez_flutter/ez_flutter.dart';

Features

Global Messaging

Display a message to the user from anywhere inside the app with just one line of code.

Automatic Configuration Loading

Loading a configuration from multiple json files and make it available everywhere inside the app.

Multilanguage Support

Build in translation feature that can be used everywhere inside the app.

Buildin Customizable Transition Screen

EZ Flutter provides a customizable loading screen to switch between to screens after some work is done.

Buildin Bloc Support

EZ Flutter comes with a Blocprovider to easily handle multiple blocs within the app.

Util Classes

EZ Flutter integrates the Basic Utils package and provides many useful helper classes to master different situations.

Manage Theme Via Json

EZ Flutter offers the possibility to manage themes via json files.

Documentation

The documentation is located at ez-flutter.de/docs.

Contribution

You have an idea for some usefull widgets every app needs ? You are facing a bug ? Check out the CONTRIBUTING.md file.

Used Packages

Changelog

For a detailed changelog, see the CHANGELOG.md file

Copyright and license

MIT License

Copyright (c) 2019 Ephenodrom

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • EzTranslator.of(context) returns null

    EzTranslator.of(context) returns null

    The translation file seems to be loading because I don't get an error in the console, but EzTranslator.of(context) returns null. Am I missing something?

    opened by racknoris 6
  • Error on updating Settings in shared pref for the first time

    Error on updating Settings in shared pref for the first time

    Update of setting within the shared pref is not possible if the shared pref data are not set. This happens if your try to update the data for the very first time.

    bug 
    opened by Ephenodrom 1
  • Several Methods are Missing, like EzScaffold

    Several Methods are Missing, like EzScaffold

    opened by 0x07dc 0
  • Failed Pub get

    Failed Pub get

    Failed to rename directory because access was denied. This may be caused by a virus scanner or having a file in the directory open in another application. pub get failed (1; in the directory open in another application.)

    UPDATE: i just hat to "Pub get" twice. Nevermind

    opened by phcode-py 0
  • _showMessage of EzGlobalMessageWrapper  did not provide context for Scaffold

    _showMessage of EzGlobalMessageWrapper did not provide context for Scaffold

     class EzGlobalMessageWrapper extends StatefulWidget {
       final Widget child;
     
       EzGlobalMessageWrapper(this.child);
       @override
       _EzGlobalMessageWrapperState createState() = _EzGlobalMessageWrapperState();
     }
     
     class _EzGlobalMessageWrapperState extends State<EzGlobalMessageWrapper {
       @override
       void initState() {
         super.initState();
         EzBlocProvider.of<EzGlobalBloc(context)
             .get<EzMessageBloc(EzMessageBloc)
             .messageStream
             .listen((msg) {
           if (msg != null) {
             _showMessage(msg);
           }
         });
       }
     
       @override
       Widget build(BuildContext context) {
         return widget.child;
       }
      void _showMessage(EzMessage message) {
         Color color = Colors.grey;
     
         switch (message.type) {
           case EzMessageType.SUCCESS:
             if (EzSettings.app() != null) {
               if (StringUtils.isNotNullOrEmpty(
                   EzSettings.app()[EzSettingsKeys.KEY_MSG_SUCCESS_COLOR])) {
                 color =
                     Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_SUCCESS_COLOR]);
               } else {
                 color = Colors.green;
               }
             } else {
               color = Colors.green;
             }
             break;
           case EzMessageType.INFO:
             if (EzSettings.app() != null) {
               if (StringUtils.isNotNullOrEmpty(
                   EzSettings.app()[EzSettingsKeys.KEY_MSG_INFO_COLOR])) {
                 color = Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_INFO_COLOR]);
               } else {
                 color = Colors.blue;
               }
             } else {
               color = Colors.blue;
             }
             break;
           case EzMessageType.WARNING:
             if (EzSettings.app() != null) {
               if (StringUtils.isNotNullOrEmpty(
                   EzSettings.app()[EzSettingsKeys.KEY_MSG_WARNING_COLOR])) {
                 color =
                     Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_WARNING_COLOR]);
               } else {
                 color = Colors.orange;
               }
             } else {
               color = Colors.orange;
             }
             break;
           case EzMessageType.ERROR:
             if (EzSettings.app() != null) {
               if (StringUtils.isNotNullOrEmpty(
                   EzSettings.app()[EzSettingsKeys.KEY_MSG_ERROR_COLOR])) {
                 color = Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_ERROR_COLOR]);
               } else {
                 color = Colors.red;
               }
             } else {
               color = Colors.red;
             }
             break;
           case EzMessageType.DEBUG:
             if (EzSettings.app() != null) {
               if (StringUtils.isNotNullOrEmpty(
                   EzSettings.app()[EzSettingsKeys.KEY_MSG_DEBUG_COLOR])) {
                 color = Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_DEBUG_COLOR]);
               } else {
                 color = Colors.grey;
               }
             } else {
               color = Colors.grey;
             }
             break;
           default:
         }
     
         SnackBar bar =
             SnackBar(content: Text(message.text), backgroundColor: color);
     
         Scaffold.of(context)
           ..hideCurrentSnackBar()
           ..showSnackBar(bar);
         message.displayed = true;
       }
     }
    

    when I show message. I got an error.

    E/flutter ( 4388): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: 'package:flutter/src/material/scaffold.dart': Failed assertion: line 1447 pos 12: 'context != null': is not true. E/flutter ( 4388): #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39) E/flutter ( 4388): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5) E/flutter ( 4388): #2 Scaffold.of E/flutter ( 4388): #3 _EzGlobalMessageWrapperState._showMessage E/flutter ( 4388): #4 _EzGlobalMessageWrapperState.initState. E/flutter ( 4388): #5 _rootRunUnary (dart:async/zone.dart:1198:47) E/flutter ( 4388): #6 _CustomZone.runUnary (dart:async/zone.dart:1100:19) E/flutter ( 4388): #7 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7) E/flutter ( 4388): #8 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11) E/flutter ( 4388): #9 _DelayedData.perform (dart:async/stream_impl.dart:611:14) E/flutter ( 4388): #10 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11) E/flutter ( 4388): #11 _PendingEvents.schedule. (dart:async/stream_impl.dart:687:7) E/flutter ( 4388): #12 _rootRun (dart:async/zone.dart:1182:47) E/flutter ( 4388): #13 _CustomZone.run (dart:async/zone.dart:1093:19) E/flutter ( 4388): #14 _CustomZone.runGuarded (dart:async/zone.dart:997:7) E/flutter ( 4388): #15 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1037:23) E/flutter ( 4388): #16 _rootRun (dart:async/zone.dart:1190:13) E/flutter ( 4388): #17 _CustomZone.run (dart:async/zone.dart:1093:19) E/flutter ( 4388): #18 _CustomZone.runGuarded (dart:async/zone.dart:997:7) E/flutter ( 4388): #19 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1037:23) E/flutter ( 4388): #20 _microtaskLoop (dart:async/schedule_microtask.dart:41:21) E/flutter ( 4388): #21 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5) E/flutter ( 4388):

    opened by sinhphan 3
  • Load theme data via .json file

    Load theme data via .json file

    Add functionality to manage theme data via .json file.

    Load json file at startup

    It should be loaded if no MaterialTheme or CupertinoTheme is given to the EzRunner.

    Convert json data to theme data

    https://api.flutter.dev/flutter/material/ThemeData-class.html

    • [ ] Convert Colors
    • [ ] Convert textTheme
    • [ ] Convert iconTheme

    Add theme to MaterialApp / CupertinoApp

    Add it after successful parsing.

    enhancement 
    opened by Ephenodrom 1
Easily build your Widgets, Avoid parenthesis nesting, easy to build UI, A little like swift-ui.

tenon_mortise Easily build your Widgets, Avoid parenthesis nesting, easy to build UI, A little like swift-ui. Getting Started Usage To use this plugin

JieLiu 4 Dec 15, 2022
Tribally SDKs enable your users to create communities and bring in more people to talk about the things they love.

tribally Tribally SDKs enable your users to create communities and bring in more people to talk about the things they love. Getting Started This proje

Horum 0 Dec 28, 2021
Serialize almost everything you ever need! 📦 Supports serializing MaterialColor, Color, Size, Locale, IconData, UuidValue, DateTime, Directory, File, Duration, and many more.

osum_serializable The goal is to serialize almost everything you ever need! json_serializable is an amazing package to serialize classes but cannot se

Aswin Murali 2 Sep 23, 2022
Flutter Multi-platform allows developers to unleash their app to run on the wide variety of different platforms with little or no change.

Flutter Multi-platform sample Flutter Multi-platform allows developers to unleash their app to run on the wide variety of different platforms with lit

MindInventory 22 Dec 31, 2022
A simple bank UI template with a little bit of backend. Created by Martin Gogołowicz.

Flutter Bank UI A simple bank UI template with a little bit of backend. Created by Martin Gogołowicz. How it looks: Nagranie.z.ekranu.2021-12-2.o.21.5

Martin Gogołowicz 20 Oct 14, 2022
A collection of useful packages maintained by the Flutter team

Flutter Packages This repo is a companion repo to the main flutter repo. It contains the source code for Flutter's first-party packages (i.e., package

Flutter 2.3k Dec 30, 2022
⚒️ A monorepo containing a collection of packages that provide useful functionality for building CLI applications in Dart.

⚒️ Dart CLI Utilities A monorepo containing a collection of packages that provide useful functionality for building CLI applications in Dart. Document

Invertase 14 Oct 17, 2022
Flutter package to render html as widgets that supports hyperlink, image, audio, video, iframe and many other tags.

HtmlWidget monorepo This repo contains the source code for everything HtmlWidget-related. Name Link flutter_widget_from_html_core flutter_widget_from_

Đào Hoàng Sơn 445 Jan 6, 2023
Be together, whenever. A simple way to text chat and plan things all in one place for flutter developers.

Flutterdevconnect Be together, whenever. A simple way to text chat and plan things all in one place for flutter developers. Android IOS Web PWA Androi

Sanskar Tiwari 69 Aug 27, 2022
Easy nav - A simple wrapper around flutter navigator, dialogs and snackbar to do those things without context

EasyNav Just a simple wrapper around flutter navigator, dialogs and snackbar to

Abdul Shakoor 2 Feb 26, 2022
💖A free IoT (Internet of Things) platform and private cloud

??A free IoT (Internet of Things) platform and private cloud

Open IoT Hub(云易连) 422 Nov 30, 2022
Chance Dart is a free Open Source project that lets you create random strings, integers, and other things to help with tiresome tasks, especially when building automated tests or wherever else you require anything random.

Chance Dart Random generator helper for Dart Homepage • Documentation Overview Chance Dart is a free Open Source project that lets you create random s

Ayotomide 55 Dec 27, 2022
A curated list of awesome things related to Flutter desktop.

awesome-flutter-desktop A curated list of awesome things related to Flutter desktop. Table of Contents awesome-flutter-desktop Packages Open Source Ap

LeanFlutter 1k Dec 26, 2022
A package for giving reviews for the things

give-star-reviews A package for giving reviews for the things Getting Started dependencies: givestarreviews: ^1.0.2 $ flutter pub get import 'pack

Burak 2 Dec 16, 2021
Group Intern Project: All Things Charmaine

allthingscharmaine A new Flutter application. . . . . .. . . . . . . . Getting Started ASSETS: https://1drv.ms/u/s!AnbxnB5ugF0ohrM89fJXIqFf8g-q9A?e=ZJ

OLUWATOMISIN ESAN 2 Mar 19, 2020
Create a Grid Layout of IoT (Internet of Things) devices in a particular house.

Create a Grid Layout of IoT (Internet of Things) devices in a particular house. Keep it simple to just 4-6 devices. Each device will have an icon on its own. When you press the icon, toggle the image and toggle the text underneath between on and off.

null 0 Dec 30, 2021
The classic to-do application where a user can write down all the things he wants to accomplish. Android only.

todo-app The classic to-do application where a user can write down all the things he wants to accomplish. Android only. Table of Contents todo-app Tab

Samuel Marques 9 Sep 23, 2022
SmallTask - Take small steps to achieve big things

SmallTask - Take small steps to achieve big things. Have you ever felt that when you are working on a project you kinda get confused about what to do?

Yuji 2 Mar 7, 2022