스플래시 이미지 추가는 되게 간단하네? 추가하고 앱 배포하고 자야지 하다가 git clean -fdx와 함께 잠 못 잔 이야기
스플래시 스크린 추가하기
flutter_native_splash 패키지를 사용한다.
앱이 실행되고 플러터를 로드하는 동안에 빈 시간을 네이티브 단에서 채워준다고 보았다.
플러터 내에서 스플래시 스크린 위젯을 만들어서 표현하면 절대 채울 수 없는 부분이다.
yaml 파일을 업데이트하고 명령어를 입력하면 끝이다.
# 생성
flutter pub run flutter_native_splash:create
# 삭제
flutter pub run flutter_native_splash:remove
# 수정시에는 삭제 후 생성한다.
단 안드로이드 12에서는 메커니즘이 약간 바뀌어서 뭔가 더 해주어야한다.
특히 flutter 2.5 버전 전에 프로젝트를 만들었던 사람이라면 마이그레이션을 해주어야 한다.
결국 어찌 보면 이걸 늦게 찾아서 생긴 일이다.
아래 두 개 참고하기
- https://docs.flutter.dev/development/platform-integration/android/splash-screen-migration
사건의 시작
담타 프로젝트 관리하기 1 - github flow 적용하기
이전에 정해놓은 대로 새로운 기능을 만들 때면, 브랜치를 만들어서 작업을 한다.
혼자 하는 프로젝트이지만 이렇게 하는 이유는 연습의 의미도 있지만 확실히 편하다.
예를 들어 연습장(브랜치)에 낙서를 정말 막 하다가도 찢어서 버리면 원래 쓰던 것(마스터)이 되듯이, 아무 부담 없이 브랜치를 만들고 이상하면 날려서 원상 복구하는 것을 많이 했다.
그래서 이번에도 12/add-splash-screen이라는 브랜치를 만들어서 작업하다가 master로 돌아갔고, untracked 된 파일들이 남아서 git clean -fdx를 썼다.
사실 git 명령어를 전부 외워버렸거나, 잘 이해하고 있었다면 아마 이런 일은 안 일어났을 것이다. 하지만 내 기억력은 좋은 편이 아니라 매번 구글에 검색했고, 최신사항은 모두 커밋되어있기 때문에 날아갈 게 없을 거야라는 안일한 마음으로 사용했다..
https://extbrain.tistory.com/83 이 블로그를 참고했는데 지금 보니 빨간색으로 경고까지 써있다..
하여튼 git clean -fdx를 하니 뭐 gitignore이 적용되어 있어 커밋되지 않은 파일들까지 다 날아가버렸다.
그 순간 뭔가 잘못되었음을 느끼고 삭제된 파일들을 전부 스크린샷 찍어놨다..
날아간 채로 빌드를 해보고 싶었는데, 괜히 더 꼬일까 봐 파일들이 사라진채로 해결법을 찾아보았다.
해결과정
해결법이 완전 없지는 않았다.
https://stackoverflow.com/questions/6267180/can-i-restore-deleted-files-undo-a-git-clean-fdx
이런 사람들이 꽤 있었고,
내가 해볼 만한 건 두 가지였다.
- 맥의 Time Machine 기능을 이용하기
- IDE의 local history 기능을 이용하기
등등 시도해보았으나 딱히 되는 건 없었다.
그래서 그냥 에이 모르겠다 하고 flutter pub get 후 빌드해보았는데 다행히 사라진 파일들은 거의 복구되었다.
ios에서는 잘 실행되었고 안드로이드는 key.properties 파일만 복구가 안되었다.
이게 참 중요한데 다행히 이 파일이 예전에 중요하다고 해서 비밀번호 관리자에 백업해 놨었다.
느낀 점
어떤 상황이 일어날지 모르니 코드뿐 아니라 무엇이든 백업을 잘하자..
그래도 개인프로젝트에서 이런 일이 있어서 다행이다.
그래도 나는 staging area에는 잘 올리는 편이니 다음엔 git clean -fd를 사용하자.
그리고 n 키워드를 붙여서 미리 어떤 게 삭제될지 보는 것도 좋다. (git clean -fdn)