보통 안드로이드에서 로고를 만들기 위해서는 이미지 파일을 res 우클릭 -> new -> imageAsset 버튼으로 작업을 했었는데요. flutter 프로젝트를 만들었더니 imageAsset이라는 버튼이 없더라구요. 그래서 처음에는 그냥 png 파일을 넣었다가 이미지가 이상하게 나오는 걸 확인하고서야 귀찮음을 뒤로하고 기능을 찾기 시작했습니다. 다행히 플러터에도 여러 좋은 기능들이 많더라구요.
그 중 flutter_launcher_icons가 제 기준 제일 편하게 사용할 수 있어서 기록해보려고 합니다.
flutter_launcher_icons란 Android와 iOS의 앱 아이콘을 쉽게 생성할 수 있도록 도와주는 패키지입니다. 실제로 Android에서는 제가 위에서 언급했던 imageAsset을 통한 추가 기능을 제공하는 패키지라고 보면 됩니다. iOS의 경우에도 마찬가지로 앱 아이콘을 위해 필요한 파일을 알아서 생성해서 제공해줍니다.
준비물은 assets/파일 안에 넣어둘 로고 이미지(1024x1024 사이즈를 권장하는데, 이는 안드로이드 스튜디오에서 이미지 에셋을 수정해보면 알겠지만, 이 사이즈가 모든 변형된 사이즈에도 잘림이나 부족함 현상 없이 잘 들어가기 때문입니다.)입니다. 꼭 assets 안에 있지 않아도 괜찮지만, 기본적으로 프로젝트 이미지는 assets 파일 내에서 관리되니 굳이굳이 밖으로 빼야겠다는 것이 아니라면 적당히 안에 넣고 사용해주시면 좋습니다.
flutter_launcher_icons 패키지를 사용하기 위해서는 flutter 프로젝트의 최상단 폴더 아래에 있는 pubspec.yaml 파일에 패키지를 추가해야 합니다. 여기서 pubspec.yaml 파일은 flutter의 기본적인 정보와 패키지의 관리를 담당하는 파일입니다. 안드로이드로 완벽하게 치환할 순 없겠지만, build.gradle의 역할과 manifest의 일부 역할을 담당하고 있다고 볼 수 있을 것 같습니다.
name: testApp
description: "A new Flutter project."
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: ^3.8.1
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.8
provider: ^6.1.5
dev_dependencies:
flutter_test:
sdk: flutter
flutter_launcher_icons: ^0.14.4
flutter_lints: ^5.0.0
flutter:
assets:
- assets/
위는 기본적인 pubspec.yaml 파일에 flutter_launcher_icons를 추가한 코드입니다. ^0.14.4는 버전을 의미하니, 항상 최신 버전을 확인하고 자신이 사용가능한 버전을 사용해 주세요.
패키지를 추가했다면 그 다음에는 안드로이드 스튜디오 터미널에서 아래 명령어를 입력해 패키지를 설치합니다.
flutter pub get
그 다음은 설정을 위한 yaml을 작성해야 하는데, 아래와 같이 적어야 합니다.
flutter_launcher_icons:
android: "launcher_icon"
ios: true
image_path: "assets/icon.png"
min_sdk_android: 21
이 부분은 pubspec.yaml의 flutter: 부분 아래에 작성해도 되고, 따로 flutter_launcher_icons.yaml 파일을 따로 만들어서 작성해도 좋습니다.
여기서 iOS의 true는 iOS에 맞는 앱 아이콘을 설정할 것이냐에 대한 boolean 타입이고, android는 안드로이드 용 앱 아이콘의 이름을 의미합니다. image_path는 당연하게도 앱 로고를 만들 이미지의 경로입니다. 저는 assets에 바로 넣어서 사용했는데, assets 내부에 logo 등의 폴더를 만들어서 적용해도 무방합니다.
파일을 작성했다면 이제 여러 명령어를 이용해 아이콘을 생성할 수 있습니다.
dart run flutter_launcher_icons
flutter pub run flutter_launcher_icons
flutter pub run flutter_launcher_icons -f <파일명>
다 결과가 동일한 명령어이니 안된다면 차근차근 명령어를 실행해보면 좋을 것 같습니다.
여기까지 문제가 없이 진행되었다면, 아마 터미널 창에 설치와 관련된 내용들이 잔뜩 뜨고 난 후 앱 아이콘이 생성되었을 겁니다. 안드로이드는 심지어 설정한 이름으로 manifest도 바꿔주니 크게 할 일은 없습니다(iOS도 마찬가지입니다!).
저는 이 과정에서 오류가 발생하지 않았는데, 예상 외의 오류가 발견된다면... 한 번 기록해보겠습니다.
요새는 블로그 글을 찾아보기 보단 AI에게 요청해서 찾아서 쓰는 경우가 많아지고 있는데요. 블로그에 글을 쓰는 것도 제가 했던 작업들을 기억하려고 작성하는 것도 있지만, 잊어버렸을 때 다시 돌아와서 확인해보려는 것도 있는데, AI에게 물어보고 해결하게 되면 아무래도 나중에 다시 AI에게 했던 질문 목록을 뒤져보면 알게 되다보니 저도 점점 블로그에 글을 쓰는 일들이 줄어들고 있는 것 같습니다(그리고 AI를 통해 해결한 걸 블로그에 옮겨적는 것도 좀 현타가 오기도 하구요). 그래서 간만에 좀 오리지널로 작업을 했는데, 굉장히 시간이 오래 걸렸습니다. 확실히 AI의 시대를 살기 시작한 것 같네요.
댓글