일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Equatable
- uicollectionview
- Singleton Design Pattern
- PhotoKit
- Observable
- 오늘의성취도
- rxswift
- Stanford cs193p
- Codable
- UIDocument
- CustomStringConvertible
- weak
- 에어팟
- UIGestureRecognizer
- Git
- CoreGraphics
- UIBezierPath
- UIDynamicAnimator
- unowned
- IOS
- Swift
- UIDocumentBrowserViewController
- Hashable
- NSAttributedString
- reactivex
- AVFoundation
- JSONDecoder
- MVP
- Arc
- JSONEncoder
- Today
- Total
목록Swift + iOS/iOS (11)
아직은 개린이
오늘부터 틈틈히 Apple의 Human Interface Guidelines(HIG)을 살펴보고, 정리해보려고 합니다. 지금까지는 아이폰 유저로서 경험했던 것을 기반으로 UI 위치나 버튼의 위치 등을 구성하긴 했지만, 좀 더 명확히 애플의 identity를 이해하여 앱을 설계하고, 협업 시에도 추상적인 용어가 아닌 분명한 기준으로 소통하기 위해 필요할 것 같아서 HIG를 살펴보려고 합니다! https://developer.apple.com/design/human-interface-guidelines/ Human Interface Guidelines - Design - Apple Developer Human Interface Guidelines Get in-depth information and UI re..
앱을 하나 만들고 나니.. 내가 어떤 부분을 더 보완해야하고, 어떤 부분을 제대로 이해하지 못했는지 정리가 좀 되는 것 같아요..! (아직도 부족한게 참 많지만...) 그래서 오늘 해보려는 것은 Unit Test 입니다. Unit Test에 대해 알아보기 전에 우선 TDD에 대해 알아보겠습니다. TDD란? TDD란 Test-Driven Development의 약자로, 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나입니다. 작성해야하는 프로그램에 대한 테스트를 먼저 작성하고, 이 테스트를 통과할 수 있도록 코드를 짜는 것입니다. 테스트를 통과하면 다음 테스트를 작성하고, 통과하는 작업을 반복하는 것이지요. 간단한 예시로 생각해볼까요? A라는 메소드는 "파라미터로 받은 값이 4로 나누어떨..
MVC 패턴에 워낙 익숙해져있어서, 새로운 패턴으로 코드를 작성하는 연습을 많이 해봐야 할 것 같다! 우선 오늘은 간단한 예제로 MVP 패턴에 대해 학습한 걸 정리해보려고 한다. MVP 간단히 MVP에서 각각이 무엇을 의미하는지 다시 짚고 넘어가보자. Model - MVC 패턴에서 의미하는 모델과 같은 역할을 한다. 앱의 실행에 필요한 실질적인 데이터를 갖고 있다. View - UIView와 UIViewController가 여기에 해당한다. 비즈니스 로직과 관련된 일은 모두 Presenter가 하도록 한다. Presenter - UIKit과 관련이 없는 로직들을 수행한다. 사용자 응답에 반응하거나 UI를 업데이트하는 일을 한다. 예제코드 화면에 나타난 두 버튼 중 어느 버튼을 클릭했는지 출력하는 간단한 ..
앞선 글에서 좋은 아키텍처란 무엇인지와 MVC 패턴에 대해 살펴보았다. 이번 글에서는 새롭게 공부하는 주제인 MVP 패턴에 대해 알아보고자 한다. MVP MVP 패턴의 다이어그램은 아래와 같다. MVC 패턴과 굉장히 유사한 구조로 이루어져있지만, MVC는 아니다! 우선 MVC와 달리 UIView와 UIViewController가 Passive View에 속해있다. 따라서, Controller에 해당하는 Presenter에는 View의 레이아웃과 관련된 코드와 View의 Life Cycle을 다루는 코드가 들어가지 않는다. 대신 View와 Model의 중재자 역할에 더 집중하여 View의 데이터와 상태 변화를 갱신하는 역할만을 수행한다. 이로 인해 각 객체의 독립성이 높이졌고, 테스트가 용이해졌다. 하지만..
iOS의 아키텍처 패턴에는 MVC, MVP, MVVM 등 여러 종류가 있다. 사실 그동안에는 MVC 패턴으로만 코드를 짰었다. Apple이 기본적으로 적용한게 MVC 패턴이기도 하고, 단순하기 때문이었다. 하지만, Apple의 MVC 패턴을 Massive View Controller라고 하는 것처럼 ViewController의 몸집이 너무 커서 코드가 조금만 길어져도 정신을 똑바로 차려야(?) 하는 단점이 있었다. 또한, Unit Test를 프로젝트에 적용하는 연습을 시작했는데, MVC 패턴에는 적용하기 어렵다는 문제도 있었다. 그래서! 다른 패턴을 이용하여 코드 작성을 하는 연습을 하기 위해 MVC 외의 MVP, MVVM 등에 대해 알아보고자 한다.! 오늘은 우선 아키텍처 패턴이 왜 중요한지 알아보고,..
항상 UITextField의 border가 있는 상태에서만 사용해보다가, 어두운 배경에서 border style을 None으로 사용하려고 보니! placeholder가 기본적으로 옅은 회색이라.. 아래 캡쳐한 것처럼.. 보이지가 않는다!! 내가 원하는 것은 어두운 배경에서 placeholder의 배경값이 없고, border style도 none인 상태에서, placeholder의 텍스트 색이 흰색으로 보이게 하는 것이다! 방법은 2가지가 있다. 1. 코드에서 바꿔주기! 2. Interface Builder에서 바꿔주기! 1. 코드에서 바꿔주기 코드에서 바꾸는 건 조금만 생각해보면 할 수 있는거였다! text의 여러 속성들을 바꿔 줄 때 사용하는 NSAttributedString 클래스를 활용하면 된다! ..