import 'package:flutter/material.dart'; void main() { runApp(const SukjenogiApp()); } class SukjenogiApp extends StatelessWidget { const SukjenogiApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: '숙제노기', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo), useMaterial3: true, ), home: const HomeScreen(), ); } } class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { final tiles = [ _HomeTile(icon: Icons.login, label: '로그인', onTap: () {}), _HomeTile(icon: Icons.person, label: '캐릭터', onTap: () {}), _HomeTile(icon: Icons.dashboard, label: '대시보드', onTap: () {}), _HomeTile(icon: Icons.assignment, label: '숙제관리', onTap: () {}), _HomeTile(icon: Icons.group, label: '친구', onTap: () {}), _HomeTile(icon: Icons.settings, label: '설정', onTap: () {}), ]; return Scaffold( appBar: AppBar( title: const Text('숙제노기 홈'), centerTitle: true, ), body: Padding( padding: const EdgeInsets.all(16), child: GridView.count( crossAxisCount: 2, crossAxisSpacing: 16, mainAxisSpacing: 16, children: tiles, ), ), ); } } class _HomeTile extends StatelessWidget { final IconData icon; final String label; final VoidCallback onTap; const _HomeTile({ required this.icon, required this.label, required this.onTap, }); @override Widget build(BuildContext context) { return GestureDetector( onTap: onTap, child: Container( decoration: BoxDecoration( color: Colors.indigo.shade50, borderRadius: BorderRadius.circular(16), ), padding: const EdgeInsets.all(20), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(icon, size: 48, color: Colors.indigo), const SizedBox(height: 12), Text(label, style: const TextStyle(fontSize: 16)), ], ), ), ); } }