분류 전체보기
-
RxSwift - withLastestFrom(_:), sample(_:)에 대해서 알아보자Ray Wenderlich/RxSwift 2020. 2. 10. 20:58
Ch9. Combining operatiors p.191 - p.193앱은 여러가지의 인풋을 다룬다. 여러 Observable에서 발생하는 이벤트들을 동시에 관리해야하는 경우가 많이 있을 것이다.버튼을 누르는 등의 간단한 트리거 역할을 하는 인풋이 있을 수 있고, 동시에 다른 인풋에서는 데이터가 전달 될 수도 있다.RxSwift는 이런 상황에 적절한 Operator를 제공하고 있다. withLatestFrom(_:)그림을 보면 두 개의 시퀀스가 있다.그리고 withLatestFrom을 사용한 시퀀스가 있다.tap 이벤트가 발생할 때, textfield의 마지막 Element의 값이 전달되고 있다. 우리가 자주 하는 UI코딩에서, button과 textfield를 사용하는 상황을 가정하고 있다. (뒤에서 ..
-
Observer Pattern (with Swift, Combine)Ray Wenderlich/Design Pattern 2020. 2. 2. 16:38
Ch 8. Oberver Pattern1. Observer Pattern의 구성요소2. Observer Pattern의 사용 (Combine을 사용하지만, Combine에 대해서 1도 몰라도 이해가능)3. 느낀 점 1. Observer Pattern의 구성요소옵저버 패턴은 한 객체가 다른 객체의 변화를 관찰하는 구조를 갖고 있다. Swift5.1에서는 Combine의 Publisher를 통해 이 패턴을 쉽게 구현할 수 있다. 1. Subscriber는 다른 객체의 변화를 객체다.2. Publisher는 객체다.3. Value는 변화하는 값이다. Publisher를 통해 전달하고 Subscriber에 전달된다. 2. Observer Pattern의 사용 옵저버 패턴은 주로 MVC패턴과 같이 사용된다.Vie..
-
Strategy Pattern (with iOS, Swift)Ray Wenderlich/Design Pattern 2020. 1. 2. 19:45
Ch5. Strategy Pattern 1. Strategy Pattern의 구성요소2. 사용 예시3. Delegate와 다른 점 1. Strategy Pattern의 구성요소Strategy Pattern의 구성요소는 3가지로 나뉜다. 1. Strategy를 사용할 객체2. Strategy를 정의하는 프로토콜3. 2번의 프로토콜을 구현한 Strategy객체 두 개 이상의 유사한 동작이 필요하고, 이 동작이 유연하게 바뀌기를 원할 때 사용하면 좋다.Delegate패턴과 굉장히 유사하다. (구성요소만봐도 똑같음) 2. 사용 예시영화 평점을 보여주는 화면이 있다고 생각해보자.참고로, 영화 평점은 여러 매체에서 매긴다. 로튼토마토, IMDb등 import UIKit public protocol MovieRati..
-
Swiftlint를 통해서 프로젝트에서 느낌표(!)를 제거해보자앱등이에게 살충제를 뿌린다./Swift 2019. 12. 19. 20:04
간혹 발생하는 크래쉬의 원인. Implicitly unwrapped optional 값이 셋팅 된 뒤로 nil이 될 가능성이 없는 optional이라고 간주되어 !를 붙여주지만,크래쉬로 뒤통수를 친다. 그러면 swiftlint를 통해서 이 느낌표를 제거해보자. .swiftlint.yml파일에서 아래 항목을 추가해주자. opt_in_rules: - implicitly_unwrapped_optional 그러면 우리가 선언한 모든 느낌표에 warning이 발생한다. 하지만 스토리보드에 연결된 @IBOutlet 프로퍼티에는 warning이 발생하지 않는다.얘네들까지 전부 warning을 발생시켜 수정하려면 아래와 같이 lint 옵션을 수정해주면 된다. implicitly_unwrapped_optional: mo..
-
코드에 남기는 주석의 의미코딩은 주댕이로/컴공지식 2019. 10. 17. 15:00
주석주석이 명료하고 도움이 되는가? 정말 필요한 주석만 있는가? 유용한 주석은 코드가 어떤 일을 하는지가 아니라 왜 존재하는지를 담고 있다. 코드만 봐서는 어떤 일을 하는지 이해가 잘 안 된다면 코드를 더 간단하게 고쳐야한다. 정규 표현식이나 복잡한 알고리즘에 대해서는 예외로 어떤 일을 하는지를 적어도 좋지만 일반적으로는 코드에 담을 수 없는 정보를 주석에 남기는 편이 좋다. 출처: https://soojin.ro/review/looking-for
-
Introducing iOS application <Add Calendar>앱등이에게 살충제를 뿌린다./iOS 2019. 10. 7. 03:12
It's hard to add calendar on a wallpaper. So, I just made an app which adds a calendar on your wallpaper.It's so simple, just follow me only for a second. 1. Choose a picture you want. . 2. Set a area you want by cropping and moving the picture. (Football icon on the top provides a football schedule.) 3. Create your own calendar. 4. Check whether the calendar fits your wallpaper or not. If not, ..
-
배경화면을 꾸며주는 배경화면에 달력을 앱을 소개합니다.앱등이에게 살충제를 뿌린다./iOS 2019. 10. 7. 03:08
아이폰은 위젯기능이 빈약하여 배경화면에 달력추가가 힘듭니다. 그래서 내 배경화면에 쉽게 달력을 추가해주는, 앱을 소개합니다.초초초 간단주의!!! 1. 원하는 사진을 선택한다. . 2. 선택한 사진에서 배경화면으로 지정할 영역을 설정해준다. (상단의 축구공을 누르면 축구팀 스케쥴을 가져옵니다.) 3. 나만의 달력을 생성한다. 4. 내 배경화면과 잘 어울리는지 확인하고, 달력의 크기와 위치를 잡아준다. 5. 사진첩에 저장하고 배경화면으로 설정한다. 유럽 8개팀 기본 배경화면