From d42fcb710219b21e6d120bfbc3a4d1dda8611cab Mon Sep 17 00:00:00 2001 From: girinb Date: Tue, 15 Jul 2025 21:18:57 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=EC=B2=B4=EC=A0=81=EC=9D=B8=20?= =?UTF-8?q?=EC=8B=9C=EC=8A=A4=ED=85=9C=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/src/main/AndroidManifest.xml | 2 +- .../res/drawable-v21/launch_background.xml | 15 +- .../main/res/drawable/launch_background.xml | 15 +- .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 3787 bytes .../app/src/main/res/values-night/styles.xml | 4 + android/app/src/main/res/values/styles.xml | 4 + assets/icon/icon.png | Bin 0 -> 26506 bytes ios/Runner.xcodeproj/project.pbxproj | 4 +- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 72562 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 846 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 1842 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 2958 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 1307 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 2952 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 4454 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 1842 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 4174 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 5156 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 5156 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 6415 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 3644 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 5605 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 6975 bytes .../LaunchImage.imageset/Contents.json | 10 +- .../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 16762 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 38693 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 59611 bytes ios/Runner/Base.lproj/LaunchScreen.storyboard | 17 +- ios/Runner/Info.plist | 92 ++++++----- lib/career_page.dart | 2 +- lib/common/data/case_study_plan.dart | 23 +++ lib/{ => common/data}/course.dart | 0 lib/{ => common/data}/job.dart | 0 lib/common/data/new_study.dart | 22 +++ lib/common/data/plan_detail_item.dart | 29 ++++ lib/common/data/upcoming_study.dart | 23 +++ lib/common/widgets/course_card.dart | 2 +- lib/common/widgets/job_card.dart | 2 +- lib/common/widgets/now_study_class_card.dart | 91 +++++++++++ lib/common/widgets/upcoming_class_card.dart | 4 +- lib/home_page.dart | 154 +++++++++--------- lib/plan_page.dart | 27 +-- lib/plan_page_detail.dart | 31 +--- pubspec.lock | 128 +++++++++++++++ pubspec.yaml | 23 ++- 45 files changed, 507 insertions(+), 217 deletions(-) create mode 100644 assets/icon/icon.png create mode 100644 lib/common/data/case_study_plan.dart rename lib/{ => common/data}/course.dart (100%) rename lib/{ => common/data}/job.dart (100%) create mode 100644 lib/common/data/new_study.dart create mode 100644 lib/common/data/plan_detail_item.dart create mode 100644 lib/common/data/upcoming_study.dart create mode 100644 lib/common/widgets/now_study_class_card.dart diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b03017a..6618b63 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -3,7 +3,7 @@ + android:icon="@mipmap/launcher_icon"> - - - - - + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml index 304732f..3cc4948 100644 --- a/android/app/src/main/res/drawable/launch_background.xml +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..c25abfde3e275e56f71dfe316f1fe98d17ceeaac 100644 GIT binary patch literal 3787 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 literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index 06952be..dbc9ea9 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -5,6 +5,10 @@ @drawable/launch_background + false + false + false + shortEdges @drawable/launch_background + false + false + false + shortEdges BHg{g1+0Kp6A)VM)yqLP*iL2yo!F1dP!>Tq$mjzF_+O=JdG3wKn37Sk`Pa%r zpdxJ6Tr+V`%ST7;oLbSD7jeHyHw6C~Gv+V{4%0W_?8hun);S{@J^zta_x6MJrNu%l zIRfUYJClM6op^=aHuYONXq@ug$<>m7bIp-^0G$BLg&InUB<}ogoT3?ZZ9&? z#7+GuWQCwYcQHLYzb6UiZWH8sd}1}1vHm9^VQ^f1e`L68%=}BQ%x**M3gVY6f%%y_H8;*Xikt@e zy1LBB;Q#s;1!m@eG1aLF5+o?_>i}MR$_D-$+WYz8N4BsrGc*72W8R(Y?(V*VzWD@P Z>Iq|#+@P_6->CqQ{3$0|C9LcJ{{fKXB`E*^ literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..ccaaee0fd826f512f4e2be9cda36eb95396f3787 100644 GIT binary patch literal 38693 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 Wy@jqwshL3lwP~sAsiEPI!~X@gxO9O4 literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..d364830f8d533576e500e73ba99e4ec1096c7d93 100644 GIT binary patch literal 59611 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 Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard index f2e259c..b61fcdd 100644 --- a/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -16,13 +16,19 @@ - - + + - - + + + + + + + + @@ -32,6 +38,7 @@ - + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 589e59a..56db0c4 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -1,49 +1,51 @@ - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Csp2 - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - csp2 - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Csp2 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + csp2 + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + UIStatusBarHidden + + diff --git a/lib/career_page.dart b/lib/career_page.dart index e3fe3cc..144f4e7 100644 --- a/lib/career_page.dart +++ b/lib/career_page.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:csp2/common/widgets/job_card.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; -import 'package:csp2/job.dart'; +import 'package:csp2/common/data/job.dart'; class JobsPage extends StatefulWidget { const JobsPage({super.key}); diff --git a/lib/common/data/case_study_plan.dart b/lib/common/data/case_study_plan.dart new file mode 100644 index 0000000..bf5e9ec --- /dev/null +++ b/lib/common/data/case_study_plan.dart @@ -0,0 +1,23 @@ + +class CaseStudyPlan { + final String planId; + final String planTitle; + final String planTeacher; + final String thumbnail; + + CaseStudyPlan({ + required this.planId, + required this.planTitle, + required this.planTeacher, + required this.thumbnail, + }); + + factory CaseStudyPlan.fromJson(Map json) { + return CaseStudyPlan( + planId: json['casestudy lesson id'] ?? '아이디 없음', + planTitle: json['course_name'] ?? '제목 없음', + planTeacher: json['planTeacher'] ?? '', + thumbnail: json['course_thumbnail'] ?? '', + ); + } +} diff --git a/lib/course.dart b/lib/common/data/course.dart similarity index 100% rename from lib/course.dart rename to lib/common/data/course.dart diff --git a/lib/job.dart b/lib/common/data/job.dart similarity index 100% rename from lib/job.dart rename to lib/common/data/job.dart diff --git a/lib/common/data/new_study.dart b/lib/common/data/new_study.dart new file mode 100644 index 0000000..2b8b419 --- /dev/null +++ b/lib/common/data/new_study.dart @@ -0,0 +1,22 @@ +class NewStudy { + final String planId; + final String planTitle; + final String planTeacher; + final String thumbnail; + + NewStudy({ + required this.planId, + required this.planTitle, + required this.planTeacher, + required this.thumbnail, + }); + + factory NewStudy.fromJson(Map json) { + return NewStudy( + planId: json['casestudy lesson id'] ?? '아이디 없음', + planTitle: json['course_name'] ?? '제목 없음', + planTeacher: json['course_description'] ?? '선생님', + thumbnail: json['course_thumbnail'] ?? '', + ); + } +} \ No newline at end of file diff --git a/lib/common/data/plan_detail_item.dart b/lib/common/data/plan_detail_item.dart new file mode 100644 index 0000000..afd3565 --- /dev/null +++ b/lib/common/data/plan_detail_item.dart @@ -0,0 +1,29 @@ + +class PlanDetailItem { + final String lessonId; + final String lessonTag; + final String lessonUrl; + final String thumbnail; + final String lessonName; + final String lessonDescription; + + PlanDetailItem({ + required this.lessonId, + required this.lessonTag, + required this.lessonUrl, + required this.thumbnail, + required this.lessonName, + required this.lessonDescription, + }); + + factory PlanDetailItem.fromJson(Map json) { + return PlanDetailItem( + lessonId: json['casestudy lesson id'] ?? 'ID 없음', + lessonTag: json['lesson tag'] ?? '태그 없음', + lessonUrl: json['lesson url'] ?? 'URL 없음', + thumbnail: json['thumbnail'] ?? '', + lessonName: json['lesson_name'] ?? '이름 없음', + lessonDescription: json['lesson_description'] ?? '설명 없음', + ); + } +} diff --git a/lib/common/data/upcoming_study.dart b/lib/common/data/upcoming_study.dart new file mode 100644 index 0000000..0720294 --- /dev/null +++ b/lib/common/data/upcoming_study.dart @@ -0,0 +1,23 @@ + +class UpcomingStudy { + final String planId; + final String planTitle; + final String planTeacher; + final String thumbnail; + + UpcomingStudy({ + required this.planId, + required this.planTitle, + required this.planTeacher, + required this.thumbnail, + }); + + factory UpcomingStudy.fromJson(Map json) { + return UpcomingStudy( + planId: json['casestudy lesson id'] ?? '아이디 없음', + planTitle: json['course_name'] ?? '제목 없음', + planTeacher: json['course_description'] ?? '선생님', + thumbnail: json['course_thumbnail'] ?? '', + ); + } +} diff --git a/lib/common/widgets/course_card.dart b/lib/common/widgets/course_card.dart index d69f4bc..2f2c1de 100644 --- a/lib/common/widgets/course_card.dart +++ b/lib/common/widgets/course_card.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:csp2/course.dart'; +import 'package:csp2/common/data/course.dart'; class CourseCard extends StatelessWidget { final Course course; diff --git a/lib/common/widgets/job_card.dart b/lib/common/widgets/job_card.dart index 133b667..cc7e296 100644 --- a/lib/common/widgets/job_card.dart +++ b/lib/common/widgets/job_card.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:csp2/job.dart'; +import 'package:csp2/common/data/job.dart'; class JobCard extends StatelessWidget { final Job job; diff --git a/lib/common/widgets/now_study_class_card.dart b/lib/common/widgets/now_study_class_card.dart new file mode 100644 index 0000000..a01272b --- /dev/null +++ b/lib/common/widgets/now_study_class_card.dart @@ -0,0 +1,91 @@ +import 'package:flutter/material.dart'; +import '../data/new_study.dart'; // NewStudy 모델을 import 합니다. + +class StudyClassCard extends StatelessWidget { + final NewStudy plan; + final VoidCallback onTap; + + const StudyClassCard({ + super.key, + required this.plan, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + width: MediaQuery.of(context).size.width / 2, // 화면 너비의 절반으로 설정 + child: InkWell( + onTap: onTap, + child: Card( + margin: const EdgeInsets.only(right: 12.0), // 항목 간의 간격 조정 + elevation: 2.0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5.0)), + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (plan.thumbnail.isNotEmpty) + Expanded( + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: Image.network( + plan.thumbnail, + width: double.infinity, + fit: BoxFit.contain, + loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent? loadingProgress) { + if (loadingProgress == null) return child; + return Center( + child: CircularProgressIndicator( + value: loadingProgress.expectedTotalBytes != null + ? loadingProgress.cumulativeBytesLoaded / loadingProgress.expectedTotalBytes! + : null, + ), + ); + }, + errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) { + return const Center(child: Icon(Icons.broken_image, color: Colors.grey, size: 50)); + }, + ), + ), + ) + else + Expanded( + child: Container( + color: Colors.grey[200], + child: const Center(child: Text('No Image', style: TextStyle(color: Colors.grey))) + ), + ), + // const SizedBox(height: 5.0), + SizedBox( + height: 70, // 텍스트 영역의 고정 높이 설정 (두 줄 텍스트를 위한 충분한 공간) + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 48.0, // plan.planTitle이 항상 두 줄 공간을 차지하도록 고정 + child: Text( + plan.planTitle, + style: Theme.of(context).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold), + overflow: TextOverflow.ellipsis, + maxLines: 2, + ), + ), + const SizedBox(height: 4.0), + Text( + plan.planTeacher, + style: Theme.of(context).textTheme.bodySmall?.copyWith(color: Colors.grey[600]), + maxLines: 1, + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/common/widgets/upcoming_class_card.dart b/lib/common/widgets/upcoming_class_card.dart index 1ec521c..bfe142c 100644 --- a/lib/common/widgets/upcoming_class_card.dart +++ b/lib/common/widgets/upcoming_class_card.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import '../../home_page.dart'; // CaseStudyPlan 모델을 import 합니다. +import '../data/upcoming_study.dart'; // UpcomingStudy 모델을 import 합니다. class UpcomingClassCard extends StatelessWidget { - final CaseStudyPlan plan; + final UpcomingStudy plan; final VoidCallback onTap; const UpcomingClassCard({ diff --git a/lib/home_page.dart b/lib/home_page.dart index e76a14f..002bfbf 100644 --- a/lib/home_page.dart +++ b/lib/home_page.dart @@ -3,34 +3,13 @@ import 'package:http/http.dart' as http; import 'dart:convert'; import 'dart:async'; // Timer를 사용하기 위해 추가 import 'package:intl/intl.dart'; -import 'package:csp2/common/widgets/upcoming_class_card.dart'; -import 'package:csp2/common/widgets/course_card.dart'; -import 'package:csp2/course.dart'; // Course 클래스 import -import '../plan_page.dart'; // PlanPage import - -// CaseStudyPlan 클래스 (변경 없음) -class CaseStudyPlan { - final String planId; - final String planTitle; - final String planTeacher; - final String thumbnail; - - CaseStudyPlan({ - required this.planId, - required this.planTitle, - required this.planTeacher, - required this.thumbnail, - }); - - factory CaseStudyPlan.fromJson(Map json) { - return CaseStudyPlan( - planId: json['casestudy lesson id'] ?? '아이디 없음', - planTitle: json['course_name'] ?? '제목 없음', - planTeacher: json['course_description'] ?? '선생님', - thumbnail: json['course_thumbnail'] ?? '', - ); - } -} +import 'common/widgets/upcoming_class_card.dart'; +import 'common/widgets/course_card.dart'; +import 'common/data/course.dart'; // Course 클래스 import +import 'plan_page.dart'; // PlanPage import +import 'common/widgets/now_study_class_card.dart'; +import 'common/data/upcoming_study.dart'; +import 'common/data/new_study.dart'; // 새로운 추천 플랜 모델 class RecommendPlan { @@ -69,7 +48,8 @@ class HomePage extends StatefulWidget { } class _HomePageState extends State { - late Future> _caseStudyPlans; + late Future> _upcomingStudies; + late Future> _newStudies; late Future> _newCoursesFuture; // New: Future for new courses DateTime _currentTime = DateTime.now(); String _currentTimeZone = 'Loading timezone...'; @@ -94,8 +74,8 @@ class _HomePageState extends State { @override void initState() { super.initState(); - _caseStudyPlans = _fetchCaseStudyPlans(); - + _upcomingStudies = _fetchUpcomingStudies(); + _newStudies = _fetchNewStudies(); _newCoursesFuture = _fetchNewCourses(); // Initialize new courses future _fetchTimezone(); _clockStream = Stream.periodic(const Duration(seconds: 1), (_) { @@ -114,7 +94,28 @@ class _HomePageState extends State { super.dispose(); } - Future> _fetchCaseStudyPlans() async { + Future> _fetchUpcomingStudies() async { + final response = await http + .get(Uri.parse('https://helloworld6-ad2uqhckxq-uc.a.run.app')); + if (response.statusCode == 200) { + final Map decodedJson = json.decode(response.body); + if (decodedJson.containsKey('data') && decodedJson['data'] is List) { + final List plansJson = decodedJson['data']; + return plansJson + .map((jsonItem) => + UpcomingStudy.fromJson(jsonItem as Map)) + .toList(); + } else { + throw Exception( + 'Invalid data format: "data" field is missing or not a list.'); + } + } else { + throw Exception( + 'Failed to load upcoming studies. Status Code: ${response.statusCode}'); + } + } + + Future> _fetchNewStudies() async { final response = await http .get(Uri.parse('https://helloworld2-ad2uqhckxq-uc.a.run.app')); if (response.statusCode == 200) { @@ -123,7 +124,7 @@ class _HomePageState extends State { final List plansJson = decodedJson['data']; return plansJson .map((jsonItem) => - CaseStudyPlan.fromJson(jsonItem as Map)) + NewStudy.fromJson(jsonItem as Map)) .toList(); } else { throw Exception( @@ -131,13 +132,13 @@ class _HomePageState extends State { } } else { throw Exception( - 'Failed to load case study plans. Status Code: ${response.statusCode}'); + 'Failed to load new studies. Status Code: ${response.statusCode}'); } } // New: Fetch new courses from API Future> _fetchNewCourses() async { - final response = await http.get(Uri.parse('https://helloworld5-ad2uqhckxq-uc.a.run.app/')); + final response = await http.get(Uri.parse('https://helloworld5-ad2uqhckxq-uc.a.run.app')); if (response.statusCode == 200) { final Map decodedJson = json.decode(response.body); if (decodedJson.containsKey('data') && decodedJson['data'] is List) { @@ -148,7 +149,8 @@ class _HomePageState extends State { } else { throw Exception('Invalid data format for new courses: "data" field is missing or not a list.'); } - } else { + } + else { throw Exception('Failed to load new courses. Status Code: ${response.statusCode}'); } } @@ -338,8 +340,8 @@ class _HomePageState extends State { ), SizedBox( height: 200, // 가로 리스트의 높이를 줄입니다. - child: FutureBuilder>( - future: _caseStudyPlans, + child: FutureBuilder>( + future: _upcomingStudies, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return const Center(child: CircularProgressIndicator()); @@ -415,43 +417,45 @@ class _HomePageState extends State { padding: EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 8.0), child: Text('Trending On New Study', style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)), ), - SizedBox( - height: 200, // 가로 리스트의 높이를 줄입니다. - child: FutureBuilder>( - future: _caseStudyPlans, - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const Center(child: CircularProgressIndicator()); - } else if (snapshot.hasError) { - return Center(child: Padding( - padding: const EdgeInsets.all(16.0), - child: Text('Error loading upcoming classes: ${snapshot.error}', textAlign: TextAlign.center), - )); - } else if (!snapshot.hasData || snapshot.data!.isEmpty) { - return const Center(child: Text('No upcoming classes available.')); - } else { - final plans = snapshot.data!; - return ListView.builder( - scrollDirection: Axis.horizontal, // 가로 스크롤로 변경 - padding: const EdgeInsets.only(left: 10.0, right: 5.0, top: 8.0, bottom: 5.0), - itemCount: plans.length, - itemBuilder: (context, index) { - final plan = plans[index]; - return Align( - alignment: Alignment.topCenter, // 항목을 상단 중앙에 정렬 - child: UpcomingClassCard( - plan: plan, - onTap: () { - widget.onNavigateToPlanTab(1); - }, - ), - ); - }, - ); - } - }, - ), + FutureBuilder>( + future: _newStudies, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } else if (snapshot.hasError) { + return Center(child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text('Error loading new studies: ${snapshot.error}', textAlign: TextAlign.center), + )); + } else if (!snapshot.hasData || snapshot.data!.isEmpty) { + return const Center(child: Text('No new studies available.')); + } else { + final plans = snapshot.data!; + return GridView.builder( + shrinkWrap: true, // Column 안에 GridView를 넣을 때 필요 + physics: const NeverScrollableScrollPhysics(), // 부모 SingleChildScrollView와 스크롤 충돌 방지 + padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 8.0), + itemCount: plans.length, + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, // 한 줄에 2개씩 + crossAxisSpacing: 10.0, // 가로 간격 + mainAxisSpacing: 10.0, // 세로 간격 + childAspectRatio: 1.0, // 아이템의 가로세로 비율 (조정 필요 시 변경) + ), + itemBuilder: (context, index) { + final plan = plans[index]; + return StudyClassCard( + plan: plan, + onTap: () { + // widget.onNavigateToPlanTab(1); + }, + ); + }, + ); + } + }, ), + ], ), ); @@ -568,4 +572,4 @@ class _HomePageState extends State { ), ); } -} +} \ No newline at end of file diff --git a/lib/plan_page.dart b/lib/plan_page.dart index d7168e1..4d31804 100644 --- a/lib/plan_page.dart +++ b/lib/plan_page.dart @@ -2,32 +2,7 @@ import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; import 'plan_page_detail.dart'; // <<< plan_page_detail.dart 파일을 import 합니다. - -// HomePage에서 사용하던 CaseStudyPlan 모델을 PlanPage에서도 사용하거나, -// PlanPage에 필요한 별도의 데이터 모델을 정의할 수 있습니다. -// 여기서는 동일한 모델을 재사용한다고 가정합니다. -class CaseStudyPlan { - final String planId; - final String planTitle; - final String planTeacher; - final String thumbnail; - - CaseStudyPlan({ - required this.planId, - required this.planTitle, - required this.planTeacher, - required this.thumbnail, - }); - - factory CaseStudyPlan.fromJson(Map json) { - return CaseStudyPlan( - planId: json['casestudy lesson id'] ?? '아이디 없음', - planTitle: json['course_name'] ?? '제목 없음', - planTeacher: json['planTeacher'] ?? '', - thumbnail: json['course_thumbnail'] ?? '', - ); - } -} +import 'common/data/case_study_plan.dart'; class PlanPage extends StatefulWidget { const PlanPage({super.key}); diff --git a/lib/plan_page_detail.dart b/lib/plan_page_detail.dart index 15540e7..d20a9ad 100644 --- a/lib/plan_page_detail.dart +++ b/lib/plan_page_detail.dart @@ -4,36 +4,7 @@ import 'dart:convert'; import 'main.dart'; import 'youtube_player_page.dart'; // YoutubePlayerPage import import 'common/widgets/custom_bottom_nav_bar.dart'; - -// PlanDetailItem 클래스 (이전과 동일) -class PlanDetailItem { - final String lessonId; - final String lessonTag; - final String lessonUrl; - final String thumbnail; - final String lessonName; - final String lessonDescription; - - PlanDetailItem({ - required this.lessonId, - required this.lessonTag, - required this.lessonUrl, - required this.thumbnail, - required this.lessonName, - required this.lessonDescription, - }); - - factory PlanDetailItem.fromJson(Map json) { - return PlanDetailItem( - lessonId: json['casestudy lesson id'] ?? 'ID 없음', - lessonTag: json['lesson tag'] ?? '태그 없음', - lessonUrl: json['lesson url'] ?? 'URL 없음', - thumbnail: json['thumbnail'] ?? '', - lessonName: json['lesson_name'] ?? '이름 없음', - lessonDescription: json['lesson_description'] ?? '설명 없음', - ); - } -} +import 'common/data/plan_detail_item.dart'; class PlanPageDetail extends StatefulWidget { const PlanPageDetail({ diff --git a/pubspec.lock b/pubspec.lock index 98190ee..a50a01e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,30 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + ansicolor: + dependency: transitive + description: + name: ansicolor + sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" + url: "https://pub.dev" + source: hosted + version: "2.0.3" + archive: + dependency: transitive + description: + name: archive + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" async: dependency: transitive description: @@ -25,6 +49,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c + url: "https://pub.dev" + source: hosted + version: "0.4.2" clock: dependency: transitive description: @@ -49,6 +89,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" cupertino_icons: dependency: "direct main" description: @@ -142,6 +190,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.0" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" flutter_lints: dependency: "direct dev" description: @@ -150,6 +206,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_native_splash: + dependency: "direct dev" + description: + name: flutter_native_splash + sha256: "8321a6d11a8d13977fa780c89de8d257cce3d841eecfb7a4cadffcc4f12d82dc" + url: "https://pub.dev" + source: hosted + version: "2.4.6" flutter_test: dependency: "direct dev" description: flutter @@ -168,6 +232,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.2.1" + html: + dependency: transitive + description: + name: html + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" + url: "https://pub.dev" + source: hosted + version: "0.15.6" http: dependency: "direct main" description: @@ -184,6 +256,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + url: "https://pub.dev" + source: hosted + version: "4.5.4" intl: dependency: "direct main" description: @@ -192,6 +272,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.20.2" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -304,6 +392,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + url: "https://pub.dev" + source: hosted + version: "6.1.0" platform: dependency: transitive description: @@ -320,6 +416,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" sky_engine: dependency: transitive description: flutter @@ -381,6 +485,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" vector_math: dependency: transitive description: @@ -413,6 +525,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" youtube_player_flutter: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 1a6242e..9d6d653 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,8 +6,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter +# followed by an optional build number separated by a +.# Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # In Android, build-name is used as versionName while build-number used as versionCode. # Read more about Android versioning at https://developer.android.com/studio/publish/versioning @@ -42,6 +41,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter + flutter_native_splash: ^2.3.11 # 최신 버전으로 추가 + flutter_launcher_icons: ^0.13.1 # 이 줄을 추가합니다. # The "flutter_lints" package below contains a set of recommended lints to # encourage good coding practices. The lint set provided by the package is @@ -62,9 +63,8 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + assets: + - assets/splash/ # 스플래시 이미지 폴더 추가 # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/to/resolution-aware-images @@ -91,3 +91,16 @@ flutter: # # For details regarding fonts from package dependencies, # see https://flutter.dev/to/font-from-package + +flutter_native_splash: + color: "#ffffff" + image: assets/splash/splash.png + android: true + ios: true + web: false + +flutter_launcher_icons: + android: "launcher_icon" + ios: true + image_path: "assets/icon/icon.png" + min_sdk_android: 21 # android min SDK \ No newline at end of file