디자이너가 배우는 iOS
디자이너가 Xcode 프로그램으로 해보는 코딩
[목차]
1. 오토레이아웃 : 제약사항과 point
1. Xcode를 열고 Main storyboard에 들어간 모습이다.
오른쪽 아래에서 "View Controller"를 끌어다가 화면에 놓는다.
그 후, "View"를 "View Controller"위에 끌어다 놓는다.
여기서 "View"는 아무것도 없는 사각 도형같은 존재이다.
우리는 이것을 "멍텅구리 화면"이라고 명명하기도 한다.
또한 포토샵이나 일러스트의 레이어 개념과 같이,
"View Controller"가 부모 레이어가 되고,
그 위에 올려다 놓은 "View"는 자식 레이어가 된다.
2. 내가 구성한 화면을 "Preview" 기능을 통해 바로 실행시켜 볼 수 있다.
여기서, 내 아이폰으로 가져와 테스트 구동 시켜볼 수는 없을까 궁금해하는 사람도 있는데,
관리자 승인을 받아야만 볼 수 있다고 한다.
오른쪽 상단에 동그라미 두개가 겹쳐져 있는 아이콘을 선택한 후
-> 중간 status bar에서 "Preview" 선택 후 -> "Main.storyboard (Preview)" 를 선택한다.
-> 이후에 왼쪽 상단에 플레이 모양 아이콘을 누르면 구동되는 것을 볼 수 있다.
4. 이미 구동되고 있던 Preview화면이 있다면 다음과 같은 알림창이 뜨는데,
그냥 stop 누르고 구동시켜주면 된다.
5. 내가 디자인한 화면이 "Preview" 기능을 통해 구동된 화면이다.
처음에 화면을 열고 연습할 멍텅구리 view 화면을 얹어본 후, Preview를 통해 구동까지 시켜보았다.
이제 정말 중요한 "Auto layout menu"에 대해 알아보자.
실습에 들어가기 전, 사용할 메뉴들에 대해 알아야 한다.
★★★★★
"Auto layout menu"
총 5가지의 종류가 있는데, 화면의 우측 하단부에 위치한다.
생김새는 이러하다.
1. Update Frame/ 2. Embed in Stack/ 3. Align/ 4. Add New Constraints/ 5. Resolve Auto Layout Issues
각각의 기능을 사진의 순서대로 살펴보면,
1. Update Frames : 선택된 뷰(들)을 제약사항에 맞게 프레임을 변경하는 툴이다.
2. Embed in Stack : 해당 객체들을 하나의 스택 뷰로 변환하는 툴이다.
3. Align : 객체 정렬에 관한 제약사항을 추가하는 툴이다.
4. Add New Constraints : 객체의 크기 및 객체 간 거리에 관한 제약사항을 추가하는 툴이다.
5. Resolve Issues : IB 구성 중 발견된 오토레이아웃 관련 문제를 해결하는 툴이다.
"Pin Menu"
순서대로 기능을 살펴보자
1. 인접 객체와의 고정거리 제약
2. Width / Height : 가로, 세로 크기
3. Equal Widths / Equal Heights : 다른 객체와의 크기 비율 제약
4. Aspect Ratio : 가로, 세로 비율 제약
5. Align : 다른 객체와의 정렬
** pt : 모든 단위는 포인트!!!!
"Resolve Auto Layout Issues Menu"
* 설정한 제약사항에 따라 프레임 (자동)수정
* 현재 화면의 프레임에 따라 제약사항 (자동)수정
* 부족한 제약사항 (자동)추가
* IB가 제안하는 제약사항으로 제약사항 초기화 (자동)
* 제약사항 모두 삭제
*** Update Frames, Clear Constraints 외에는 사용 자제
이 메뉴는 주로 "Clear Constraints" 기능을 쓸 때 이용했는데,
'기준 뷰'를 기준으로 걸어놓았던 수식들이 틀렸을 때, 이전 단계로 돌아가는 용으로 많이 사용하였다.
위에서 살펴본 메뉴들을 이용하여 "기준 뷰"를 잡고, 그에 맞춰 화면을 배치해보는 실습을 해보자.
2. 테스트용 멍텅구리 화면 "View"를 얹는다.
3. "Add New Constraints" 메뉴를 열고
4. "Width", "Height"를 선택 후 "Add 2 Constrains"를 선택해 완료해 준다.
5. 선택 완료를 했는데도, '빨간 테두리'가 떠있다는것은 뭔가 잘못되었다는 것을 뜻한다.
이 경우, 'Width', 'Height'가 지정된 것은 잘 했는데, 동시에 이루어져야 할 좌표값은 입력되지 않았으니
빨리 내 좌표값을 입력해줘!! 하고 징징대는 표시인 것이다.
위에서 말했다 시피, x,y의 좌표값과 width, height는 반드시 선택되어야 빨간색도 안뜨고
제대로 완료 되었다는 것을 뜻한다.
5. 빨간 선을 띄우며 징징거리는 이 아이를 진정시키기 위해
좌표값을 서둘러 설정해본다.
"Add New Alignment Constraints" 메뉴에서 맨 아래 두개인
"Herizontally in Container"와 "Vertically in Container"를 선택해 준다.
6. 가운데 정렬을 위해 "Add New Contrains" 메뉴에서 맨 위에서 부터
얼마만틈 떨어질 것이냐를 정해줌으로 가운데정렬을 해준다.
7. 완료가 된 상태이다.
선택했을 때 빨간색 선이 하나도 안뜬다. 이를 통해 오류가 없음을 확인할 수 있다.
7-1. 만약 위 사진과 같이 모든 설정을 마친 후 선택했을 때,
노란색 점선이나 실선같은것이 뒤에 깔린다면,
내가 준 설정값대로 뷰가 들어가 있지 않은 상태라는 것을 알려주고 있는 것이다.
이럴 때에는, Auto layout menu의 첫번째 아이콘인,
Update Frames : 선택된 뷰(들)을 제약사항에 맞게 프레임을 변경하는 툴을
선택만 해주면 알아서 해당 위치로 도형이 이동한다.
이번에는 '멍텅구리 View'를 Status bar에 딱 붙여보자.
1. 멍텅구리 view를 원하는 위치에 놓고 "Herizontally in Container"를 체크하여 준다.
이로서 x축의 좌표값을 준 것이 된다.
2. 좌표값을 주었으니 이제는 Width 와 Height 값을 줄 차례이다.
두 값을 체크해주고 원하는 숫자를 넣는다.
여기서 잊지 말아야 할 것은, "Add New Constraints"의 상위 값을 "0"으로 지정해줘야 한다는 것이다.
그래야 status bar에 딱 붙게 view를 설정할 수 있다.
3. 위와 같은 과정을 통해 완성 된 화면이다.
status bar에 딱 맞게 붙어있는 view의 모습을 볼 수 있다.
view를 클릭했을 때 보여지는 안내선에도 빨간 선은 없다.
오류 없이 모든 값이 잘 들어갔다는 것을 의미한다.
status bar에 view를 붙이고 싶을때 핵심으로 기억해야 할 것은
"Add New Constraints" 메뉴를 열고 상단 값은 '0'으로 맞추면 된다는 것이다.
아이폰7 화면에서 화면배치를 한다고 했을 때, 아이폰7은 375*667로 인터페이스 값이 정해져있다.
때문에 375*667이라는 화면에서 "상대적인" 개념을 이용하여 view의 치수를 정해줄 수 있다.
1. "Equal Widths" 와 "Equal Heights"라는 메뉴를 선택해준다.
2. "Center Vertically in Container"을 선택하여 값을 입력하고
3. 마찬가지로 "Center Horizentally in Container"을 선택 후 원하는 값을 입력해주면 된다.
4. 이 기능들을 이용해 작은 크기로 가져왔던 View를 아이폰7 크기의 인터페이스에 딱맞게
수치를 조정해 볼 수 있다.
* "상대적 개념"을 이용한 view의 사이즈 조정을 여러가지로 해 보았다.
Auto layout menu를 통해 아래와 같은 화면은 1분이면 완성할 수 있다.
모든 컨텐츠들을 화면에 넣고 화면배치를 끝냈다.
아이폰7의 인터페이스 사이즈 375*667 안에서, 기준이 되는 "기준 뷰"(마젠타색 정사각형) 를 잡고 그것을 중심으로
Text 와 Text View를 위치했다.
화면에 들어간 모든 요소들을 선택해 보았을 때, 안내선에 빨간색은 없다.
모든 좌표와 수치가 알맞게 들어간 것임을 확인할 수 있다.
Xcode로 간단한 Prototyping을 만들 수 있다.
실제로 Xcode를 활용하여 Prototyping하는 디자이너는 거의 없다고 보면 된다.
할 줄 모르기 때문이다. 하지만 Xcode로 Prototyping을 한다면, 개발자들이 그 디자이너를 다시 볼 것이다.
또한 개발자와 디자이너가 서로 소통하기가 훨씬 용이해짐으로, 디자이너로서 자신의 업무 스킬 및 가치를
높일 수 있을 것이다.
아래 사진처럼, Xcode로 Prototyping 한다면, 여러가지 View Controller를 깔아놓고 원하는 화면 flow대로
디자인한 다음 각 화면들끼리 이어주면 된다.
간단한 실습을 해보자.
페이지 flow를 보기 위해서 view에 색상을 깔았다.
그린색 페이지 다음 마젠타색 페이지로 넘길 것이다.
1. 원하는 화면을 구성한 후,
2. 메뉴바에서 Editor -> Embed in -> Tab Bar Controller 를 클릭해 준다.
** 여기서 중요한 점!!
어떤 화면으로 Prototyping을 구성할 것인지에 따라 들어가는 경로가 다르다!!!
크게 4가지로 나눠본다면,
1. 네비게이션 화면을 구성하려면...
Editor -> Embed in -> Navigation Controller
2. 탭바 화면을 구성하려면...
Editor -> Embed in -> Tabbar Controller
3. 네비게이션으로 화면 이동
Show / pop / pop to root
4. 모달로 화면 이동
Present modally / dismiss
3. 왼쪽 레이어 리스트에 "Tab Bar Controller"가 생성된 것을 확인할 수 있다.
4. 화면이 변환되는 방식도 여러가지로 바꿔볼 수 있다.
해당 버튼을 눌렀을 때 어떤식으로 화면 전환 효과가 들어가는지는 "State Config"메뉴에서 바꿔볼 수 있다.
5. 전체적인 화면구성을 끝냈다.
6. 만약, "Tab bar"의 모양이 마음에 안든다면 바꿀 수도 있다.
지금은 직사각형의 모습인데, 왼쪽 레이어리스트에서 "View Controller" -> "View -> Button을 누르고
모양을 바꿔줄 수 있다.
7. 화면이 완성되었다. "Preview"를 통해 play 해보자.
8. play할 수 있는 작업을 마쳤다는 의미의 "Build Succeeded"라는 메시지가 나온다.
망치모양이 내가 지금 실습하고 있는 Xcode 화면이고,
그 옆에 스마트폰 모양이 Simulator 되는 화면이다.
따로 분리되어 나타나진다.
9. "Preview" 화면이 이처럼 크게 나온다면,
Command+3 혹은 Command+4, Command+5로 크기를 조정할 수 있다.
9. 화면 크기를 보기 좋게 맞추고 "Preview" 를 해보았다.
*Preview 해본 영상
지금까지 디자이너가 Xcode로 배워보는 iOS 코딩에 대한 글이었다.
Xcode라는 프로그램은 인터페이스에 view들로 디자인 작업을 할 수도 있고 코딩값도 넣을 수 있다.
때문에 개발자들이 쉽게 디자인해보기 위해 이 프로그램을 쓰기도 한다고 한다.
개발자들도 다루는 디자인툴이니, 디자이너들도 개발자와의 원활한 커뮤니케이션을 위해 익히는 것이 좋겠다.
'Report > 코딩(Android, iOS, html, CSS)' 카테고리의 다른 글
Report_034. 디자이너가 배우는 HTML/CSS__part3 (0) | 2017.06.05 |
---|---|
Report_026. 코딩(Coding) : Android / 디자이너를 위한 안드로이드 디자인해보기 (0) | 2017.05.17 |