Textfield에 이미지를 아래와 같이 넣어야 하는 경우가 있을 때 사용하면 될 것 같다(참고) Step1,2 : Uitextfield를 ViewController의 적당한 위치에 옮긴 후, IBOutlet을 이용하여 연결 한다 Step3 : System Imag
Udemy에서 Angela 선생님이 강의하는 IOS & Swift - The Complete iOS App Development Bootcamp에서 Image를 불러 올 때, "Image Literal"를 사용해서 Assets에 있는 이미지를 불러온다...근데, 내가
참조하나의 스크린에서 여러 Component들이 상호작용하여 데이터를 구성하는 것과, 다른 스크린과 소통을 구성하는 것은 개발하는 과정에서 공통적인 요소로 취급된다.이러한 문제를 해결하기 위해서는 Swift에서는 여러가지 방법을 제시하지만, Delegate Patter
(참조)Delegate Pattern(1)의 Counter와 Control의 예시처럼, Control은 Counter의 권한을 필요 이상으로 가지고 있다. Protocol을 이용함으로써,Control에서 Counter로 부터 위임받은 권한을 제한할 수 있다.!!!!아래
역시 Swift에도 Python과 유사하게 List Comprehension이 있었다. 자주 애용하는 방식이므로, 정리를 해두고 쓰려고 한다.! 여러가지 방법이 있지만, 자주 사용할 것 같은 나만의 기준으로(?) 정리하도록 하겠다. 보다 더 간단한 것 같다... 내
IOS 13 이전AppDelegate에서 UI LifeCycle을 모두 담당했었다.IOS 13 이후 : iPadOS에서 멀티 윈도우가 등장하게 되면서 하나의 화면 하나의 App 룰이 깨짐(?)!이에 따라, UI LifeCycle이 다양해지면서 관리해줄 SceneDele
Swift의 Function 구문에 대해 정리하려고 한다. 다른 언어와 마찬가지로 Function은 resuable block으로, 코드의 개선과 유지보수를 위해 필수적이다.Swift는 아래와 같은 Syntax로 함수를 정의할 수 있다.func : Function을 정
참고1 참고2 참고3 Closure는 뭐지? > “Closures are self-contained blocks of functionality that can be passed around and used in your code.” — apple Closure는
Optional이란, swift의 특수한 Type으로, 특정 값의 존재 유무에 따라 값이 없을 경우 nil로 표현된다. 바로 이 nil을 핸들링 하는 방법이 Optional binding이다!Optional Binding에는 여러 방법이 있지만, if-let과 guar
이번에는 Design Pattern 중 MVC(Model-View-Controller)에 대한 소개와, IOS App에서 해당 Design Pattern을 어떻게 사용하는 지에 대해 말하고자 한다. MVC는 UIKit에서 기본적으로 차용하는 Design Pattern이다. Model : Data의 처리 방법을 말한다. 즉, Class 또는 Struct이...
참고 앞으로 Swift에서 자주 사용할 것 같은(?) map, flatMap, compactMap에 대해서 정리하려고 한다! 이따가... 위의 링크 설명 잘되어있음! Map map은 container의 값을 매개 변수로 받아, 해당 값에 function을 적용하고
Swift의 Extension에 대해 정리하고자 한다. 먼저, Apple의 공식 문서부터 보면... Extension은 말그대로 확장이라는 뜻을 가지고 있는데, Swift에서는 이미 존재하는 Class, Structure, enumeration, Protocol에서
참고 이번 글에서는 Swift UIKit의 ViewController의 생명주기(Lifecycle)의 모든 기능을 살펴보고자 한다. Init(Coder:) ViewController는 보통 Storyboard를 이용하여 생성된다. 이 경우, init(coder:)는
참고 Protocol은 method, property 등의 blueprint(청사진)으로 정의된다. Swift에서 Protocol은 Class, Structure, Enumeration 등에서 adopted(채택)되며, Protocol에서 명시된 variable이나
Swift의 lazy 키워드는 Property를 정의할 때 사용되며, 정의 이후에 실제로 해당 Property에 접근되어질 때 초기화 된다. 이미지를 나타내기 위한 Struct가 있다고 가정하자(아래의 예시). 이미지의 metadata dictionary는 Memory
참고 Swift는 자체적으로 Namespace를 지원하지 않기 때문에, Namespace를 대체하여 사용할 수 있는 방법을 제시한다. Using Structure 먼저 첫번째 방법은 Structure를 사용하는 것이다. 해당 방법은 적용하기 쉽고, Syntax적으로
TableView에서 Cell의 포함된 Contents에 따라 Cell의 Height을 변경해야 하는 경우가 있다. 물론, 직접 height을 눈대중으로 변경하는 방법도 있지만,,, Contents의 양에 따라 Cell의 Height를 변경하는 방법을 소개하고자 한다.
참고 iOS 앱 개발에서, Observer는 유저의 특정한 이벤트에 대한 알림을 해주는 Object이다. Property Observer는 Property의 값의 변화에 따라 관측하고 응답한다. Property의 값이 지정되거나, 심지어는 전/후 값이 동일하더라도 값
apple 공식문서 참고 Structure와 Class는 Application에서 데이터를 저장하고 모델링을 하기 위한 좋은 선택지이지만, Structure와 Class의 유사성으로 인해 개발자가 선택하는 데 어려움이 있다. 새로운 데이터 타입을 Application
참고 Swift는 함수형 프로그래밍 언어가 아님에도 불구하고, First-class-function을 가지고 있다. 그렇다면, Swift에서 First-class-function이 의미하는 바는 무엇일까? What Are First-Class Functions? S
참고1 참고2 What are closures? >Closures are self-contained blocks of functionality that can be passed around and used in your code. Swift 1.x와 2.x 버전에서
1\. Singletone Pattern? > 애플리케이션이 시작될 때 객체의 인스턴스를 최초 1회만 생성(static)하여 사용하는 디자인 패턴 2\. Singletone Pattern 생성 방법 스위프트에서는 static let으로 객체의 인스턴스를 할당해주면
Metatype 이란? asd 애플 문서를 살펴보면 Metatype은 타입의 타입이라고 정의되어 있습니다. String 타입의 타입? 이미 타입인데 이 타입의 타입이 있다는 것이라고 합니다. 이론적으로는 이상하게 들리지만 Swift의 쉬운 사용성을 위해 이러한
Property Wrapper란 Swift 5.1에서 추가된 기능으로, 해석 그대로 프로퍼티를 한번 감싸는 것을 의미한다. Property Wrapper를 사용하면 프로퍼티가 저장되는 방식을 관리하는 코드와 프로퍼티를 정의하는 코드 사이에 분리 계층을 추가하여 프로
not yet
not yet
not yet
not yet
not yet
not yet
참고
not yet
not yet
not yet
not yet
컴파일 시 코드를 분석해서 자동으로 retain, release 코드를 생성해주는 것.참조된 횟수를 추적해 더 이상 참조되지 않는 인스턴스를 메모리에서 해제해 주는 것.\-> ARC는 자동으로 RC를 관리해주기 때문에 메모리 해제에 대한 개발자의 부담을 덜어준다.해당
not yet
not yet
not yet
notYet
not yet
not yet
참고 >iOS는 다른 프로그래밍 언어보다 Memory 관리가 쉽다고 한다(?) >비교적 최근에 공개되고, High-level의 프로그래밍 언어인 Swift는 사용자의 행동에 따라 Memory를 Allocate 또는 Deallocate한다. Swift에서 Memory를
not yet
not yet
not yet
not yet
not yet
not yet
RxGesture란 기존 Gesture 객체를 Rx로 감쌓아놓은 것 종속성 RxGesture 사용 방법 RxGesture가 없는 경우, 일반 UIView 바인딩 RxGesture 사용 주의: tapGesture()를 그냥 사용 시, sampleView를 바인딩 할때도 event가 emit되므로 .when(.recognized) 연산자 추가 Rx...
MVI 패턴은 iOS 보다는 안드로이드에서 많이 사용되는 패턴입니다. MVI 패턴은 단방향 아키텍처 입니다. 우리가 잘 알고 많이 쓰는 MVC, MVVM 패턴은 양방향 아키텍처입니다. 최근 개발자들 사이에서 양방향 아키텍처에 대한 문제점을 제기하면서, 그 문제점들을
참고
not yet
배경 Alamofire로 빈 타입으로 파싱을 시도하던 중에 오류가 발생했다. 응답은 status code는 200으로 들어오고 body가 비어있었는데, responseDecodable에서 "Empty"로 파싱을 시도했지만 inputDataNilOrZeroLength 오류가 발생했다. 해결법 해결법은 간단하게도 emptyResponseCodes 파라미터...
Continuation은 프로그램 상태의 불투명한 표현입니다. 비동기 코드에서 연속(continuation)을 만들려면 withCheckedContinuation(function::), withCheckedThrowingContinuation(function::) 와 같은 코드를 호출합니다. 비동기 태스크를 재개하려면, resume(returning:), ...
Apple의 Audio Session Documentation 을 참고하여 따로 정리해본 오디오 세션 정리글입니다. Audio Session 동작에 대한 개괄적인 설명과 play, record 등을 위한 Audio Session Setting 방법을 다룹니다. 더 상세히 공부하고 싶다면 여기를 참고하세요. Audio Session은 다음 그림으로 이해할 ...
참고
참고
Server로 부터 이미지 URL이 아닌 ByteArray로서 Image를 표현할 때, ByteArray -> Data(base64Encode) -> UIImage -> Image 순으로 변환이 필요함.위와 같은 방법으로 간단하게 해결 할 수 있음.
Background Task? 앱이 위 2가지 상태중에 하나 일때, 시스템에 "원하는 코드/작업"을 "언제 실행"시키라고 지정하는 것임 실제로 iOS는 해당시간이 되면 앱을 깨워 실행하게 되나, 시스템 상황에 따라 시간적 오차가 있을 수 있음. 주로, 유저가 앱을 안보고 있을 때 어떠한 업데이트를 하여 유저 사용성을 높이는데 사용되고 있음. 구현 방...
출처1