말랑한 하루

[Flutter] (Project) MapleApp: 28. 예외 처리 작업-마무리 본문

개발/Flutter

[Flutter] (Project) MapleApp: 28. 예외 처리 작업-마무리

지수는말랑이 2024. 1. 23. 15:12
반응형

모든 예외를 처리했다고 생각했으니, 앞으로의 개선사항과 오류 및 버그사항은 앱 테스트가 실질적으로 이루어질 때 진행하려 한다. 그래서 이번 시간에는 정상적으로 apk가 만들어지는지 실제 폰에선 잘 다운로드하여 작동하는지 검증하는 시간을 가지려 한다.

 

🐇 Build mode

🥕 성능분석 profile mode

🥕 출시 준비 release mode

최대 최적화 및 최소 설치 공간 크기를 원하는 경우 앱 배포를 위해 사용합니다. 모바일의 경우 릴리즈 모드는 다음을 의미합니다.(에뮬레이터에서는 지원되지 않음)

 

🍒 Assertion이 비활성화 되었습니다.

🍒 디버깅 정보가 제거되고, 디버깅이 비활성화 됩니다.

🍒 컴파일은 빠른 시작/실행 및 작은 패키지 크기에 최적화되어 있습니다.

🍒 서비스 확장이 비활성화 되었습니다.

 

다음 명령어를 통해 컴파일할 수 있습니다.

flutter run --release

🐇 APK build

※ reference : https://docs.flutter.dev/deployment/android#build-an-apk

flutter build apk
flutter build apk --release --target-platform=android-arm64
flutter build apk --split-per-abi

 

🍒 --release

🍒 --split

🐇 Application Test

가볍게 테스트하고, 중간 점검을 하기 위해 apk를 만들었다. 실제 폰에서는 어떻게 동작했는지 서술해보려 한다.

 

🥕 WidgetsFlutterBinding.ensureInitialized

※ reference : https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html

 

runApp을 호출하기 전 바인딩을 초기화 해야 하는 경우 메서드를 호출합니다. 그 전 async/await가 있다면 필수적으로 진행해 주는 것도 좋은 방법이라고 합니다.

 

저는 dotenv를 활용하고 있었기 때문에 동작에 어떻게 영향을 주는지 정확히 파악하지 않았지만, ensureInitialized의 내용을 보고 추가로 작성해 주었습니다.

 

🥕 AndroidManifest

안드로이드에서 가장 기본이 되는 파일입니다. 사용자로 하여금 필수 권한을 요청하는 내용을 담고 있습니다. 가장 기본적으로 앱에서 http 통신을 진행할 때 필요한 속성은 다음과 같습니다.

 

🍒 <uses-permission android:name="android.permission.INTERNET"/>

이 속성이 없는 경우, 애플리케이션의 http 통신은 이루어지지 않습니다. flutter project의 android/app/src 내의 debug/profile 폴더의 manifest에는 존재하지만, 애플리케이션의 기본이 되는 main 폴더의 manifest에는 존재하지 않는 구문입니다.

 

따라서, http 통신이 정상적으로 작동하도록 만들기 위해 android/app/src/main/AndroidManifest.xml 폴더의 manifest tag 안 그리고 application tag 밖에 위치하도록 위 구문을 삽입해야 합니다.

 

이로써 내가 설계한 모든 부분이 정상적으로 작동함을 인지할 수 있었다. 내부 화면에서 몇 부분이 현재 화면보다 큰 경우 SingleChildScorllView가 진행되지 않는 부분은, 외부에 Conatiner를 Center로 둠으로써 해결했다. 앞으로는 배포 전 준비는 어떻게 하는지, 앱 스토에 등록은 어떻게 하는지 정리해보려한다.

반응형
Comments