[ios] App Programming Guide for iOS - Introduction,Expected App Behaviors Xcode로부터 생성된 모든 프로젝트는 생성 그 즉시 시뮬레이터나 디바이스에서 실행이 가능합니다. 하지만 이렇게 단순히 실행이 된다는 이유 하나만으론 앱 스토에 배포될 준비가 되었다 할 수 없습니다. 모든 앱은 사용자에게 좋은 사용 경험을 보장할만한 어느 정도 수준의 customization이 필요합니다. 이러한 customization의 범위는 앱의 아이콘부터 앱의 설계 수준까지 다양합니다. 이번 챕터에선 모든 앱에서 처리해야하는 동작과 계획 과정 초기에 고려해야할 것들에 대해 설명합니다. 훌륭한 사용자 경험 전달을 보장하기 위해서 앱은 iOS와 함께 동작해야 합니다. 훌..
[ios] Xcode에서 Unit Test를 해보다 안녕하세요. 오늘은 프로그래밍 공부를 시작하면서 처음으로 테스팅이라는 것을 해본 경험을 기록해보고자 이렇게 글을 작성하게 되었습니다. 사실 TDD, 유닛 테스트 등 여러 테스팅에 관련된 이야기를 들어만 봤을 뿐 이것을 해볼 시도도 하지 않았고 그렇게 중요하게 생각도 하지 않았습니다. 하지만 Let us: Go! 2018 밋업에서도 주제로 언급이 되었었고 연사분께서 하신 말씀 중 새로운 것을 두려워하고, 낯선 것을 두려워하기 때문에 TDD를 팀에 도입하기 힘들다는 말씀에 저 스스로 너무나 부끄러웠습니다. 하지만 다행히 저또한 해볼 수 있는 기회가 생겨서 굉장히 초보적이고 거창한 테스팅 코드는 아니지만 이를 통해 나름 뿌듯한 경험을 하게 되어 이렇게 글까지..
[ios] UIViewController LifeCycle - 추가 안녕하세요. 오늘은 다시 기본으로 돌아가 개념을 확실히 다잡기 위해 이전에 다루었 UIViewController LifeCycle 글에 내용을 조금 더 추가해보았습니다. 기존의 글에서는 단순히 UIViewController의 Life Cycle 관련 메소드들을 소개하는 수준이었습니다. 오늘은 UINavigationController 위에서 UIViewController들을 호출해가며 실제로 서로 다른 UIViewController들의 메소드들이 어떠한 순서로 호출되는지 살펴보도록 하겠습니다. 먼저 UINavigationController는 루트 뷰 컨트롤러를 하나 갖고 있습니다. UINavigationController에서 뷰 컨트롤러들..
Handling UIKit Gestures Gesture recognizer를 사용하는 것은 뷰에서 발생하는 Touch나 Press 이벤트를 다룰수 있는 가장 간단한 방법입니다. 어떤 뷰든간에 한 개 혹은 복수 개의 Gesture에 대한 recognizer를 붙일 수 있습니다. Gesture recognizer는 뷰 위에서 발생하는 일련의 패턴이 존재하는 이벤트들 ( Double-Tap, Swipe, Pinch 등등 )을 처리하기 위해 Target-Action 패턴을 사용하고 이벤트가 발생하면 Target 객체에 이러한 사실을 전달하여 해당 이벤트를 처리할 수 있는 액션 메소드를 호출합니다. Gesture Recognizer에는 두 종류가 있습니다. 불연속 gesture recognizer 이벤트를 인식..
[ios] Responder Chain and Touch Event Overview 앱은 응답자 객체를 이용해 이벤트를 받고 처리합니다. 응답자 객체는 UIResponder 클래스의 객체로 서브클래스로는 UIView, UIViewController, UIApplication 등이 있습니다. 응답자 객체는 이벤트 데이터를 받고 반드시 이를 직접 처리하거나 다른 응답자 객체에게 전달해야 합니다. 이벤트가 발생하게 되면 앱은 해당 이벤트를 처리할 수 있는 가장 적절한 응답자 객체에게 이벤트 데이터를 전달하고 이를 first responder라 합니다. first responder가 이벤트를 반드시 처리하라는 법은 없죠! 이렇게 처리되지 않은 이벤트들은 first responder로부터 시작하는 Repsonde..
[ios] Hit Testing in iOS 안녕하세요. 오늘은 iOS에서 Event Handling에 대해 공부하면서 알게 된 내용을 정리해보려 합니다. 이전 포스팅에서는 UIControl에 대해 알아보았습니다. 오늘은 Hit Testing에 대해 기록해보도록 하겠습니다. Hit Testing 기본적으로 아이폰 화면상에서 터치가 일어나면 iOS에서는 해당 터치 이벤트를 적절히 처리해주어야 합니다. 이렇게 사용자로부터 특정 액션이 들어왔을 때 이를 처리해주는 녀석과 어떻게 처리해주는 방법을 지정해주는 것이 UIControl의 역할이었습니다. Hit Testing은 간단히 설명하자면 터치 이벤트가 발생한 뷰를 찾는 행위입니다. 조금 더 설명을 덧붙이자면 터치 이벤트가 발생한 최상단 뷰를 찾는 행위입니다. ..
[ios] 제네릭을 이용해 코드 중복 제거하기 안녕하세요. 오늘은 제네릭을 이용해 코드의 중복을 제거해보았는데요. 제네릭이라는 문법은 자바를 공부할 때부터 익히 들어왔고 그 용도가 무엇인지 알고있었습니다. 하지만 예제가 아닌 실제 프로젝트에 적용시켜본 것은 이번이 처음이라 추후에 보다 적극적으로 활용할 수 있기위해 이렇게 글을 작성하게 되었습니다. 이번 포스팅은 제네릭에 대한 기본적인 지식이 요구됩니다. 제네릭에 대한 기본 문법과 내용은 추후에 따로 작성해보도록 하겠습니다. 프로젝트에서는 생각보다 많은 코드 중복을 겪게 됩니다. 메소드 단위로 묶어 코드의 중복을 피하기도 하지만 메소드로 묶는 것에도 한계가 존재합니다. 저는 그런 경우를 네트워크 통신을 할 때 많이 겪었습니다. 저의 프로젝트를 예로 들어 ..
[ios] Key-Value Observing in Swift4 오늘은 Key-Value Observing, KVO에 대해 간단히 알아보도록 하겠습니다. Swift4로 넘어오면서 KVO의 방식에도 변화가 있었습니다. Swift4 이전에는 Observer와 Action 메소드를 따로 각각 별개로 정의해주었어야 했는데 Swift4의 observe(_:options:changeHandler) 메소드의 등장으로 Observer와 Action을 동시에 정의해줄 수 있게 되었습니다. 또한 기존의 KeyPath를 문자열로 입력하던 것과 다르게 프로퍼티로 접근이 가능해졌습니다. 사실 이외에도 context를 사용하지 않는 점 등 여러 변화가 있으나 제가 느끼기에 가장 큰 변화는 바로 가독성입니다. 이전의 KVO 방식은..
- Total
- Today
- Yesterday
- Xcode
- 스위프트
- notificationcenter
- UIControl
- Algorithm
- TableView
- Codable
- nodejs
- 운영체제
- iPhone
- 클로저
- 아이폰
- UIResponder
- boostcourse
- 오토레이아웃
- auto layout
- storyboard
- edwith
- Operating System
- 프로토콜
- Protocol
- Swift
- 백준
- 부스트코스
- 테이블뷰
- IOS
- segue
- 알고리즘
- CRUD
- oauth2.0
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |