목록Flutter(Dart) (34)
coding etude
이전 포트팅에서 fastlane 의 설치와 초기화를 알아봤다. 이번 포스팅에서는 빠르게 Fastfile을 통하여 fastlane의 명령어를 입력하는 방법을 알아보자. 기본적인 내용은 fastlane 문서에 안와 있지만 가장 중요한 내용은 구조를 알면 나머지는 쉽다는 것이다. default_platform(:android) platform :android do desc "Runs all the tests" ----> 구동에 대한 설명을 적는다. lane :test do ----> lane로 시작하여 do로 끝나면 정의된 명령어를 실행한다는 뜻. gradle(task: "test") ----> 실행문 end ----> lane의 종료 end 다른것은 테스트를 진행할 때 하면 되고 지금부터 빌드와 업로드를 한..

fastlane 셋팅 시 주의 해야되는 부분은 bulid와 supply(distribution)을 모두 생각하면서 세팅을 해야한다는 점이다. fastlane를 사용하는 이유는 배포 시 자동화시켜 조금 더 편하고 빠르게 진행 하기 위함이라고 생각한다. 그래서 첫 세팅부터 업로드 까지 진행해 보려고 한다. 대부분의 내용은 fastlane 공식 홈페이지에 나와 있지만 flutter 관련 셋팅은 flutter.dev를 통해 진행 해야한다. 1. 설치 brew 와 gem을 사용하여 설치하는 방법이 있지만, fastlane 공식문서는 ruby gem을 통한 방법은 비추천 한다고 나와 있다. $ brew install fastlane 2. 세팅 터미널을 통해 android 폴더로 이동 후 fastlane 초기화를 진..
이전 gradle 세팅에 이어서 java 세팅에 대해서 기록하려고 한다. 증상 fastlane test 입력 시 뜸금없이 kotlinCompile 에러가 뜬다..??!! 일단 버전 문제 일수 있으니.. 확인해 보니 java8에 호환되는 버전은 1.5.31 이라고 친절하게 flutter 공식문서에 나와 있다. project/android/build.gradle buildscript { ext.kotlin_version = '1.5.31' repositories { google() mavenCentral() } 우선 요로케 버전을 수정해 주고... 다시 fastlane test 두둥.. make sure gradle is running on a jdk not jre. gradle 이 jre을 이용하여 com..
detail : Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. 처음엔 java 문제인줄 알고 java만 지웠다 설치했다. 버전 바꾸고 별 짓을 다했다... 다시보면 gradle에 java 11이 필요하다는 것이다.. 휴.. project/android/gradle 에서 gradle-wrapper.properties 파일을 확인 했더니 distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip 이렇게 gradle의 최신버전으로 설정이 되어 있었다. 정확한 호환관련 데이터를 본것은 아니지만 느낌적인 느낌으로 저 버전을 사용하려면..
flutter 세팅중에 알 수 없는 오류가 떴다. 구글링을 했을 때 기본적으로 몇 가지 해결방법이 나오긴 하지만 하나도 해결 되지 않았다. 개발환경 Macbook pro(2019) / Monterey v12.4 시도한 해결 방법 1. jdk 삭제 및 재설치 - 기존에 adoptopenjdk1.8.0_291 을 사용했으나 오라클 홈페이지에서 jdk8 설치파일을 받아서 설치하니 1.8.0_341 버전으로 업데이트 되었다. 환경변수도 등록해 주고 source 업데이트 후 동일증상. 2.brew 를 통해서 openJDK를 8,10,11 버전 모두 설치 - 환경변수에 JAVA_HOME를 바꿔가면서 테스트 해봤다. 동일증상. 3. android studio > SDK manager > commend tool 재설치..
직역 하자면 'GetX의 부적절한 사용이 확인 되었다.' 인데 어느 부분이 잘못 사용 되었는지 알기 쉽지 않다. 하지만 생각보다 이유는 단순하다. Obx() 내에는 무조건 Rx값을 controller에서 사용해야 한다. 쉽게말해 controller 에서 .obs로 값이 변했을때 알려주는 Rx값을 사용해야 한다는것이다. 만약 단순 변수를 사용 하는데 Obx()를 사용 한다면 이벤트를 알려줄 변수가 없이 사용했기 때문에 발생하는 오류인 것이다. 오류코드 예시 ///// controller ///// bool isNull = false; // .obs 사용사 오류 발생 // var isNull = false.obs; 는 허용됨. var이 자동으로 타입추론을 하기 때문이다. ///// GetView ///// ..
같은 객체의 생성자를 호출 하면 호출 할 때마다 인스턴스가 생성 된다. 하지만 Singleton을 사용하면 하나의 인스턴스만을 생성하기 때문에 메모리와 속도 측면에서 장점을 가지고 있다. class Singleton { int count; static final Singleton _instance = Singleton._internal(); // 인스턴스를 싱글톤으로 생성 Singleton._internal() { count = 0; //변수를 가지고 있다면 이렇게 초기화 해주면 된다. } // Songleton._internal(); 없다면 단순하게 실행만.. factory Singleton() => _instance; // factory는 실글톤 생성의 키워드 void functionEx(){ cou..
json데이터를 사용하기 위서는 수동 직렬화 방법과 외부 라이브러리를 통한 자동 직렬화 방법이 있다. 1. 수동 직렬화 - dart언어에 기본적으로 사용 할 수 있는 기능으로 dart:convert 를 참조한다장점 : jsonEncode(jsonfile), jsonDeconde(jsonfile)로 바로 사용이 용이하다. 관리 할 json 데이터가 적을 때 사용하기 좋다.// json 예시{ "name": "kim", "age": "13"}// 수동 직렬화Map user = jsonDeconde(json);print('name: ${user['name']});String json = jsonEncode(user);단점: 런타임(실행하는 단계)에서 바로 Map를 리턴하기 때문에 관리해야할 json데이..