본문 바로가기

Swift 공부

(33)
TableView Reusable AppStore Clone App을 만들던중 버전에서 더보기 기능을 만드는데 TableView에서 더보기를 클릭하고 아래로 내려갔다 돌아오면 초기화가 되어있거나 의도치 않은부분이 더보기가 눌러져있거나 하는 문제가 발견되어 뭐가 문제인지 곰곰히 생각을 해보니 Cell 의 재사용 관련된 문제였다 위의 사진을 보면 무슨말이냐 TableView를 그릴때 Cell을 아래로내려갈때마다 새로그리는게 아니라 기존에 있던 Cell을 재사용 한다 라고 이해하면될것같다 그래서 내가 특정 Cell에만 Background 0번째 Cell에 만 주더라도 0번째 Cell 에서만 background 색상이 바껴있는것이 아닌 다른 cell에서도 색상이 바뀌는 현상을 발견하게 된다. 제가 개발했을때는 TableView 의 Cell 에 ..
GCD - (1) https://dragoner.tistory.com/190 [iOS] iOS개발자 로드맵(Swift) godrm/mobile-developer-roadmap 모바일 개발자 로드맵. Contribute to godrm/mobile-developer-roadmap development by creating an account on GitHub. github.com 이직을 위해 공부를 하다가 iOS개발자 로드맵.. dragoner.tistory.com 글을 보며 공부 로드맵을 따라 공부하던중 초보시절 공부를 했지만 제대로 이해하지 못하고 넘어간 GCD에 대해 다시 한번 공부를 해볼려고한다. GCD 란? GCD는 멀티코어 시스템에서 동시성 실행을 제공하는 에플에서 제공하는 프로그래밍 언어 요소, 런타임 라이브러..
MVVM RxSwift , Combine 지난글에 이어 https://coding-rengar.tistory.com/23 Swift MVVM 1. MVVM 1. 개요 Model-View-ViewModel(MVVM) 패턴은 UI 디자인 패턴입니다. 그것은 MV라고 알려진 더 큰 패턴 모음중에 하나이며, Model View Controller(MVC), Model View Present(MVP), 그외 여러가지가 포함됩.. coding-rengar.tistory.com 오늘도 MVVM을 공부를 진행해볼려고한다. 지난번에는 MVVM을 이용해 코드를 만들고 Bindging객체도 직접 만들어서 사용했다 이번에는 코드를 개선하는데 Bindging 객체를 직접 구현하지않고 사람들이 많이 사용하는 RxSwift 그리고 IOS13에서 나온 Combine 을 이..
Swift MVVM 1. MVVM 1. 개요 Model-View-ViewModel(MVVM) 패턴은 UI 디자인 패턴입니다. 그것은 MV라고 알려진 더 큰 패턴 모음중에 하나이며, Model View Controller(MVC), Model View Present(MVP), 그외 여러가지가 포함됩니다. 이러한 각 패턴은 개발과 테스트가 더 쉬운 앱을 만들기 위해 비즈니스로직으로 부터 UI 로직을 분리합니다. MVC 패턴은 UI를 앱의 상태를 표현하는 Model로 분리하며, View는 UI 컨트롤로 구성되어 있고, Controller는 사용자 상호작용을 처리하고 모델을 적절하게 업데이트 합니다. MVC 패턴의 가장 큰 문제점은 기능이 Controller에 많이 몰려있기에 Controller가 비대해진 다는 단점이 있습니다. ..
Protocol Oriented Programming(POP) - With RxSwift Mvvm https://developer.apple.com/videos/play/wwdc2015/408/ Protocol-Oriented Programming in Swift - WWDC15 - Videos - Apple Developer At the heart of Swift's design are two incredibly powerful ideas: protocol-oriented programming and first class value semantics. Each of... developer.apple.com Swift의 프로토콜 지향 프로그래밍 Swift 디자인의 핵심에는 프로토콜 지향 프로그래밍과 일급 가치 의미론이라는 두 가지 매우 강력한 아이디어가 있습니다. 이러한 각 개념은 예측 가능성, 성능..
WKWebView MemoryLeak 해결 프로젝트가 웹뷰를 베이스로 진행하고있어 웹뷰를 구현을 한 후 메모리 디버깅을 해보니 웹뷰컨트롤러가 사라지지않고 계속 메모리에 남아있는 이슈를 발견하였다. 해당 문제를 Coordinator 패턴을 잘못 사용하였거나 ViewModel을 잘못 사용하여 Strong 하게 메모리가 연결되어 있어 메모리가 삭제되지 않았나 라는 의심이되어 메모리를 디버깅을 해보니 해당 Coordinator , ViewModel 의 문제는 전혀 아니였고 ViewController와 Strong하게 의존되어있는 프로젝트도 발견할 수 없어 무엇이 문제인가 한참 찾아보았는데 결론이 정말 허무했다. WkWebView에서 자바스크립트의 함수를 받기위한 WKScriptMessageHandler의 함수가 자체적으로 Strong하게 연결되어있어 M..
타입캐스팅 is , as 와 Any , AnyObject is , as를 알기위해 우선 MediaItem 클래스를 생성합니다. class MediaItem { var name: String init(name: String) { self.name = name } } 그 후 MediaItem 을 서브클래스로 가지는 Movie 와 Song 클래스를 만듭니다. class Movie: MediaItem { var director: String init(name: String, director: String) { self.director = director super.init(name: name) } } class Song: MediaItem { var artist: String init(name: String, artist: String) { self.artist = ..
Swift 함수형 프로그래밍 공부를 하면서 객체지향 , 함수형 등 프로그래밍을 들어봤지만 당연히 객체지향 프로그래밍을 사용하고 있고 함수형 프로그래밍을 해본적이 없다고 생각을 하고있었다 하지만 공부를 위해 그리고 다양한 견문을 넓히기 위해 함수형 프로그래밍을 검색해서 공부를 해보았는데 어디서 본적있는 코드들이 나오는게 아닌가 예를 들어 배열에서 사용하는 필터등 ... 나는 함수형 프로그래밍을 사용하면서 모르고 있었던거였다 상당히 창피했다. 그래서 본격적으로 함수형 프로그래밍에 대해 찾아보고 정리를 하기로 결심을 하고 이 글을 작성한다 함수형 프로그래밍이란? 1. 함수의 응용을 중요하게 생각한다. 2. 함수를 일급 객체로 다룬다 3. 코드의 실행과 결과값이 함수에 전달된 인자값으로만 결과를 만들어 내기때문에 상태값을 가지고있지않고 순..