iOS개발 강의 #1
흠... 일단 "아이폰에서 사용가능한 어플리케이션(이하 앱)을 개발하자" 라는 생각을 하자마자 바로 Mac Mini(이하 맥미니)를 구매해버렸다.
막상 집에 도착한 맥미니를 설치하고 기존 Window 컴퓨터와 함께 두고보니 정말 앱개발 혹은 파이널컷프로를 이용한 동영상편집과 같은 Mac에서만 가능한 일을 하지 않으면 그냥 돈낭비만 한것이아닌가 하는 생각이 들기 시작했다.
그래서 마침 내일배움카드를 신청했던게 기억이 났고 직장에 재직중이면서도 강의를 제대로 수강할 수 있을지 의문이 들긴했지만 고민은 저멀리 던져버리고 앱 개발과 관련된 강의를 바로 수강신청하게 되었다.
첫 강의로 먼저 iOS개발에 대한 얘기를 해주신 뒤에 처음듣는 강의인데 지난번에 했던 내용들 기억하냐는 말에 조금 당황하긴 했지만 혼자 검색해보면서 따라가는 중이다
import UIKit
import Darwin
var evenNumbers: [Int] = [2, 4, 6, 8]
let evenNumbers2: Array<Int> = [2, 4, 6, 8]
evenNumbers.append(10) // 엘리멘트 추가
evenNumbers += [12, 14, 16]
evenNumbers.append(contentsOf: [18, 20])
//evenNumbers = []
let isEmpty = evenNumbers.isEmpty
evenNumbers.count
print(evenNumbers.first)
let firstItem = evenNumbers.first
evenNumbers.min()
evenNumbers.max()
let firstThree = evenNumbers[0...2] //범위 설정해서 가져오기
evenNumbers.contains(3) //해당 값이 있는지 확인하기
evenNumbers.insert(0, at: 0)
//evenNumbers.removeAll()
evenNumbers.remove(at: 0)
evenNumbers
evenNumbers[0...2] = [-2, 0, 2] //0~2번째의 값을 해당값으로 변경한다
evenNumbers
evenNumbers.swapAt(0, 1) //0번째와 1번째의 값을 서로 위치변경한다
for num in evenNumbers {
print(num)
}
for (index, num) in evenNumbers.enumerated() {
print("idx: \(index), value: \(num)")
}
evenNumbers.dropFirst(3) //앞 3개를 잠시 없애고 나머지만 출력하기 실제 값은 영향을 받지 않음
evenNumbers
evenNumbers.prefix(3) //앞 3개만 확인 - 실제 값에 영향x
evenNumbers.suffix(3) //뒤 3개만 확인 - 실제 값에 영향x
//----- Dictionary
var scoreDic: [String: Int] = ["Jason": 80, "Jay": 95, "Jake": 90]
//var scoreDic: Dictionary<String: Int> = ["Jason": 80, "Jay": 95, "Jake": 90]
// 위 두 구문은 모두 같은 방법임
scoreDic["Jason"]
scoreDic["abc"]
scoreDic.isEmpty
scoreDic.count
scoreDic["Jason"] = 99 //기존 사용자 업데이트
scoreDic["Jack"] = 100 //사용자 추가
scoreDic["Jack"] = nil //사용자 제거
scoreDic
for (name, score) in scoreDic {
print("\(name), \(score)")
}
for key in scoreDic.keys {
print(key)
}
// 도전과제
// 1. 이름, 직업, 도시에 대해서 본인의 딕셔너리 만들기
// 2. 그 이후 도시를 부산으로 업데이트 하기
// 3. 딕셔너리를 받아서 이름과 도시 프린트하는 함수 만들기
// 1.
var myDic: [String: String] = ["name": "Jason", "job": "iOS Engineer", "city": "Seoul"]
// 2.
myDic["city"] = "Busan"
// 3.
func printNameAndCity(dic: [String: String]) {
if let name = dic["name"], let city = dic["city"] {
print(name, city)
} else {
print("--> Cannot Find")
}
}
printNameAndCity(dic: myDic)
//----- Set 개념과 실습
var someArray: Array<Int> = [1, 2, 3, 1]
var someSet: Set<Int> = [1, 3, 2, 1, 2] //Array와 비슷하게 선언되지만 중복되는값은 제거된다
someSet.isEmpty
someSet.count
someSet.contains(4)
someSet.contains(1)
someSet.insert(5)
someSet.remove(1)
//----- Clouser 개념과 실습
var multiplyClosure: (Int, Int) -> Int = { (a: Int, b: Int) -> Int in
return a * b
} //Clouser의 타입 선언해주기
//위 코드를 줄인것이 아래 코드가됨
var multiplyClosure2: (Int, Int) -> Int = { a, b in
return a * b
} //Clouser의 타입 선언해주기
//더 줄이기 가능
var multiplyClosure3: (Int, Int) -> Int = { $0 * $1 }
let result = multiplyClosure(4,2)
let result2 = multiplyClosure2(4,2)
let result3 = multiplyClosure3(4,2)
func operateTwoNum(a: Int, b: Int, operation: (Int, Int) -> Int) -> Int {
let result = operation(a, b)
return result
}
operateTwoNum(a: 4, b: 2, operation: multiplyClosure3)
var addClosure: (Int, Int) -> Int = { a, b in
return a + b
}
operateTwoNum(a: 4, b: 2, operation: addClosure)
operateTwoNum(a: 4, b: 2) { a, b in
return a / b
}
//Closure의 장점은 동적으로 끼워넣기가 가능하다(?)
let voidClouser: () -> Void = {
print("iOS")
}
> voidClouser()
위 사진과 같이 playground 사용법을 알려주기도 하고
코멘트 사용법 등 여러 유용할것 같은 내용들을 알려주셨다.
아직은 맥 사용에 익숙하지도 않고 많은 지식이 없지만 알려주시는 내용들 토대로 기초를 쌓아가다보면 자신감도 생기고 어플도 생겨있지 않을까 싶다.
앞으로 꾸준히 새해 다짐으로 생각하고 잘 해보자!
Author And Source
이 문제에 관하여(iOS개발 강의 #1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ming9u/iOS개발-강의-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)