분류 전체보기 46

MVC와 MVVM 패턴이란?

프로젝트를 수행하기 위해 공부해야할 것이있다. 그 중 한개가 어떤 패턴을 숙지하고 프로젝트에 적용할것이냐이다. 이번 트랙어스앱 프로젝트에서는 이 두가지 패턴을 적용하기로 하였다. MVC는 Model, View, Controller로 구성되어있다. 간단히 말하면 사람들 눈에 직접보이는 뷰위 모델이 있고 컨트롤러가 두 뷰의 데이터신호를 관리한다. - Model은 소프트웨어나 애플리케이션에서 정보 및 데이터 부분을 의미한다. 이는 Controller에게 받은 데이터를 조작(가공)하는 역할을 수행한다고 볼 수 있다 - Controller(컨트롤러) Controller는 Model과 View 사이에서 데이터 흐름을 제어한다. 사용자가 접근한 URL에 따라 요청을 파악하고 URL에 적절한 Method를 호출하여 S..

Swift/SwiftUI기초 2023.12.30

SwiftUi - annotation 과 Property Wrapper

스위프트ui에서 코드를 보다보면 @State나 @Binding같은 annotaion을 많이 봐왔지만 이것이 뭘 뜻하는 것인지 모르고 "그 상황에서 이렇게 쓴다" 라고만 알고 있었기 때문에 이것이 무슨의미인지 공부해보았습니다. @State나 @Binding를 프로퍼티 래퍼라고 하는데 이 프로퍼티 래퍼는 미리 정의해둔 연산을 사용할 수 있다는 것이다. Swift UI Property Wrappers Learn what SwiftUI's @State, @Binding, @StateObject, @ObservedObject, and other property wrappers do, and when they should be used. swiftuipropertywrappers.com 각 프로퍼티래퍼별로 어떻게 ..

Swift/SwiftUI기초 2023.12.29

TrackUs 프로젝트 - 프로토타이핑 및 기본ui개발

TrackUs 프로젝트 물물교환앱이 프로토파이핑에서 끝났다면 이번에는 앱을 기획하고 프로토타이핑을 한 후에 기본ui, 데이터 차후에는 앱 배포까지 할 예정입니다. TrackUs는 러닝매칭앱입니다 러닝이 취미이신분들과 러닝을 취미로 삼고싶으신 분들께 많은 도움이 되었으면 좋겠습니다. 이번팀에서는 api를 적극 활용하고 현업에 종사하시는 분들께 조언을 많이 구하는 방식으로 진행하였습니다. 프로토타이핑은 전과 같이 피그마로 진행하였습니다. 팀 소개입니다. 노션으로 작업하였습니다. https://www.notion.so/TrackUs-b26e0b86646b4551ba2f65f606f3b73b 저희는 기능정리를 하여서 각자 파트를 담당했습니다. 저는 메이트모집뷰와 마이페이지 설정 뷰 및 뷰 ui 상세조정, 런치스..

옵셔널 바인딩과 if let, guard let이해

옵셔널 바인딩과 if let, guard let의 관계 : 옵셔널 값을 안전하게 사용하기 위한것이 옵셔널 바인딩인데 이때 if let또는 guard let을 사용해서 옵셔널을 바인딩하고 안전하게 값을 가져옵니다. if let 임시상수 = 옵셔널 { 구문 } 이런식으로 임시상수를 사용하여 옵셔널 값이 안전한지 체크합니다(nil여부파악) guard let은 if let과 차이점이 있습니다 guard let 이후 조건문이 false면 else문의 구문을 실행하고 그렇지 않으면 가드문의 else구문을 실행하지않고 코드가 진행됩니다. 그리고 guard let은 전역변수로도 사용이 가능하고 블럭을 종료하는 breack나 return, throw등이 필요합니다. 예외처리에서도 guard let이 적합하고 else문또..

Swift - 타입캐스팅이란?

타입 캐스팅 (Type Casting) - Swift things 배열은 2개의 Int 값, 2개의 Double 값, 하나의 String 값, 하나의 (Double, Double) 타입의 튜플, "Ghostbusters" 영화, 그리고 String 값과 다른 String 값을 반환하는 클로저 표현식을 포함합니다. bbiguduk.gitbook.io 타입캐스팅의 정의는 이렇게 나와있다. 타입 캐스팅 (Type casting) 은 인스턴스의 타입을 확인하거나 해당 인스턴스를 자체 클래스 계층 구조의 다른 곳에서 다른 상위 클래스 또는 하위 클래스로써 취급하는 방법입니다. // 타입 캐스팅 class Pet { var name = "" init(name: String) { self.name = name } }..

Swift - guard

guard문이란? guard 조건 else { return } 형태이며 조건이 false라면 else이후 코드를 실행하는것이 if문과 다르고 가독성이 좋아 특정상황에서는 if문보다 많이 쓰입니다. enum DataError : Error { case nilError } index = 0 guard let i: Int = index else { // return // break // continue // throw throw DataError.nilError } func multiplyByTen(_ value: Int?) { guard let number = value, number < 10 else { print("Number is too high") return } print("Number :", nu..

Algorithm/basic 2023.12.07

Swift - Tuple

//튜플 키와 값으로 이루어져 있음 var myCat : (name: String, age: Int) = (name:"초코", age:10) //튜플 접근방식 myCat.0 //쓰임새는 클로저에서 많이사용 //메소드 반환을 튜플로 하는법 func horseRacingTuple(_ horse:String,_ human:String,_ number:Int) -> (horse:String, human:String, number:Int){ return (horse,human,number) } let horseRacing = horseRacingTuple("바보마","가나다",2) horseRacing.1 horseRacing.horse horseRacing.number print(horseRacingTuple(..

Algorithm/basic 2023.12.05