아이폰 앱 제작을 위한 개발환경 (툴/ 언어)
Xcode
- Apple의 macOS, iOS, watchOS 및 tvOS용 소프트웨어 개발을 위한 IDE. 엑스코드라 읽으며, macOS 전용이다.
2021년 02월 18일 기준 최신 버전은 12.4이다. - 2003년에 출시되어, 무려 17년이 넘는 역사를 가지고 있는 장수 IDE이다. 만약 그 전신인 Project Builder까지 연대기에 넣는다면 1988년출시로, 무려 30년 이상의 역사를 자랑하는 IDE가 된다.
- Apple 환경에서는 Xcode보다 제품에 깊숙이 관여하는 IDE는 존재하지 않는다. Windows 환경의 Visual Studio와 비슷한 위상이다.
- JetBrains의 AppCode나 Android Studio, 또는 MS의 Visual Studio for Mac도 iOS/macOS용 소프트웨어를 최종 컴파일하려면 Xcode가 설치되어 있어야 하며, 게임메이커나 유니티, 언리얼, 리액트 네이티브도 iOS 환경으로 컴파일 하려면 Xcode가 필요하다
Xcode 개발자 사이트
swift
Swift는 Apple WWDC 2014에서 최초로 공개된 프로그래밍 언어로 당시 Objective-C의 단점을 보완하며 등장한 언어이다.
Swift는 초기버전부터 현재의 Swift5에 이르기까지 다양한 기능들이 추가되고 사라지며 업데이트가 되어왔고, 같은 애플의 언어인 Objective-C에 비해 사람이 이해하기 쉬운 언어(비교적 고급언어)이다.
- Objective-C와 완벽한 호환이 가능하다.
- 기본적으로 같은 Apple의 언어이기 때문에 계속적인 비교가 불가피함
- Objective-C는 1980년대 부터 사용되어온 언어이기 때문에 많은 양의 자료가 있으며 그를 활용하기가 편리함(Cocoa)
- PlayGround를 통해서 빠르고 간단하게 코드 테스트가 가능하며, 아이패드에서도 학습을 할 수 있다.
- 빠른 속도를 보여준다.
- Swift공개시 사용된 자료를 인용하면 Objective-C의 약 1.5배, python의 약 220배가 빠르다고 발표를 하였다. (RC4 암호화 기준)
- 함수형 프로그래밍 패턴 (예: map 및 filter)
- 메소드, 확장 프로그램 및 프로토콜을 지원하는 구조
- 메소드(함수)는 파이썬의 함수 선언과 비슷함
- extension을 통해 기존에 존재하는 Class에 기능을 추가해 넣을 수 있음
- 프로토콜은 서비스를 이용할때 해야할 일들의 목록, 자바의 상속, 인터페이스와 비슷함
- 메소드, 확장 프로그램 및 프로토콜을 지원하는 구조
- 최신의 프로그래밍 패턴을 따른다.(Swift 공식문서)
- 모든변수는 사용전에 초기화 되어야 한다
- 인덱스 범위를 벗어난 오류를 체크해줌
- 정수값이 초과되는지 체크해준다.
- Optional이라는 개념을 통해 '없다'를 nil로 표현할 수 있다.
- 컴파일러가 알아서 메모리 관리를 해준다.)
- 예상치 못한 에러들을 오류처리로 제어, 복구 할 수 있다.)
Storyboard
Playground
플레이그라운드(Playground)는 별다른 설정 없이 스위프트 구문을 실행시켜 볼 수 있는 개발 환경입니다.
Xcode에서만 사용할 수 있는 것이 아니라, Swift Playgrounds라는 독립적인 앱을 맥 혹은 아이패드(iPad)에서 다운로드해 사용하거나 웹 환경인 Online Swift Playground로도 사용할 수도 있습니다.
$스위프트 문법을 공부하거나 간단한 구문 테스트를 위해 사용하기 좋습니다.
Swift 문법
1. 자료형
1) 상수 변수
// 변수 선언
var variable = 200
// 상수 선언
let constant = 300
- 함수형프로그래밍으로 불변객체(let 키워드)를 중요시 한다.
2) 기본 자료형
- Int : +,- 부호를 포함한 정수
- UInt : 0을 포함한 양의 정수
- Bool : 참(true),거짓(false)만 값으로 가짐. 0,1은 타입에러
- Float : 32비트 부동소수 표현 (소수점 6자리)
- Double : 64비트 부동소수 표현 (소수점 15자리)(권장)
- nil : 없음. 값이들어있지않고 비어있음을 나타내는 키워드
3) 컬렉션
튜플
- 지정된 데이터의 묶음. 파이선의 튜플과 유사, 타입이름은 따로없고 일정타입의 나열생성됨
배열(Array)
- 같은 타입의 데이터를 일렬로 순서대로 저장하는 형태의 컬렉션
딕셔너리(Dictionary)
- 순서없이 키와 값의 쌍으로 구성되는 컬렉션
5. 아울렛변수와 액션함수
아울렛변수(@IBOutlet)와 액션함수 (@IBAction)
2. 함수
함수 정의 키워드 : func
반환타입 ->
익명함수
3. 조건문과 반복문
조건문 if else
var num = 5
if num > 3 && num < 6 {
print("Num is in [3 ~ 6].")
} else {
print("Num is not in [3 ~ 6].")
}
조건문 switch
var num = 5
switch num {
case 3...6:
print("Num is in [3 ~ 6].")
default:
print("Num is not in [3 ~ 6].")
}
반복문 while
// while
var items = ["ins1","ins2","ins3"]
while items.isEmpty == false {
print("hello \(items.removeFirest())")
}
반복문 for in
//for-in 반복문
for 임시 상수 in 시퀀스 아이템 {
실행코드
}
4. 옵셔널
- 옵셔널은 단어 뜻대로 ‘선택적인’
- 값이 있을 수도, 없을 수도 있음
- 즉 이 변수는 꼭 값이 있다는 것을 보장못함. nil일수도있음.
- nil은 옵셔널로 선언된 곳에서만 사용가능. 옵셔널변수 또는 상수는 데이터타입 뒤에 물음표를 붙여서 사용
// 옵셔널변수 선언과 nil할당
var vname: String? = "changok"
print(vname)
vname = nil
print(vname)
//옵셔널강제추출
var myName: String? = "changok"
if myName != nil {
print("my name is \(myName!)")
} else {
print("my name is nil")
}
//옵셔널바인딩
var yourname: String? = "changok"
if let name = yourname {
print("your name is \(name)")
} else {
print("your name is nil")
}
참고
#패스트캠퍼스 #내일배움카드 #K디지털크레딧 #나만의 iOS 앱 개발 강의
https://macclub.tistory.com/302
https://brunch.co.kr/@myoungjun/24
'Computer Science > ios' 카테고리의 다른 글
[iOS개발 강의] (2 주차) swift 기본문법 2 (0) | 2022.02.08 |
---|---|
food chart (0) | 2012.12.20 |
muaic chart (0) | 2012.12.20 |
ManagedObject & EntityDescription 얻기 (0) | 2012.11.07 |