일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Widget Tree
- 싱글톤
- 재귀
- 코틀린
- 비동기 처리
- zwj
- Java
- Kotlin
- linebreak
- 완전탐색
- 프로그래머스
- 프리즈드
- 알고리즘
- Lazy
- 에러
- 플러터
- Singleton
- 거리알고리즘
- dfs
- 앱아이콘 변경
- Android
- 자바
- element tree
- dart
- 플러터 동작
- IOS
- 자료구조
- 초기화
- Render object tree
- flutter
- Today
- Total
목록Flutter (19)
모바일 개발하는 자바리안의 메모장
해당 키워드가 붙는 생성자는 새로운 인스턴스를 만들지 않고 하나의 인스턴스만을 사용하게 된다. class ClassA { static final ClassA _classA = ClassA._internal(); factory ClassA() { return _classA; } ClassA._internal() { } } 기본적인 싱글톤 패턴 코드이다. 자 이제 해당 class의 객체 2개를 만들어 비교해보자. ClassA classA1 = ClassA(); ClassA classA2 = ClassA(); debugPrint((classA1 == classA2).toString()); // true 다른 2개의 객체의 주소값이 같음을 확인할 수 있다. 만약 새로운 인스턴스도 생성해줘야 할 필요가 있는 cl..
flutter build 커멘드로 ipa 파일을 생성하려면 Xcode 13이 필요하다하여 OS 업데이트를 마친 뒤, Xcode 업데이트를 하는데,, 로딩 인디케이터가 몇시간이 지나도 없어지질 않는다. 찾아보고 찾아보다 착아낸 솔루션은 아래와 같다 : 1. 아래 경로에 있는 cache directory 제거 open ~/Library/Caches/com.apple.appstore 2. 앱스토어 에이전트 강제 종료 pkill -9 -f appstoreagent 이렇게 앱스토어로 설치하는 방법을 버리고, 직접 다운로드 받아 설치하면된다. 아래 애플 개발자 페이지로 들어가 Xcode13을 찾아 설치하면 끝. https://developer.apple.com/download/all/
Flutter 앱을 실행해보니 아래와 같은 PlatformException이 발생했다. PlatformException (PlatformException(Exception encountered, deleteAll, java.lang.NullPointerException: Attempt to invoke interface method 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin.deleteAll(FlutterSecureStoragePlugi..
디버깅 모드로 실행했을 땐 문제가 없던 앱이, apk파일을 설치하여 실행할 경우 아래와 같은 Exception이 발생했다 : E FlutterLoader: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “~~~~~~”],nativeLibraryDirectories= [/~~~~~~-KZuzqfrkWcDtvMA1osi-jA==/lib/x86, /~~~~~~-KZuzqfrkWcDtvMA1osi-jA==/base.apk!/lib/x86, /system/lib]]] couldn’t find “libflutter.so” 게다가 특정 디바이..
Flutter 의 비동기 로직 처리에 사용되는 대표 키워드 Future, await, async에 간략하게 정리해보려한다. 아래 코드는 dart.dev 에서 비동기 처리의 잘못된 예를 보여주기 위해 제공해 준 코드다 : String createOrderMessage() { var order = fetchUserOrder(); return 'Your order is: $order'; } Future fetchUserOrder() => Future.delayed( const Duration(seconds: 2), () => 'Large Latte', ); void main() { print(createOrderMessage()); } 우선 비동기 처리를 선언하는 Future 키워드를 살펴보자. 있다가 다 처..
Drawer를 child로 갖고있는 Container의 모퉁이를 둥글게 바꾸는 게 아주 간단할 줄 알았으나, Decoration으로 어떤 위젯을 감싸도 모퉁이가 둥글게되지 않아 찾아본 결과,,, Decoration은 child 위젯의 뒤에 그려진다는 것을 알게되었다. 결국 Container에 borderRadius가 잘 반영이 되었다 해도 child 뒤에 그려져 보이지 않았던 것이다.. 이에 대한 해결책은 바로 ClipRRect이다. 공식 문서에서의 해당 위젯에 대한 설명은 다음과 같다 : A widget that clips its child using a rounded rectangle. [Link] 해당 위젯으로 감싸면 끝이 둥근 형태의 컨테이너가 틀이되고 자식 위젯이 그 틀 안에서 출력되는 것이다...
Flutter 프로젝트 생성 시, 프로젝트가 아래와 같은 폴더, 파일로 구성된 걸 볼 수 있다 : 우선 프로젝트를 구성하는 폴더와 역할은 아래와 같다 : - .dart_tool : Dart2부터 추가되었으며 pub과 다른 다른 tool에서 사용 - .idea : 개발 도구 관련 설정 - android : 안드로이드 네이티브 코드 작성 - build : 빌드 시 요구되는 파일 - ios : iOS 네이티브 코드 작성 - lib : Dart 네이티브 코드 작성 - test : 테스트 코드 작성 그리고, 파일들과 역할은 다음과 같다 : - .gitignore : 모두가 한번씩은 사용해봤을 git 버전 관리 시 무시할 파일을 관리하는 파일 - .metadata : 프로젝트의 property를 version정보로..
스프레드 연산자는 컬렉션 내 데이터들 나열된 상태를 명시해주는 연산자로, 컬렉션에 다른 컬렉션 데이터를 삽입할 때 사용됩니다.. 아래 예제 코드를 보면 : List dynamicList = [1, 2, "삼", 4]; List finalDynamicList = [0, ..dynamicList, 5]; // Print : "0, 1, 2, "삼", 4, 5" List finalIntList = [0, ..dynamicList, 5]; // Error 아아주 간단하다. 앞서 설명한 바와 같이, dynamicList 앞에 ... 연산자를 명시하여 0과 5 사이에 해당 컬렉션의 데이터를 삽입하겠다는 의미이다. 하지만 type은 신경써줘야 한다, dynamicList와 동일한 데이터 타입으로 선언된 finalDy..
함수 정의 시 매개변수 선언 시, 매개 변수를 선택형으로 설정해줄 수 있다. 이를 선택 매개변수라 부르며, 선택 매개변수를 넘겨줄 때에는 앞에 매개변수명을 명시해야하기 때문에, 이름 있는 매개변수(Named Parameter)라고 불리기도 한다. 선택형 매개변수는 간단하게 curly bracket({})으로 감싸주어 선언할 수 있다. 다음 예제 코드를 보자 : void testFunc(String required, {int named}) { // Codes } void main() { testFunc("String", named:0); testFunc("String"); testFunc(named:0); // Error } testFunc의 매개 변수 2개가 선언되었고, 그 중 named라는 int 타입..