flutter- @pragma('vm:entry-point')

* @pragma('vm:entry-point')   - 안드로이드 네이티브 코드에서 다트 함수를 실행할 수 있게 해주는 구문.   - 동작 설명 - dart는 컴파일 또는 런타임 시에 최적화 할수 있는데 이 과정에서 함수명이나 구문이 최적화되어 외부에서 실행할 수 없게 되기도 한다. 그래서 pragma로 힌트를 주어 안드로이드 네이티브 코드에서에서 해당 함수를 실행 할 수 있게 해준다. * 주의.   - dart, flutter 공식 문서화되어 있지 않다. 이로 보건데 향후 업데이트시에 공지 없이 변경될 가능성도 있어 주의를 요한다. * 참고.   - https://api.flutter.dev/flutter/dart-core/pragma-class.html   -  https://blog.csdn.net/rd_w_csdn/article/details/121293353   -  https://stackoverflow.com/questions/64314719/what-do-pragmavmprefer-inline-mean-in-flutter

비듬 원인에 대한 새로운 발견. 추측.

비듬 관리 Mane‘n Tail Shampoo. https://abel9999.blogspot.com/2020/03/manen-tail-shampoo.html 이전 경과. 이전 글에서 사용하던 샴푸도 6개월 정도 사용하자 비듬이 생기기 시작 했습니다. 비듬균이 이 샴푸에 내성이 생겼나 보다 추측을 하고 샴푸를 바꿨습니다. "헤드앤숄더 울트라맨 헤어 콘트롤 샴푸" 입니다. 이 샴푸도 한 6개월 정도 사용하자 비듬이 생기기 시작했습니다. 샴푸가 나와 맞지 않나보다 해서 바디샤워로 머리를 감았습니다. 바디샤워와 샴푸의 큰 차이는 머리가 엉키지 않게 하는 화학물질의 유무라는 인터넷 글을 봤고 혹시나 싶어서 였습니다. 6개월이 넘은 지금 비듬은 재발하지 않고 있습니다. 테스트. 호기심에 3차례에 걸쳐 테스트를 해봤습니다. 바디샤워로 샴푸를 하고 기존 샴푸로 샴푸를 한번 더 했을때. 기존 샴푸로 샴푸를 하고 바디샤워로 샴푸를 했을때. 바디샤워로 샴푸를 하고 기존 샴푸로 샴푸를 하고 바디샤워로 샴푸를 했을때. 3차례 모두 비듬이 생겼습니다. 비듬이 생기면 약 3일 정도 계속 비듬이 생겼습니다. 문제를 정리해 보면 다음과 같습니다. - 샴푸를 바꿨을 때 6개월 정도 비듬이 생기지 않는다. 샴푸를 바꿨다고 항상 비듬이 안 생기는 건 아니라서 성분이 겹치지 않는 샴푸로 바꿨을 때 같습니다. - 비듬이 생겼던 샴푸를 사용하고 문제가 없는 걸로 샴푸를 사용하면 비듬이 생긴다. 추측해 보면.. - 성분 문제라면 샴푸를 변경했을 때 바로 비듬이 안 생겼을 리 없습니다.  - 알러지가 있는 체질인데 샴푸에 들어가는 특정 화학 물질을 계속 접하면서 특정 화학 물질에 대한 알러지 수치가 계속 올라갔고 그 임계점에 도달하는 시간이 저의 경우 대략 6개월 정도인 거 같습니다. (특정 알러지 유발 물질에 대한 반응은, 바로 알러지 증상이 올라오기도 하고, 계속 접하면서 알러지 수지가 증가하며 임계점에 이르면 증상이 나타나기 시작하기도 합니다.) 결론을 내보면 아마도 - 샴푸 성

android studio intellij - markdown preview 안보일때.

### 증상.   markdown 확장자 .md 파일의 경우 android studio(intellij) 에서 프리뷰로 이쁘게 표시해 준다.   하지만 IDE의 Java Runtime 오류로 인해 보이지 않는 버그가 있는거 같다. ### 해결.   * Ctrl+Shift+A 을 누르고 "Choose Boot Java Runtime" 을 입력하여 "Choose Boot Java Runtime for the IDE" 창을 연다.   * "Use Default Runtime" 버튼을 누르고 android studio(intellij) 재시작 한다.   * 이래도 안된다면 New에서 "... with JCEF" 을 선택하고 재시작 한다.   전 "... with JCEF" 으로 해결 했습니다.   * 주의 - 런타임을 선택하고 OK버튼을 누른후 런타임 설치를 기다리면 재시작 다이얼로그가 나타납니다. 꼭 런타임 설치가 완료되고 재시작 다이얼로그가 뜰때까지 기다려야 합니다. ### 참고.   * https://youtrack.jetbrains.com/issue/IDEA-265975   * https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under?page=3   

android studio 설정.

* 셋팅창 열기. File | Settings * android studio 실행시 이전 프로젝트 자동 열기 비활성화. File | Settings | Appearance & Behavior | System Settings | Project | Reopen projects on startup 해제. * 메뉴 폰트 및 사이즈. File | Settings | Appearance & Behavior | Appearance | Use custom font 체크 후 폰트 및 사이즈 선택. * 마우스 휠로 폰트 확대 축소. File | Settings | Keymap | "font size" 찾기. Decrease Font Size, Increase Font Size 에서 더블클릭 - Add Mouse Shortcut ctrl + 마우스 휠 스크롤. * flutter 코드 자동 정렬 라인 길이 변경. File | Settings | Editor | Code Style | Dart | Line length 변경. 120

flutter- 기본 프로젝트 오류 수정. GradleException

Flutter 3.0.5 버전 기준 입니다. Flutter에서 안드로이드 변경 사항을 업데이트하지 않아 생긴 오류 해결법 입니다. * android\app\build.gradle     - File - Project Structure - Modules - <프로젝트 이름>_android - Module SDK - 버전을 지정합니다.     -  GradleException을 FileNotFoundException으로 변경합니다.     -  kotlin-stdlib-jdk7을 아래와 같이 kotlin-stdlib-jdk8로 변경합니다. dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8: $kotlin_version " }

flutter- 다국어 지원. App Name. 어플 이름. 안드로이드.

표시되는 어플 이름 다국어 지원 방법. 안드로이드만 다룹니다.   * android/app/src/main/res 폴더에 지원하는 언어의 폴더를 만듭니다.     - 예)  values, values-en, values-ko * 위에서 만든 폴더에 Strings.xml 파일을 만듭니다. <? xml version ="1.0" encoding ="utf-8" ?> <resources> <string name ="appName" > 테스트 </string> </resources> * AndroidManifest.xml 에 다음 항목을 적용합니다. android:label="@string/appName"

flutter- 다국어 지원. easy_localization

* 라이브러리 사이트. https://pub.dev/packages/easy_localization * 라이브러리 설치. flutter pub add easy_localization * 설정.      - 폴더 생성 - assets/translations/      - 폴더에 다국어 파일 생성.             + 예) en-US.json, ko-KR.json { "hello" : "hello" , }     - main.dart 예시. import 'package:flutter/material.dart' ; import 'package:flutter_localizations/flutter_localizations.dart' ; import 'package:easy_localization/easy_localization.dart' ; void main() async { WidgetsFlutterBinding. ensureInitialized () ; await EasyLocalization. ensureInitialized () ; runApp( EasyLocalization ( supportedLocales: [ Locale ( 'en' , 'US' ) , Locale ( 'ko' , 'KR' )] , path: 'assets/translations' , fallbackLocale: Locale ( 'en' , 'US' ) , child: MyApp () ) , ) ; } class MyApp extends StatelessWidget { @override Widget build (BuildContext context) { return MaterialApp (