본문 바로가기
728x90

전체 글142

[iOS/SwiftUI] @ViewBuilder, @resultBuilder 가 무엇일까? ViewBuilder A custom parameter attribute that constructs views from closures. @resultBuilder struct ViewBuilder SwiftUI 에서 ViewBuilder 는 클로져를 통해 뷰 계층을 전달할 수 있는 속성이다. ViewBuilder 를 이용하면 함수나 클로저는 여러개의 뷰를 반환할 수 있다. 여러개의 뷰를 전달해야하는 상황에서 코드를 깔끔하게 작성할 수 있다. 😯 resultBuilder ? ViewBuilder 는 @resultBuilder 프로퍼리 래퍼가 붙어 있는데 해당 속성은 Swift5.4 에 도입되었고 기존 명칭은 @_functionBuilder 이다. SE-0289의 ResultBuilder resultBu.. 2023. 6. 7.
[WWDC2017] Love at First Launch 첫인상이 중요하다. 아파트를 계약하려고 할 때, 처음부터 여권 서류등을 요구하겠는가? 사기꾼 아닐까 싶은 집주인 🥹 앱도 마찬가지로, 앱 설치부터 로그인 화면부터 나타나고 권한들을 요구한다면 친근하지 않다. Lead with great content 로그인창부터 띄우는 iTravel 앱과 다르게, 다른 여행 앱은 콘텐츠를 바로 보여준다. 사용자들은 바로 화면에 있는 숙소들을 탐색하며 여행지를 찾을 수 있고, 예약하려는 시점에 로그인창이 뜬다. (하지만 airbnb 도 화면을 보여주기 전에 로그인이 모달로 우선뜬다.. 속세는 어쩔수 없는 🥲) Teach through interaction 전화 앱에서 키패드, 전화 걸기 기능등은 설명하지 않아도 모두 알 수 있는 기능이지만 선행 방법을 알려주는 것이 도움이.. 2023. 5. 24.
[WWDC21] Discover concurrency in SwiftUI 목차 Concurrent data models SwiftUI and the main actor New concurrency tools 해당 영상을 보기전에 참고하면 좋을 WWDC 영상 Meet async/await in Swift Explore structured concurrency in Swift 예시 앱 ) 우주 이미지 목록들 보여주고 저장하는 앱 (우주 이미지를 받아오려면 오래걸린다는 큰그림이 예상됩니다 🧐) Concurrent data models 이미지에 대한 정보를 가지고 있는 모델 SpacePhoto 이미지 배열을 가지고 있는 모델 Photos ObservableObject 로 되어있어 @published 어노테이션이 붙은 items 값이 변경시 데이터 변경시 SwiftUI View 업데이.. 2023. 5. 18.
[WWDC20] The Push Notifications primer (APNs / iOS 푸시 등록) 푸시 알림이 무엇인지, 왜 사용하는지 설명해주고 앱에 추가할 수 있는 방법을 설명해주는 영상에 대해 정리한 글입니다! Introducing Push Notification 푸시 알림의 기능 Engagement : 푸시 알림을 통해서 앱이 상호작용 할 수 있다. Provide updates : 앱에 실시간으로 업데이트를 제공할 수 있는 기능을 제공한다. Dynamic experiences : 앱 내의 변경사항이 있을 때 다이나믹한 경험을 줄 수 있다. 푸시 알림을 추가했을 때 이점은 무엇이 있을지? Foreground not required : 앱이 항상 포그라운드에 있을 필요가 없다. 푸시 알림은 앱의 상태와 관계없이 전달되고 필요한 경우 실행된다. Power efficient : 푸시 알림은 전력을 많.. 2023. 2. 14.
[WWDC18] iOS Memory Deep Dive iOS Memory Deep Dive - WWDC18 - Videos - Apple Developer Discover how memory graphs can be used to get a close up look at what is contributing to an app's memory footprint. Understand the true... developer.apple.com [WWDC18] iOS Memory Deep Dive Why reduce memory :: 왜 메모리를 줄여야 하는지? Memory footprint :: 메모리 사용량에 대한 이론적인 이야기 Tools for profiling footprint :: 메모리 사용량을 확인할 수 있는 툴 소개 Images :: 메모리를 많이 .. 2022. 11. 27.
[WWDC19] Advances in Collection View Layout - Part 1 Advances in Collection View Layout - WWDC19 - Videos - Apple Developer Collection View Layouts make it easy to build rich interactive collections. Learn how to make dynamic and responsive layouts that range... developer.apple.com 👋 WWDC19 - Advances in Collection View Layout Current State-of-the-Art UICollectionView 는 iOS 6 에서 처음 소개되었다. 데이터를 렌더링하는 클래스와 CollectionView 의 layout 을 관리하는 두개의 클래스가 필요했.. 2022. 10. 17.
[WWDC19] Data Flow Through SwiftUI - Part 2 Working With External Data 💬 Part1 에서는 ... 유저와 SwiftUI 뷰 간 데이터 흐름에 대해 얘기해봤었다. @State 프로퍼티 래퍼를 통해 값이 변경됨을 트래킹하는 변수를 둘 수 있고, @Binding 을 통해 자식뷰에서도 같은 데이터를 바라보도록 할 수 있었다. 🙋‍♀️ Part2 에서는? 뷰 내부에서의 동작을 관리하는 @State 변수로는 불가능한 외부에서 발생하는 이벤트, 외부에서 관리되는 데이터는 어떻게 처리해야할지 다뤄본다. 결론적으로 유저 인터렉션이 아닌 timer, notification 처럼 외부에서 발생하는 이벤트도 동일한 흐름으로 동작한다. action 생성 -> State 값 변경 -> 뷰에 대한 새로운 카피 -> 유저에게 새롭게 보여줌 SwiftUI.. 2022. 8. 30.
[WWDC19] Data Flow Through SwiftUI - Part 1 Principles of Data Flow Tools for Data Flow SwiftUI 에서 소개되는 Property, BindableObject,@Environment , @Binding ,@State 미리 스포하자면 BindableObject -> ObservableObject 로 이름이 변경됨 이번 영상을 통해서 해당 툴들이 어떻게, 언제 쓰이는지 알게 될 것이다! Principle SwiftUI 데이터 플로우를 디자인하기 위한 두개의 원리를 알아보자. First principle "Data Access as a Dependency" 토글을 생각해보자. 토글 뷰를 그리기 위해서는 Bool 타입의 데이터가 필요하고, 데이터가 새로운 값으로 변경될 때마다 뷰를 변경해줘야 한다. 데이터가 변경될 때.. 2022. 8. 30.
[WWDC19] LLDB: Beyond "po" LLDB 는 앱 런타임 중에 디버깅 할 수 있는 툴이다. "po" 기본적으로 LLDB 에서 po ~~ 명령어를 작성하면 해당 타입과 프로퍼티에 대해 보여준다. CustomDebugStringConvertible 프로토콜을 채택하고, debugDescription 을 추가하면 Object 이름이 나타나는 곳에 커스텀하게 설명을 추가할 수 있다. Sub structure 에 대한 커스텀이 필요하다면 CustomReflectable 을 찾아보자. po 명령어는 객체를 프린팅하는 것 외에도, 메소드 호출 등의 동작을 할 수 있다. po 는 사실 특정 명령어를 alias 로 단축시킨 것이다. 다른 이름으로 동일하게 만들 수도 있다. expression --object-description 을 줄인것 "po" Un.. 2022. 7. 4.
728x90