「 IOS 」
November 17, 2019
Words count
2.5k
Reading time
2 mins.
2019년 가을, iOS13이 공개되었습니다. iOS13에는 많은 변화가 있었고 앱 개발자들은 iOS13에 대응되는 앱을 출시할 때 다크모드에 대한 설정을 해야만 했습니다. 다크모드를 On하는 순간 기존 디자인들이 펑펑 신나게 터져나갔습니다.
그래서 아마 대부분의 서비스들은 plist의 UIUserInterfaceStyle
의 값을 Light
로 설정함으로써 강제로 다크모드를 사용하지 않는 방향으로 설정했을겁니다. ~항상 부족한 리소스~
But, ...
Read article
「 IOS 」
November 17, 2019
Words count
4.6k
Reading time
4 mins.
UIWebView가 deprecated된 이후 웹 페이지를 렌더링 하는데 선택지는 WKWebView만이 남았습니다.
WKWebView는 UIWebView보다 높은 성능을 자랑하지만, 잘못된 설계? 로 인해 쉽게 메모리 누수가 발생할 수 있습니다. 물론 잘 사용한다면 메모리 누수 없이 사용할 수 있습니다.
WKWebView를 사용하면서 쉽게 실수할 수 있는 부분을 소개하고 어떻게 해결할 수 있을지 소개합니다.
구글에 WKWebView Memory leak...
Read article
「 IOS 」
October 06, 2019
Words count
5.5k
Reading time
5 mins.
iOS앱을 개발하면서 서버와 통신을 통해 데이터를 가져오는 작업을 하게 됩니다. API 명세에서 response body도 중요하지만 status code도 주의 깊게 살펴봐야 합니다.
status code를 잘못 사용하면, 앱 삭제후 재설치
등 사용자 경험에 치명적인 이슈가 발생할 수 있습니다.
http에 대한 설명은 위키백과를 참고해주세요. HTTP에 대한 이해 link
http프로토콜은 위 백과의 내용을 보시면 굉장히 양이 많고 복잡함을 알 ...
Read article
「 IOS 」
March 31, 2019
Words count
4.8k
Reading time
4 mins.
앱에 신규 기능을 추가하다 보면 Database(SQLite3) 스키마에 변경이 필요한 경우가 생깁니다. 예를 들면, 현재 토이 프로젝트 “퇴근요정” 은 아래와 같은 테이블을 갖고 있습니다.
각 근무시간의 PK인 id, 근무 시작시간 start, 근무 종료시간 end, 이렇게 3개의 column을 갖고 있습니다.
이번 v1.7 에서는 각 근무에 대한 특이사항 및 근무지 등 사용자가 다양하게 사용할 수 있도록 하기위해 메모
기능을 추가 예정입니...
Read article
「 IOS 」
February 09, 2019
Words count
3.1k
Reading time
3 mins.
앱을 개발하다보면 복잡한 View Hierachy를 만나게 됩니다. 거기에 Button, tableViewCell, CollectionViewCell 등 UserInteraction을 받는 View들이 겹치게 되면 기대와 달리 터치 이벤트를 받지 못하는 오류를 만날 수 있습니다.
이번 포스팅을 통해 iOS에서 Touch 이벤트가 Subview에게 전달되는 과정을 이해함으로써 좀 더 나은 앱을 만들 수 있었으면 합니다.
사용자 입장
당연한 이야기이지...
Read article
「 IOS 」
February 08, 2019
Words count
4.3k
Reading time
4 mins.
앱개발의 40% 정도는 View를 그리고 Layout을 구성하는데 있다고 생각합니다. 어떤 앱은 Frame기반 Layout을 사용하며 또 어떤 앱은 AutoLayout기반의 Layout을 이용합니다.
iOS11과 iPhoneX의 등장으로 사실상 AutoLayout은 선택이 아닌 필수가 되었습니다.
iPhoneX시리즈의 노치디자인에 대응하기 위해서는 Frame기반보다 AutoLayout기반이 더 효율적이기 때문입니다.
하지만 현실적으로 기존 Frame...
Read article
「 띵킹노트 」
January 26, 2019
Words count
55
Reading time
1 mins.
「 띵킹노트 」
January 20, 2019
Words count
269
Reading time
1 mins.
- 100% 백앤드 없이 서비스 하나 만들기는 어려워 보인다. 아무리 Firebase 라도..
- 현재 선택지는 2가지, Firebase Cloud Function을 이용하거나 NodeJS 하나 호스팅하거나. 갑자기 스케일이 매우 커진다.
Read article
「 IOS 」
January 13, 2019
Words count
4.8k
Reading time
4 mins.
이 포스트를 시작으로 지금까지 개발했던 앱에 Firebase Authentication을 적용합니다.
로그인 (인증)을 적용하는 이유는 다음과 같습니다.
- 유저 정보 획득 (Push Target을 디테일하게 설정, 유저 유입/이탈 확인)
- Sqlite3에 저장하던 정보를 Firebase Realtime DB로 마이그레이션 할 수 있음. => 위젯 개발 가능
- 나중에 게시판, 채팅 구현에 있어서 로그인 기반이 자리잡혀 있어야 함.
- Firebase...
Read article
「 IOS 」
January 09, 2019
Words count
7.5k
Reading time
7 mins.
GET
https://{xcode server ip}:20343/api/bots : Bots 정보 백업
POST
메소드로 Bot 등록할 수 있도록 XCode Server 변형
POST
https://{xcode server ip}:20343/api/bots/noauth : 백업한 정보를 이용해 등록
이전 포스팅을 통해 XCode Server로 Bot을 만들어 쉽게 archive하고 ipa를 export 하는 과정을 자동화 했습니다.
XCode...
Read article
「 IOS 」
October 23, 2018
Words count
2.2k
Reading time
2 mins.
Operator는 Observable 객체를 구독할 때 넘어오는 event를 Filtering, Transforming, Combining 하기 위해 사용한다.
Observable을 구독할 때 event의 element를 그대로 사용할 수 없는 경우, 서비스에서 사용 가능한 객체로 변환하는 과정을 담당한다.
RxSwift에서는 구현에 필요한 다양한 개념들을 Operator로 미리 구현해 놓았으며 상황에 따라 적절한 Operator를 선택해 사용해...
Read article
「 IOS 」
October 13, 2018
Words count
5.7k
Reading time
5 mins.
Subject는 Observable과 Observer 두가지 역할을 한다. 즉, onNext() 메소드를 통해서 Event를 발생시키는 Observable의 역할과, subscribe 메소드를 통해 Event Sequence에서 Event를 구독하여 처리할 수 있는 Observer의 역할을 모두 수행할 수 있다.
RxSwift에서는 4가지 종류의 Subject를 지원한다.
- PublishSubject
- BehaviorSubject
- ReplySubject...
Read article
「 IOS 」
October 11, 2018
Words count
4.1k
Reading time
4 mins.
정의 : Observable Sequense와 함수형 operator를 이용한 이벤트 기반의 비동기 프로그래밍 라이브러리.
참고) iOS SDK에서 지원하는 비동기 프로그래밍
- NotificationCenter
- Delegate Pattern
- GCD (Grand Central Dispatch)
- Closure
Observable
DataType에 대한 변하지 않는 상태값의 이벤트를 만들어 전달 할 수 있는 능력(프로토콜)
실제 RxSwift 라이브러...
Read article
「 IOS 」
August 29, 2018
Words count
1.7k
Reading time
2 mins.
지금까지는 AdMob을 통해 광고 수익을 소소하게 벌고 있었는데요. 이번엔 인앱구매를 통해 수익모델을 붙여보려고 합니다.
보통 주로 무료앱에서는 광고 제거 버전을 인앱구매 상품으로 판매중입니다.
저도 한번 인앱구매로 광고제거 버전을 만들어 보려고 합니다.
지금까지 Push 등 앱에 특별한 기능을 추가하기 위해서는 애플 개발자 센터에서 옵션 설정을 해왔습니다.
인앱구매도 마찬가지로 애플 개발자 센터에서 인앱구매 기능을 사용하겠다고 설정해야합니다.
...
Read article
「 IOS 」
August 28, 2018
Words count
5.2k
Reading time
5 mins.
UITableViewDelegate를 구현하다 => UITableView에서 필요한 기능을 대신 구현하다
라는 느낌으로 AppDelegate는 App( Application ) 이 해야할 일을 대신 구현한다는 의미입니다.
여기에서 App이 해야할 일이란, Background 진입, Foreground 진입, 외부에서의 요청 (apns) 등을 말합니다.
@UIApplicationMain 은 뭘까요?
@UIApplicationMain
class ...
Read article
「 IOS 」
July 07, 2018
Words count
3.2k
Reading time
3 mins.
iOS11.3을 사용하고 있는 iPhone7 에서의 Widget 화면입니다. 앱 서비스 특징에 따라 위젯이 있으면 편리한 경우가 있습니다.
이번에 세번째로 52시간 근무시간 제도 시행에 맞춰 근무 시간을 체크할 수 있는 퇴근요정
앱을 배포했는데요.
다음 버전에서는 위젯도 제공하면 좋을 것 같아 공부도 할 겸 포스팅을 진행합니다.
위젯을 개발할 앱 프로젝트를 XCode에서 Open합니다.
File > New > Target 을 클...
Read article
「 IOS 」
July 03, 2018
Words count
5k
Reading time
5 mins.
Serverless한 앱을 주로 만들면 데이터를 로컬에 저장하게 되는데, 주로 UserDefault를 사용합니다. 데이터가 단순하고 양이 많지 않다면 상관없지만 CRUD 횟수가 많고 데이터 양이 많다면
Database 를 사용하는게 바람직합니다.
iOS Swift4환경에서 Sqlite3를 이용해서 데이터 CRUD를 구현하는 과정을 설명합니다.
import UIKit
import SQLite3
class WorkingTimeDBManager: NSObject...
Read article
「 IOS 」
May 29, 2018
Words count
6.5k
Reading time
6 mins.
iOS에서 Push 기능을 사용하기 위해서 Push Certificate, 푸시 인증서가 필요합니다. 푸시 인증서를 발급받는 방법은 개발 인증서 발급과정과 비슷합니다.
Apple Developers
애플 개발자센터에 로그인합니다.
+
버튼을 눌러줍니다.
개발용 인증서 발급페이지와 동일합니다. 빨간색으로 표시한 부분이 Push 인증서입니다.
개발용 인증서와 마찬가지로 Development(개발용)와 Production(앱스토어용) 으로 분리되어 있으...
Read article