본문 바로가기
728x90
반응형

mobile13

[Flutter] AppLifeCycle event (onResume 등) Flutter에서 앱 상태를 확인할 수 있는 이벤트를 출력하는 방법에 대해 알아보겠습니다. https://docs.flutter.dev/get-started/flutter-for/android-devs#how-do-i-listen-to-android-activity-lifecycle-events https://docs.flutter.dev/get-started/flutter-for/ios-devs#how-do-i-listen-to-ios-lifecycle-events import 'package:flutter/widgets.dart'; class LifecycleWatcher extends StatefulWidget { @override _LifecycleWatcherState createState() .. 2022. 1. 20.
[Android] 버전 코드는 이미 사용되었습니다. 다른 버전 코드를 사용해 보세요. 배경 안드로이드 Google Play스토어에 앱 업로드 시 "버전 코드는 이미 사용되었습니다. 다른 버전 코드를 사용해 보세요."라는 오류가 발생했습니다. 버전 코드 변경 코드 상에서 따로 버전 설정을 한 기억이 없어서 초기 세팅을 확인해보았습니다. build.gradle 파일에 보면 버전을 다음과 같이 사용 중이었는데, def flutterVersionCode = localProperties.getProperty('flutter.versionCode') def flutterVersionName = localProperties.getProperty('flutter.versionName') android { ... defaultConfig { versionCode flutterVersionCode.toIn.. 2022. 1. 12.
[Flutter/iOS] No CupertionLocalizations found. 안드로이드 기기에서는 문제가 없었는데, iOS기기에서 Text 필드 더블클릭시 오류가 발생했습니다. ════════ Exception caught by widgets library ═══════════════════════════════════════════════════════ The following assertion was thrown building _CupertinoTextSelectionControlsToolbar(dirty, dependencies: [_LocalizationsScope-[GlobalKey#36cb4], MediaQuery], state: _CupertinoTextSelectionControlsToolbarState#d89a6): No CupertinoLocalizations.. 2021. 11. 15.
[Flutter | AOS] 위변조 탐지 - 서명값 비교 keytool 명령어를 사용하여 key store에서 해시값을 추출합니다. 해당 해시값을 프로퍼티 파일에 저장해둡니다. 저장한 해시값과 현재 App의 해시값을 비교합니다. class MainActivity: FlutterActivity() { /** * onCreate */ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (!verifyAppSignature()) { super.finish() } } fun verifyAppSignature(): Boolean { val currentSignature: List = getApplicationSignature(); if (currentSigna.. 2021. 10. 1.
[flutter] SocketException: Failed host lookup: 'www.xyz.com' (OS Error: No address associated with hostname, errno = 7) SocketException: Failed host lookup: 'www.xyz.com' (OS Error: No address associated with hostname, errno = 7) 위와 같은 오류가 발생했다면, /src/main/AndroidManifest.xml에서 인터넷 권한을 부여했는지 확인하십시오. 혹은 모바일이든 에뮬레이터든 온라인 상태인지 확인하세요. [Reference] https://stackoverflow.com/questions/54551198/how-to-solve-socketexception-failed-host-lookup-www-xyz-com-os-error-no-ad 2021. 8. 25.
[flutter] Copy to clipboard on tap. Use ScaffoldMessenger.showSnackBar. _key.currentState!.showSnackBar(...) 가 depreated 되면서 Use ScaffoldMessenger.showSnackBar. 라고 안내하고있습니다. AS-IS) scaffoldKey.currentState.hideCurrentSnackBar(); scaffoldKey.currentState.showSnackBar(SnackBar(content:Text(messages.copied))); TO-BE) ScaffoldMessenger.of(context).hideCurrentSnackBar(); ScaffoldMessenger.of(context).showSnackBar(SnackBar(content:Text(messages.copied))); 2021. 8. 17.
[Dart] Null safety Dart 2.12 및 Flutter 2부터 Null safety를 지원합니다. Null Safety란 개발되는 코드가 Null 안전성을 보장한 상태로 개발되게 하고자 하는 개념 dart 패키지 버전을 보시면 Null safety라고 표시되어있는 것을 확인할 수 있습니다. Null safety는 null에 의한 NPE를 runtime이 아닌 edit-time에 체크하겠다는 의미입니다. 즉, null을 허용하지 않는 한 변수는 null을 포함할 수 없습니다. Dart 언어의 변수는 default가 Non-Nullable로 선언되기 때문에 Nullable로 선언하고자 한다면 타입명 뒤에 ?을 추가하면 됩니다. // 오류 발생 : Non-Nullable 변수는 선언과 동이세 초기값을 주어야합니다. String .. 2021. 7. 14.
[Flutter] 플루터에 다국어(i18n) 적용 (use intl package) 플루터에 i18n을 적용하려고 합니다. 지원하는 패키지는 intl, flutter_i18n, easy_localization 등이 있는데, publisher가 dart.dev인 intl 패키지를 사용하겠습니다. intl은 dart에서 internalization and localization를 지원하는 패키지입니다. 다국어 처리나 성별, 날짜, 숫자 등을 그 지역이나 국가에 맞게 바꿀 때 사용합니다. 간단하게 설명하자면 dart code를 arb로 generate 하고 변환한 arb 파일을 다시 dart로 변환하여 다국어 적용을 합니다. arb란 Application Resource Bundle로 구글에서 만든 파일 형식입니다. (key:value 형식을 원하시면 easy_localization 패키지를.. 2021. 3. 4.
[flutter] Scaffold.of() called with a context that does not contain a Scaffold. 해결방법과 Copy to clipboard on tap Text를 탭하면 해당 Text를 클립보드에 복사하면서 스낵바를 출력하려고 합니다. import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; class CopyScreen extends StatefulWidget { @override State createState() { return CopyStateScreen(); } } class CopyStateScreen extends State { String code = '007'; @override Widget build(BuildContext context) { return WillPopScope( onWillPop: () { return Future(() => fals.. 2021. 2. 6.
[flutter] draw horizontal, vertical line(divider) flutter에서 수직선, 수평선 그리는 방법입니다. 수평선 Divider( thickness: 1, color: Colors.grey, ) 또는 Container( height: 1, width: double.maxFinite, color: Colors.grey, ) 수직선 VerticalDivider( thickness: 1, color: Colors.grey, ) 또는 Container( width: 1, height: double.maxFinite, color: Colors.grey, ) 2020. 12. 1.
728x90
반응형