App
-
2024-04-16 1. 방법 Authentication > 설정 > 사용자 작업 > 이메일 열거 보호(권장) 체크박스 해제를 해주면 된다. 해당 부분은 2023년 9월 15일 이후에 프로젝트를 만든 경우 이메일 열거 보호가 기본적으로 사용 설정이 되는데 이는 이메일 열거는 악의적인 행위자가 API에 이메일 주소를 전달하고 응답을 확인하여 시스템의 사용자를 추측하거나 확인하는 무차별 대입 공격의 한 유형을 방지하기 위해 설정이 된다고 한다. 2. 참고 https://stackoverflow.com/questions/77147854/firebase-please-verify-the-new-email-before-changing-email-auth-operation-not firebase: please ver..
firebase: please verify the new email before changing email. 해결방법2024-04-16 1. 방법 Authentication > 설정 > 사용자 작업 > 이메일 열거 보호(권장) 체크박스 해제를 해주면 된다. 해당 부분은 2023년 9월 15일 이후에 프로젝트를 만든 경우 이메일 열거 보호가 기본적으로 사용 설정이 되는데 이는 이메일 열거는 악의적인 행위자가 API에 이메일 주소를 전달하고 응답을 확인하여 시스템의 사용자를 추측하거나 확인하는 무차별 대입 공격의 한 유형을 방지하기 위해 설정이 된다고 한다. 2. 참고 https://stackoverflow.com/questions/77147854/firebase-please-verify-the-new-email-before-changing-email-auth-operation-not firebase: please ver..
2024.04.16 -
2024-03-20 1. 방법 pubspec.yml의 아래와 같이 의존관계 추가 dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: any main.dart 에 아래와 같이 localizations 설정 정보를 작성 return const MaterialApp( title: 'Localizations Sample App', localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ Loca..
Flutter internationalized 설정 하는 법 Flutter_localizations2024-03-20 1. 방법 pubspec.yml의 아래와 같이 의존관계 추가 dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: any main.dart 에 아래와 같이 localizations 설정 정보를 작성 return const MaterialApp( title: 'Localizations Sample App', localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ Loca..
2024.03.20 -
2024-03-08 1. 원인 이미 프로젝트 중 동일한 SHA 인증서 지문을 사용하여 생기는 문제이다. /.android/debug.keystore 를 이미 dev 또는 test라는 명목으로 사용하여 생기는 문제일 가능성이 높다. 2. 해결 방법 해결 방법은 크게 어렵지 않다. 아래의 명령어로 새로운 키를 만들어 SHA 인증서를 추출하면 된다. ~/upload-keystore.jks : 자신 저장할 위치와 파일명으로 변환 -alias upload : 별칭 역시 자신이 원하는 내용으로 변환 keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA \ -keysize 2048 -validity 10000 -alias upload 위의 명령어를 사용하면 ..
firebase "다른 프로젝트에 이미 패키지 이름과 SHA-1이 동일한 OAuth2 클라이언트가 있습니다. " 해결방법 SHA 인증서 지문 생성2024-03-08 1. 원인 이미 프로젝트 중 동일한 SHA 인증서 지문을 사용하여 생기는 문제이다. /.android/debug.keystore 를 이미 dev 또는 test라는 명목으로 사용하여 생기는 문제일 가능성이 높다. 2. 해결 방법 해결 방법은 크게 어렵지 않다. 아래의 명령어로 새로운 키를 만들어 SHA 인증서를 추출하면 된다. ~/upload-keystore.jks : 자신 저장할 위치와 파일명으로 변환 -alias upload : 별칭 역시 자신이 원하는 내용으로 변환 keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA \ -keysize 2048 -validity 10000 -alias upload 위의 명령어를 사용하면 ..
2024.03.08 -
2024-02-14 1. 방법 ../your_app/ios/Runner/GoogleService-Info.plist 에서 REVERSED_CLIENT_ID 를 Info.plist 에 추가하면 된다. REVERSED_CLIENT_ID {value}/string> ../your_app/ios/Runner/Info.plist CFBundleURLTypes CFBundleTypeRole Editor CFBundleURLSchemes {value} 메인 이미지 출처 : 사진: Unsplash의Sung Jin Cho
Flutter google Login 시 IOS 강제 종료 현상 해결 방법 firebase2024-02-14 1. 방법 ../your_app/ios/Runner/GoogleService-Info.plist 에서 REVERSED_CLIENT_ID 를 Info.plist 에 추가하면 된다. REVERSED_CLIENT_ID {value}/string> ../your_app/ios/Runner/Info.plist CFBundleURLTypes CFBundleTypeRole Editor CFBundleURLSchemes {value} 메인 이미지 출처 : 사진: Unsplash의Sung Jin Cho
2024.02.14 -
2024-02-12 1. 문제 발생 flutter pub get flutter 라이브러리들을 가져오는 도중 아래와 같은 에러가 발생했다. 이는 ms-setting을 윈도 내에서 시작하지 않아 발생하는 문제이다. 2. 해결방법 start ms-settings:developers 위의 명령어 실행 후 다시 flutter pub get으로 라이브러리들을 불러오면 오류 없이 실행되는 것을 확인 할 수 있다. 메인 이미지 출처 : 사진: Unsplash의Ryan Geller
Building with plugins requires symlink support.Please enable Developer Mode in your system settings. Run start ms-settings:developersto open settings. 해결 방법2024-02-12 1. 문제 발생 flutter pub get flutter 라이브러리들을 가져오는 도중 아래와 같은 에러가 발생했다. 이는 ms-setting을 윈도 내에서 시작하지 않아 발생하는 문제이다. 2. 해결방법 start ms-settings:developers 위의 명령어 실행 후 다시 flutter pub get으로 라이브러리들을 불러오면 오류 없이 실행되는 것을 확인 할 수 있다. 메인 이미지 출처 : 사진: Unsplash의Ryan Geller
2024.02.12 -
2024-01-02 1. 방법 mainAxisAlignment: MainAxisAlignment.start 와 mainAxisAlignment: MainAxisAlignment.end 를 활용해 각 좌측 우측 정렬을 적용해준다. import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Left and Right Align'), ), body: Column( childr..
flutter 에서 Column 의 각요소 정렬 위치 다르게 설정하는 방법2024-01-02 1. 방법 mainAxisAlignment: MainAxisAlignment.start 와 mainAxisAlignment: MainAxisAlignment.end 를 활용해 각 좌측 우측 정렬을 적용해준다. import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Left and Right Align'), ), body: Column( childr..
2024.01.16 -
2024-01-09 1. 방법 open user settings를 검색하여 Preferences: Open User Settings(Json) 클릭 아래 두개의 코드 추가 "dart.previewFlutterUiGuides": true, "dart.previewFlutterUiGuidesCustomTracking": true, 아래와 같이 자식 부모 구조에 대한 하얀 점선이 생긴 걸 확인하면 완료된다. 만약에 적용이 되지 않는 다면 vscode 재접속 후 아무 Dart 파일이나 클릭해 보면 적용된 것을 확인할 수 있다. 2. 출처 https://stackoverflow.com/questions/64575310/how-i-enable-guide-lines-in-visual-studio-code-with-f..
[Flutter] 플러터 vscode 부모 자식 관계 표시 하는 방법2024-01-09 1. 방법 open user settings를 검색하여 Preferences: Open User Settings(Json) 클릭 아래 두개의 코드 추가 "dart.previewFlutterUiGuides": true, "dart.previewFlutterUiGuidesCustomTracking": true, 아래와 같이 자식 부모 구조에 대한 하얀 점선이 생긴 걸 확인하면 완료된다. 만약에 적용이 되지 않는 다면 vscode 재접속 후 아무 Dart 파일이나 클릭해 보면 적용된 것을 확인할 수 있다. 2. 출처 https://stackoverflow.com/questions/64575310/how-i-enable-guide-lines-in-visual-studio-code-with-f..
2024.01.09 -
2024-01-05 1. Flutter’s rendering model 일반적으로 크로스 플랫폼 언어들은 추상화된 레이어를 통해 네이티브 언어들과 소통을 하게 되는데, 이러한 추상화 과정에서 많은 부하를 가져오게 된다. 반면에 Flutter는 자체 위젯 세트를 통해 시스템 UI 위젯 라이브러리를 우회하여 이러한 추상화를 최소함으로써 부하를 줄이는 전략을 사용했다. Flutter의 시각적 요소를 그리는 Dart 코드는 렌더링을 위해 Skia(또는 향후 Impeller)를 사용하는 네이티브 코드로 컴파일된다. Flutter는 또한 자체 Skia 복사본을 엔진의 일부로 포함하므로 개발자는 휴대폰이 새로운 Android 버전으로 업데이트되지 않은 경우에도 최신 성능 개선 사항으로 업데이트를 유지할 수 있도록 앱..
[Flutter] Rendering and layout 알아보기2024-01-05 1. Flutter’s rendering model 일반적으로 크로스 플랫폼 언어들은 추상화된 레이어를 통해 네이티브 언어들과 소통을 하게 되는데, 이러한 추상화 과정에서 많은 부하를 가져오게 된다. 반면에 Flutter는 자체 위젯 세트를 통해 시스템 UI 위젯 라이브러리를 우회하여 이러한 추상화를 최소함으로써 부하를 줄이는 전략을 사용했다. Flutter의 시각적 요소를 그리는 Dart 코드는 렌더링을 위해 Skia(또는 향후 Impeller)를 사용하는 네이티브 코드로 컴파일된다. Flutter는 또한 자체 Skia 복사본을 엔진의 일부로 포함하므로 개발자는 휴대폰이 새로운 Android 버전으로 업데이트되지 않은 경우에도 최신 성능 개선 사항으로 업데이트를 유지할 수 있도록 앱..
2024.01.05 -
2024-01-02 1. 설치 dependencies: dropdown_button2: ^2.3.8 import 'package:dropdown_button2/dropdown_button2.dart'; 2. 예제 final List items = [ 'Item1', 'Item2', 'Item3', 'Item4', ]; String? selectedValue; @override Widget build(BuildContext context) { return Scaffold( body: Center( child: DropdownButtonHideUnderline( child: DropdownButton2( isExpanded: true, hint: Text( 'Select Item', style: TextSt..
[Flutter] dropdown_button2 드롭다운 버튼 구현 방법2024-01-02 1. 설치 dependencies: dropdown_button2: ^2.3.8 import 'package:dropdown_button2/dropdown_button2.dart'; 2. 예제 final List items = [ 'Item1', 'Item2', 'Item3', 'Item4', ]; String? selectedValue; @override Widget build(BuildContext context) { return Scaffold( body: Center( child: DropdownButtonHideUnderline( child: DropdownButton2( isExpanded: true, hint: Text( 'Select Item', style: TextSt..
2024.01.04 -
2024-01-03 1. 구현 예제 코드 코드를 구현한 배경지식은 로그인 후 Appbar 우측 상단에 톱니모양의 아이콘이 나오면 로그아웃과 회원탈퇴 기능을 하는 드롭다운 버튼을 구현하는 것이 필요하여, PopupMenuButton 위젯을 사용하여 구현하였다. 드롭다운은 메뉴는 로그아웃/회원탈퇴 두 가지이며, 각각은 PopupMenuItem 위젯으로 wrapping 되어 있다. 유저의 tap에 따라 onSlected 되면 해당 PopupMenuItem 의 value 값 기준으로 분기를 진행하여 원하는 기능을 수행할 수 있게 된다. PopupMenuButton( onSelected: (value) async { if (value == 'signout') { await authService.signOut();..
[Flutter] PopupMenuButton 를 이용한 드롭다운 버튼 구현 onSelected2024-01-03 1. 구현 예제 코드 코드를 구현한 배경지식은 로그인 후 Appbar 우측 상단에 톱니모양의 아이콘이 나오면 로그아웃과 회원탈퇴 기능을 하는 드롭다운 버튼을 구현하는 것이 필요하여, PopupMenuButton 위젯을 사용하여 구현하였다. 드롭다운은 메뉴는 로그아웃/회원탈퇴 두 가지이며, 각각은 PopupMenuItem 위젯으로 wrapping 되어 있다. 유저의 tap에 따라 onSlected 되면 해당 PopupMenuItem 의 value 값 기준으로 분기를 진행하여 원하는 기능을 수행할 수 있게 된다. PopupMenuButton( onSelected: (value) async { if (value == 'signout') { await authService.signOut();..
2024.01.03 -
2023-12-28 1. 방법 현재 프로젝트 경로에서 터미널로 아래 명령어를 입력하면 된다. flutter build apk --release --target-platform=android-arm64 해당 명령어는 Flutter 프로젝트를 릴리스 모드로 빌드하고, 명시적으로 Android 애플리케이션을 64비트 ARM 아키텍처 (android-arm64)로 타겟팅하는 Flutter 명령어이다. 자신의프로젝트/build/app/outputs/apk/release/app-release.apk 이후 해당 경로에 app-release.apk 라는 이름으로 파일이 들어가 있는 것을 확인할 수 있다. 만약에 만들어지는 apk 파일의 이름을 임의로 지정하고 싶다면 아래의 명령어를 사용하면 된다. flutter bui..
[Flutter] 플러터 안드로이드 APK 파일 빌드/추출 방법2023-12-28 1. 방법 현재 프로젝트 경로에서 터미널로 아래 명령어를 입력하면 된다. flutter build apk --release --target-platform=android-arm64 해당 명령어는 Flutter 프로젝트를 릴리스 모드로 빌드하고, 명시적으로 Android 애플리케이션을 64비트 ARM 아키텍처 (android-arm64)로 타겟팅하는 Flutter 명령어이다. 자신의프로젝트/build/app/outputs/apk/release/app-release.apk 이후 해당 경로에 app-release.apk 라는 이름으로 파일이 들어가 있는 것을 확인할 수 있다. 만약에 만들어지는 apk 파일의 이름을 임의로 지정하고 싶다면 아래의 명령어를 사용하면 된다. flutter bui..
2023.12.28 -
2023-12-27 1. 방법 AndroidManifest.xml | build.gradle | MainActivity 등 패키지 명을 바꾸기 위해 기존에 설정들을 수정해야 되는 것이 다수 존재하는데 이를 편하게 변경해 주는 라이브러리가 있다. pubspec.yaml 에 아래와 같이 의존성을 명시해 준다. dev_dependencies: change_app_package_name: ^1.1.0 이후 현재 프로젝트 위치에서의 터미널에서 아래와 같이 의존성 업데이트를 해준다. flutter pub get 현재 프로젝트 디렉토리에서 터미널로 아래의 명령어와 같이 자신이 변경하고 싶은 새로운 패키지 구조를 작성하고 실행시키면 패키지 구조가 변경되는 것을 확인할 수 있다. flutter pub run change..
[Flutter] 패키지명 바꾸는 방법 change_app_package_name2023-12-27 1. 방법 AndroidManifest.xml | build.gradle | MainActivity 등 패키지 명을 바꾸기 위해 기존에 설정들을 수정해야 되는 것이 다수 존재하는데 이를 편하게 변경해 주는 라이브러리가 있다. pubspec.yaml 에 아래와 같이 의존성을 명시해 준다. dev_dependencies: change_app_package_name: ^1.1.0 이후 현재 프로젝트 위치에서의 터미널에서 아래와 같이 의존성 업데이트를 해준다. flutter pub get 현재 프로젝트 디렉토리에서 터미널로 아래의 명령어와 같이 자신이 변경하고 싶은 새로운 패키지 구조를 작성하고 실행시키면 패키지 구조가 변경되는 것을 확인할 수 있다. flutter pub run change..
2023.12.27 -
2023-12-26 1. 라이브러리 사용 라이브러리는 flutter_easyloading이다. 해당 라이브러리는 명령어 하나로 손쉽게 로딩 기능을 구현할 수 있도록 도와준다. 2. 방법 pubspec.yaml 에 아래와 같이 의존성을 주입해 준다. dependencies: flutter_easyloading: ^3.0.5 아래의 예제를 참고하여 자신의 MarteialApp에 builder: EasyLoading.init(), 부분을 추가해 준다. (해당 부분은 없으면 초기화 안됬다고 에러가 발생한다.) class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(Build..
[Flutter] 플러터 로딩기능 구현 flutter_easyloading2023-12-26 1. 라이브러리 사용 라이브러리는 flutter_easyloading이다. 해당 라이브러리는 명령어 하나로 손쉽게 로딩 기능을 구현할 수 있도록 도와준다. 2. 방법 pubspec.yaml 에 아래와 같이 의존성을 주입해 준다. dependencies: flutter_easyloading: ^3.0.5 아래의 예제를 참고하여 자신의 MarteialApp에 builder: EasyLoading.init(), 부분을 추가해 준다. (해당 부분은 없으면 초기화 안됬다고 에러가 발생한다.) class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(Build..
2023.12.26 -
2023-12-21 1. 방법 아래와 같이 leadingWidth를 넓히면 전체적인 leading에 위치해 있는 로고의 크기를 키울 수 있다. AppBar( title: const Text('Title'), leading: Placeholder(color: Colors.white), leadingWidth: 100, ) 2.출처 https://stackoverflow.com/questions/66387869/how-to-increase-size-of-appbar-leading-property-in-flutter How to Increase size of AppBar leading property in flutter? I'm trying to add my custom text button into AppB..
[Flutter] appbar(leading) 로고(아이콘) 사이즈 키우는 방법2023-12-21 1. 방법 아래와 같이 leadingWidth를 넓히면 전체적인 leading에 위치해 있는 로고의 크기를 키울 수 있다. AppBar( title: const Text('Title'), leading: Placeholder(color: Colors.white), leadingWidth: 100, ) 2.출처 https://stackoverflow.com/questions/66387869/how-to-increase-size-of-appbar-leading-property-in-flutter How to Increase size of AppBar leading property in flutter? I'm trying to add my custom text button into AppB..
2023.12.21 -
2023-12-20 1. State 각각의 위젯들은 계층적 구조를 가지며 상태를 가지고 있다. 이러한 위젯의 상태를 초기화하기 위해서 build()라는 메서드를 사용하게 되며 해당 메서드는 데이터의 필요 시점에 자식 위젯의 인스턴스화하는 것을 보장해 준다. @override Widget build(BuildContext context) { return ContentWidget(importantState); } 다만 아래와 같이 계층 구조가 깊어질 수록 상위 위젯에 정보에 접근하는 것이 어려워지는데 이를 위해 Flutter에서는 InheritedWidget 클래스를 제공한다. 해당 클래스를 활용하면, 현재 위젯의 상위위젯에 접근할 수 있다. 아래는 ExamWidget 또는 GradeWidget 개체 중 하..
[Flutter] 플러터 State management 알아보기2023-12-20 1. State 각각의 위젯들은 계층적 구조를 가지며 상태를 가지고 있다. 이러한 위젯의 상태를 초기화하기 위해서 build()라는 메서드를 사용하게 되며 해당 메서드는 데이터의 필요 시점에 자식 위젯의 인스턴스화하는 것을 보장해 준다. @override Widget build(BuildContext context) { return ContentWidget(importantState); } 다만 아래와 같이 계층 구조가 깊어질 수록 상위 위젯에 정보에 접근하는 것이 어려워지는데 이를 위해 Flutter에서는 InheritedWidget 클래스를 제공한다. 해당 클래스를 활용하면, 현재 위젯의 상위위젯에 접근할 수 있다. 아래는 ExamWidget 또는 GradeWidget 개체 중 하..
2023.12.20 -
2023-12-19 1. Concept 플러터는 확장 가능한 레이어 시스템으로 구성되어 있다. 이는 플러터의 레이어가 각각의 독립적인 라이브러리 형태로 존재하고 이는 자신이 속해 있는 레이어에 의존하고 있다고 볼 수 있다. 또한 해당 레이어들은 하위에 레이어 직접적인 접근권한을 가지고 있지 않으며, 모든 프레임워크 레벨들은 옵션적이거나 교체 가능하게 디자인되어 있다. 플러터는 기본적으로 어떠한 native application(ios, android) 에서든지 문제없이 동작할 수 있도록 패키징되어 시스템위에서 동작하게 된다. 2. Embedder Layer 우리가 처음 flutter 프로젝트를 생성할때 Embedder level 에서 다양한 플랫폼에 대한 Embedder 레이어가 Flutter에서 즉시 ..
[Flutter] Architectural layers 알아보기2023-12-19 1. Concept 플러터는 확장 가능한 레이어 시스템으로 구성되어 있다. 이는 플러터의 레이어가 각각의 독립적인 라이브러리 형태로 존재하고 이는 자신이 속해 있는 레이어에 의존하고 있다고 볼 수 있다. 또한 해당 레이어들은 하위에 레이어 직접적인 접근권한을 가지고 있지 않으며, 모든 프레임워크 레벨들은 옵션적이거나 교체 가능하게 디자인되어 있다. 플러터는 기본적으로 어떠한 native application(ios, android) 에서든지 문제없이 동작할 수 있도록 패키징되어 시스템위에서 동작하게 된다. 2. Embedder Layer 우리가 처음 flutter 프로젝트를 생성할때 Embedder level 에서 다양한 플랫폼에 대한 Embedder 레이어가 Flutter에서 즉시 ..
2023.12.19 -
2023-12-17 1. 방법 ctrl(command) + shift + p 로 Open User Settings (JSON) 검색 후 실행 이후 아래와 같이 "editor.codeActionsOnSave":{ "source.fixAll": true } 를 하단에 추가 한다. { "editor.fontSize": 14, "terminal.integrated.fontSize": 16, "debug.console.fontSize": 13, "[dart]": { "editor.formatOnSave": true, "editor.formatOnType": true, "editor.rulers": [ 80 ], "editor.selectionHighlight": false, "editor.suggestSelect..
[Flutter] vscode 에서 const 자동 완성 방법 "source.fixAll": true2023-12-17 1. 방법 ctrl(command) + shift + p 로 Open User Settings (JSON) 검색 후 실행 이후 아래와 같이 "editor.codeActionsOnSave":{ "source.fixAll": true } 를 하단에 추가 한다. { "editor.fontSize": 14, "terminal.integrated.fontSize": 16, "debug.console.fontSize": 13, "[dart]": { "editor.formatOnSave": true, "editor.formatOnType": true, "editor.rulers": [ 80 ], "editor.selectionHighlight": false, "editor.suggestSelect..
2023.12.17 -
2023-12-16 1. 예제 아래는 전체 코드이다. import 'package:flutter/material.dart'; class TextFieldOverFlowPage extends StatefulWidget { const TextFieldOverFlowPage({super.key}); @override _TextFieldPageState createState() => _TextFieldPageState(); } class _TextFieldPageState extends State { final TextEditingController _textFieldController = TextEditingController(); @override Widget build(BuildContext context..
[Flutter] 키보드 사용 시 오버플로우 해결 방법2023-12-16 1. 예제 아래는 전체 코드이다. import 'package:flutter/material.dart'; class TextFieldOverFlowPage extends StatefulWidget { const TextFieldOverFlowPage({super.key}); @override _TextFieldPageState createState() => _TextFieldPageState(); } class _TextFieldPageState extends State { final TextEditingController _textFieldController = TextEditingController(); @override Widget build(BuildContext context..
2023.12.16 -
2023-12-15 1. 이유 에뮬레이터의 각 가상 라우터 머신이 10.0.2/24 아이피 대역대를 가지고 동작하기 때문이다. 각 에뮬레이터의 사전에 예약된 아이피 주소들은 아래와 같다. 아래 나와 있듯이 10.0.2.2 에 요청을 보낼 시 호스트로 루프백을 보내는 것을 알 수 있다. 10.0.2.1 Router/gateway address 10.0.2.2 Special alias to your host loopback interface (i.e., 127.0.0.1 on your development machine) 10.0.2.3 First DNS server 10.0.2.4 / 10.0.2.5 / 10.0.2.6 Optional second, third and fourth DNS server (if..
[Android] 에뮬레이터 localhost 가 10.0.2.2로 인식되는 이유2023-12-15 1. 이유 에뮬레이터의 각 가상 라우터 머신이 10.0.2/24 아이피 대역대를 가지고 동작하기 때문이다. 각 에뮬레이터의 사전에 예약된 아이피 주소들은 아래와 같다. 아래 나와 있듯이 10.0.2.2 에 요청을 보낼 시 호스트로 루프백을 보내는 것을 알 수 있다. 10.0.2.1 Router/gateway address 10.0.2.2 Special alias to your host loopback interface (i.e., 127.0.0.1 on your development machine) 10.0.2.3 First DNS server 10.0.2.4 / 10.0.2.5 / 10.0.2.6 Optional second, third and fourth DNS server (if..
2023.12.15 -
2023-12-14 1. 준비 아래의 정보들을 각 위치에 맞게 추가한다. pubspec.yaml dependencies: qr_code_scanner: ^1.0.1 android 아래는 자신의 android gradle 설정 정보를 확인 하는 것이 필요하다. In android/build.gradle change ext.kotlin_version = '1.3.50' to ext.kotlin_version = '1.5.10' (코틀린 버전 변경필요) In android/build.gradle change classpath 'com.android.tools.build:gradle:3.5.0' to classpath 'com.android.tools.build:gradle:4.2.0' (gradle 버전 변경..
[Flutter] 플러터 QR 코드 스캔 구현 qr_code_scanner 사용법2023-12-14 1. 준비 아래의 정보들을 각 위치에 맞게 추가한다. pubspec.yaml dependencies: qr_code_scanner: ^1.0.1 android 아래는 자신의 android gradle 설정 정보를 확인 하는 것이 필요하다. In android/build.gradle change ext.kotlin_version = '1.3.50' to ext.kotlin_version = '1.5.10' (코틀린 버전 변경필요) In android/build.gradle change classpath 'com.android.tools.build:gradle:3.5.0' to classpath 'com.android.tools.build:gradle:4.2.0' (gradle 버전 변경..
2023.12.14