본문 바로가기

14일 만에 아이폰 앱 만들기

14일 만에 아이폰 앱 만들기 챌린지(3) - 유저 인터페이스 만들기(feat. SwiftUI)

14일 만에 아이폰 앱 만들기 챌린지(3) - 유저 인터페이스 만들기(feat. SwiftUI)

이 포스팅에서는 다음과 같은 주제를 다룬다.

  • 유저 인터페이스 미리 보기
  • 유저 인터페이스 만들어보기

 

xcode 프로젝트를 만들어보자.

Create a new Xcode project

 

App 선택하고 Next
Interface, Life Cycle, Language 확인하고 Next
프로젝트 첫 화면, 다르다고 당황하지 말자, 거기서 거기다.

ui를 보는 방법은 두 가지가 있는데  하나는 시뮬레이터를 실행시켜서 보는 것이다.

 

상단에 시뮬레이터를 고르는 부분이 있는데 적당히 아이폰 하나를 선택하자.

시뮬레이터 선택

그리고 그 왼쪽에 있는 재생Run 버튼을 클릭한다. 그러면 시뮬레이터가 뜰 건데 처음 키는 거라면 상당한 시간이 걸릴 수 있으니 인내심을 조금만 가지고 진행하자.

 

아이폰이 떴다

Hello, world! 라고 찍힌 label을 볼 수 있다. 다시 정지Stop 버튼을 눌러 종료시키자. 정지 버튼은 아까 눌렀던 실행 버튼 오른쪽에 있다.

 

인터페이스를 보는 두 번째 방법은 canvas를 이용하는 것이다. 지금 나의 xcode에는 아래쪽에 canvas가 있는데 보통은 오른쪽에 있을 것이다.

 

보통은 오른쪽에 있드라

만약에 canvas가 보이지 않으면 에디터 영역의 우측 상단에 버튼을 클릭하면 canvas를 선택할 수 있는 메뉴가 나온다.

canvas가 보이지 않는다면 Canvas 선택

네비게이터에서 uitestApp.swift파일을 선택하면 canvas에서 preview를 볼 수 없을 것이다. 하지만 ContentView를 선택하면 preview를 볼 수 있다.

ContentView를 선택하고 Resume 누르기

Canvas의 우측 상단에 있는 Resume버튼을 눌러보자. 그럼 빌드하고 실행할 것이다. 이 역시 처음에 하면 시간이 오래 걸릴 것이다. 다시 인내심을 가지고 기다리자.

 

preview가 떴다.

preview가 보이고 우측 하단의 zoom을 이용하여 적당히 조절해보자. 시뮬레이터와는 달리 인터렉션은 없고 보이기만 할 뿐이다. canvas 좌측 상단의 실행 버튼을 눌러보자.

canvas 내에서 실행

그러면 시뮬레이터에서 보듯이 볼 수 있다. 실행 버튼이 정지로 바뀐 걸 볼 수 있는데 이 정지 버튼을 클릭하면 다시 이전 preview 모드로 돌아간다. 

 

이 preview에서는 이것 말고도 다른 기능이 있다.

설정을 바꿀수 있다.

 

여러 가지 옵션(기기 변경, 레이아웃, 컬러 등)을 건드릴 수 있다. 이렇게 canvas에서 preview를 하면 좋은 점이 있다. 바로바로 변경되는 것을 볼 수 있기 때문이다. 시뮬레이터를 다시 띄우거나 할 필요가 없다.

 

 

에디터에서 커서가 있는 부분의 ui가 canvas 상에서 활성화된다.

Hello, world! 라는 라벨을 놓는 코드인 듯하다. 일단 저 코드를 한번 지워보겠다.

 

에러가 나와도 당황하지 말자.

 

지운 부분에 Text("Hello!")라고 입력해보자.

 

에러도 사라졌다.

 

 

Hello라는 텍스트가 나온 걸 볼 수 있다. 다만 오른쪽에 canvas에서 파란색 프레임에 꽉 찬 Hello가 보인다. 저기서 padding값을 주고 싶다면(padding 모른다면 html padding이라고 검색해보자) 점 찍고 padding()이라고 입력하면 된다.

 

padding이 생겼다.

패딩이 생겨서 파란 프레임에 Hello라는 텍스트가 여유 있게 들어가 있는 것을 볼 수 있다. padding 말고도 다른 것을 변경해줄 수 있는 함수가 많다. background(Color.blue)라는 것도 적용시켜보자.

 

 파란 배경이 생겼다.

이렇게 코드로 말고 유저 인터페이스를 구성하는 방법은 하나 더 있다. 작성한 코드를 지워보자.

그리고 xcode의 우측 상단에 있는 +버튼을 클릭하자.

라이브러리 추가 버튼
라이브러리를 찾아서 쓰면 된다

검색 화면에서 text라고 타이핑하면 바로 찾을 수 있다. 그리고 드래그 앤 드롭으로 코드에 붙여 넣자.

 

text를 넣은 부분에 드래그앤드롭

 

Text가 생긴걸 볼 수 있다.

 

코드상에서 "Placeholder"라는 텍스트를 다른 텍스트로 변경할 수 있지만 인스펙터에서도 수정이 가능하다. xcode상에서 인스펙터가 보이지 않는다면 우측 상단에 인스펙터 표시 버튼을 클릭하자.

 

 

우측 상단의 인스펙터 표시 버튼 클릭

에디터상에서 Text("Placeholder")를 클릭하면 인스펙터에 해당 Text UI를 변경할 수 있는 창이 뜬다.

 

인스펙터

인스펙터 상에서 Text 값을 변경하는 것이 가능하다. 패딩 값도 변경할 수 있는데 인스펙터에서 값을 변경해주면 코드상에서 변경을 해준다. 이것저것 눌러보면 코드상에서 바뀌는 것을 볼 수 있다. 하단에 Add Modifier라는 부분이 있는데 수정할 옵션 이름을 검색해서 사용이 가능하다. 

패딩을 all로하고 Background 컬러를 Yellow로 설정

라이브러리 상에서 modifer를 추가하는 것이 가능하다. xcode의 우측 상단에 있는 +버튼을 클릭해보자. 그리고 두 번째 탭을 선택하면 modifier를 볼 수 있다.

 

modifier

background, padding 등의 modifer를 검색해서 사용할 수 있다. 검색해서 원하는 modifier가 나왔다면 해당 코드(여기서는 Text)의 끝에 드래그 앤 드롭하면 된다.

modifer를 드래그앤드롭하기

코드 중간에 놓으면 에러가 나거나 제대로 들어가지 않을 수 있으니 코드의 끝에 놓도록 하자. 그리고 인스펙터 상에서 값을 변경해주면 된다.

 

canvas상에서 변경하는 것도 가능하다. 커맨드 키를 누른 상태에서 수정을 할 엘리먼트를 클릭해보자. 그러면 메뉴가 뜬다. 메뉴에서 Show SwiftUI Inspector를 클릭하자.

canvas 상에서 ui 변경하기

그럼 다음과 같이 modifier를 추가할 수 있는 화면이 나온다.

modifier 검색

코드 상에서도 커맨드를 누른 채로 UI를 변경할 코드를 클릭하면 canvas에서 했던 것처럼 ui를 변경할 수 있다.

코드 상에서 ui 변경

이렇게 코드에서 변경하지 않고 마우스 클릭만으로 UI를 변경하는 방법을 알아보았다. 개발하다 보면 이렇게 마우스로 클릭하는 것보다 코드를 변경하는 게 더 쉬울 수도 있다. 

 

오늘은 이렇게 UI를 변경하는 방법에 대해서 알아보았다. 끝!