본문 바로가기
Swift

[TIL] 정말로 처음 시작하는 Swift

by yj.yoon 2023. 9. 12.

오늘도,,, 일은 안하고 동료 분들이랑 스몰(이 아닌 것 같은)토크와 개인 공부를 하고 있다. (담배 피우는 사람들 따라나가기도 함ㅋㅋㅋ)

크로스 플랫폼 앱 개발을 한다해도 네이티브가 필요한 경우가 있는데, 그때마다 공부해야지 싶다가 매번 안했다.

근데 이번에 시간이 여유롭고, 기존 프로젝트는 건들기 쉽지 않고, 다음 프로젝트는 IOS 출시만 한다고 하니까

스위프트를 보기로 했다. 코드 리딩이 가능한 정도가 목표!

 

 

참고하는 아티클은 아래 링크 : <공식문서 만으로 IOS 개발 배우기>

https://www.sungdoo.dev/programming/start-ios-development-with-offical-docs

 

공식문서 만으로 iOS 개발 배우기

iOS개발에 처음 발을 내딛은 분들에게는, 당장 “어디서 어떻게 배워야 하는지”만큼 시급하고도 중요한 질문이 없습니다. 좋은 유튜브 강좌나 블로그 튜토리얼 등을 보면 될까요? 하지만 그 유

www.sungdoo.dev

 

 


 

 

처음에는 앱 스토어의 플레이그라운드 설치 후 설명대로 갖고 놀아보자 했는데, 이 방법은 나에게 답답했고..

지금은 플레이그라운드를 IDE로 사용하여, A Swift Tour 공식문서를 따라 쳐보고 있다.

코드 자동완성과 시맨틱 에러 수정도 도와주어서 공부하는데 도움이 된다.

 

출력문

- 세미콜론 상관없음.

print("hello world")

 

상수와 문자열 안에 연산 추가하기

let label = "The width is "

let width = 94

let widthLabel = label + String(width);

 

let apples = 3

let oranges = 5

let fruitSum = "I have \(apples + oranges) pieces of fruit."

 

let quotation = """

    하이 헬로우 인용구를 사용하고 싶을 때에는

    " * 3 부호를 사용하면 된다고 하는 구나.?

    나는 여전히 \(apples + oranges) 개의 과일이 있다.

    """

 

변수와 배열

var fruits = ["strawberries", "limes", "banana"]

fruits[1] = "grapes"

 

결과 : ["strawberries", "grapes", "banana"]

 

var occupations = [

    "key1":"value1",

    "key2":"value2",

]

occupations["key3"] = "public Relations"

 

결과 : ["key1": "value1", "key2": "value2", "key3": "public Relations"]

 

*** 빈 배열 선언

let emptyArray: [String] = []

let emptyDictionary: [String: Float] = [:]

 

 

제어문

예시

var optionalString: String? = "Hello"
print(optionalString == nil) // false

var optionalName: String? = "Yejin Appleseed"
var greeting = "Hello !!"

if let name = optionalName {
    greeting = "Hello, \(name)"
}
print(greeting) // Hello, Yejin Appleseed

 

- nil 은 '없음'

 

 

switch - case 에서 default 필수

 

반복문

 

// 1
var n = 2
while n<100 {
    n *= 2
}
print(n)

// 2
var m = 2
repeat {
    m *= 2
} while m < 100
print(m)

// 3
var total = 0
for i in 0..<4 {
    total += i
}
print(total)

 

 

A function can take another function as one of its arguments.

 

func hasAnyMatches(list: [Int], condition: (Int) -> Bool) -> Bool {

    for item in list {

        if condition(item) {

            return true 

        }

    }

    return false

}

 

func lessThanTen(number: Int) -> Bool {

    return number < 10

}

var numbers = [20,19,7,12]

hasAnyMatches(list: numbers, condition: lessThanTen)

 

 

map 사용 - 클로저 표현

var numbers = [20, 19, 7, 12]

numbers.map({

    (number: Int) -> Int in let res = 3 * number

    return res

})

 

// 클로저의 축약 표현

let mappedNumbers = numbers.map({ number in 3 * number })

 

 

 

중간 중간 딴 짓해서 절 반 정도 읽었다. 내일 마저 읽기!