Google I/O 에서 Firebase 에 대한 발표 후 Firebase에 대한 언급이 많아지고 있네요.
테스트를 해보니 채팅을 구현하기 정말 쉬울 것 같아서 한번 만들어 보겠습니다.
채팅 구현에 여러가지 기능을 넣을 수 있겠지만 텍스트 대화와 푸시없이 구현하도록 하겠습니다.
사용하는 Firebase의 기능은 Realtime database, Authentication 입니다.
Firebase 프로젝트 설정
https://console.firebase.google.com 접속
`새로만들기` 클릭
프로젝트 `이름`과 `국가/지역` 선택
iOS 앱에 Firebase 추가
`iOS 번들 ID` 입력 (실제 iOS bundle id 와 같아야 합니다.)
`앱 추가` 버튼을 클릭하면 `GoogleService-info.plist` 파일을 다운로드 받게 됩니다. 나중에 xcode(appcode) project 생성 후에 추가해야 하니 보관해두세요.
이후 나오는 `계속`, `완료` 버튼을 눌러 `iOS 앱에 Firebase 추가` 과정을 끝냅니다.
앱이 추가되었습니다.
회원 인증 설정
어떤 채팅이든 유저를 구분할 수 있는 로그인이 필요하죠.
Firebase에서는 Auth를 이용해 쉽게 회원기능(회원가입/ 로그인)을 구현할 수 있습니다.
Authentication (https://firebase.google.com/docs/auth/)
Authentication 에서는 이메일 인증부터 구글, 페이스북등 다양한 소셜 로그인 기능과 익명 기능이 제공됩니다.
우리 프로젝트는 익명 채팅으로 구현할거에요.
Anonymous Authentication (https://firebase.google.com/docs/auth/ios/anonymous-auth)
콘솔 메뉴에서 Auth 를 선택합니다.
로그인 방법 설정을 클릭합니다.
- Anonymous 선택
- 사용 설정 켜기
- 저장
사용 설정 완료~!!!
Firebase에서 프로젝트 설정은 끝났습니다.
iOS 프로젝트 설정
Xcode의 프로젝트 생성은 많이 해보셨을테니 저는 Appcode로 하겠습니다. ㅋ
(사용하는 Appcode의 버전은 2016.2 EAP 입니다.)
앱코드(Appcode) 실행
New project
iOS > Application > Single View Application 선택 후 Next
`Product Name`, `Organization Name`, `Organization Identifier` 입력
언어는 Objective-C, Swift 둘중 편한걸 선택하세요. 저는 Swift입니다
설정이 끝났다면 Finish
Appcode는 cocoapods이 통합되어 있어서 IDE안에서 cocoapods을 사용 가능합니다.
cocoapods podfile 생성
podfile 작성 후 pod install (cocoapods 에서 확인하세요)
platform :ios, '9.0' use_frameworks! target 'Shouting' do pod 'Firebase/Auth' pod 'Firebase/Database' end
AppDelegate.swift
import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. FIRApp.configure() return true } }
Firebase console 에서 받은 GoogleService-Info.plist 를 Shouting 프로젝트에 추가합니다.
빌드하고 실행하면 오류 없이 정상 실행됩니다.
다음은 iOS 앱에서 채팅을 구현해 볼까요?
'Programming' 카테고리의 다른 글
[Perfect] Dependency 추가 (2) | 2016.10.18 |
---|---|
[Perfect] 프로젝트 생성하기 (1) | 2016.10.15 |
SpringBoot 시작하기 (0) | 2014.09.12 |
Install Lightblue (0) | 2014.09.11 |
Vert.x route test (0) | 2014.04.23 |