내일배움캠프 iOS

iOS) TIL #16 내배캠 앱 개발 입문

yjuni22 2024. 11. 11. 21:18

내일배움캠프 4주차를 진입하며

새로운 강의를 지급받았다.

앱 개발 입문 강의

나에게 딱 필요한 강의이다.

 

1-1 iOS 개요

1-2 Xcode 시작

1-3 Xcode 빌드

 

아주 기초적인 부분을 모아모아 꼼꼼하게 알려주는 강의기에

잘 몰랐던, 궁금했던 메모해두고 싶은 부분을 정리해 보겠다.

 

1-1 iOS 개요

a) iOS 개발에 대한 기본적인 이해

- HIG ( Human Interface Guidelines ) :  애플의 앱 디자인 가이드 , 애플만의 철학 이해 필요

- 앱 출시할 때 심사과정에 있어서 필요한 부분이다.

 

b) 서버 개발, 안드로이드 개발과의 비교

- 로그인 기능을 구현한다고 할 때, 서버는 데이터에 대한 정보를 관리하고

- iOS 개발자는 스위프트에 맞는 환경과 코드로 로그인 페이지를 구현

- 안드로이드 개발자는 안드로이드에 맞는 언어와 환경으로 구현

 

c) 효율적인 공부방법

- 입문 단계에서는 검색으로 해결하지 못하는 것은 없다.

- Google 과 StackOverflow 를 활용하자.

- 검색 시 "Swift" 키워드를 붙이는 것이 좋음

- 동작을 하지 않는다면 "issue" or "not work" 로 검색

- 키워드 끝에 "doc" 을 붙이면 애플 공식 문서를 볼 수 있다.

 

검색 후 직접 따라서 코드를 작성해보면서 이해하는 것이 효율적이다.

cs공부는 자연스럽게.

애플 공식문서 등 영어로 되어있다고 쫄지 마라.

읽어버릇 하는 것이 좋다.

그 후 번역기를 사용해라.


1-2 Xcode 시작

a) Xcode 이해

- IDE ( Intergrated Development Environment )

- iOS 개발을 하기위한 도구, 통합 개발 환경 ( 애플의 모든 운영체제 )

b) 다운로드

c) Xcode 둘러보기

 

1) Navigator Area

Navigator 창 열고 닫기 :  cmd + 0

검색 네비게이터에서 찾기 기능을 사용할 수 있음.

Find -> Replace 로 같은 변수, 코드 를 전체적으로 바꿀 수 있음.

 

2) Inspector Area

Inspector 창 열고 닫기 : cmd + opt + 0

 

1. 파일 인스펙터

- 선택한 파일에 대한 정보를 나타냄, 파일명 변경 시 사용

 

2. 히스토리 인스펙터

- 커밋과 관련된 히스토리를 볼 수 있음

 

3. 퀵 헬프 인스펙터

- 선택된 대상의 문서를 제공한다.

- 코드에서 문서용 주석을 작성하면 이 퀵 헬프를 만들 수 있다.

ex1) 클래스에 문서용 주석을 달고, 커서를 클래스에 위치시킨 뒤 퀵 헬프 인스펙터를 열면 퀵 헬프 제공.

ex2) 클래스에 문서용 주석을 달고, option 누른 채로 주석을 단 대상을 클릭하면 문서 제공.

  • 일반 주석: //
  • 문서용 주석: ///

 

나머지 인스펙터 : 스토리보드에서 사용함

 

Debug Area : 디버깅을 돕는 영역

cmd + shift + y

1-3 Xcode 빌드

a) 빌드하기 전 기초 개념

컴파일 & 빌드

 

컴파일 : 어떤 언어의 코드 전체를 다른 언어로 바꿔주는 과정

- 컴퓨터가 이해하기 쉬운 바이너리 코드로 변환하는 과정

빌드 : 소스 코드 파일을 실행 가능한 소프트웨어 산출물로 변환하는 과정 


앱 생명주기 : App Lifecycle

 

Unattached ( = Not Running )

- 앱을 실행중이지 않은 상태

 

Foreground Inactive

- 앱을 실행했지만 사용자로부터 이벤트를 받을 수 없는 상태

  ( 앱을 완전히 활성하하기 이전 단계)

 

Foreground Active

- 앱을 실행했고 사용자로부터 이벤트를 받을 수 있는 상태

  ( 가장 일반적인 앱을 사용하고 있는 상태)

이벤트를 받을 수 있다 => 유저와 상호작용을 할 수 있는 상태 

 

Background

- 앱을 실행한 뒤 백그라운드로 넘어간 상태

- 홈버튼을 눌러 밖으로 나갔을 때, 그래도 메모리에 올라가있는 상태이다.

 

Suspend

- 백그라운드 상태에서 앱이 특별한 작업을 필요로 하지 않을 경우 접어드는 상태

- OS가 판단하여 Background -> Suspend 상태로 변환시킨다. 

  ( 메모리에 부담스러운 상황 )


AppDelegate  : App Lifecycle 관련 메서드 제공

  • 프로젝트를 생성하면 자동으로 생성되는 클래스.
  • 앱의 생명주기와 관련된 다양한 메서드들을 제공하는 클래스.

앱이 실행되고 나서 맨처음으로 불리는 메서드

앱 극초반에 무언가 세팅하고 싶다면 저 안에 작성

 

SceneDelegate

  • 프로젝트를 생성하면 자동으로 생성되는 클래스.
  • Scene 을 다루는 클래스. iOS13부터 등장.
  • 멀티 윈도우 환경에서 다중 Scene의 개념이 생겨났다.
  • 아이패드에서 가로 모드, 화면 분할을 하면 각 분할된 화면이 Scene 을 의미.
  • 그전에는 AppDelegate가 SceneDelgate의 역할까지 모두 수행했다.

퍼스트 파티 & 서드 파티

 

퍼스트 파티 (제 1자)

- iOS 개발은 애플이 주관하기 때문에, 애플이 제공하는 툴들을 퍼스트 파티라고 한다.

ex) UIKit, URLSession 등

 

서드 파티 (제 3자)

- 애플이 오피셜 하게 만든 것이 아닌, 제3자가 제공하는 툴들을 서드 파티라고 한다.

ex) SnapKit (UI를 편하게 짜도록 돕는 라이브러리)

Alamofire (URLSession 을 편하게 사용하도록 돕는 라이브러리)

KingFisher (이미지 로드를 편하게 하도록 돕는 라이브러리)

Swinject (DI 및 ServiceLocating 을 편하게 하도록 돕는 라이브러리)

 

CocoaPods, SPM(Swift Package Manager), Carthage 등을 이용해서 서드파티 라이브러리를 프로젝트에 받아올 수 있다.


b) 디버깅, lldb 개념

디버깅

- 소프트웨어에서 발생하는 오류(bug)를 찾아내고 수정하는 과정.

- 프로그램이 예상대로 작동하지 않을 때 그 이유를 찾아내고, 그 문제를 해결하는 작업.

 

print() 문으로 디버깅 하기

OSLog 로그 찍기

OSLog : 레벨이 있음

 

브레이크포인트 찍기

 

치울때 : 드래그해서 옆으로 빼면됨

 

lldb

- Low Level Debuger의 줄임말. 디버그 영역 중 오른쪽 영역에 lldb를 사용해서 디버깅을 할 수 있다.

- 브레이크 포인트와 함께 사용하면 효과가 좋다.

- lldb를 사용해서 어떤식으로 값들이 입력되고 어떤식으로 데이터가 흘러가는가를 확인해보면서 디버깅 작업을 할 수 있음

 


단축키 모음

Navigator 창 열고 닫기 :  cmd + 0

라이브러리 열기  :  cmd + shift + L 

Inspector 창 열고 닫기 : cmd + opt + 0

Debug Area  :  cmd + shift + y

코드 한줄 선택하기  :  cmd + shift + 방향키

 


viewDidLoad - 뷰의 라이프사이클과 관련된 메서드

 

출처) 내일배움캠프