Super Material | Coderz Repository

super_material

Last updated:

0 purchases

super_material Image
super_material Images

Free

Languages

Categories

Add to Cart

Description:

super material

super_material provides component wrappers and useful interfaces to convert existing flutter
applications into applications that can switch the design at runtime.
This means your app can display different designs from a single code base.





Supported components #
Widgets #
The package supports basic widgets like MaterialApp, Scaffold, AppBar, ElevatedButton, TextField, ListTile.
Functions #
Also functions are supported: e.g. showDialog
Provided interfaces: #
Standard #

super_material: Provides the super material component wrappers. Able to change design at runtime.
material_only: Same as super_material, but enforces material design. (Unofficial)
cupertino_only: Same as super_material, but enforces cupertino design. (Unofficial)

Overlay #

super_material_overlay: Provides the super material components, but with same name as the real material components. Able to change design at runtime.
material_only_overlay: Same as super_material_overlay, but enforces material design. (Unofficial)
cupertino_only_overlay: Same as super_material_overlay, but enforces cupertino design. (Unofficial)

Unofficial: Not provided as official interface. Located at 'package:super_material/src/api/'
Getting started #

Add package to your application
Modify runApp and your main app class, to enable the (runtime) design switch feature.
Replace material imports with super_material imports
Replace components/functions (Non-overlay only)

Usage #
Standard interface #
import 'package:super_material/super_material.dart';

void main() {
runSuperMaterialApp(ExampleApp.getApp, const SuperController());
}

class ExampleApp extends SuperApp {
ExampleApp({Key? key}) : super(key: key);

static ExampleApp getApp() => ExampleApp();

@override
Widget build(BuildContext context) => SuperMaterialApp(
theme: SuperMaterialThemeData(),
home: const MainPage(),
);
}
copied to clipboard
Overlay interface #
import 'package:super_material/super_material_overlay.dart';

void main() {
runApp(ExampleApp.getApp, const SuperController());
}

class ExampleApp extends SuperApp {
ExampleApp({Key? key}) : super(key: key);

static ExampleApp getApp() => ExampleApp();

@override
Widget build(BuildContext context) => MaterialApp(
theme: ThemeData(),
home: const MainPage(),
);
}
copied to clipboard
!!! Important note !!! #
Use devMode during app development. This ensures that the hot reload feature works. Otherwise hot reload will restart your app all the time.
class ExampleApp extends SuperApp {
ExampleApp({Key? key}) : super(key: key, devMode: true);

...
copied to clipboard
Design #
With SuperInstance.restartApp, the design gets switched. This leads to a complete new build trigger of the whole app widget.
Switch action
ListTile(
title: const Text('Switch to material'),
subtitle: const Text('Tap to switch ...'),
onTap: () => SuperInstance.restartApp(SuperMaterialMode.material),
),
ListTile(
title: const Text('Switch to cupertino'),
subtitle: const Text('Tap to switch ...'),
onTap: () =>
SuperInstance.restartApp(SuperMaterialMode.cupertino),
),
copied to clipboard
Default design
The SuperController can take a parameter to specify the default design.
void main() {
runApp(ExampleApp.getApp, const SuperController(SuperMaterialMode.cupertino));
}
copied to clipboard
Additional information #
Currently just a few widgets and functions are implemented. Please request needed widgets/parameters/function by creating an issue on GitHub.
Or feel free to extend the components by yourself and create a pull request.
Extending the package #

Adjust the code_generation/configuration.dart file
Run code_generation/main.dart script
Implement component at implementation/... folder

Detailed information on how to extending the package coming soon ...
Tasks and future goals #

Add more widgets, functions and their parameters
Add more designs (Including a desktop like design)
More focus on usability
More focus on performance

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.