Flow Exception Handling 살펴보기
·
Study/Kotlin
Flow가 종료되는 방식 이해하기Flow에서는 기본적으로 무슨 일이 일어날까? 값을 emit하거나 Flow 자체가 완료되는 것이다. 여기서 Flow가 완료될 때는 또 다시 두 가지 경우가 있다. 바로, 정상적으로 완료되거나 예외와 함께 종료되는 경우이다. .onCompletion { cause -> if (cause == null) { println("Flow completed successfully") }}만약 cause가 null인 경우, Flow가 정상적으로 종료된 것이고반대로 null이 아니라면 예외와 함께 종료된 것이다. Flow 내부에서 예외가 발생했을 때val someFlow = flow { emit("1") emit("2") throw Exception("Network ..
AutoLayout Minimum Width 비교하기
·
Study/iOS
이번에는 Minimum Width를 마주하게 되었다. 이게 무슨 뜬금없는 소리일까 싶을 수도 있겠다. 배경AutoLayout을 사용해보던 중, UILabel width를 100과 같은 특정 값을 주게 되면Localization Issue 경고가 발생하는데 Xcode에서 3가지 옵션을 제안해준다. 제약조건을 삭제할 것인지,Current Width 혹은 Minimum Width 이상으로 설정할 것인지 선택하면 된다. 당연히 아래 두 개 옵션 중 하나를 선택해야 했는데무슨 차이가 있을까 싶었다. 비교해보기Current Width설명에는 텍스트가 더 길어져도 현재 레이아웃을 유지하며라벨 너비가 늘어날 수 있게 허용한다고 되어있다. 그럼 실제로 스토리보드에는 어떤 값이 입력될까?내가 기존 값을 100으로 설정했는..
AutoLayout Constraint 설정과 Safe Area, Size class
·
Study/iOS
이번 글에서는 AutoLayout을 사용해보면서 size class, safe area, constraint까지 알아볼 예정이다. AutoLayout의 필요성이미지뷰와 텍스트를 특정 위치에 드래그해서 만든 화면을 가로로 돌려보자. 그럼 화면이 세로로 구성되어 가로화면에서 잘리게 된다. 이 문제를 해결하기 위해서는 해상도마다 화면이 어떻게 보일지 수정하는 방법이 있을 것이다.(그나마 iOS라서 할수는 있을지도..? 안드로이드에서는 죽음뿐..) 하지만, 모든 해상도 및 기기에서 화면 구현을 하기는 어렵다. Size class지금까지 수많은 아이폰과 아이패드가 출시되었고 다양한 기기 사이즈와 해상도가 있다. 그래도 애플은 몇몇 시리즈끼리는 사이즈와 해상도가 동일하기도 하다.(그렇게 혁신이 없다고 욕을 먹는 지..