- config.dart의 baseUrl/webVapidKey와 학교 이름을 String.fromEnvironment로 전환 - 기본값은 기존 백산고 값 그대로라 인자 없이 빌드하면 지금과 동일하게 동작 - 다른 학교는 --dart-define=BASE_URL=...=SCHOOL_NAME=...=WEB_VAPID_KEY=...로 빌드
35 lines
1.2 KiB
Dart
35 lines
1.2 KiB
Dart
// 🚪 앱 진입점. Firebase/백그라운드 감시 서비스 초기화 후 로그인 화면으로 시작한다.
|
|
// 실제 화면 구현은 lib/screens/ 폴더, 공통 설정은 lib/config.dart 참고.
|
|
import 'dart:io';
|
|
import 'package:flutter/foundation.dart' show kIsWeb;
|
|
import 'package:flutter/material.dart';
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
import 'firebase_options.dart';
|
|
import 'config.dart';
|
|
import 'pocket_watch_service.dart';
|
|
import 'ui/login_screen.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
|
|
await printFCMToken();
|
|
if (!kIsWeb && Platform.isAndroid) {
|
|
await initializePocketWatchService();
|
|
}
|
|
runApp(const SchoolAttendanceApp());
|
|
}
|
|
|
|
class SchoolAttendanceApp extends StatelessWidget {
|
|
const SchoolAttendanceApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
debugShowCheckedModeBanner: false,
|
|
title: '$schoolName 학생 도우미',
|
|
theme: ThemeData(primarySwatch: Colors.indigo, useMaterial3: true),
|
|
home: const LoginScreen(), // 🚪 앱을 켜면 무조건 로그인 화면이 먼저 등장합니다.
|
|
);
|
|
}
|
|
}
|