일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tft api dart
- dart new 키워드
- docker overview
- flutter widget
- 발로란트 api dart
- keychain error
- swift concurrency
- 롤 api dart
- dart
- leetcode dart
- valorant api dart
- dart.dev
- 롤토체스 api dart
- PlatformException(sign_in_failed
- swift 동시성
- 파이썬
- Architectural overview
- riot api dart
- flutter android 폴더
- lol api dart
- flutter bloc
- widget
- com.google.GIDSignIn
- flutter
- 파이썬 부동소수점
- flutter statefulwidget
- generate parentheses dart
- AnimationController
- flutter ios 폴더
- dart new
- Today
- Total
목록전체 글 (130)
Coaspe
사랑했던 사람아소중한 20대의 절반을 위해나를 지나쳐 가오. 같이 커피를 내리지도,같은 우산을 쓰지도 마오. 우린 무더운 여름에 만나다섯 번째 겨울에 이별하오. 당신이 이별을 묻지 않았듯여섯 번째 겨울에서 그대를첫사랑이라 부르겠소. 사랑할 수밖에 없는 사람아몇 번째 겨울이 지나고몇 번째 여름에 우리를 추억해 주오.그 계절에 여전히, 홀로 서 있으니.
list = [i * 0.01 for i in range(1, 10000)] for i in list: if int(i * 100) != int(i * 100 + 0.5): print(i, i * 100, int(i * 100), int(i * 100 + 0.5))
@State 및 @Binding 프로퍼티 래퍼를 사용하여 뷰 계층에서 업데이트를 트리거하기 위한 source of truth로 값 유형을 정의했습니다. 이 문서에서는 앱의 사용자 인터페이스에 대한 source of truth로 참조 유형을 정의하는 방법에 대해 알아봅니다. Working with reference types @State 프로퍼티 래퍼는 구조 및 열거와 같은 값 유형에 대해서만 작동합니다. SwiftUI는 참조 유형을 source of truth로 선언하는 프로퍼티 래퍼를 제공합니다. @ObservedObject, @StateObject 및 @EnvironmentObject. 이러한 프로퍼티 래퍼를 클래스와 함께 사용하려면 클래스를 관찰 가능하게 만들어야 합니다. Making a class..
Source of truth 다수의 상태의 복사본을 관리하면 앱에 버그가 발생할 수 있는 불일치가 생길 수 있습니다. 데이터 불일치 버그를 방지하려면 앱의 각 데이터 요소에 대해 단일 소스를 사용해야합니다. 요소를 한 위치에 저장하면(source of truth), 임의의 수의 뷰가 동일한 데이터에 액세스할 수 있습니다. 코드 전체에 걸쳐 sources of truth 를 만들 수 있습니다. 각 sources of truth를 어떻게 그리고 어디서 정의하느냐는 데이터가 여러 뷰 사이에서 공유되는지, 데이터가 변경되는지에 따라 달라집니다. Swift property wrappers Swift에서 프로퍼티 래퍼는 공통 속성-초기화 패턴을 캡슐화하여 속성에 동작을 효율적으로 추가하는 데 도움이 됩니다. 스위프..
비동기 코드를 간단하게 작성하기 SwiftUI 앱에서는 메인 스레드가 모든 UI 작업을 수행합니다. 또한, 탭이나 스와이프 같은 유저 이벤트도 메인 스레드가 처리합니다. 이 모든 작업들이 올바르게 작동하기 위해서는 앱의 뷰 업데이트와 이벤트 핸들러는 모두 메인 스레드에서 수행되어야 합니다. 그러나, 너무 많은 작업이 메인 스레드로 몰리면 앱의 반응성이 떨어집니다. 메인 스레드가 어떤 코드의 완료를 기다린다면 그 동안에 수행되어야할 뷰 업데이트 또는 이벤트가 지연되고 사용자로 하여금 결국 앱이 느리고 가만히 있는 것 처럼 느껴지게 합니다. 균형을 맞춰야 합니다. 필요할 때는 메인 스레드에서 실행하지만 가능할 때는 백그라운드 스레드에서 실행합니다. 다음 튜토리얼에서는 데이터를 읽고 디스크에 데이터를 쓸 코드..
(수정) Rendering and layout 이번 섹션에서 Flutter가 위젯의 계층을 화면에 그려진 실제 픽셀로 변환하기 위해 수행하는 일련의 단계들인 렌더링 파이프라인에 대해 설명합니다. Flutter의 Rendering model Flutter가 크로스 플랫폼 프레임워크라면, 싱글 플랫폼 프레임워크들과 비교적 좋은 성능을 어떻게 발휘할지 궁금할 것입니다. 전통적인 안드로이드 앱들이 어떻게 작동하는지 생각해보는 것부터 시작하는 게 좋습니다. 드로잉 할 때, 안드로이드 프레임워크의 Java 코드를 첫번째로 호출 합니다. 안드로이드 시스템 라이브러리들은 Skia로 안드로이드가 렌더하는 Canvas 객체에 스스로 드로잉 하는 컴포넌트를 제공합니다. Skia는 디바이스 위의 드로잉을 하기 위해 CPU나 ..
(Anatomy of an app가 추가되었습니다) flutter 앱은 모든 코드를 재컴파일 필요없이 변화에 대한 stateful 핫리로드를 제공하는 VM에 의해 작동합니다. 릴리즈를 할 때, Flutter 앱은 Intel x64, ARM instructions 명령어 머신코드로 바로 컴파일 되고, 타켓이 웹이라면 Javascript로 컴파일 됩니다. Flutter는 permissive BSD license와 코어 라이브러리의 기능을 보충하는 서드파티 패키지의 번영을 추구하는 생태계를 가지고 있습니다. 해당 overview는 여러개의 섹션으로 나뉩니다. Layer model: Flutter를 구성하는 조각들 Reactive 유저 인터페이스: Flutter 유저 인터페이스 개발의 중심이되는 개념 Widge..
남음 금요일에 번화가를 가면 가게에 자리가 없어서 배회한 적이 많습니다. 그럴 때마다 이런 앱이 있으면 어떨까 생각해서 Flutter 연습겸 제작했습니다. 포잉, 캐치 테이블과 같이 비슷한 앱이 존재하지만 제가 원하는 것은 아직 없는듯 합니다. 원하는 가게에 자리가 있다면 예약 하고, 없다면 웨이팅을 겁니다. 이 앱은 고객이 이용하는 앱이고, 사장을 위한 앱도 제작해야합니다. 최대한 pub.dev의 라이브러리를 사용하지 않으려고 노력했습니다. Github Preview 주변 가게 검색 )) 예약 예약 취소 )) 커스텀 로컬 알람 |
현재 내 주변에 어떤 가게들이 있는지 확인하기 위해 Google map을 사용합니다. Google map위에 있는 Marker를 클릭하거나, sheet을 드래그하면 화면의 하단에서 sheet이 올라오게 구현 할 예정입니다. (Marker를 클릭하는 것은 간단하니 우선 드래그를 구현해봅니다) 우선 Google map이 있는 tab을 Stack으로 감싸줍니다. 그래야 Positioned를 사용해 bottom에 sheet를 위치 시킬 수 있습니다. 24 line이 우리가 구현 할 위젯입니다. MapBottomSheet은 StatefulWidget으로 설정합니다. BottomSheet을 AnimatedContainer로 구현 할 것이기 때문에 state가 필요합니다. 기본 동작은 다음과 같습니다. Bottom ..
Bloc에서 state를 정의 할 때 Equatable을 사용하게 됩니다. 왜 사용해야 할까요? 정답은 emit 함수를 사용하는 과정에 있습니다. 98 line을 보시면 기존의 state(_state)와 새로 들어온 state(argument)를 비교하여, 일치한다면 return 시킵니다. 그리고 Equtable 라이브러리에서는 다음과 같이 props를 사용하여 이전과 동일한 state인지 구분합니다. 가끔 State를 변화시킨 것 같은데, 예상되는 UI의 변경이 발생하지 않는다면, Equtable의 props를 다시 설정해주세요!