IOS November 18, 2019

애플로그인 구현하기 (Firebase와 Apple Sign with Apple)

Words count 14k Reading time 12 mins.

iOS13에서 Sign In With Apple 이 공개되었습니다.
Facebook, Google 등 Oauth를 이용한 간편로그인이 활성화 된 가운데 Apple이 개인정보보호라는 ...

Read article

IOS November 17, 2019

iOS13 다크모드를 지원하는 앱 개발하기 (How to support dark mode)

Words count 2.5k Reading time 2 mins.

2019년 가을, iOS13이 공개되었습니다. iOS13에는 많은 변화가 있었고 앱 개발자들은 iOS13에 대응되는 앱을 출시할 때 다크모드에 대한 설정을 해야만 했습니다. 다크모드를 On하는 순간 기존 디자인들이 펑펑 신나게 터져나갔습니다.

그래서 아마 대부분의 서비스들은 plist의 UIUserInterfaceStyle 의 값을 Light로 설정함으로써 강제로 다크모드를 사용하지 않는 방향으로 설정했을겁니다. ~항상 부족한 리소스~
But, ...

Read article

IOS November 17, 2019

wkwebview message handler memory leak(쉽게 실수하는 WKWebView 메모리 누수 수정)

Words count 4.6k Reading time 4 mins.

UIWebView가 deprecated된 이후 웹 페이지를 렌더링 하는데 선택지는 WKWebView만이 남았습니다.
WKWebView는 UIWebView보다 높은 성능을 자랑하지만, 잘못된 설계? 로 인해 쉽게 메모리 누수가 발생할 수 있습니다. 물론 잘 사용한다면 메모리 누수 없이 사용할 수 있습니다.
WKWebView를 사용하면서 쉽게 실수할 수 있는 부분을 소개하고 어떻게 해결할 수 있을지 소개합니다.

구글에 WKWebView Memory leak...

Read article

IOS October 06, 2019

[iOS] iOS개발 시 주의해야 할 http status code (클라이언트 개발자도 http를 잘 알아야한다)

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

[iOS] SQLite3 Database 스키마 버전 관리의 필요성 및 방법 소개

Words count 4.8k Reading time 4 mins.

앱에 신규 기능을 추가하다 보면 Database(SQLite3) 스키마에 변경이 필요한 경우가 생깁니다. 예를 들면, 현재 토이 프로젝트 “퇴근요정” 은 아래와 같은 테이블을 갖고 있습니다.

각 근무시간의 PK인 id, 근무 시작시간 start, 근무 종료시간 end, 이렇게 3개의 column을 갖고 있습니다.

이번 v1.7 에서는 각 근무에 대한 특이사항 및 근무지 등 사용자가 다양하게 사용할 수 있도록 하기위해 메모 기능을 추가 예정입니...

Read article

IOS February 09, 2019

[iOS] Touch Event가 View를 통해 전달되는 과정 (hitTest)

Words count 3.1k Reading time 3 mins.

앱을 개발하다보면 복잡한 View Hierachy를 만나게 됩니다. 거기에 Button, tableViewCell, CollectionViewCell 등 UserInteraction을 받는 View들이 겹치게 되면 기대와 달리 터치 이벤트를 받지 못하는 오류를 만날 수 있습니다.
이번 포스팅을 통해 iOS에서 Touch 이벤트가 Subview에게 전달되는 과정을 이해함으로써 좀 더 나은 앱을 만들 수 있었으면 합니다.

사용자 입장

당연한 이야기이지...

Read article

IOS February 08, 2019

iOS의 View, ViewController Layout Cycle

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 20, 2019

[띵킹노트] Firebase Auth <=> DB 연동에 대한 고민

Words count 269 Reading time 1 mins.

  • 100% 백앤드 없이 서비스 하나 만들기는 어려워 보인다. 아무리 Firebase 라도..
  • 현재 선택지는 2가지, Firebase Cloud Function을 이용하거나 NodeJS 하나 호스팅하거나. 갑자기 스케일이 매우 커진다.
Read article

IOS January 13, 2019

iOS앱 고도화 - Firebase Authentication 적용하기 첫번째 (이메일/비밀번호 회원가입, 로그인)

Words count 4.8k Reading time 4 mins.

이 포스트를 시작으로 지금까지 개발했던 앱에 Firebase Authentication을 적용합니다.
로그인 (인증)을 적용하는 이유는 다음과 같습니다.

  1. 유저 정보 획득 (Push Target을 디테일하게 설정, 유저 유입/이탈 확인)
  2. Sqlite3에 저장하던 정보를 Firebase Realtime DB로 마이그레이션 할 수 있음. => 위젯 개발 가능
  3. 나중에 게시판, 채팅 구현에 있어서 로그인 기반이 자리잡혀 있어야 함.
  1. Firebase...
Read article

IOS January 09, 2019

XCode Server Bot 백업 작업 (XCode Server Backup strategy)

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

[RxSwift] 3일차, RxSwift Operator

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

[RxSwift] 2일차, RxSwift에서 지원하는 Subject에 대한 이해

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

[RxSwift] 1일차, RxSwift란, Observable에 대한 이해

Words count 4.1k Reading time 4 mins.

정의 : Observable Sequense와 함수형 operator를 이용한 이벤트 기반의 비동기 프로그래밍 라이브러리.

참고) iOS SDK에서 지원하는 비동기 프로그래밍

  1. NotificationCenter
  2. Delegate Pattern
  3. GCD (Grand Central Dispatch)
  4. Closure

Observable

DataType에 대한 변하지 않는 상태값의 이벤트를 만들어 전달 할 수 있는 능력(프로토콜)

실제 RxSwift 라이브러...

Read article

IOS August 29, 2018

[iOS] In-App-Purchase 인앱구매 적용기

Words count 1.7k Reading time 2 mins.

지금까지는 AdMob을 통해 광고 수익을 소소하게 벌고 있었는데요. 이번엔 인앱구매를 통해 수익모델을 붙여보려고 합니다.
보통 주로 무료앱에서는 광고 제거 버전을 인앱구매 상품으로 판매중입니다.

저도 한번 인앱구매로 광고제거 버전을 만들어 보려고 합니다.

지금까지 Push 등 앱에 특별한 기능을 추가하기 위해서는 애플 개발자 센터에서 옵션 설정을 해왔습니다.
인앱구매도 마찬가지로 애플 개발자 센터에서 인앱구매 기능을 사용하겠다고 설정해야합니다.

... Read article

IOS August 28, 2018

[iOS] AppDelegate의 역할과 메소드

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

[Swift] iOS Widget Development. 위젯 iOS 앱 개발하기

Words count 3.2k Reading time 3 mins.

iOS11.3을 사용하고 있는 iPhone7 에서의 Widget 화면입니다. 앱 서비스 특징에 따라 위젯이 있으면 편리한 경우가 있습니다.

이번에 세번째로 52시간 근무시간 제도 시행에 맞춰 근무 시간을 체크할 수 있는 퇴근요정 앱을 배포했는데요.

다음 버전에서는 위젯도 제공하면 좋을 것 같아 공부도 할 겸 포스팅을 진행합니다.

  1. 위젯을 개발할 앱 프로젝트를 XCode에서 Open합니다.

  2. File > New > Target 을 클...

Read article

IOS July 03, 2018

iOS Swift4 환경에서 sqlite3 DB 사용하기

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 31, 2018

Firebase Cloud Messaging, Notification (Firebase를 이용한 iOS Push 전송)

Words count 3.2k Reading time 3 mins.

지난 포스팅에서는 iOS 앱의 Push Notification 기능을 추가하는 내용을 다뤘습니다.
iOS APN, Push Noticifation tutorial (Push 인증서 발급, 테스트 과정)

이제 이 기능을 실제 서비스에서 사용하기 위해 Firebase 를 사용하는 방법을 소개합니다.

pod 'Firebase/Core'
pod 'Firebase/Messaging'

Podfile에 Cloud Messaging...

Read article

IOS May 29, 2018

iOS APN, Push Noticifation tutorial (Push 인증서 발급, 테스트 과정)

Words count 6.5k Reading time 6 mins.

iOS에서 Push 기능을 사용하기 위해서 Push Certificate, 푸시 인증서가 필요합니다. 푸시 인증서를 발급받는 방법은 개발 인증서 발급과정과 비슷합니다.

Apple Developers


애플 개발자센터에 로그인합니다.

+ 버튼을 눌러줍니다.


개발용 인증서 발급페이지와 동일합니다. 빨간색으로 표시한 부분이 Push 인증서입니다.
개발용 인증서와 마찬가지로 Development(개발용)와 Production(앱스토어용) 으로 분리되어 있으...

Read article
Load more
0%