회사에서 시간이 남아서 리팩토링 할 코드가 뭐가 있을지 고민하던 중 이전에 들어본 FlexLayout, PinLayout에 대해 궁금증이 생겨서 찾아보게 되었다.(현재 진행하고 있는 기존 프로젝트들은 Snapkit, Then을 활용해 레이아웃을 구성하고 있다.) FlexLayout과 PinLayout과 관련된 자료를 조사해보던 중 해당 라이브러리가 UIStackView 보다 8배에서 12배 더 빠르다는 장점이 있다는 것을 알게 되어 시간이 남는 김에 이를 적용해보고자 했다. 우선, 해당 코드는 자료 검색하고 한두시간 만에 만든 화면이라 이런식으로 레이아웃을 구성한 것이 맞는지는 모르겠다...// Snapkit을 활용한 기존 코드override func addViews() { super.add..
그림과 같이 분리선을 기준으로 왼쪽 사각형의 좌측 모서리는 cornerRadius 16, 오른쪽 모서리는 cornerRadius 8을 줘야 되는 디자인이 있었다. 특정 모서리에만 cornerRadius를 주는 것은 그리 어렵지 않아서 이것도 그냥 내장함수같은 게 있겠지? 했으나(내가 못 찾았을지도..) 그런 함수는 존재하지 않았다.. 그래서 일단 구글링을 통해 필요한 함수들을 UIBezierPath + Extension, UIView+Extension에 각각 추가해줬다.extension UIView { func roundCorners(leftTop: CGFloat = 0, rightTop: CGFloat = 0, leftBottom: CGFloat = 0, rightBottom: CGFloat = ..
기존에 SwiftUI를 활용해서 만들었던 택배조회 서비스를 UIKit으로 개발하는 작업을 간간히 하고 있다. 기존 기획에는 다음과 같은 TextField가 존재했었다 화면을 보면 선택되지 않았을 시에는 border가 없다가 텍스트필드가 선택되는 경우 보라색이, 에러가 발생했을 경우(가령, 이메일 형식 아님) border 색과 placeholer 텍스트이 변하고, 텍스트 필드가 흔들리는 애니메이션을 추가하려고 했다. 그러나 SwiftUI를 활용할 당시에는 이 모든 기능을 개발하는데 어려움을 겪어서(지금 하면 할 수 있을 것 같기도..) 포기했었는데, 이번에 UIKit으로 개발하면서 해당 기능을 custom textfield를 통해 구현했다. 전체적인 로직은 다음과 같고, shaking과 같은 함수나 해당 ..