일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- IOS
- 프로그래머스
- zwj
- 코틀린
- Kotlin
- 플러터 동작
- 재귀
- 프리즈드
- Java
- 플러터
- 앱아이콘 변경
- 초기화
- Lazy
- 거리알고리즘
- 싱글톤
- 자료구조
- dart
- element tree
- dfs
- flutter
- Singleton
- 비동기 처리
- Render object tree
- Android
- 완전탐색
- 알고리즘
- linebreak
- Today
- Total
목록플러터 (4)
모바일 개발하는 자바리안의 메모장
아이콘 변경은 자주하는 작업이 아닌만큼 할 때마다 귀찮고, 헷갈려서 이번 기회에 글로 깔꼼하게 정리해두려고 한다. 공식 플러그인을 사용하는 방법도 있지만 나는 내 기준에서의 shortcut을 택했다. (macOS, Windows 앱을 개발할 경우 플러그인 추천) 우선 Icon으로 사용할 n * n 크기의 png image를 준비한다. Generator 웹 툴을 이용해 필요한 이미지를 추출한다.(iphone, ipad만 선택✅) 압축 파일이 떨어지는데 아래 구조로 되어있다.(appstore.png & playstore.png 는 추후 스토어 app icon 등록할 때 사용) [project root]/ios/Runner/Assets.xcassets를 삭제하고 generator가 만들어준 Assets.xca..
Multi-line Text 위젯에 한글을 띄워줄 때 단어 단위로 줄바꿈이 안되는 상황,,, 모두 한번쯤은 이 답답함을 경험해봤을 것이다. 공식 커뮤니티에서도 약 3년전부터 관련 이슈에 대한 이야기가 계속 되고 있지만 아직까지 수정은 안된 상태. 아마도 원인은 line break처리를 담당하는 API가 CJK(한중일)텍스트의 줄 교환 위치를 정확히 계산하지 못해서인듯하다. Wrap을 이용한 workaround도 있지만 뭔가 무거운 느낌이 있어 regular expression을 찾게되었다 : RegExp(r'(\S)(?=\S)') 이 마법의 정규표현식은 실제 각 character들이 붙어있는지 아닌지를 판단해준다. replaceAllMapped를 사용하여 정규식과 match되는 위치에 ZWJ는 추가해주면..
Widget 트리만 알고 있었는데, 면접에서 받은 질문을 통해 플러터는 총 3개의 트리가 존재한다는 걸 알게됐다.. 아래와 같은 3개의 트리가 존재하는데, 영역을 나눈 이유는 퍼포먼스를 최적화하기 위해서라고 한다. - Widget - Element - Render Object Widget tree 는 아마 플러터를 사용하는 사람들에겐 가장 익숙한 tree가 아닐까 싶다. 우선 Widget은 immutable 이며 공식 문서에서 설명하는 바로는 Widget은 Element의 설정에 대한 description이라고 한다. 즉, widget을 개발하며 추가하는 property와 같은 정보들이 widget tree에 담기게 된다. Element tree 에서 관리되는 element는 widget의 인스턴스로..
Dart는 Single-threaded 환경에서 작동한다. 그럼 우리가 await, async 등을 통해 사용한 비동기 처리는 어떻게 가능할까... 정답은 Event Loop이다. 이벤트 루프는 애플리케이션에서 발생하는 이벤트(예: 사용자 입력, 타이머, 네트워크 응답 등)를 처리하며, 이러한 이벤트가 발생할 때마다 이벤트 루프는 각 이벤트에 대한 callback을 실행한다. 이벤트는 Event Queue에 추가되며 다음과 같이 2개 타입의 Event Queue가 존재한다 : 1. Microtask Queue 2. Event Queue Microtask Queue는 이벤트 루프가 처리해야 할 가장 높은 우선순위를 가지는 작업을 담는 Queue로 Microtask Queue에는 Future.microtas..