[iOS/Point-Free] 동시성프로그래밍: Sendable, Actor
·
iOS/💻 iOS Study
PointFree 강의 정리 내용입니다!https://www.pointfree.co/collections/concurrency/threads-queues-and-tasks/ep193-concurrency-s-future-sendable-and-actors Episode #193: Concurrency's Future: Sendable and ActorsWhen working with concurrent code, you must contend with data synchronization and data races. While the tools of the past made it difficult to reason about these issues, Swift’s new tools make it a br..
[iOS/Point-Free] 동시성프로그래밍: Task
·
iOS/💻 iOS Study
PointFree 강의 정리 내용입니다!https://www.pointfree.co/episodes/ep192-concurrency-s-future-tasks-and-cooperation#task-cooperation Episode #192: Concurrency's Future: Tasks and CooperationLet’s look at what the future of concurrency looks like in Swift. A recent release of Swift came with a variety of tools with concurrency. Let’s examine its fundamental unit in depth, and explore how they “cooperate” in..
[iOS/Point-Free] 동시성 프로그래밍: OperationQueue, CGD와 Combine
·
iOS/💻 iOS Study
다음 내용은 Point-Free의 Concurrency 강의를 듣고 정리한 내용입니다!https://www.pointfree.co/episodes/ep191-concurrency-s-present-queues-and-combine Episode #191: Concurrency's Present: Queues and CombineBefore developing Swift’s modern concurrency tools, Apple improved upon threads with several other abstractions, including operation queues, Grand Central Dispatch, and Combine. Let’s see what these newer tools bro..
[iOS/Point-Free] 동시성 프로그래밍의 과거 - 스레드
·
iOS/💻 iOS Study
다음 내용은 Point-Free의 Concurrency 강의를 듣고 정리한 내용입니다!https://www.pointfree.co/episodes/ep190-concurrency-s-past-threads Episode #190: Concurrency's Past: ThreadsTo better understand Swift’s concurrency tools, let’s first look to the past, starting with threads. Threads are a tool most developers don’t reach for these days, but are important to understand, and the way they solve problems reverberate e..
[RxSwift] Rx 를 사용하여시스템 권한 요청받기 (카메라, 앨범, 알림)
·
iOS/🗂️ 내 코드 기록하기
다음과 같은 시스템 권한 얼럿을 RxSwift를 이용하여 띄워보자! PermissionManager 라는 이름을 가진 싱글톤 클래스를 만들어 권한 확인 및 요청 관련 메서드를 관리public final class PermissionManager { public static let shared = PermissionManager() private init() { } private let disposeBag = DisposeBag() ...}권한 요청RxSwift를 사용하여 구현하려고 하기 때문에 Observable 타입을 리턴하도록 구현리턴되는 Bool타입의 데이터는 해당 권한을 허용했는지 여부이다.알림 권한 요청알림 권한 얼럿의 메세지는 시스템 내부에 정해져있다.알림에 대한 얼럿과 소리 뱃지 등의..
[iOS/Swift] 인앱에서 앱스토어 리뷰 팝업 띄우기
·
iOS/🗂️ 내 코드 기록하기
인앱리뷰최대 3번 노출 가능리뷰 요청을 자주 띄우는 것은 오히려 사용자에게 부정적 인식을 가져다 줄 수 있기 때문에 요청의 텀을 충분히 줘야한다.그렇기 때문에 시스템 내부적으로 365일 내에 최대 3번만 노출되도록 제한이 되어있다.시스템에서 팝업 노출을 제한하기 때문에 리뷰 팝업을 띄우는 코드가 심어져있다고 무조건 팝업이 뜨는 것은 아니다!단, 시스템에서 제어하는 경우는 앱스토어에 릴리즈 된 앱의 경우에만 해당된다. 디버그 모드에서는 리뷰 팝업이 설계한 대로 무조건 노출되고, 테스트플라이트에서는 노출되지 않는다.적절한 타이밍에 노출해야 한다.리뷰 요청 팝업을 띄울 때는 적절한 타이밍을 찾아야한다.앱에 진입하자마자 또는 온보딩 과정은 적절하지 않은 타이밍이다. 사용자가 앱에 대해 충분한 사용 경험이 없기 ..
[iOS/SwiftUI] Text 더보기 버튼 만들기 - ViewThatFits
·
iOS/🗂️ 내 코드 기록하기
스유 초보이기 때문에 틀린 내용이 있을 수 있습니다! 💡 더보기 Text만들기 텍스트 길이에 따라 더보기 버튼을 만들어서 토글이 되도록 만들어보자. 방법을 여러 번 검색해보았고, Geometry를 이용하는 방법을 찾아서 해보는데 원하는대로 되지 않았따.. lineLimit이 2일 때 1줄 텍스트에는 더보기 버튼이 보이면 안되는데 이 부분이 계속해서 해결이 안되었다. 계속 뒤적뒤적하다가 발견한 스택오버플로우,,(갓) https://stackoverflow.com/questions/59485532/swiftui-how-know-number-of-lines-in-text SwiftUI - how know number of lines in Text? I have a dynamic text, it can be s..
[Swift] Swift Concurrency async / await
·
iOS/🔎 swift 정리하기
GCD (Grand Centeral Dispatch) 일반적으로 네트워크 통신을 할 때 우리는 비동기적으로 코드를 작성한다. 다음과 같이 비동기적으로 요청을 하여 응답 결과를 call back 받기 위해 completion handler를 통해 받아오고, 받아온 데이터를 화면에 반영한다. func fetchThumbnailURLSession(completion: @escaping (Result) -> Void) { let url = URL(string: "https://www.themoviedb.org/t/p/w600_and_h900_bestv2/7M2pc9OboapgtoBbkU49Aim7O5B.jpg")! let request = URLRequest(url: url, cachePolicy: .reloa..
[iOS/WWDC23] viewIsAppearing() 알아보기
·
iOS/💻 iOS Study
WWDC23에서 발표된 새로운 생명주기 메서드에 대해 알아봅시다. 23년에 발표되긴 했지만 iOS 13부터 적용이 가능하다. viewIsAppearing()은 viewWillAppear()가 호출된 후, viewDidAppear() 호출 전에 호출되는 메서드이다. viewWillaAppear()에서는 아직 뷰가 올라오기 전이고, viewIsAppearing()에서는 뷰가 뷰의 계층 구조 상에 올라온 후 호출된다. 때문에 viewIsAppearing()에서는 뷰의 크기나 초기 기하구조를 다루는 코드를 에서 수행할 수 있다. 그렇다면 viewDidAppear()시점에 수행해도 되는 것이 아닌가? viewDidAppear()도 사용자의 눈에 뷰가 보이기 전에 뷰를 다룰 수 있지만 사용자에게 보여지기 직전이기 ..
[iOS/ReactorKit] ReactorKit 알아보기
·
iOS/💻 iOS Study
최근 프로젝트에서 적용한 ReactorKit에 대하여 정리해보고자 한다. 이전에 RxSwift + MVVM Input-Output 패턴을 적용하여 개발했는데, ReactorKit 구조와 비슷하다는 이야기를 들어서 한 번 적용해보았다. 특징 단방향 흐름을 가진 반응형 프레임워크이다. RxSwift와 필수적으로 함께 사용된다. RxSwift의 Observable을 통해 비동기적으로 데이터를 처리하고, 사용자의 이벤트 처리와 UI 업데이트 쉽게 관리할 수 있다. View와 Reactor로 구성되어있고, Reactor가 ViewModel과 같은 역할을 한다. 네트워크 통신이나 db 접근 등 비즈니스 로직을 구성하게 된다. 기본 동작(➡️단방향 흐름➡️) Reactor에는 View에서 받은 Action과 작업(M..