■ 소개
목표: 419 (4업으로 1달러 벌기 시작해서 9달러까지 벌어보기)
오늘은 앱아이콘을 변경해보았습니다.
커서로 하니까 간단하네요.
.
■ 진행 및 결과
1.커서로 plan하기
늘 그렇듯 커서 플랜으로 시작합니다.
매번 하지만서도 plan은 참 좋은 기능입니다.
md파일이 나오니까, 코딩 잘 모르는 저도 대충 결론이 뭔지 파악할 수 있습니다.
.
앱아이콘 교체 계획 (momsmom)
전제/현상 정리
프로젝트 루트: c:\flutter\msm\momsmom
Android: android:icon이 @mipmap/ic_launcher로 설정돼 있음 (momsmom/android/app/src/main/AndroidManifest.xml). 현재 res/mipmap* 리소스가 프로젝트에 보이지 않아서, 자동 생성으로 복구/갱신하는 흐름이 안전함.
iOS/macOS: Runner/Assets.xcassets/AppIcon.appiconset/Contents.json 구조 사용.
Web: web/manifest.json이 web/icons/Icon-192.png, Icon-512.png, Icon-maskable-*을 참조하고 실제 파일이 존재.
Windows: momsmom/windows/runner/Runner.rc가 resources\\app_icon.ico를 참조하는데, 현재 windows/runner/resources/가 없어 보여서 아이콘 파일 생성이 필요.
Linux: 기본 runner 템플릿 상태로 보이며, 별도 패키징(.desktop) 아이콘 파일은 현재 없음.
아이콘 소스 준비
권장 소스: 1024x1024 PNG 1장 (가급적 투명 테두리/알파 없이, 중앙 정렬)
현재 제공된 이미지(512px)는 미리보기/웹용으로는 OK지만, iOS 마케팅(1024)·윈도우 ico 품질까지 고려하면 1024 소스 1장을 준비하는 게 좋음.
프로젝트에 다음 경로로 두는 것을 권장:
[momsmom/assets/icon/app_icon.png](momsmom/assets/icon/app_icon.png)
자동 생성(권장): flutter_launcher_icons
1) 의존성/설정 추가
[momsmom/pubspec.yaml](momsmom/pubspec.yaml)에 dev dependency 및 설정을 추가:
dev_dependencies:에 flutter_launcher_icons: ^0.14.4(또는 최신)
flutter_launcher_icons: 블록 추가
Android는 기존 manifest가 ic_launcher를 쓰므로 이름을 명시하는 걸 권장
예시 설정(프로젝트 상황에 맞춘 안전한 기본값):
android: "ic_launcher"
ios: true
remove_alpha_ios: true
background_color_ios: "#ffffff"
web.generate: true + background_color/theme_color는 현재 manifest 값(#0175C2) 유지하거나 새 브랜드 컬러로 변경
windows.generate: true
macos.generate: true
(추가 옵션)
Android 적응형 아이콘을 원하면 adaptive_icon_background + adaptive_icon_foreground를 별도 파일로 준비해 설정.
2) 생성 실행
프로젝트 디렉터리에서:
flutter pub get
dart run flutter_launcher_icons
3) 생성 결과 확인(핵심 체크포인트)
Android: momsmom/android/app/src/main/res/mipmap-*/*ic_launcher* 생성 여부
iOS/macOS: AppIcon.appiconset의 PNG들이 교체됐는지
Web: momsmom/web/icons/의 아이콘이 교체되고, 필요 시 manifest.json 색상도 갱신됐는지
Windows: momsmom/windows/runner/resources/app_icon.ico 생성 여부와 Runner.rc의 참조가 유효한지
Linux(수동, 최소 범위)
flutter_launcher_icons README에 Linux 설정이 명시돼 있지 않아, 아래처럼 런타임 윈도우/태스크바 아이콘만 수동으로 맞추는 최소 플랜을 권장.
아이콘 PNG 준비: [momsmom/linux/runner/resources/app_icon.png](momsmom/linux/runner/resources/app_icon.png) (예: 256x256 또는 512x512)
[momsmom/linux/runner/my_application.cc](momsmom/linux/runner/my_application.cc)에서 my_application_activate에서 창 생성 후, gtk_window_set_default_icon_from_file(...) 또는 gtk_window_set_icon_from_file(...)로 설정
(추후 배포용 패키징까지 하려면 .desktop/메타데이터 구성이 추가로 필요)
테스트/검증 플로우
공통: 아이콘은 OS 캐시 영향이 큼 → Android/iOS는 기존 앱을 삭제 후 재설치 권장
Android: flutter run 후 런처에서 아이콘 확인
iOS: 시뮬레이터/기기에서 앱 삭제 후 재설치, 홈 화면 아이콘 확인
Web: flutter run -d chrome 후 PWA/탭 아이콘/설치 아이콘 확인(브라우저 캐시 삭제 필요할 수 있음)
Windows: 실행 파일/작업표시줄 아이콘 확인(빌드 폴더 캐시 영향 가능)
macOS: 앱 번들 아이콘 확인(빌드 산출물 삭제 후 재빌드 권장).
2.리눅스 빼고 돌린 후에 apk파일 빌드해서 테스트하기
리눅스만 빼고 일단 해달라고 했습니다.
뚝딱 해줬고,
이제 apk파일로 debug 빌드해서 폰으로 옮깁니다.
.
.
git 커밋 푸쉬도 마지막으로 해줍니다.
.
잘 반영되었습니다.
다양한 아이콘이 표시된 휴대전화의 스크린샷
.
■ 느낀점 및 향후 계획
앱 아이콘 간단히 쳐냈고,
프롬프트 개선 해보다가 잘 예정입니다!