적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Swift iOS 앱 개발/Swift 85

[Swift] UISwipeGestureRecognizer 를 이용한 스와이프 액션을 파헤쳐보자 !

스와이프 제스처에 대해 알아보자! Handling swipe gestures Detect a horizontal or vertical swipe motion on the screen, and use it to trigger navigation through your content. A swipe gesture occurs when a person moves one or more fingers across the screen in a specific horizontal or vertical direction. Use the UISwipeGestureRecognizer class to detect swipe gestures. UISwipeGestureRecognizer 이용해 스와이프 제스처를 감지할 수 있..

[Swift iOS] 화면 스와이프 swipe to pop / swipe back (+ RxGesture)

uinavigationController 를 사용하면 화면 왼쪽 끝부분에서 스와이프 할 때 popViewController 처럼 이전 화면으로 넘어갈 수 있지만, 화면 중앙이나 다른 부분에서는 스와이프를 해도 뒤로 넘어갈 수 없다. 화면 어디서나 swipe back 을 할 수 있도록 만드는 방법을 알아보았다. 카카오나 인스타그램의 경우 커스텀으로 swipe back 기능을 구현해주었는지, 화면 어디서나 스와이프를 하면 손 위치를 따라 뷰가 같이 움직이며 따라오지만 그것까지는 아니고, 그냥 어디서든 스와이프 하면 이전 화면으로 넘어갈 수 있도록만 구현하였다. 이거는 UISwipeGestureRecognizer 를 이용해서 간단하게 구현이 가능하다. 1. UISwipeGestureRecognizer var ..

[Swift iOS] Lottie Animation 적용하기 (+ multiple animation)

import UIKit import Lottie class ViewController: UIViewController { var animationView: AnimationView? override func viewDidLoad() { super.viewDidLoad() animationView = .init(name: "coffee") animationView?.frame = view.bounds animationView?.loopMode = .loop animationView?.animationSpeed = 0.5 //1이 기본 속도, 클수록 빨라짐 view.addSubview(animationView) animationView?.play() //view.sendSubviewToBack(animati..

enum case 예외 처리 (default 값 설정)

최근 후기 뜨지 않는 문제. enum 디코딩 에러. enum case 예외 처리 개발 서버에서 테스트 중에 최근 후기가 뜨지 않는 문제가 발생했다. ERROR : dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "reviews", intValue: nil), _JSONKey(stringValue: "Index 7", intValue: 7), CodingKeys(stringValue: "product_type", intValue: nil)], debugDescription: "Cannot initialize SaleProductType from invalid Int value 15", underlyingError:..

[Swift] Why double is preferred over float? (+ Int / Int32 / Int64)

Swift에서 Float 보다 Double 이 더 많이 쓰이는 이유? Swift에서 double은 float보다 더 많이 사용되는 이유는 정확성과 성능 때문이다. Double has a precision of at least 15 decimal digits, whereas the precision of Float can be as little as 6 decimal digits. Double은 64비트 부동 소수점 숫자를 나타내며 Float는 32비트 부동 소수점 숫자를 나타낸다. Double은 Float보다 더 많은 비트를 사용하기 때문에 더 큰 범위의 값과 더 높은 정확도를 가진다. 또한, 대부분의 현대 컴퓨터는 64비트 아키텍처를 사용하므로 Double이 더 효율적이며 더 빠른 계산을 할 수 있기 ..

Swift 언어에 대하여

About Swift https://www.swift.org/about/ Swift의 목표는 시스템 프로그래밍에서 모바일 및 데스크톱 앱, 클라우드 서비스로 확장하는 데 이르기까지 사용 가능한 최상의 언어를 만드는 것. 가장 중요한 점은 개발자가 올바른 프로그램을 작성하고 유지하기 쉽도록 설계되었다는 것. 이러한 목표를 달성하기 위해 Swift 코드는 다음과 같이 작성되어야 한다. Safe. Opting for safety sometimes means Swift will feel strict, but we believe that clarity saves time in the long run. Fast. Swift는 C 기반 언어를 대체하기 위한 것이기 때문에, 대부분의 작업에서 해당 언어와 성능이 비슷해..

[Swift Concurrency] async / await

WWDC 21 - Meet async/await in Swift https://developer.apple.com/videos/play/wwdc2021/10132/ Meet async/await in Swift - WWDC21 - Videos - Apple Developer Swift now supports asynchronous functions — a pattern commonly known as async/await. Discover how the new syntax can make your code... developer.apple.com Concurrency 동시성 : Perform asynchronous and parallel operations. 비동기 및 병렬 작업을 수행 기존의 비동기 작..

[Swift ARC] Strong Reference Cycles 강한 순환 참조

ARC가 참조 횟수를 추적하며 자동으로 메모리 관리를 해주지만, 강한 참조 횟수가 절대 0이 되지 않는 문제가 발생할 수도 있는데 이런 경우를 강한 순환 참조(strong reference cycle)라고 한다. 강한 순환 참조 문제는 두 클래스 인스턴스가 서로를 강한 참조하고 있을 때, 그리고 클로저에서 발생할 수 있다. 이는 강한 참조 대신 weak 이나 unowned references 를 사용하여 해결할 수 있다. Strong Reference Cycles 강한 순환 참조 ARC가 참조 횟수를 추적하며 더 이상 참조하는 곳이 없으면 자동으로 메모리 해제를 해주지만, 강한 참조 횟수가 0이 되지 않아 메모리에서 해제되지 않고 계속 남아있는 경우를 강한 순환 참조라고 한다. -> memory leak..

[Swift ARC] strong / weak / unowned references 강한 참조 약한 참조

Strong References 클래스 타입의 프로퍼티, 변수, 상수 등을 선언할 때 별도로 명시하지 않으면 기본적으로 강한 참조를 하게 된다 → reference count 1 증가 클래스의 인스턴스가 서로가 서로를 강한 참조할 때, 영구적으로 해제되지 않아 메모리 누수가 발생할 수 있다. 이를 해결하기 위해 weak references 또는 unowned references 를 사용할 수 있다. Weak References 인스턴스를 참조하더라도 참조 횟수를 늘리지 않음 참조하는 인스턴스가 해제되었을 때 자동으로 nil 값을 할당 nil 값을 저장할 수 있어야 하기 때문에 옵셔널과 var로 선언해야 함 Unowned References 인스턴스를 참조하더라도 참조 횟수를 늘리지 않음 weak 과의 차..

[Swift ARC] Automatic Reference Counting

Swift에서는 Automatic Reference Counting 방식을 이용하여 메모리 관리를 자동으로 해주고 있다. 참조 타입인 클래스의 인스턴스를 관리할 때 사용되는 방식으로, 클래스의 새 인스턴스를 만들 때마다 ARC는 해당 인스턴스의 정보를 저장하기 위해 메모리에 할당하고, 해당 인스턴스를 참조하는 횟수(reference counting)를 추적하여 더 이상 사용되지 않을 경우 자동으로 메모리를 해제해준다. Reference Counting이란? 메모리를 제어하는 방법 중 하나로, garbage collection의 한 방식이다. 어떤 한 동적 단위(객체, Object)가 참조값을 가지고 이 단위 객체가 참조(참조 복사)되면 참조값을 늘리고 참조한 다음 더이상 사용하지 않게 되면 참조값을 줄이..

728x90
반응형