[iOS개발 강의] (1 주차) swift 기본문법
Computer Science/ios

[iOS개발 강의] (1 주차) swift 기본문법

728x90
반응형

아이폰 앱 제작을 위한 개발환경 (툴/ 언어)


  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 실행 시 처음 보이는 "Welcome to 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)

  • 순서없이 키와 값의 쌍으로 구성되는 컬렉션
 
세트(set)
 
 
열거형(enum) 
 

 

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://dinopia.tistory.com/3

https://macclub.tistory.com/302

https://brunch.co.kr/@myoungjun/24

https://www.tiobe.com/tiobe-index/

https://docs.swift.org/swift-book/#

728x90
반응형

'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