[h3 2012] 클라우드기반 앱 만들기 - baas.io sdk 활용
DESCRIPTION
H3 2012 발표자료 클라우드기반 앱 만들기 - baas.io SDK 활용 -KTH 최숭TRANSCRIPT
클라우드 기반 App 만들기 baas.io SDK 활용
개발실 I 기술전략팀 I
최 숭 ( twitter : @chsoong )
Review
든든한 backend App 02
H3 App 개발 노트 03
Index
2
01
마무리 04
Review : Mobile App 은… 0
공통된 기능은 표준 방법으로 사용하고 그 다음 App 개발할 때도…
Review
3
Server 개발 산출물 공유하기
작게 만들고 작게 유지 하자!
Review : Cloud , NoSQL, GA, DevOps 1
Dynamic Flexible Expandable Scalable Predictable Stable
Review
사진은 본문 내용과 관계 없습니다.
4
든든한 Backend App 02
5분 안에 나만의 backend가…
5
Backend와 눈(目) 맞은 App
내 앱은 클라우드 기반!
Scenario 1 / 2
바스아이오 시작하기
5분안에 시작하기
6
https://baas.io
baas.io Quick Start
이메일 회원가입
7
baas.io Quick Start
새 앱 생성
8
baas.io Quick Start
SDK 다운로드
9
baas.io Quick Start
baas.io 사용하기
10
baas.io Quick Start
baas.io 사용하기
11
sandbox soulbus
Application Info
baas.io 사용하기
12
baas.io SDK 초기화
User ID 1
2 APP NAME
3 END POINT
- http://api.baas.io
baas .io SDK 초기화
13
Android SDK Initialize
baas .io SDK 초기화
14
baasio.getInstance().init(
this,
);
"https://api.baas.io", // end point
“baas.user", // 회원 ID
“soulBus” // 앱 이름
baas.io 는 …
baas .io 개념도
15
https://api.baas.io/<user_id>/<app_name>
App 전용 공간을 관리해주고..
Entity를 만들기만 하면 (POST)
> GET < > DELETE < > PUT <
REST API based baas.io
모든 데이터를 REST 기반
16
API / SDK 로 서비스 가능합니다.
Building App with baas.io Scenario 1
17
Hello World Bus with baas.io
경성버스 앱
서울 시내 버스 노선도 DB 1
Stand Alone 형 2
18
Hello Bus with baas.io
경성버스 앱 2nd Edition
신규 버스노선 DB Download 1
DB Version 관리 2
19
baas.io - Collection
20
dbversion
Collection 생성
baas.io - Collection
21
{“seoul” : “1031.db“ }
seoul : 1031.db
엔티티 추가
baas.io - Collection
22
DB생성 / API 구성완료
Hello Bus with baas.io
경성버스 앱 2nd Ed.
컬렉션에서 버전 정보 읽기 1
바뀐 버전 다운로드 2
> SDK <
queryEntitiesRequestAsync(“dbversion”);
getFileAsync(“/sdcard”,“1031.busdb”);
23
Hello Bus App - File
FILE
Upload / Download – 1 API call
24
Network Traffic Fee for All Free
> SDK <
getFileAsync(“/sdcard”,“1031.busdb”);
Collection
Key / Value Store
Query
JSON format
25
Hello Bus App – Collection
> SDK <
queryEntitiesRequestAsync(“dbversion”);
Building App with baas.io Scenario 2
26
QUIZ~~~
Building App with baas.io Scenario 3
27
H3 App
H3 2012 App
H3 App
회원 가입 1
회원 로그인 2
28
3 공지사항 수신
H3 App
회원 가입
회원 가입 (페이스북)
https://<YAEP>/users
SDK:
AuthUtils.signup(“name”, “fullname”, “email”, “password”);
29
H3 2012 App - User
User - facebook
facebook 개발자 페이지
OAuth 2.0
https://<YAEP>/auth/facebook?fb_access_token=<fb_access_token>
SDK:
AuthUtils.signupViaFacebook(“fb_token”);
30
H3 2012 App – User (facebook)
User - facebook
https://developers.facebook.com/apps/
Android App용
iOS App용
31
H3 2012 App – User (facebook)
Login
Log-in
Facebook Log-in
baas.io 는 access token 으로 권한 관리 지원
https://<YAEP>/auth?username=<uid>&password=<pwd>
32
https://<YAEP>/auth/facebook?fb_access_token=<fb_access_token>
H3 2012 App – Login
Role / Permission
Guest Role ( logout 상태 )
33
H3 2012 App – Role
Default Role ( login 상태 )
Role / Permission (GUEST)
34
H3 2012 App – Role
Push – 공지사항 수신
Map<String, Object> properties = new HashMap<String, Object>();
new ApiResponseCallback() {
public void onException(Exception e) { }
public void onResponse(ApiResponse response) {
GCMRegistrar.setRegisteredOnServer(getActivity(), true);
} });
35
properties.put("token", regId);
baasio.getInstance().registerDeviceForPushAsync(
properties,
H3 2012 App – Push
Push 인증서 관리
36
H3 2012 App – Push
Push 메시지 전송 예약발송 or 즉시발송
전체 or 특정 사용자
iOS or Android or All
37
H3 2012 App – Push
baas.io - Bonus
baas.io 모바일 고객센터
https://<MAEP>/help
- 2층 중회의실 13:00 ~
38
baas.io - Bonus
Location Service
- geofencing
- geocoding / R-geocoding
- 주변검색
39
baas.io SDK supports …
baas.io SDK
is based on REST API
40
H3 app 개발 노트 03
41
H3 app 탄생비화
H3app 은 이렇게 태어났습니다.
올해 사전등록은 앱으로 받으면 어떨까?
42
H3 app 은 ..
이 화면 오기까지 ….
H3 app 은 ..
H3app 개발 첫째주 공지 사항
회원 가입
로그인
인기투표
사전등록
H3 app : https://api.baas.io/h3conf/h3app
/registration
/vote
/users
/notice
/auth
44
H3 app 은 ..
H3app 개발 둘째주
공지 사항
회원 가입
로그인
인기투표
사전등록
H3 app : https://api.baas.io/h3conf/h3app
POST https://MAEP/registration
PUT https://MAEP/vote/<uuid>
POST https://MAEP/users
GET https://MAEP/notice
GET https://MAEP/auth
45
H3 app 은 ..
H3app - 공지사항
GET https://MAEP/notice
46
H3 app 은 ..
H3app - 인기투표
47
PUT https://MAEP/vote/<uuid>
H3 app 은 ..
H3app - 사전등록
48
POST https://MAEP/registration
H3 app 은 ..
으으 앱 속도가 느리다 !!!
49
H3 app 은 ..
H3app – H3 info
{
"uuid": "327003b6-086f-11e2-ab9e-020045a50031",
"created": 1348728445513, "modified": 1351300623928,
"NOTICE_UPDATED_AT": "2012-10-23T10:53+09:00",
"TRACK_ENABLED": "true",
"TRACK_UPDATED_AT": "2012-10-27T10:16+09:00",
"VOTE_LIMIT_COUNT": "7“
}
50
GET https://MAEP/h3info
H3 app 은 ..
H3app – Lessons Learned
단말내의 캐시 처리용 DB 구성 ( 3G 느려요 ~~ )
51
컬랙션 설계시 누락/추가/보완은 단순하게 반복 ( 작게작게 )
최근 업데이트 날짜 확인후 업데이트 결정 (h3info)
서버 개발자 업무중 상당 부분을 내가 직접 가능.
( This is 4 U : - baas.io 개발팀 )
마무리 04 이것만은 꼭
baas.io 는 여러분에게
52
Ending
내가 할 일은?
Closed Beta 계정이 있다면 열공 !
OAuth/REST 관련 기본개념 익히기
Hands on Lab Ready for U !
53
Ending
baas.io 는 여러분에게
개발자 채널(H3,개발자 블로그) 을 통한
다양한 의견 수렴과 기술공유 제공
54
Backend 는 물론 앱스플랜트 등의 인프라를
지원하는 baas.io 가 되겠습니다.
앱 개발자는 물론 앱 사용자까지 배려하는
“모바일 고객센터”를 내장한 최초의 BaaS.