Smarty
A smart home mobile application
A repo showcasing how to work with theme extensions in flutter. For the code guide to the writeup Dressing your flutter widget with theme extension and also the talk Dressing your flutter widget with theme extension you could check here. The project is written primarily in Dart, distributed under the MIT License license, first published in 2022. Key topics include: dart, flutter, iot, iot-application, mobile-app.
🦇🦇 BatTheme
<p align="center"> <a href="https://github.com/mastersam07/smarty" target="_blank"> <img src="./ss/batman.gif" alt="Bat Theme" width="200"> </a> </p>A repo showcasing how to work with theme extensions in flutter. For the code guide to the writeup <a href="https://github.com/mastersam07">Dressing your flutter widget with theme extension</a> and also the talk <a href="https://docs.google.com/presentation/d/1FWXvKfj6RJoSvFbdGjpX1EkOZi8zscnPwokh8R8Q3Us/edit?usp=sharing">Dressing your flutter widget with theme extension</a> you could check <a href="https://github.com/mastersam07/bat_theme">here</a>.
This library is an implementation of the design system available here: https://www.figma.com/file/igCMUoRobPORn168iE513B/Smart-hom-app?node-id=505-406
Star⭐ the repo if you like what you see😉.
Getting Started
- Add the package to your
pubspec.yamlfile:
yamldependencies: bat_theme: any
- Use the
BatCavewidget:
dartimport 'package:bat_theme/bat_theme.dart'; class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); Widget build(BuildContext context) { return BatCave( home: Homepage(), ); } }
Or you can also use the BatThemeData extension:
dartclass MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); Widget build(BuildContext context) { return MaterialApp( theme: BatThemeData(colors: BatColors.light()), home: Homepage(), ); } }
Or you can also use the BatThemeData light/dark constructors:
dartclass MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); Widget build(BuildContext context) { return MaterialApp( theme: BatThemeData.light(), darkTheme: BatThemeData.dark(), home: Homepage(), ); } }
Full Usage
You can check the example to see this theming system in usage.
📸 ScreenShots
<img src="example/ss/smarty_light.png"/>| Image | Image |
|---|---|
| <img src="example/ss/1.png" width="250" height="400"> | <img src="example/ss/2.png" width="250" height="400"> |
| <img src="example/ss/3.png" width="250" height="400"> | <img src="example/ss/4.png" width="250" height="400"> |
| <img src="example/ss/5.png" width="250" height="400"> | <img src="example/ss/6.png" width="250" height="400"> |
| <img src="example/ss/7.png" width="250" height="400"> | <img src="example/ss/8.png" width="250" height="400"> |
| <img src="example/ss/9.png" width="250" height="400"> | <img src="example/ss/10.png" width="250" height="400"> |
| <img src="example/ss/11.png" width="250" height="400"> | <img src="example/ss/12.png" width="250" height="400"> |
| <img src="example/ss/13.png" width="250" height="400"> | <img src="example/ss/14.png" width="250" height="400"> |
🌗 Dark theme
<img src="example/ss/smarty_light.png"/>| Image | Image |
|---|---|
| <img src="example/ss/dark1.png" width="250" height="400"> | <img src="example/ss/dark2.png" width="250" height="400"> |
| <img src="example/ss/dark3.png" width="250" height="400"> | <img src="example/ss/dark4.png" width="250" height="400"> |
| <img src="example/ss/dark5.png" width="250" height="400"> | <img src="example/ss/dark6.png" width="250" height="400"> |
| <img src="example/ss/dark7.png" width="250" height="400"> | <img src="example/ss/dark8.png" width="250" height="400"> |
| <img src="example/ss/dark9.png" width="250" height="400"> | <img src="example/ss/dark10.png" width="250" height="400"> |
| <img src="example/ss/dark11.png" width="250" height="400"> | <img src="example/ss/dark12.png" width="250" height="400"> |
| <img src="example/ss/dark13.png" width="250" height="400"> | <img src="example/ss/dark14.png" width="250" height="400"> |
🤓 Designer(s)
🤓 Author(s)
Roadmap
Who knows whats next?
- Better ways to do it?
Credits
Contributors
Samuel Abada
<p> <a href="https://twitter.com/mastersam_"><img src="https://github.com/aritraroy/social-icons/blob/master/twitter-icon.png?raw=true" width="60"></a> <a href="https://linkedin.com/in/abada-samuel/"><img src="https://github.com/aritraroy/social-icons/blob/master/linkedin-icon.png?raw=true" width="60"></a> <a href="https://medium.com/@sammytech"><img src="https://github.com/aritraroy/social-icons/blob/master/medium-icon.png?raw=true" width="60"></a> <a href="https://facebook.com/abada.samueloghenero"><img src="https://github.com/aritraroy/social-icons/blob/master/facebook-icon.png?raw=true" width="60"></a> </p>Contributors
Showing top 2 contributors by commit count.
