SwiftUI 프로그램과의 대화

이번 2019년 WWDC에서 새로 선보인 iOS UI 프레임 워크인 Swift UI는 코드를 중심으로 보다 직관적이고 빠르게 전체적인 프레임을 구성하게 해주는 재미있는 툴셋이다.
아이폰의 UI툴셋의 기본적인 발전과정을 되돌아보면서 어떤 생각들이 더해지며 발전해 갔는지 생각헤보자!

1. 하드코딩!
처음 시작은다늘 그렇듯 하드 코딩에서 시작한다.
누구나 알다시피 예쁘게 만들기 시작하며 픽셀을 맞추기 시작하다보면 모든 것들이 미치도록 복잡해진다.

2. Interface Builder(Xib)
간단한 드레그 드랍으로 간단하게 각종 콤포넌트들을 배치하고 콜백과 각종 변수들을 컨트롤러나 뷰에 연결시킬 수 있어 많이 편해졌다.

3. Nib의 분리!
아이패드가 나오면서 UI디자일을 간단하게 양쪽 모두에 맞추기 위해 nib파일을 분리해 독자적인 레이아웃을 충족시키게 했다.

4. layout constraints 
다양한 크기의 디바이스가 미친듯이 나오면서 그 모두에 맞는 디자인을 갖추기 위해 계산해야할 사항들이 점점 늘어나는 가운데, 비율과 서로다른 콤포넌트들의 관계성에 대한 정의를 중요시 하기 시작했다.

5. Visual language
Nib 파일이 아닌로동적인 콤포넌트들에 대해서 하드코딩으로 붙이다 보면 layout constraint 인스턴스를 하나하나 하드코딩해야하는데 쓰기도 읽기도 거의 불가능한 수준이었다, 이를 조금이라도 빠르게 쓸 수 있고 어느정도 이해할 가능성 있는 형태로 개선 시킨다.

6. Story board 
개인 개발을 하는 간단한 UI의 경우 개발 시간을 극단적으로 줄여주지만 머지에 치명적인 문제점을 가지고 있기에 하나의 스토리 보드에 다섯개 미만의 화면을 넣어 잘게 쪼개는 방법을 기본적으로 추천한다.

7. Anchor 와 레이아웃 가이드
아이폰X의 등장과 함께 아이폰 상하에 터치가 들어가지 않는 영역이 생기면서 등장한 레이아웃 가이드. 그냥 조니 아이브에게 드롭킥을 선사해주고 싶다. 
 앵커는 constraint를 조금더 명료하게 발전시켰다. 특히 비쥬얼랭기지의 특성상 머지가 실패할 경우 그냥 첨부터 다시해야하는 반면, 앵커를 사용하면 라인단위로 끊을 수 있어 뻑날 가능성이 눈꼽만큼 줄일 수 있다.

8. Swift UI
정적인 디자인툴인 xib과 스토리보드를 대체할 만한 새로운 툴. 인터페이스빌더에 준하는 드래그 드랍을 통해 인간이 읽을 수 있는 코드를 만들어 머지나 리뷰를 빠르게 할 것으로 기대된며 어느정도의 동적인 변화를 집어 넣을 수 있는지는 아직 모르지만, MVC 모델의 획기적인 단순화가 가능 할 것 같다.



덧글

댓글 입력 영역