[Flutter 입문] 기본 레이아웃 구성(3): 앱 설정 및 최적화

김동연·2025년 3월 27일

3. 앱 설정 및 최적화

  • Flutter 앱을 개발할 때 테마 설정, 성능 최적화, 디버깅 및 배포는 매우 중요한 요소입니다.
  • 이 섹션에서는 앱의 설정 및 최적화 방법을 다룹니다.

📌 3-1. 다크모드 및 테마 설정

  • Flutter에서는 ThemeData를 사용하여 앱 전체의 스타일을 설정할 수 있습니다.
  • 다크모드를 지원하려면 ThemeData.light()ThemeData.dark()를 활용해야 합니다.
  • 또한, GetXProvider를 사용하여 테마를 동적으로 변경할 수도 있습니다.

기본 테마 설정

MaterialApp(
  theme: ThemeData.light(), // 기본 밝은 테마
  darkTheme: ThemeData.dark(), // 다크 테마 지원
  themeMode: ThemeMode.system, // 시스템 설정에 따라 자동 변경
)

GetX를 활용한 테마 변경

class ThemeController extends GetxController {
  RxBool isDarkMode = false.obs;

  void toggleTheme() {
    isDarkMode.value = !isDarkMode.value;
    Get.changeThemeMode(isDarkMode.value ? ThemeMode.dark : ThemeMode.light);
  }
}

// 사용 예제
ElevatedButton(
  onPressed: () => Get.find<ThemeController>().toggleTheme(),
  child: Text("테마 변경"),
)

🔹 주요 속성

속성설명
ThemeData.light()기본 밝은 테마
ThemeData.dark()다크 테마 설정
ThemeMode.system시스템 설정을 따라감
Get.changeThemeMode(ThemeMode.dark)GetX를 활용한 테마 변경

📌 3-2. 성능 최적화

  • Flutter 앱의 성능을 최적화하는 방법에는 여러 가지가 있습니다.
  • 주요 기법으로 불필요한 위젯 재생성 방지, 효율적인 리스트 사용, 위젯의 재렌더링 최소화 등이 있습니다.

✅ 1. const 키워드 활용

  • 위젯을 const로 선언하면 불필요한 위젯 재생성을 방지할 수 있습니다.
const Text("이 텍스트는 재생성되지 않음")

✅ 2. RepaintBoundary 활용

  • 화면 전체를 다시 그리는 대신 특정 위젯만 다시 그리도록 설정할 수 있습니다.
RepaintBoundary(
  child: Container(
    width: 100,
    height: 100,
    color: Colors.red,
  ),
)

✅ 3. ListView.builder 활용

  • ListView.builder보이는 항목만 렌더링하여 성능을 최적화합니다.
ListView.builder(
  itemCount: 1000, // 많은 데이터도 성능 저하 없이 처리 가능
  itemBuilder: (context, index) {
    return ListTile(title: Text("아이템 $index"));
  },
)

✅ 4. Flutter DevTools를 사용한 성능 분석

Flutter DevTools를 활용하면 앱의 프레임 속도, CPU 사용량, 메모리 사용량 등을 분석할 수 있습니다.

  • 사용 방법
    1. flutter run --profile 명령어 실행
    2. flutter pub global activate devtools
    3. flutter pub global run devtools 실행 후 브라우저에서 확인

🔹 주요 성능 최적화 기법

기법설명
const 사용불필요한 위젯 재생성 방지
RepaintBoundary특정 위젯만 다시 그림
ListView.builder효율적인 리스트 렌더링
Flutter DevTools성능 분석 및 디버깅

📌 3-3. 디버깅 및 배포

  • Flutter에서 디버깅 및 배포를 효율적으로 수행하는 방법을 알아봅니다.

✅ 1. Flutter DevTools 활용

  • Flutter에서 UI 디버깅 및 성능 분석을 위해 Flutter DevTools를 사용합니다.
debugPrint("디버깅 메시지 출력")

✅ 2. Debug 모드에서 배너 제거

  • Flutter 앱 실행 시 기본적으로 "Debug" 배너가 표시됩니다.
  • 이를 제거하려면 MaterialAppdebugShowCheckedModeBanner 속성을 false로 설정하면 됩니다.
MaterialApp(
  debugShowCheckedModeBanner: false,
)

✅ 3. 안드로이드 및 iOS 배포

  • Flutter 앱을 Android 및 iOS에 배포하는 방법입니다.

🔹 안드로이드 배포

  1. flutter build apk → APK 파일 생성
  2. flutter build appbundle → Google Play 업로드용 AAB 파일 생성
  3. flutter install → 디바이스에 직접 설치

🔹 iOS 배포

  1. flutter build ios → iOS용 앱 빌드
  2. Xcode에서 배포 설정 후 App Store Connect에 업로드

🔹 주요 디버깅 및 배포 방법

방법설명
Flutter DevToolsUI 디버깅 및 성능 분석
debugShowCheckedModeBanner: falseDebug 배너 제거
flutter build apkAndroid APK 생성
flutter build iosiOS 앱 빌드 및 배포

📌 정리

항목설명
다크모드 & 테마ThemeData.light(), ThemeData.dark(), GetX로 동적 변경
성능 최적화const 사용, RepaintBoundary, ListView.builder, DevTools 활용
디버깅 및 배포Flutter DevTools 활용, Debug 배너 제거, flutter build apk/ios

0개의 댓글