Skip to content

Commit

Permalink
Merge pull request #248 from yumemi-inc/feature/GH-202
Browse files Browse the repository at this point in the history
chore(mason): feature 系のパッケージ作成の mason brick を追加
  • Loading branch information
tatsutakein committed Jun 15, 2024
2 parents e5fdf52 + 63b396c commit 0a21420
Show file tree
Hide file tree
Showing 35 changed files with 358 additions and 33 deletions.
2 changes: 1 addition & 1 deletion apps/app/l10n.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
arb-dir: assets/l10n
arb-dir: lib/l10n
output-dir: lib/gen/l10n
template-arb-file: app_ja.arb
output-localization-file: l10n.dart
Expand Down
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions apps/app/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:cores_core/ui.dart';
import 'package:cores_data/theme_mode.dart';
import 'package:cores_designsystem/themes.dart';
import 'package:cores_init/provider.dart';
import 'package:features_setting/l10n.dart';
import 'package:features_setting/l10n.dart' as features_setting;
import 'package:flutter/material.dart';
import 'package:flutter_app/app_initializer.dart';
import 'package:flutter_app/gen/l10n/l10n.dart';
Expand Down Expand Up @@ -60,11 +60,11 @@ class MainApp extends ConsumerWidget {
return MaterialApp.router(
localizationsDelegates: const [
...L10n.localizationsDelegates,
...L10nSetting.localizationsDelegates,
...features_setting.L10n.localizationsDelegates,
],
supportedLocales: const [
...L10n.supportedLocales,
...L10nSetting.supportedLocales,
...features_setting.L10n.supportedLocales,
],
scaffoldMessengerKey: SnackBarManager.rootScaffoldMessengerKey,
routerConfig: ref.watch(routerProvider),
Expand Down
2 changes: 2 additions & 0 deletions mason.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,7 @@ bricks:
path: tools/bricks/cores_package_flutter
cores_package_dart:
path: tools/bricks/cores_package_dart
features_package:
path: tools/bricks/features_package
brick:
path: tools/bricks/brick
4 changes: 2 additions & 2 deletions packages/features/setting/l10n.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
arb-dir: assets/l10n
arb-dir: lib/src/l10n
output-dir: lib/src/gen/l10n
template-arb-file: app_ja.arb
output-localization-file: l10n.dart
output-class: L10nSetting
output-class: L10n
synthetic-package: false
preferred-supported-locales:
- ja
Expand Down
2 changes: 1 addition & 1 deletion packages/features/setting/lib/l10n.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 20 additions & 21 deletions packages/features/setting/lib/src/gen/l10n/l10n.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions packages/features/setting/lib/src/gen/l10n/l10n_en.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions packages/features/setting/lib/src/gen/l10n/l10n_ja.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/features/setting/lib/src/ui/setting_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class SettingPage extends ConsumerWidget {
final navigator = ref.watch(settingNavigatorProvider);
final currentThemeMode = ref.watch(themeModeNotifierProvider);
final buildConfig = ref.watch(buildConfigProvider);
final l10n = L10nSetting.of(context);
final l10n = L10n.of(context);

return Scaffold(
appBar: AppBar(
Expand Down
3 changes: 3 additions & 0 deletions tools/bricks/features_package/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 0.1.0

- TODO: Describe initial release.
39 changes: 39 additions & 0 deletions tools/bricks/features_package/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# features_package

[![Powered by Mason](https://img.shields.io/endpoint?url=https%3A%2F%2Ftinyurl.com%2Fmason-badge)](https://github.com/felangel/mason)

新しい feature パッケージを作成します.

## Getting Started 🚀

以下のコマンドを実行します。

```shell
mason make features_package
```

feature 名を尋ねられるため、回答します。
回答すると、以下の実行例のような構成のパッケージが `packages/features` 配下に作成されます。

```text
❯ mason make features_package
? What is feature name? (example: foo_bar) foo_bar
✓ Generated 16 files. (72ms)
created packages/features/foo_bar/test/foo_bar_test.dart
created packages/features/foo_bar/l10n.yaml
created packages/features/foo_bar/.metadata
created packages/features/foo_bar/README.md
created packages/features/foo_bar/pubspec.yaml
created packages/features/foo_bar/.gitignore
created packages/features/foo_bar/lib/ui.dart
created packages/features/foo_bar/lib/l10n.dart
created packages/features/foo_bar/lib/src/ui/components/foo_bar_text.dart
created packages/features/foo_bar/lib/src/ui/pages/foo/components/foo_text.dart
created packages/features/foo_bar/lib/src/ui/pages/foo/foo_page.dart
created packages/features/foo_bar/lib/src/ui/pages/bar/bar_page.dart
created packages/features/foo_bar/lib/src/ui/pages/bar/components/bar_text.dart
created packages/features/foo_bar/lib/src/l10n/features_foo_bar_ja.arb
created packages/features/foo_bar/lib/src/l10n/features_foo_bar_en.arb
created packages/features/foo_bar/build.yaml
✓ Compiled post_gen.dart (2.4s)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/

# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
build/

# Melos related
/pubspec_overrides.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
revision: "ef1af02aead6fe2414f3aafa5a61087b610e1332"
channel: "stable"

project_type: package
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# feature_{{feature_name.snakeCase()}} package
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
targets:
$default:
builders:
freezed:
# https://github.com/dart-lang/build/blob/master/docs/faq.md#how-do-i-avoid-running-builders-on-unnecessary-inputs
generate_for:
include:
- lib/{model,**/model}/**.dart
# https://github.com/google/json_serializable.dart/tree/master/json_serializable#build-configuration
json_serializable:
generate_for:
include:
- lib/{model,**/model}/**.dart
options:
field_rename: snake
# json のデシリアライズ時に発生する Exception を CheckedFromJsonException にまとめる
checked: true
riverpod_generator:
generate_for:
include:
- lib/{provider,**/provider}/**.dart
# https://github.com/dart-lang/source_gen#ignore_for_file
source_gen:combining_builder:
options:
ignore_for_file:
- type=lint
- duplicate_ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
arb-dir: lib/src/l10n
output-dir: lib/src/gen/l10n
template-arb-file: features_{{feature_name.snakeCase()}}_ja.arb
output-localization-file: l10n.dart
output-class: L10n
synthetic-package: false
preferred-supported-locales:
- ja
- en
header: '// ignore_for_file: type=lint'
nullable-getter: false
format: true

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"{{feature_name.camelCase()}}Text": "{{feature_name.pascalCase()}} Text",
"{{feature_name.camelCase()}}ListAppBarTitle": "{{feature_name.pascalCase()}} List",
"{{feature_name.camelCase()}}ListText": "{{feature_name.pascalCase()}} List Text",
"{{feature_name.camelCase()}}DetailAppBarTitle": "{{feature_name.pascalCase()}} Detail",
"{{feature_name.camelCase()}}DetailText": "{{feature_name.pascalCase()}} Detail Text"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"{{feature_name.camelCase()}}Text": "{{feature_name.pascalCase()}} テキスト",
"{{feature_name.camelCase()}}ListAppBarTitle": "{{feature_name.pascalCase()}} 一覧",
"{{feature_name.camelCase()}}ListText": "{{feature_name.pascalCase()}} 一覧 テキスト",
"{{feature_name.camelCase()}}DetailAppBarTitle": "{{feature_name.pascalCase()}} 詳細",
"{{feature_name.camelCase()}}DetailText": "{{feature_name.pascalCase()}} 詳細 テキスト"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:features_{{feature_name.snakeCase()}}/src/gen/l10n/l10n.dart';
import 'package:flutter/material.dart';

class {{feature_name.pascalCase()}}Text extends StatelessWidget {
const {{feature_name.pascalCase()}}Text({super.key});

@override
Widget build(BuildContext context) {
final l10n = L10n.of(context);

return Text(l10n.{{feature_name.camelCase()}}Text);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:features_{{feature_name.snakeCase()}}/src/gen/l10n/l10n.dart';
import 'package:flutter/material.dart';

class {{feature_name.pascalCase()}}DetailText extends StatelessWidget {
const {{feature_name.pascalCase()}}DetailText({super.key});

@override
Widget build(BuildContext context) {
final l10n = L10n.of(context);

return Text(l10n.{{feature_name.camelCase()}}DetailText);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:features_{{feature_name.snakeCase()}}/src/gen/l10n/l10n.dart';
import 'package:features_{{feature_name.snakeCase()}}/src/ui/components/{{feature_name.snakeCase()}}_text.dart';
import 'package:features_{{feature_name.snakeCase()}}/src/ui/pages/detail/components/{{feature_name.snakeCase()}}_detail_text.dart';
import 'package:flutter/material.dart';

class {{feature_name.pascalCase()}}DetailPage extends StatelessWidget {
const {{feature_name.pascalCase()}}DetailPage({super.key});

@override
Widget build(BuildContext context) {
final l10n = L10n.of(context);

return Scaffold(
appBar: AppBar(
title: Text(l10n.{{feature_name.camelCase()}}DetailAppBarTitle),
),
body: const SafeArea(
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
{{feature_name.pascalCase()}}Text(),
{{feature_name.pascalCase()}}DetailText(),
],
),
),
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:features_{{feature_name.snakeCase()}}/src/gen/l10n/l10n.dart';
import 'package:flutter/material.dart';

class {{feature_name.pascalCase()}}ListText extends StatelessWidget {
const {{feature_name.pascalCase()}}ListText({super.key});

@override
Widget build(BuildContext context) {
final l10n = L10n.of(context);

return Text(l10n.{{feature_name.camelCase()}}ListText);
}
}
Loading

0 comments on commit 0a21420

Please sign in to comment.