Skip to content

Instantly share code, notes, and snippets.

View AlenaNicolay's full-sized avatar

Widgetbook AlenaNicolay

View GitHub Profile
@AlenaNicolay
AlenaNicolay / Folder file Structure
Last active May 25, 2023 07:09
Widgetbook Folder/ file Structure
- app
- routes.dart
- locator.dart
- ui
- views
- onboarding_view
- onboarding_view.dart
- onboarding_viewmodel.dart
- login_view
- login_view.dart
@AlenaNicolay
AlenaNicolay / Plugins Used
Created May 25, 2023 07:06
Widgetbook Plugins Used
...
dependencies:
stacked: # State management of choicce
flutter_screenutil: # Responsive design utility(to give our designs more setup)
stacked_services: # Utility package for stacked services, eg navigation
...
dev_dependencies:
build_runner: # To run build runner and generate code
stacked_generator: # Code generator for stacked
@AlenaNicolay
AlenaNicolay / Codebase
Created May 25, 2023 07:17
Adding Widgetbook to the codebase
dependencies:
...
widgetbook_annotation:
dev_dependencies:
...
build_runner:
widgetbook:
widgetbook_generator:
@AlenaNicolay
AlenaNicolay / Widgetbook Organizers
Created May 25, 2023 07:20
Widgetbook Organizers
@WidgetbookApp.material(
name: "Widgetbook Test",
devices: [
Apple.iPhone13ProMax,
Samsung.s21ultra,
Desktop.desktop1080p,
],
)
class MyApp extends StatelessWidget {
const MyApp({super.key});
@AlenaNicolay
AlenaNicolay / Widgetbook Organizers
Created May 25, 2023 07:21
Widgetbook Organizers
@WidgetbookUseCase(name: 'Onboarding View', type: OnboardingView)
Widget onboarding2ViewUseCase(BuildContext context) {
return const OnboardingView();
}
class OnboardingView extends StatelessWidget {
const OnboardingView({super.key});
@override
Widget build(BuildContext context) {
@AlenaNicolay
AlenaNicolay / Widgetbook Knobs
Created May 25, 2023 07:23
Widgetbook Knobs
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:widgetbook/widgetbook.dart' hide WidgetbookUseCase;
import 'package:widgetbook_annotation/widgetbook_annotation.dart';
@WidgetbookUseCase(name: 'App Button', type: AppButton)
Widget appButtonUseCase(BuildContext context) {
return Center(
child: AppButton(
label: context.knobs.text(
@AlenaNicolay
AlenaNicolay / Widgetbook app_textfield.dart
Created May 25, 2023 07:25
Widgetbook app_textfield.dart
@WidgetbookUseCase(name: 'App TextField', type: AppTextField)
Widget appTextFieldViewUseCase(BuildContext context) {
return Center(
child: AppTextField(
hint: context.knobs.text(label: "Hint"),
initialValue: context.knobs.text(label: "Initial Value"),
obscureText: context.knobs.boolean(label: "Obscure text"),
minLines: context.knobs
.nullableNumber(label: "Min Lines", initialValue: 1)
?.toInt(),
@AlenaNicolay
AlenaNicolay / Widgetbook home_item.dart
Created May 25, 2023 07:26
Widgetbook home_item.dart
import 'package:widgetbook/widgetbook.dart' hide WidgetbookUseCase;
import 'package:widgetbook_annotation/widgetbook_annotation.dart';
@WidgetbookUseCase(name: 'Home Item', type: HomeItem)
Widget homeItemViewUseCase(BuildContext context) {
return Center(
child: HomeItem(
body: context.knobs.text(label: "Body"),
tag: context.knobs.text(label: "Tag"),
isLiked: context.knobs.boolean(label: "Is Liked"),
flutter pub run build_runner build --delete-conflicting-outputs
@AlenaNicolay
AlenaNicolay / Widgetbook run on MacOS, Windows, Linux and Web
Created May 25, 2023 07:29
Widgetbook run on MacOS, Windows, Linux and Web
flutter run -t lib/main.widgetbook.dart