- @ViewBuilder & @resultBuilder2료일@ViewBuilder You typically use ViewBuilder as a parameter attribute for child view-producing closure parameters, allowing those closures to provide multiple child views. For example, the following contextMenu function accepts a closure that produces one or more views via the view builder. func contextMenu( @ViewBuilder menuItems: () -> MenuItems ) -> some View 이를 통해 contextMenu의 클로저를 통해 하나이상의 뷰가..
- 2024-02-26 17:55:36
- 근본으로 돌아가자(3)-View Layout2료일정말정말정말 오랜만에 글을쓰는 것 같다... 아카데미가 끝난 이후 개인프로젝트를 몇개 하고 상하이 여행도 갔다오고 게임도 하고... 쫌 놀았다.. 정신줄 놓고 있었는데 한 동아리 면접을 보러 갔다가 정신을 차리게 되었다! 이전까지는 나정도면...못하진 않지? 했다가 그냥 탈탈 탈곡기마냥 털렸다....정말정말정말 부끄러웠던 순간이였다...... 그래서 다시 근본으로 돌아가자! https://developer.apple.com/videos/play/wwdc2019/237/ Building Custom Views with SwiftUI - WWDC19 - Videos - Apple Developer Learn how to build custom views and controls in SwiftUI with a..
- 2024-02-26 14:09:42
- 근본으로 돌아가자(2) - animation & iOS 17에서 바뀐것들2료일WWDC23에서 공개된 것을 보면 SwiftUI를 개발한 핵심동기가 바로 앱에 애니메이션을 쉽게 추가할수 있도록 하는 것이다!라고 애플에서 스스로 밝힐만큼 중요한 요소이다. https://developer.apple.com/videos/play/wwdc2023/10156/ struct AnimationView: View { @State private var selected = false var body: some View { Image("bell.fill") .resizable() .frame(width:200) .scaleEffect(selected ? 2: 1) .onTapGesture { selected.toogle() } }} 그전에 SwiftUI에서 뷰업데이트를 살펴보자. 이런 코드가 있다고 보..
- 2023-12-14 23:59:53
- View Modifier2료일A modifier that you apply to a view or another view modifier, producing a different version of the original value. - 기존의 뷰 또는 다른 view modifier에 적용시켜 또 다른 버전을 만들 수 있는 modifier이다. 즉 기존의 뷰 또는 modifier에 추가적으로 꾸며줄수 있다. 그런데 여기서 궁금한점... 왜? 굳이 커스텀해서 뷰 모디파이러를 하는가 그자체로 바꾸지 않구? - 앱 전체적으로 쓰이는 스타일이 있다면 일일이 수정해주려면 코드를 일일이 추가해주어야하기에 struct RedBorder: ViewModifier { func body(content: Content) -> some View { co..
- 2023-12-14 18:42:45
- Swift 5.9 Updates2료일What's new in swift 5.9? https://www.swift.org/blog/swift-5.9-released/ Swift 5.9 Released Swift 5.9 is now available! 🎉 www.swift.org 1. if & switch 위와 같은 식으로 부등호가 들어간 if문들을 elseif가 여러개 있는게 아닌 case로 가독성이 좋게 쓸수 있도록 업데이트가 되었다. python에서는 가능하던 것인데 오! swift도 된다!~~!!!!!! 2. Macro :코 드 조각을 정의하여 여러 곳에서 재사용할 수 있게 해주고 보통 전처리기에서 생성/compile time에 코드를 변화해서 반복되는 코드를 쓰는 것을 피하게 해준다 이번꺼에서 가장 중요한 업데이트~ 매크로는 함수와 ..
- 2023-10-10 17:35:44
- KeyChain & 암호화2료일iOS개발자로서 데이터를 안전하게 관리하는 것은 필수적인 역량입니다. UserDefault는 설정같이 가벼운 데이터를 저장하는데 적합했지만 비밀번호같은 민감한 데이터를 저장하면 보안 위협이 큽니다.요기서 잠깐!! 왜UserDefault는 위험할까?UserDefault는 key -value 형태로 데이터를 저장하여 plist 파일로 즉 샌드백스 내에 존재한다. 즉 앱이 삭제되면 데이터도 사라짐.UserDefaults는 암호화되지 않아있음. 예를들어 탈옥된 디바이스에서 중요 정보를 빼갈 수 있음.그래서 UserDefault는 속도와 편의성을 목적으로 사용되는 것.KeyChain?apple이 제공하는 보안프레임워크. 디바이스 안에 암호화된 데이터 저장공간.로그인 및 암호(해시), 결제데이터, 등 비밀 유지하고..
- 2023-10-08 20:08:13
- Combine(2)- Operator2료일Operatorpublisher가 방출하는 데이터 스트림을 가공하거나 제어하는 강력한 도구1. Map: publisher의 모든 요소를 변환하여 새로운 스트림으로 방출Map과 ForEach차이- 반복을 하는 것은 똑같지만 ForEach는 여기서 부터 여기까지 반복을하겟다 명시라면 map은 바꾸겟다라는 명시. 물론 ForEach에서 변환할수 있다= 이것자체가 Map . 다른사람이 봤을때 Map이 있으면 아~ 바꾸려나 보다~~ 이해할수 있다. 2. tryMap : Map과 같지만 클로저 오류발생시키면 Publish 종료3. compactMap: nil을 제외하고 nil이 아닌것만 publish4. replaceNil : nil들을 내가 원하는 element로 변환5. scan: 아래와 같이 더한다. 누적 ..
- 2023-10-08 01:57:08
- ConfirmationDialog2료일기존의 actionSheet는 deprecated되었고 confirmationDialog를 사용하라고 나와있다. 이게 몬데? func confirmationDialog( _ titleKey: LocalizedStringKey, isPresented: Binding, titleVisibility: Visibility = .automatic, presenting data: T?, @ViewBuilder actions: (T) -> A ) -> some View where A : View 첫번째에 타이틀을 달아줄수 있고 titleVisibility를 통해 title이 보여질지 정해줄 수 있고 그 뒤의 파라미터들을 통해 Button들을 추가해줄 수 있다. Button { isShowingConfirmationD..
- 2023-09-15 00:31:44
- Queue 10845 - swift2료일큐 구현이다. swift로는 큐를 어떻게 구현하는지를 물어보는 거였다. // // main.swift // Queue // // Created by 235 on 2023/09/05. // import Foundation struct Queue{ var queue: [Int] = [] public var size: Int { return queue.count } public var isEmpty: Bool { return queue.isEmpty } public var front: Int { return isEmpty ? -1 : queue[0] } public var back: Int { guard let last = queue.last else {return -1} return last } mutati..
- 2023-09-05 02:28:31
- 1259 - swift로풀기2료일오랜만에 돌아왔습니다 ㅠㅠㅠ 한동안 알고리즘을 놓다가 다시 잡게 되었네요. 이전까지는 주로 난이도 있는 것들을 파이썬으로 푸는 풀이들을 올렸었는데 리뉴얼을 했습니다!!! 올해 마치고 바로 취업에 목표를 둔것이 아니기에 swift로 차근차근 난이도를 높여가며 풀어과는 과정을 이제부터 올릴 예정입니다. 대망의 첫문제는 바로 유명한 팰린드롬수! 문제의 이해는 브론즈1로 낮기에 바로 풀이로 들어가겠습니다. // // main.swift // Algoritm // // Created by 235 on 2023/09/04. // import Foundation var arr: [String] = [] while true { var input = readLine()! if input == "0"{ break }els..
- 2023-09-05 01:06:34
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)