Google Firebase로 레고블럭 조립하기 - IO Extended 2016
-
Upload
chiung-choi -
Category
Mobile
-
view
2.533 -
download
5
Transcript of Google Firebase로 레고블럭 조립하기 - IO Extended 2016
Google Firebase
레고블럭조립하기
로
2016.06.19
말랑스튜디오 최치웅
Speaker
최치웅
2006.03 ~ 2008.05
2008.06 ~ 2010.12
2011.01 ~ 2011.12
2012.01 ~ 2014.01
2014.02 ~ 현재
㈜ 모빌탑
㈜ 네이블커뮤니케이션즈
㈜ 말랑스튜디오
㈜ 삼성전자
㈜ 말랑스튜디오
Alarm
Social Dating
Study
Schedule
Transportation
Period Tracker
Diary
Community
말랑스튜디오는 다양한 분야의 생활 밀착형
모바일 앱 서비스를 통해 국내 및 해외 시장
을 선도하고 있습니다.
전세계 2,400만 명의 이용자를 보유한 알람 앱
알람몬을 비롯 여성 필수앱 원스,데이팅 SNS
1km, 다이어트앱 다이어터 등을 운영 중입니다.
말랑스튜디오는 여러분야에서 사용될 수 있는
앱 환경을 만들어 시너지 효과를 창출,
보다 많은 유저들이 효율적인 라이프-로그를
누릴 수 있도록 노력할 것입니다.
Mobile Time Share.
스마트폰 Life Style 필수 앱. 하루 종일 말랑 Life!
Firebase가 확장되어 Android, iOS, 모바일 웹 개발을 위한 통합 앱 플랫폼으로 거듭납니다.
Google은 개발자 여러분이 더 빠르게 앱을 개발하고, 앱의 품질을 향상하고, 사용자를 확보하여 참여시키고, 앱에서 수익을 창출하는 데 도움이
되는 새 도구들을 추가했습니다. 뿐만 아니라, 이 모든 것을 하나로 묶어 한 눈에 살펴볼 수 있는, 완전히 새로운 분석용 제품을 출시합니다.
1
2
3
사용하기 쉬운 개발도구
다양한 플랫폼 지원
통합된 개발 환경.
사용하기 쉽고 잘 문서화되어 있으며 직관적인 API는 개발자의 개발 업무를 즐겁게 해줍니다.
iOS용으로 개발하든, 웹이나 Android용으로 개발하든, 저희가 지원해 드리겠습니다.
Firebase는 하나의 SDK, 하나의 콘솔이 존재하며, 개발 가이드나 API를 참조할 때 찾아봐야할 개발자 사이트도 한 곳으로 통합되어 있습니다. 어떤 기능이든 조합해서 원하는 것을 만들고, 각 기능들 사이 데이터 흐름을 한 눈에 살펴보고, 더 많은 것들을 더 빠르게 수행할 수 있습니다.
[출처] Google Developers Korea Blog
Why Firebase
높아진 시장 기준시장 수준이 올라가면서
서비스에 필요한 개발 사이즈도 점점 증가
늘어나는 개발 기간
빠르게 변하는시장 대응의 어려움
작은 Team
스타트업 특성 상 적은 수의 팀원
FOCUS핵심에만 집중하기
핵심 기술외의 작업들은 적절한 외부 서비스를 찾아 적용하기
• Crash Reporting
• Analytics
• Deep Link, etc.
• Auth
• Notification
• Storage
• CDN
• Database, etc.
서비스 본질에 집중Firebase 도입으로 개발 기간을 단축시켜 빠르게 시장 진입 후 유저 반응 관찰
Firebase’s Features
Test Lab
Crash Reporting
Remote Config
Storage
Hosting
Authentication
Realtime Database
Cloud Messaging
Invites
Adwords
App Indexing
Notification
Dynamic Links
Admob
Analytics
DEVELOP GROW EARN
BASIC
Test Lab
Crash Reporting
Remote Config
Storage
Hosting
Authentication
Realtime Database
Cloud Messaging
Invites
Adwords
App Indexing
Notification
Dynamic Links
Admob
Analytics
DEVELOP GROW EARN
BASIC
AnalyticsFirebase의 핵심 기능 → 다른 Feature들을 위한 base역할을 함
사용자가 서비스를 사용하는 방식을 측정/분석하고 참여율을 높이기 위한 도구
BASIC
AnalyticsFirebase의 핵심 기능 → 다른 Feature들을 위한 base역할을 함
사용자가 서비스를 사용하는 방식을 측정/분석하고 참여율을 높이기 위한 도구
1
2
3
4
Free!
간단한 구현
커스텀 이벤트
예쁜 대시보드
AnalyticsFirebase의 핵심 기능 → 다른 Feature들을 위한 base역할을 함
사용자가 서비스를 사용하는 방식을 측정/분석하고 참여율을 높이기 위한 도구
• Just add the Firebase SDK to your new or existing app, and
data collection begins automatically.1
2
3
4
간단한 구현
Free!
커스텀 이벤트
예쁜 대시보드
AnalyticsFirebase의 핵심 기능 → 다른 Feature들을 위한 base역할을 함
사용자가 서비스를 사용하는 방식을 측정/분석하고 참여율을 높이기 위한 도구
• If your app needs to collect additional data, you can log up to 500
different Analytics Event types in your app. There is no limit on the
total volume of events your app logs.
1
2
3
4
간단한 구현
Free!
커스텀 이벤트
예쁜 대시보드
• Automatically collected events
first_open
in_app_purchase
user_engagement
session_start
app_update
app_remove
os_update
app_clear_data, etc.
AnalyticsFirebase의 핵심 기능 → 다른 Feature들을 위한 base역할을 함
사용자가 서비스를 사용하는 방식을 측정/분석하고 참여율을 높이기 위한 도구
+ Quick!
1
2
3
4
간단한 구현
Free!
커스텀 이벤트
예쁜 대시보드
AnalyticsFirebase의 핵심 기능 → 다른 Feature들을 위한 base역할을 함
사용자가 서비스를 사용하는 방식을 측정/분석하고 참여율을 높이기 위한 도구
GA보다는 쉬운,
여전히 복잡한
but,
ex. Custom parameters are not represented directly in your Analytics reports, but they can be used as filters in audience definitions that can be applied to every report. Custom parameters are also included in data exported to BigQuery if your app is linked to a BigQuery project.
Crash Reporting서비스 상태를 파악하고 서비스 retention에 큰 영향을 줄 수 있는
crash 발생 시 빠른 대응을 할 수 있도록 개발자들을 돕기 위한 기능
DEVELOP
Crash Reporting서비스 retention에 큰 영향을 줄 수 있는 crash
: 서비스 상태를 파악하고 crash 발생 시 빠른 대응을 할 수 있도록 개발자들을 돕기 위한 기능
1
2
3
Free!
간단한 구현
예쁜 대시보드
Crash Reporting서비스 retention에 큰 영향을 줄 수 있는 crash
: 서비스 상태를 파악하고 crash 발생 시 빠른 대응을 할 수 있도록 개발자들을 돕기 위한 기능
• (Android) Add the dependency for Crash Reporting
to your app-level build.gradle file:
compile 'com.google.firebase:firebase-crash:9.0.2'
• (iOS) Add the dependency for Firebase Crash
Reporting to your podfile:
pod 'Firebase/Crash'
1
2
3
Free!
간단한 구현
예쁜 대시보드
Crash Reporting서비스 retention에 큰 영향을 줄 수 있는 crash
: 서비스 상태를 파악하고 crash 발생 시 빠른 대응을 할 수 있도록 개발자들을 돕기 위한 기능
+ Analytics에서 자동으로 이벤트 제공
1
2
3
Free!
간단한 구현
예쁜 대시보드
Crash Reporting서비스 retention에 큰 영향을 줄 수 있는 crash
: 서비스 상태를 파악하고 crash 발생 시 빠른 대응을 할 수 있도록 개발자들을 돕기 위한 기능
1
2
3
Beta 버전
Slow
추가 기능 부족
• Known issues : Multiple processes
Report
Answer
• (Android) 무조건 Crash reporting 용으로 process를 fork함
Crash Reporting서비스 retention에 큰 영향을 줄 수 있는 crash
: 서비스 상태를 파악하고 crash 발생 시 빠른 대응을 할 수 있도록 개발자들을 돕기 위한 기능
1
2
3
Slow
추가 기능 부족
Beta 버전
Crash Reporting서비스 retention에 큰 영향을 줄 수 있는 crash
: 서비스 상태를 파악하고 crash 발생 시 빠른 대응을 할 수 있도록 개발자들을 돕기 위한 기능
cf. Closing 기능
Share 기능
Note 기능
1
2
3 추가 기능 부족
Beta 버전
Slow
Authentication사용자 인증 작업을 최소화시키고
손쉽게 유저를 관리할 수 있는 대시보드 제공
DEVELOP
Authentication사용자 인증 작업 최소화
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
인증서버 필요없음
Authentication사용자 인증 작업 최소화
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
인증서버 필요없음
mAuth = FirebaseAuth.getInstance();
AuthCredential credential = TwitterAuthProvider.getCredential(session.getAuthToken().token,session.getAuthToken().secret);
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Overridepublic void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {Log.w(TAG, "signInWithCredential", task.getException());Toast.makeText(TwitterLoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();}
}});
• Twitter Auth Example Android
Authentication사용자 인증 작업 최소화
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
인증서버 필요없음
• Twitter Auth Example iOS
FIRAuthCredential *credential =[FIRTwitterAuthProvider credentialWithToken:session.authToken
secret:session.authTokenSecret];
[[FIRAuth auth] signInWithCredential:credentialcompletion:^(FIRUser *user, NSError *error) {// ...
}];
Authentication사용자 인증 작업 최소화
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
인증서버 필요없음
Authentication사용자 인증 작업 최소화
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
인증서버 필요없음
1
2
한정적 템플릿
타 Provider 구현 어려움
Authentication사용자 인증 작업 최소화
1
2
한정적 템플릿
타 Provider 구현 어려움
Authentication사용자 인증 작업 최소화
Email facebook google
twitter github anomynous
지원되지 않는 Login Provider의
경우 구현하기 까다로움
Dynamic Links유저가 사용하고 있는 플랫폼, 상황에 따라 사용자 경험을 달리하여
서비스에 대한 만족도를 극대화 할 수 있도록 돕기 위한 기능
GROW
Dynamic Links유저가 사용하고 있는 플랫폼, 상황에 따라 사용자 경험을 달리하여
서비스에 대한 만족도를 극대화 할 수 있도록 돕기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
Analytics 연계분석
Dynamic Links유저가 사용하고 있는 플랫폼, 상황에 따라 사용자 경험을 달리하여
서비스에 대한 만족도를 극대화 할 수 있도록 돕기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
Analytics 연계분석
• (Android) Firebase to your Android project. Add the dependency
for Firebase Dynamic Links to your app-level build.gradle file:
compile 'com.google.firebase:firebase-invites:9.0.2'
• (iOS) Add Firebase to your iOS project. Include the following
pod in your Podfile:
pod 'Firebase/DynamicLinks'
Dynamic Links유저가 사용하고 있는 플랫폼, 상황에 따라 사용자 경험을 달리하여
서비스에 대한 만족도를 극대화 할 수 있도록 돕기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
Analytics 연계분석
Dynamic Links유저가 사용하고 있는 플랫폼, 상황에 따라 사용자 경험을 달리하여
서비스에 대한 만족도를 극대화 할 수 있도록 돕기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
Analytics 연계분석
Dynamic Links유저가 사용하고 있는 플랫폼, 상황에 따라 사용자 경험을 달리하여
서비스에 대한 만족도를 극대화 할 수 있도록 돕기 위한 기능
1
2
Shorten URL
Meta tag 수정 불가능
• Shorten URL 생성 가능한 API 제공 안함
• 기존 google URL shortener API 사용 시
iOS에서 동작이 원활하지 않음
Dynamic Links유저가 사용하고 있는 플랫폼, 상황에 따라 사용자 경험을 달리하여
서비스에 대한 만족도를 극대화 할 수 있도록 돕기 위한 기능
Meta tag 수정 불가능1
2
Shorten URL
Meta tag 수정 불가능
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해
서비스 retention를 강화시키기 위한 기능
GROW
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
자체 서버 필요 (X)
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
자체 서버 필요 (X)
• (Android) Add one line of code to add the FCM dependency to
your app.
dependencies {compile ‘com.google.firebase:firebase-messaging:9.0.2’
}
• (iOS) Upload your APNs certificate to Firebase, and in the
podfile for your app, add the following line
pod 'Firebase/Messaging'
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
자체 서버 필요 (X)
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
1
2
3
4
Free!
간단한 구현
예쁜 대시보드
자체 서버 필요 (X)
자체 서버 필요 없음(X) -> 푸시 운영 툴 제공
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
5
6
Analytics 연계분석
로컬 타임존 지원
• Analytics와 연계되는 Segment 지원
• 기본 통계를 Analytics를 통해 충실히 지원
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
• 전환 통계 역시 손쉽게 사용 가능
5
6
Analytics 연계분석
로컬 타임존 지원
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
• Flexible message scheduling
5
6
Analytics 연계분석
로컬 타임존 지원
: Deliver notifications (up to 2kb) immediately,
or at a future time in the client's local time
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
1
2
이미지 푸시 (X)
테스트 디바이스설정 불가능
cf. <OneSignal>
Notification사용자에게 적시에 적절한 내용의 메시지를 전송해 서비스 retention를 강화시키기 위한 기능
1
2
이미지 푸시 (X)
테스트 디바이스설정 불가능
Firebase
cf. Tapjoy
Why Firebase
Integrated
Firebase Analytics 를 중심으로
많은 feature들이 유기적으로 연동
매우 유연하고 강력한
서비스 운영환경 구축이 가능
데이터 수집/분석운영
개선
Conclusion
레고블럭을 만드는 사람개발/운영 절차를 간소화 할 수 있는
서비스를 제공
최근 트렌드
모든 사람들이 레고블럭을
굳이 만들 필요가 없어짐
레고블럭을 조립하는 회사
End User가 겪고 있는 문제를 해결하고가치를 창출하는데 집중
레고블럭을 조립하는 사람이 모여 있는 회사최대한 범용성 있고 좋은 레고 블록을 빠르게 모으고 조립해서
좋은 제품을 출시하여 사용자에게 다가가는 것이 목표
안해도 되는 일은 굳이 하지 맙시다
Q&A