ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL 3일차
    iOS 앱 개발 부트캠프/TIL 2024. 9. 11. 21:50

    간단하게 Xcode 사용법과 swift 문법을 배웠다.
    아직 Mac이 없으므로 당분간 강사님의 강의자료로 최대한 학습하기로 했다.

    처음엔 Xcode 설치와 실행 그리고 프로젝트 생성에 대한 것이었고, 그 과정에서 swift와 objective-c의 차이, 그리고 swiftUI와 StoryBoard의 차이에 대해 배웠다.

    설명에 따르면 과거엔 개발 언어가 Objective-c뿐이었는데 나중에 swift가 추가 되었다고 하고, 개발 인터페이스 도 storyboard만 있다가 최근에 swiftUI가 추가 되었다고 한다.

    프로젝트를 생성하면 좌측부터 네비게이션, 코드에디터, 인스펙터 화면이 보였다.

    네비게이션과 코드에디터는 과거에 c나 java, python을 배울때 보던 화면이라 특별할게 없었는데 놀라운 건 인스펙터였다.

    코드에디터에서 선택한 부분의 내용이 인스펙터 화면에 나오고, 그 상태에서 인스펙터 화면 클릭해 설정을 바꾸면 그대로 코드에 반영되었다.

    물론 열심히 공부해 코드에디터에서 코딩을 해나갈 것이지만 매우 직관적인 개발이 가능해 보였기에 어려워서 포기하거나 하진 않을 수 있을 것 같다.

    코드에디터에서 선택한 부분의 내용이 인스펙터 화면에 나오고, 그 상태에서 인스펙터 화면 클릭해 설정을 바꾸면 그대로 코드에 반영되었다.

    물론 열심히 공부해 코드에디터에서 코딩을 해나갈 것이지만 매우 직관적인 개발이 가능해 보였기에 어려워서 포기하거나 하진 않을 수 있을 것 같다.

    그리고 메인 스토리보드의 view controller 하위의 view에서 여러 오브젝트를 간단하게 디자인 하는 방법을 배웠다. 버튼이나 이미지, 레이블 등을 드래그&드롭 방식으로 매우 간단하게 화면 구성을 디자인했고 인스펙터에서 색을 변경하거나 내용을 바꾸는 등의 작업도 매우 간단하고 직관적으로 할 수 있었다.

    또 간단한 swift 기초 문법을 배웠다. 변수 선언과 변수 타입, if문과 switch문, for 반복문 같은 것이었다.

    방법이나 내용들이 예전에 공부했던 c, java, python과 거의 같아서 익숙했고 약간의 문법 차이는 있었지만 금방 익숙해질 수 있는 정도라고 생각이 들었다.

    약간 어색하게 느낀 부분은 변수 선언시 타입을 지정해놓으면 그 타입의 값이 아니면 아예 안 들어간다는 설명이었다.

    다른 언어에선 문자열과 불리언, 숫자들이 선언한 타입대로 제대로 입력 안하면 각자 타입에 맞게 재해석되어 입력 되는, 예를 들어 문자열이라고 선언해놓고 20이라는 숫자를 넣으면 숫자가 아닌 글자 그자체의 문자열로써 “20”으로 들어간다던가, 불리언 타입으로 선언하고 숫자나 문자열을 넣으면 true로 들어간다던가 하는 내용을 말하는 것 같다.

    선언한 타입이 아니면 에러가 나버리는 건 지금의 나로선 오히려 헷갈리거나 실수하지 않아서 좋을 것 같다는 생각이 들었다.

    마지막으로 IBAction과 IBOutlet이라는 방식을 통해 사용자 인터페이스와 로직을 연결하는 방법을 배웠다.

    앞서 스토리보드와 인스펙터로 매우 간단하게 인터페이스 화면을 구성했는데, 이렇게 구성만 해서는 로직과 연결이 안되어 원하는 기능을 동작시킬 수 없기에 이것을 연결시키는 작업이 필요하고, 이걸 IBAction과 IBOutlet으로 구현하였다.

    스토리보드 화면에서 구성한 사용자 인터페이스를 컨트롤 키를 눌러 코드 쪽으로 드래그하면 매우 간단하게 코드에 인터페이스의 코드가 추가되었다. 이렇게 사용자 인터페이스를 코드에 추가하는 것이 IBOutlet 이다.

    또한 마찬가지로 사용자 인터페이스를 드래그해서 이번엔 Connection을 Action으로 지정한 뒤 Event, 즉 어떤 트리거 방식을 통해 동작을 수행할 지 정한 뒤 connect 하면 IBAction이 추가되고, 그 밑에 여러 동작을 지정할 수 있었다. 그리하여 드디어 직접 구성한 인터페이스가 실제로 동작하도록 로직과 연결시킬 수 있었지만 자세하고 다양한 동작들은 아직 더 공부해야한다.

Designed by Tistory.