[ios] App Programming Guide for iOS - Introduction,Expected App Behaviors Xcode로부터 생성된 모든 프로젝트는 생성 그 즉시 시뮬레이터나 디바이스에서 실행이 가능합니다. 하지만 이렇게 단순히 실행이 된다는 이유 하나만으론 앱 스토에 배포될 준비가 되었다 할 수 없습니다. 모든 앱은 사용자에게 좋은 사용 경험을 보장할만한 어느 정도 수준의 customization이 필요합니다. 이러한 customization의 범위는 앱의 아이콘부터 앱의 설계 수준까지 다양합니다. 이번 챕터에선 모든 앱에서 처리해야하는 동작과 계획 과정 초기에 고려해야할 것들에 대해 설명합니다. 훌륭한 사용자 경험 전달을 보장하기 위해서 앱은 iOS와 함께 동작해야 합니다. 훌..
[Swift] Swift에서 정규표현식 사용하기 저는 지금까지 텍스트 필드 위에 입력되는 사용자의 입력이나 텍스트 덩어리에서 원하는 패턴의 값을 뽑아내거나 검증을 할 때 항상 모든 경우에 대해 if-else 와 같은 조건문을 이용하였습니다. 하지만 이렇게 조건문으로 모든 것을 해결하려하니 코드의 가독성, 효율성이 떨어질 뿐만 아니라 시간도 꽤나 소모되는 경우가 허다했습니다. 그러던 와중 매번 나랑은 관계없다고 생각한 정규표현식을 사용하고 느낀 편리함을 기록해보고자 이렇게 글을 작성하게 되었습니다. 그럼 바로 시작해보도록 하겠습니다. NSRegularExpression 먼저 Swift에서 정규표현식을 사용하여 패턴을 검증하기 위해선 NSRegularExpression을 사용해야 합니다. 앞에 NS-가 붙어..
[ios] Xcode에서 Unit Test를 해보다 안녕하세요. 오늘은 프로그래밍 공부를 시작하면서 처음으로 테스팅이라는 것을 해본 경험을 기록해보고자 이렇게 글을 작성하게 되었습니다. 사실 TDD, 유닛 테스트 등 여러 테스팅에 관련된 이야기를 들어만 봤을 뿐 이것을 해볼 시도도 하지 않았고 그렇게 중요하게 생각도 하지 않았습니다. 하지만 Let us: Go! 2018 밋업에서도 주제로 언급이 되었었고 연사분께서 하신 말씀 중 새로운 것을 두려워하고, 낯선 것을 두려워하기 때문에 TDD를 팀에 도입하기 힘들다는 말씀에 저 스스로 너무나 부끄러웠습니다. 하지만 다행히 저또한 해볼 수 있는 기회가 생겨서 굉장히 초보적이고 거창한 테스팅 코드는 아니지만 이를 통해 나름 뿌듯한 경험을 하게 되어 이렇게 글까지..
[iOS Boostcourse] 동시성과 병렬성 그리고 비동기 프로그래밍 이전에 운영체제 과목을 수강하면서 공부했던 내용입니다. 당시에도 굉장히 비중있게 공부했던 부분이라 이번 부스트코스를 통해 다시 공부를 하게 되어 이를 간단하게 요약하고 정리해보는 시간을 갖게 되었습니다. iOS에서 동시성 프로그래밍에 대해 살펴보기 전 먼저 알아야할 개념들부터 정리해보도록 하겠습니다. 프로세스 하나의 프로그램이 메모리 상에서 실행되는 작업 단위입니다. 스레드 하나의 프로세스 내에서 실행되는 작업흐름의 단위로 프로세스가 시작하는 동시에 동작하는 스레드를 메인 스레드라하고 이외의 추가로 생성되는 스레드를 서브 스레드라 부릅니다. 보통 하나의 프로세스는 하나의 스레드를 갖지만 둘 이상의 스레드를 동시에 실행할 수도 있고 ..
[Swift] 프로토콜과 제네릭 그리고 열거형 Swift를 활용한 프로그램 설계 규칙에 있어서 메소드 인터페이스가 동일하면 프로토콜을 활용하고 로직은 동일하나 타입만 다르다면 제네릭을 활용하는 것이 좋은 설계 규칙 중 하나로 뽑힙니다. 오늘은 프로토콜(Protocol)과 제네릭(Generics)을 같이 사용해보고 이를 통해 배운점을 기록해보고자 합니다. 다음은 프로토콜에 관해 제가 작성한 포스팅들입니다. Protocol [1] Protocol [2] 다음은 제네릭을 사용해 iOS에서 코드를 줄여본 경험을 작성한 포스팅입니다. [ios] 제네릭을 이용해 코드 중복 제거하기 프로토콜과 제너릭에 대한 기본적인 지식이 필요로 하는 포스팅입니다. 프로토콜(Protocol) 과 제네릭(Generics) 인터페이스가..
[ios] UIViewController LifeCycle - 추가 안녕하세요. 오늘은 다시 기본으로 돌아가 개념을 확실히 다잡기 위해 이전에 다루었 UIViewController LifeCycle 글에 내용을 조금 더 추가해보았습니다. 기존의 글에서는 단순히 UIViewController의 Life Cycle 관련 메소드들을 소개하는 수준이었습니다. 오늘은 UINavigationController 위에서 UIViewController들을 호출해가며 실제로 서로 다른 UIViewController들의 메소드들이 어떠한 순서로 호출되는지 살펴보도록 하겠습니다. 먼저 UINavigationController는 루트 뷰 컨트롤러를 하나 갖고 있습니다. UINavigationController에서 뷰 컨트롤러들..
[Swift] Functor and Monad in Swift Swift의 Monad를 소개하기 위해 작성된 포스팅으로 Monad를 단독으로 다루는 것보다 Functor와 함께 이야기하는 것이 이해에 도움이 된다고 생각하여 Functor와 Monad를 이해하기 위한 몇몇 개념과 함께 이들을 알아보도록 하겠습니다. Context 컨텍스트(Context)와 컨텐트(Content)의 관계는 다음과 같습니다.컨텍스트는 컨텐트를 담고있는 형태로 옵셔널(Optional)을 예로 들면 Optional(2)에서 Optional은 컨텍스트가 2 는 컨텐트가 됩니다. 만일 옵셔널안에 값이 존재하지 않는다면 컨텍스트만 존재하는 꼴이 되겠죠. 이렇게 컨텍스트는 무언가를 담고있는 것을 의미합니다. 이렇게 무엇을 담고있다는 의미..
Handling UIKit Gestures Gesture recognizer를 사용하는 것은 뷰에서 발생하는 Touch나 Press 이벤트를 다룰수 있는 가장 간단한 방법입니다. 어떤 뷰든간에 한 개 혹은 복수 개의 Gesture에 대한 recognizer를 붙일 수 있습니다. Gesture recognizer는 뷰 위에서 발생하는 일련의 패턴이 존재하는 이벤트들 ( Double-Tap, Swipe, Pinch 등등 )을 처리하기 위해 Target-Action 패턴을 사용하고 이벤트가 발생하면 Target 객체에 이러한 사실을 전달하여 해당 이벤트를 처리할 수 있는 액션 메소드를 호출합니다. Gesture Recognizer에는 두 종류가 있습니다. 불연속 gesture recognizer 이벤트를 인식..
- Total
- Today
- Yesterday
- 클로저
- Operating System
- notificationcenter
- 스위프트
- Protocol
- iPhone
- segue
- 아이폰
- 프로토콜
- CRUD
- IOS
- UIResponder
- nodejs
- Xcode
- edwith
- auto layout
- boostcourse
- 백준
- oauth2.0
- 부스트코스
- 운영체제
- 테이블뷰
- 알고리즘
- Swift
- 오토레이아웃
- Codable
- storyboard
- TableView
- UIControl
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |