TREASURE408 Swift : 기초문법 [배열(Array)] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. 배열 배열(array)은 단일 값으로 저장되는 값의 모음입니다. 배열을 사용하면 많은 값을 단일 컬렉션으로 그룹화 한 다음 컬렉션에서의 위치별로 해당 값에 액세스 할 수 있습니다. Swift는 유형 추론을 사용하여 다음과 같이 배열에 어떤 유형의 데이터가 있는지 파악합니다. 배열 타입을 선언해줄 방법은 다양합니다. let 키워드를 사용해 상수로 선언하면 변경할 수 없는 배열이 되고, var키워드를 사용해 변수로 선언해주면 변경 가능한 배열이 됩니다. 실제로 배열을 사용할 때는 Array라는 키워드와 타입 이름의 조합으로 사용합니다. 또, 대괄호로 값을 묶어 Array 타입임을 표현할 수도 있습니다. 빈 배열은 이니셜라이저 또.. SWIFT/Grammar 2021. 2. 18. Swift : 기초문법 [어노테이션(annotations) 타입] 타입 추론(Type Inference) Swift는 생성 될 때 주어진 값에 따라 각 변수와 상수에 유형을 할당합니다. 따라서 아래와 같은 코드를 작성하면 문자열 String이 포함되어 있음을 알 수 있습니다. let str = "Hello, playground" 위 사진과 같이 자동으로 String값으로 할당되었습니다. 이렇기에 나중에 Int 나 Bool을 할당 할 수 없습니다. 이를 유형 추론(type inference)이라고합니다. Swift는 생성 방법에 따라 어떤 유형을 추론 할 수 있습니다. 다음과 같이 Swift의 유형 추론에 의존하지 않고 데이터 유형에 대해 명시 할 수 있습니다. 어노테이션 타입 let album: String = "Dynamite" let year: Int = 2020 .. SWIFT/Grammar 2021. 2. 18. Swift : 기초문법 [ 변수와 상수] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. 변수와 상수 변수와 상수는 특정 데이터 타입에 해당하는 값의 이름입니다. 변수는 생성 후 데이터값을 변경할 수 있지만, 상수는 값을 설정하면 변경할 수 없습니다. 변수 Swift에서 변수를 생성하려면 var 키워드를 사용합니다. 형태는 아래와 같습니다. var [ 변수명 ] : [ 데이터 타입 ] = [ 값 ] 변수를 생성할 때 데이터 타입은 생략할 수 있습니다. (비추천) TIP 데이터 타입 생략 변수를 생성할때 데이터 타입을 생략하게 되면 컴파일러가 변숫값의 타입을 스스로 추론하여 지정합니다. 이러한 기능을 타입추론이라고 합니다. 하지만 이 기능을 초보자들이 사용하게되면 오히려 독이 될 수 있기 때문에 타입 추론을 많이 .. SWIFT/Grammar 2021. 2. 18. Swift : 기초문법 [문자열 보간(String interpolation)] 문자열보간 문자열 값을 코드에 직접 입력하는 방법을 살펴 보았지만 Swift에는 문자열 보간(String interpolation)이라는 기능이 있습니다. 문자열 내부에 변수var를 배치하여 더 유용하게 만드는 기능입니다. 문자열 안에 모든 유형의 변수를 넣을 수 있습니다. 백슬래시 \ 를 쓰고괄호() 안에 변수 이름을 입력하면됩니다. \() var score = 85 var str = "Your score was \(score)" var str는 Your score was 85로 출력됩니다. 원하는만큼 문자열을 문자열로 만들어 필요한만큼 이 작업을 수행 할 수 있습니다. var results = "The test results are here: \(str)" 나중에 보게 되겠지만, 문자열 보간(Stri.. SWIFT/Grammar 2021. 2. 18. Swift : 기초문법 [Double / Float / Booleans] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. Bool Bool은 불리언 타입입니다. 불리언 타입은 true 또는 false만 값으로 가집니다. var boolean: Bool = false boolean.toggle() // false -> ture let MyNameIsSeogun: Bool = true let MyNameIsSinji: Bool = false print("나의 이름은 서근 입니까? : \(MyNameIsSeogun)") // true print("당신의 이름은 민지 입니까? : \(MyNameIsSinji)) // false Float와 Double Float와 Double은 부동 소수점을 사용하는 실수며 부동소수 타입이라고 합니다. 흔히 우리가 말.. SWIFT/Grammar 2021. 2. 17. Swift : 기초문법 [멀티라인(multi-line) strings] multi-line Swift의 표준 문자열은 따옴표로 시작하고 끝나지만 줄 바꿈(enter)을 해서는 안됩니다. 예를 들어 다음은 표준 문자열입니다. var quote = "빡코딩해서 좋은 개발자가 되겠습니다." 짧은 텍스트 에서는 잘 작동하지만 저장하려는 텍스트가 길다면 소스 코드에서보기 흉해집니다. 그렇기에 multi-line strings 을 사용할 수 있습니다. 삼중 따옴표"""를 사용하면 필요한만큼 줄에 문자열을 쓸 수 있습니다. 즉, 코드에서 텍스트를 쉽게 읽을 수 있습니다. var burns = """ The best laid schemes O’ mice and men Gang aft agley """ Swift는 문자열의 줄 바꿈을 텍스트 자체의 일부로 간주하므로 문자열에 실제로 세 줄이.. SWIFT/Grammar 2021. 2. 17. Swift 용어정리 (번역중) 본 게시물은 Hacking with swift 를 참고하여 작성되었습니다. Hacking with swift SwiftUI @AppStorage 에서 UserDefaults값을 읽고 씁니다 . 이것은 데이터를 소유합니다. 더 많은 정보. @Binding 다른보기에서 소유 한 값 유형 데이터를 나타냅니다. 바인딩을 로컬로 변경하면 원격 데이터도 변경됩니다. 이것은 데이터를 소유하지 않습니다. 더 많은 정보. @Environment 색 구성표, 접근성 옵션 및 특성 컬렉션과 같은 시스템의 데이터를 읽을 수 있지만 원하는 경우 여기에 고유 한 키를 추가 할 수 있습니다. 이것은 데이터를 소유하지 않습니다. 더 많은 정보. @EnvironmentObject 환경에 배치 한 공유 객체를 읽습니다. 이것은 데이터를.. TIP/iOS & MacOS TIp 2021. 2. 17. SwiftUI : #2 MVVM의 간단한 예제 저번 게시글에서 MVVM이 무엇이고 어디에 쓰는지 알아보았습니다. 이제 Xcode에서 MVVM을 어떻게 하용하는지 간단한 예제를 통해 알아보려고 합니다. MVVM의 간단한 예제 새로운 Xcode 프로젝트를 생성하여 시작하도록 하겠습니다. 일반적으로 아래와 같이 생성하게 되면 Model 👉🏻 View 로 직접적으로 화면을 구성해주게 됩니다. 아래 코드를 보면 age가 Int로 정해져있습니다. //Models struct Person { var name: String var age: Int } //Views struct ContentView: View { let seogun = Person(name: "서근", age: 26) var body: some View { VStack { Text(seogun.na.. SWIFTUI/Grammar 2021. 2. 17. SwiftUI : #1 디자인 패턴 과 MVVM (Design Patterns and MVVM) Design Patterns 디자인 패턴은 소프트웨어 디자인의 일반적인 문제에 대한 재사용이 가능한 해결책입니다. 개발에서 비슷한 문제를 해결하는데 일종의 템플릿이나 개발패턴이라고 할 수 있습니다. 느슨하게 결합된 코드를 작성하는데 도움이되므로 번거로움 없이 코드의 구성요소를 변경하거나 교체할 수 있습니다. 이 패턴을 적용하면 코드의 가독성, 효율성, 디버깅, 협업 등이 쉬워집니다. ⭐️디자인 패턴을 사용하여 모든 종류의 언어에 모든 종류의 프레임워크를 사용 할 수 있습니다. 이 과정에서 사용되는 MVVM 에 대해 알아보겠습니다. MVVM MVVM의 의미는 다음과 같습니다. 예를들어 고객 정보 / 쇼핑카드 정보, 또는 기타정보가 있는Model 이 있고, iPhone 또는 Android 화면인 View 가.. SWIFTUI/Grammar 2021. 2. 15. SwiftUI : #2 ObservedObject '클릭시 값 증가' ObservedObject에 관한 첫 번째 게시글을 보시려면 여기를 클릭해주세요. ObservedObject 저번 게시물에서는 ObservedObject를 이용해서 Timer를 만들어 봤습니다. 이번에는 다른 예시를 통해서 한번 더 확실하게 배워보도록 하겠습니다. :) 저번 timer를 만들 때처럼 새로운 Swift 파일을 만들어주고 'UserSetting'으로 정해줬습니다 //UserSetting View import Foundation import SwiftUI import Combine class UserSetting: ObservableObject{ @Published var score: Int = 0 } score을 정수 0으로 정해줬고, 버튼을 클릭할 때마다 score이 올라가도록 하려고 합니.. SWIFTUI/Grammar 2021. 2. 14. SwiftUI : #1 ObservedObject '간단한 타이머 만들기' 저번 게시물에서 다뤘던 내용이지만 따로 자세히 알아보도록 하겠습니다. @ObservedObject = 복잡한 프로퍼티(여러 프로퍼티나 메서드가 있거나, 여러 view에서 공유할 수 있는 커스텀 타입이 있는 경우) String이나 integer같은 간단한 로컬 프로퍼티 대신 외부 참조 타입을 사용한다는 점을 제외하면 @State와 매우 유사. @ObservedObject와 함께 사용하는 타입은 ObservableObject프로토콜을 따라야함. @ObservedObject가 데이터가 변경되었음을 view에 알리는 방법은 여러 가지가 있지만 가장 쉬운 방법은@Published 프로퍼티 래퍼를 사용하는 것. = SwiftUI에 view reload를 트리거. ObservedObject를 이용해서 간단한 Time.. SWIFTUI/Grammar 2021. 2. 14. SwiftUI : State and Binding '클릭시 화면 변경' 앞에서 @State와 @Binding을 배워봤으니 간단하게 프로젝트를 만들어서 활용해보도록 하겠습니다. 클릭시 화면 변경 뷰 생성 우선 화면에 표시될 뷰를 따로 만들어 주겠습니다. //musicPlay View import SwiftUI struct Episode { let song: String let singer: String let track: String } struct musicPlay: View { let episode = Episode(song: "Dynamite", singer: "BTS", track: "DayTime Version") @State var isPlaying = false var body: some View { VStack { Text(self.episode.song) .f.. SWIFTUI/Grammar 2021. 2. 12. SwiftUI : #3 Understanding @Binding Binding에 관한 첫번째 게시글을 보시려면 여기를 클릭해주세요. Binding에 관한 두번째 게시글을 보시려면 여기를 클릭해주세요. Understanding @Binding 저희는 이전 게시물에서 Binding이 정확히 무엇인지 배워봤습니다. 이제 바인딩에 대해 다시 살펴보고 바인딩을 사용하여 애플리케이션을 만드는 방법을 살펴보도록 하겠습니다. 첫번째로 할것은 음악 트랙에 따라 달라지는 UI를 만들어 보겠습니다. Xcode 프로젝트명을 'SwiftUI_Binding_music'으로 생성하고 새로운 그룹을 만들어서 모델 안에 새로운 Swift 파일을 만듭니다. //Episode.swift import Foundation struct Epicode { let song: String let singer: .. SWIFTUI/Grammar 2021. 2. 12. SwiftUI : #2 Hello Binding (Example) Binding에 관한 첫번째 게시글을 보시려면 여기를 클릭해주세요. 단방향 바인딩 과 양방향 바인딩 이번에는 어떤것이 Uni Directional Binding(단방향 바인딩) 이며, 어떤것이 Dicrectional Binding(양방향 바인딩)인지 정확히 알아보고 공부해보려고 합니다. 바인딩의 개념을 이해할 수 있도록 간단한 예제를 만들어 보도록 하겠습니다. @State는 변수(name)가 변경 될 때마다 body를 다시 렌더링 한다는 의미입니다. 그런 의미에서 이름을 사용하여 body에 있는 모든것들을 업데이트 하죠. struct ContentView: View { @State var name: String = "" var body: some View { Text(name) } } text에 name.. SWIFTUI/Grammar 2021. 2. 12. SwiftUI : #1 Binding이란 무엇인가? 'Binding에 대해 알아보도록 합시다. Binding은 총 3개의 게시물로 다룰 예정입니다. SwiftUI 에서 중요한 Binding(바인딩)에 대해 알아보겠습니다. 바인딩에 가장 일반적인 방법 또는 방향 중 두 가지는 1. View to View Model 바인딩 2. View Model to View 바인딩 입니다. 그렇다면 View to View Model 바인딩이 무엇일까요? View to View Model TextField를 예로 들어보겠습니다. 아래 사진과 같이 이름과 나이를 쓰는 텍스트필드 박스가 있고, 특정 화면을 제어하거나 표시하는 View Model이 있습니다. 만약 이름과 나이를 입력하면 UserViewModel의 Name/age 속성에 바인딩 됩니다. 자동으로 Name/age .. SWIFTUI/Grammar 2021. 2. 11. 이전 1 ··· 21 22 23 24 25 26 27 28 다음 한국어 (기본) English Русский 日本語 👉🏻 잠깐만요! 이 글도 한 번 보고 가세요 이전글 다음글 티스토리툴바 서근 개발노트구독하기