5. baas.io 서비스 Baasio 서비스
클라우드 서버에서 앱 서비스를 위한 공간을 제공하고 여러 기
능을 이용할 수 있는 Open API 를 준비해준다 .
개발자는 RestFull 기반의 Open API 를 호출하기만 하면
서버 공간에 자신만의 백엔드 서비스를 손쉽게 구축할 수 있다
.
https://api.baas.io/<user_id>/<app_name>
5
6. 백엔드 서비스 Baasio 서비스
모바일 앱 개발자의 서버측 기능을 제공 , 백엔드 기능 .
- 사용자 관리
- 파일 업 / 다운로드
- 위치 기반 로그
- Push 메시지 송 / 수신
- 고객센터 등의 기능
6
7. 2. baas.io 이용
01.baas.io 서비스 가입
02. My Page
03. 백엔드 앱 목록
04. 백엔드 앱 추가
7
8. baas.io 서비스 가입 baas.io 이용
앱을 개발하기 전에 baas.io 에서 가입 후 개발에 필요한
SDK 를 다운받으셔야 합니다 . MyPage 에서 앱을 위한
Data 저장소와 초기 데이터를 저장할 수 있습니다 .
8
9. My Page baas.io 이용
백엔드 앱을 관리하고 상태를 살펴 볼 수 있다 .
9
10. 백엔드 앱 목록 baas.io 이용
백엔드 앱 목록에 두 가지 샘플 앱이 있다 .
- SandBox
- HelloWorld
10
11. 백엔드 앱 추가 baas.io 이용
백엔드 앱 목록에 두 가지 샘플 앱이 있다 .
11
12. 3. baas.io SDK 이용
01. baas.io Android SDK
02. SDK 다운로드와 설치
12
14. baas.io Android SDK baas.io SDK
baas.io Android client SDK 는 다음과 같이 구성되어 있다
.
•Sample Project
•https://github.com/baasio/baas.io-sample-android
•StartUp Project
•https://github.com/baasio/baas.io-startup-android
•SDK Project
•https://github.com/baasio/baas.io-sdk-android
•Help Center UI Library Project & Sample
•https://github.com/baasio/baas.io-helpcenter-android
14
15. baas.io Android SDK baas.io SDK
baas.io Client SDK for Android 는 Android OS 2.2 이상 ,
4.2.x 이하를 지원합니다 . baasio 라이브러리는
1) 주 라이브러리 baasio 용 API 라이브러리 프로젝트
2) 다양한 외부 라이브러리로 구성되어 함께 사용하고 있
습니다 .
•gcm.jar
•spring-android-core-1.0.0.RELEASE.jar
•spring-android-rest-template-1.0.0.RELEASE.jar
•jackson-core-asl-1.9.1.jar
•jackson-mapper-asl-1.9.1.jar
•slf4j-android-1.6.1-RC1.jar
15
18. Git 플러그인 설치 baas.io SDK
baasio SDK 는 git 으로 제공됩니다 . 이용하기 위해서는
eclipse 에서 egit 혹은 jgit 플러그인이 설치되어 있어
야 합니다 .
Eclipse Plugin 설치
1) Eclipse Marketplace 에서 git 으로 검색후 egit 설
치
2) Software update site 에서 설치
여기서는 Help menu -> Install New Software 로 설치 진
행.
18
20. Git view 추가
이클립스 퍼스펙티브에 Git Repositories view 를 추가한
다.
- Windows menu -> Show View -> Other ...
20
21. SDK git 주소 baas.io SDK
baasio SDK form anroid 의 라이브러리는 아래 github 에서
체크아웃 할 수 있다 .
https://github.com/baasio/baas.io-sdk-android 에서
git 주소를 복사한다 .
21
22. baasio git 주소 baas.io SDK
git repositories view 에서 Clone a Git repository 를 선택하
면 복사한 git 주소가 입력된다 .
22
23. import library project baas.io SDK
다운받은 소스는 로컬 git 저장소에 위치하는데 , 여기에는
Baasio 안드로이드 프로젝트가 구성되어 있다 .
이클립스에서 import 해온다 .
* 단 , library project 이니
copy 하지 않는다 .
23
27. 백엔드 목록 사용 sandbox
백엔드 앱 목록에는 사용중인 baasio 앱을 볼 수 있다 .
그리고 새로운 앱을 생성할 수 있다 .
여기서는 샘플 앱인 sandbox 를 사용해서 샘플을 이용해
보겠다 .
27
28. sandbox 앱 상세 정보 sandbox
앱의 기본정보와 데이터브라우저 , 콘솔 , 푸시 관리등 제
공.
baas.io ID 와
Application ID 를 사
용하게 된다 .
28
29. 백엔드 설정 항목 sandbox
앱 이름과 아이콘
기본 정보 , API 상태 현황
데이터 사용 정의
PUSH 서비스 (GCM) 사용 등록
API console
29
30. 데이터브라우저 sandbox
key-value 형태의 데이터를 추가하고 사용할 수 있다 .
- 사용자 , 롤 , 그룹 , 파일 , 장치 등 실제 데이터 관리 .
이어서 안드로이드 baasio Startup project 를 통해 사용해
보자 .
30
31. 02.baas.io Startup App
startup 프로젝트 import 하기
startup 프로젝트 제공
AndroidManifest 살펴보기
백엔드 -sandbox 정보 확인
BaasioConfig.java
데이터엔터티 BaasioEntity class
31
32. baas.io startup project Startup App.
github 로 제공하는 baasio 샘플 프로젝트로 , 새로운
baasio 앱을 만드는데 필요한 기본 앱 프로젝트 파일 제공
.
- https://github.com/baasio/baas.io-startup-android
BaasioStartupProje
ct 로 copy 해서 BaasioAndrodi
import library 프로젝트를
추가한다 .
32
33. startup 프로젝트 제공 Startup App.
제공되는 Startup 프로젝트는
- AndroidMenifest.xml 설정
- Push 서비스를 위한 GCM 모듈이 이미 구현되어 적용 .
- baas.io 에 가입된 정보 (BaasioConfig.java)
- 관련 라이브러리
등을 포함해서 개발자가 손쉽게 baasio 백엔드를 이용한
앱 개발을 할 수 있다 .
33
35. AndroidManifest 살펴보기 Startup App.
manifest 에 GCM 리시버 추가
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
…
<receiver
android:name=".gcm.GCMRedirectedBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<!-- Receives the registration id. -->
<action
android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.kth.baasio.sample" />
</intent-filter>
</receiver
…
35
36. AndroidManifest 살펴보기 Startup App.
manifest 에 GCM 서비스 추가
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
…
<service android:name=".gcm.GCMIntentService" />
…
36
37. 백엔드 -sandbox 정보 확인 Startup App.
baas.io 에 생성된 앱 정보를 확인해서 BaasioConfig.java
에 입력해 주어야 합니다 .
백엔드목록에서 sandbox 의 기본정보 화면에 ID 를 확인
합니다 .
baas.io ID
Application ID
37
38. BaasioConfig Startup App.
"com.kth.baasio.startup" 위치에 있는 BaasioConfig.java
을 열어 , BAASIO_URL, BAASIO_ID, APPLICATION_ID 에 백
엔드의 sandbox 기본정보에 있는 ID 를 입력한다 .
public class BaasioConfig {
public static final String BAASIO_URL = "https://api.baas.io";
// baas.io member ID
public static final String BAASIO_ID = "779460bb-2437-SDFSFD...";
// baas.io application ID
public static final String APPLICATION_ID = "779460bb-2437-1...";
// GCM(google cloud messaging service) sender ID
public static final String GCM_SENDER_ID = null;
}
샘플 백엔드 sandbox
에 정의한 ID
38
39. Baasio initialize Startup App.
"com.kth.baasio.startup" 위치에 있는
BaasioApplication.java 은 BaasioConfig 에서 정의한
BAASIO_URL, BAASIO_ID, APPLICATION_ID 를 이용해 초기
화 한다 .
public class BaasioApplication extends Application {
AsyncTask mGCMRegisterTask;
@Override
public void onCreate() {
super.onCreate();
Baas.io().init(this,
BaasioConfig.BAASIO_URL,
BaasioConfig.BAASIO_ID,
BaasioConfig.APPLICATION_ID);
Push 를 위한 GCM
mGCMRegisterTask = Baas.io().setGcmEnabled(this, null,
new BaasioDeviceCallback() { .. } );
}
39
40. Baasio terminate Startup App.
액티비티 종료시 연결을 해제해 준다 .
public class BaasioApplication extends Application {
...
@Override
public void onTerminate() {
if (mGCMRegisterTask != null) {
mGCMRegisterTask.cancel(true);
}
Baas.io().uninit(this);
super.onTerminate();
}
}
40
42. 데이터엔터티란 ? BassioEntity
엔터티란 baas.io 에 저장되는 모든 데이터 . 기본 속성 두
가지 .
- uuid: 엔터티에서 유일한 식별 값 .
- Entity type: users, roles,
groups, files, devices ...
42
43. 데이터 엔터티 BassioEntity
액티비티 MainActivity.java 에서는 두 개의 버튼으로
- baasio 에 새로운 엔터티 ( 데이터 ) 를 추가하고
- BaasioEntity class 에서 데이터 엔터티 제공 .
43
44. 엔터티 생성 Startup App.
레이아웃에 있는 ‘ Bassio 시작하기 ’ 버튼을 클릭하면
BaasioEntity ( 데이터 ) 생성
public void onClick(View v) {
BaasioEntity entity = new BaasioEntity("greeting");
entity.setProperty("greeting", getString(R.string.success_baasio)
+ "nn 생성시간 :"+ System.currentTimeMillis());
entity.saveInBackground(new BaasioCallback<BaasioEntity>() {
public void onResponse(BaasioEntity response) {
if (response != null) {
tvBaasio.setText(R.string.success_baasio);
savedUuid = response.getUuid();
Toast.makeText(MainActivity.this, " 성공하였습니다 .",
Toast.LENGTH_LONG).show();
}
}
public void onException(BaasioException e) {
Log.e("baas.io", e.toString());
Toast.makeText(MainActivity.this, " 실패하였습니다 .",
Toast.LENGTH_LONG).show();
}
});
44
45. 엔터티 확인 Startup App.
MainActivity.java 에서는 두 개의 버튼으로
- 추가된 값의 생성 일자를 확인
public void onClick(View v) {
if (savedUuid != null) {
BaasioEntity entity = new BaasioEntity("greeting");
entity.setUuid(savedUuid);
entity.getInBackground(new BaasioCallback<BaasioEntity>() {
@Override
public void onResponse(BaasioEntity response) {
if (response != null) {
String result = response.
getProperty("greeting").getTextValue();
tvBaasio.setText(result);
Toast.makeText(MainActivity.this, " 성공하였습니다 .",
Toast.LENGTH_LONG).show();
}
}
public void onException(BaasioException e) {
Log.e("baas.io", e.toString());
Toast.makeText(MainActivity.this, " 실패하였습니다 .",
Toast.LENGTH_LONG).show();
}
45 });
}
47. GCM 소개 GCM Push
GCM 에서 발급받은 API Key 를 입력해 준다 .
-
https://code.google.com/apis/console/
새로운 프로젝트를 추가한다 .
47
48. GCM 활성화 GCM Push
1) 새로운 Google API project 생
Google API console 페이지에서 Services 선택
2) Google Cloud Messaging 을 ‘ On’
3) API Access 에서 API Key 얻기
서비스 약관 동의
https://code.google.com/apis/console/#project:4815162342
48
50. Sender ID GCM Push
2. 새로 추가된 프로젝트의 주소의 맨 뒷자리 숫자가
sender ID 이다 .
이 ID 를 BaasisConfig.java 에 입력한다 .
50
51. GCM for android 'ON' GCM Push
Services 목록중 Google Cloud Message for Android
스의치를 'on' 으로 한다 .
51
52. New Key GCM Push
API key 얻기
- Google API console 페이지에서 API Access 를 선택
하고 'Create New Server key…' 를 실행한다 .
52
53. API Key GCM Push
API key 얻기
- create 버튼을 실행한다 .
53
54. BaasioConfig Startup App.
GCM Sendter ID 를 BaasioConfig 에 등록한다 .
public class BaasioConfig {
public static final String BAASIO_URL = "https://api.baas.io";
// baas.io member ID
public static final String BAASIO_ID = "779460bb-2437-SDFSFD...";
// baas.io application ID
public static final String APPLICATION_ID = "779460bb-2437-1...";
// GCM(google cloud messaging service) sender ID
public static final String GCM_SENDER_ID = “234456778...”;
}
GCM Sender ID
54
55. 백엔드 설정 푸시 관리 GCM Push
백엔드 설정에서 Google API Key 를 등록한다 .
55
57. 감사합니다 .
기본적인 사항을 살펴보셨으니 H3
컨퍼런스 발표자료중 앱 만들기를 따
라서 해보시면 좀 더 응용된 앱을 개
발하실 수 있을 것 입니다 .
- http://www.slideshare.net/kthcorp/b1-baasio-
sdk20121030v105