내일배움캠프 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 - 뷰의 라이프사이클과 관련된 메서드
출처) 내일배움캠프
'내일배움캠프 iOS' 카테고리의 다른 글
iOS) TIL #18 클로저 조금, 고차함수 (map, filter, reduce) (0) | 2024.11.13 |
---|---|
iOS) TIL #17 내배캠 앱 개발 입문 2 - 스냅킷 (0) | 2024.11.12 |
iOS) TIL #15 야구게임 보완, 고차함수 map (3) | 2024.11.08 |
iOS) TIL #14 야구게임 만들기 - Lv2 (0) | 2024.11.07 |
iOS) TIL #13 야구게임 만들기 - Lv 1 (0) | 2024.11.06 |