Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

セッション詳細画面の作成 #147

Merged
merged 29 commits into from
Sep 28, 2023
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5f256e1
feat: セッション関係のモデルを追加
daiki1003 Sep 1, 2023
ada8dcb
add: session_detail_pageの途中経過をPushしました。
Sep 9, 2023
0833925
Merge branch 'feature/timetable_models' into feature/session_detail_page
Sep 9, 2023
a41cfb7
add: Headerの追加・TODOを追加しました。
Sep 9, 2023
de2f079
add: 背景色を追記しました
Sep 9, 2023
43a0426
add: 必要な引数の記載・TODOの整理を行いました。
Sep 9, 2023
f19899e
fix: warningを修正しました
Sep 9, 2023
ed086d6
add: 遷移を仮に実装しました
Sep 17, 2023
901a3c2
Merge branch 'main' into feature/session_detail_page
Sep 17, 2023
dd2b673
add: Spacesを追加しました
Sep 17, 2023
81b2241
add: SectionHeaderの修正・SocialShareを使用しました
Sep 17, 2023
8905d17
add: タイムテーブルのUIを調整しました
Sep 17, 2023
bc299c8
add: 表示する内容の変更・TODOを追加しました。画面遷移を追記しました
Sep 17, 2023
2224bbf
add: 仮で必要なModelを作成しました(後で削除予定)
Sep 23, 2023
1d33472
add: UIの調整・引数の設定などを行いました
Sep 23, 2023
c6bb5bf
fix:背景色を変更しました。
Sep 27, 2023
ef32415
fix: Session詳細Widgetの上部と同様の実装なので 共通化しました
Sep 27, 2023
2cf1466
fix: time_table.dartをfeature/session_detailに移動しました。
Sep 27, 2023
a6f73e0
fix: DeskTop -> Desktop
Sep 27, 2023
47f3ffc
fix: 横幅計算は上流のCustomScrollView部分で行っているためwidthを削除しました。
Sep 27, 2023
97c1458
fix: Chip Widgetを使用して実装を修正しました。
Sep 27, 2023
33c0ec8
fix:OutlinedButtonを利用した修正を行いました。
Sep 27, 2023
5413c53
fix: elseを削除しても問題なさそうだったので修正しまいた。
Sep 27, 2023
564d5e7
fix: time_tableにborderをつけました
Sep 28, 2023
593698e
Merge branch 'feature/sesion' into feature/session_detail_page
Sep 28, 2023
aed8d46
add: Headerを共通なものに差し替えて、不必要な変数などを削除しました。
Sep 28, 2023
74e3a27
fix: 共通の部分をsession_detail.dartに記載位置の変更をしました。
Sep 28, 2023
17ea5a0
add: スポンサーの画像を入れた場合の画像の大きさや位置などを調整しました。
Sep 28, 2023
a46b57f
fix: TODOの文言を修正しました。
Sep 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions lib/app/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import 'package:confwebsite2023/features/header/data/header_item_button_data.dar
import 'package:confwebsite2023/features/header/ui/header_widget.dart';
import 'package:confwebsite2023/features/hero/ui/hero_section.dart';
import 'package:confwebsite2023/features/news/ui/news_section.dart';
import 'package:confwebsite2023/features/session/model/talk_user.dart';
import 'package:confwebsite2023/features/session_page/data/session_model.dart';
import 'package:confwebsite2023/features/session_page/session_detail/session_detail.dart';
import 'package:confwebsite2023/features/sponsor/ui/list/sponsors_section.dart';
import 'package:confwebsite2023/features/staff/ui/staff_header.dart';
import 'package:confwebsite2023/features/staff/ui/staff_table.dart';
Expand Down Expand Up @@ -71,6 +74,48 @@ class MainPage extends HookWidget {
title: 'Staff',
onPressed: () async => scrollToSection(sectionKeys.staff),
),
HeaderItemButtonData(
title: 'Session',
onPressed: () async {
YumNumm marked this conversation as resolved.
Show resolved Hide resolved
const sessionModel = SessionModel(
sessionName: 'Session 1-1',
title: 'DartによるBFF構築・運用 〜dart_frog×melos〜',
user: TalkUser(
name: 'もぐもぐ',
thumbnailUrl:
'https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Shoyu_ramen%2C_at_Kasukabe_Station_%282014.05.05%29_1.jpg/260px-Shoyu_ramen%2C_at_Kasukabe_Station_%282014.05.05%29_1.jpg',
),
contents:
'Dart言語はFlutterとともにアプリフロントエンドの領域で広く認知されてきました。しかし、バックエンドにおける実践的な活用例はまだまだ少ないのが現状です。\n'
'とはいえ、Flutterアプリ向けのBFF(Backend For Frontend)をDartで実装することは、型宣言を共通化することができ、生産性を飛躍的に向上させるアプローチとなり得ます。\n'
'本セッションでは、Dartをバックエンド・BFFに採用する背景から、dart_frogというパッケージの特徴と、マルチパッケージ管理ツールであるmelos を利用して、Flutterでのアプリ構築を加速させる過程について深掘りします。更に、実際の案件でdart_frogとmelosを導入していく過程、そしてそれをどのようなプロジェクトに組み込んだのかの経験談を交えながら、Dartバックエンド・BFFとしての魅力と、それを実現する具体的な手法をお伝えます。\n\n'
'想定視聴者\n\n'
'・バックエンド・BFFにDartを採用することを検討している開発者\n'
'・BFFの設計や実装に興味がある方\n'
'・dart_frog 等のDartのバックエンド関連の技術に興味を持つエンジニア\n'
'・melos を用いてマルチパッケージ管理を楽にしたいエンジニア\n'
' 実際のプロジェクトでの技術導入の経験談やノウハウを知りたい方',
time: '2023年11月10日:11:10~11:15(40分)',
trackName: 'Track 1',
twitter: 'YumNumm',
isSponsor: false,
// sponsorName: '株式会社ゆめみ',
// sponsorImage:'https://yumemi.co.jp/grow-with-new-logo/img/common/logo_new.svg',
tweet:
'https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Ffortee.jp%2F&ref_src=twsrc%5Etfw%7Ctwcamp%5Ebuttonembed%7Ctwterm%5Eshare%7Ctwgr%5E&text=Dart%E3%81%AB%E3%82%88%E3%82%8BBFF%E6%A7%8B%E7%AF%89%E3%83%BB%E9%81%8B%E7%94%A8%20%E3%80%9Cdart_frog%C3%97melos%E3%80%9C%20by%20%E3%82%82%E3%81%90%E3%82%82%E3%81%90%20%7C%20%E3%83%88%E3%83%BC%E3%82%AF%20%7C%20FlutterKaigi%202023%20%23FlutterKaigi%20-%20fortee.jp&url=https%3A%2F%2Ffortee.jp%2Fflutterkaigi-2023%2Fproposal%2F972ffbac-422b-4d4b-9686-f59c4438da04',
forteeUrl:
'https://fortee.jp/flutterkaigi-2023/proposal/972ffbac-422b-4d4b-9686-f59c4438da04',
);

await Navigator.push<void>(
context,
MaterialPageRoute(
builder: (context) =>
const SessionDetail(sessionModel: sessionModel),
),
);
},
),
];

return Scaffold(
Expand Down
1 change: 1 addition & 0 deletions lib/core/theme/dimension.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:flutter/widgets.dart';
class Spaces {
const Spaces._();

static const SizedBox horizontal_4 = SizedBox(width: 4);
static const SizedBox horizontal_8 = SizedBox(width: 8);
static const SizedBox horizontal_10 = SizedBox(width: 10);
static const SizedBox horizontal_12 = SizedBox(width: 12);
Expand Down
21 changes: 21 additions & 0 deletions lib/features/session/model/session.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import 'package:confwebsite2023/features/session/model/talk.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

part 'session.freezed.dart';

@freezed
class Session with _$Session {
const factory Session.organizer({
required String title,
required DateTime startsAt,
required DateTime endsAt,
}) = OrganizerSession;

const factory Session.talks({
required List<Talk> talks,
required DateTime startsAt,
required DateTime endsAt,
}) = TalksSession;

const factory Session.lunch() = LunchSession;
}
Loading