-
Notifications
You must be signed in to change notification settings - Fork 1
Home
baas.io Android SDK를 쉽게 이용하여 앱을 개발하실 수 있도록, Startup 프로젝트를 제공해드리고 있습니다.
Startup 프로젝트는 AndroidMenifest.xml 설정 및 Push 서비스를 위한 GCM 모듈이 이미 구현되어 적용되어 있습니다.
다만, baas.io에 가입된 정보들은 직접 수정해 주셔야합니다.(BaasioConfig.java)
- baas.io에 가입이 필요합니다. baas.io 가입 페이지에서 가입하실 수 있습니다.
- Android ADT 및 SDK를 항상 최신으로 유지하는 것을 권장합니다. 개발툴은 "Get the Android SDK"를 확인하시기 바랍니다.
- Text file encoding 방법이 UTF-8 기준으로 개발되어 있습니다. 사용하시는 개발툴의 Text file encoding 설정이 UTF-8로 되어 있는지 확인합니다.
고객센터는 오픈 소스로 제공됩니다. clone을 받으시거나 fork를 하셔서 자유롭게 이용하실 수 있습니다.
git clone https://github.com/baasio/baas.io-startup-android.git
아래의 링크에서 zip파일을 다운로드 받아 원하시는 위치에 압축해제 합니다.
https://github.com/baasio/baas.io-startup-android/archive/master.zip
-
"File-Import"를 선택합니다.
-
Import 다이얼로그에서 "General-Existing Projects into Workspace"를 선택하고 "Next"버튼을 선택합니다.
-
다음 Improt 다이얼로그 화면에서 "Select root directory"의 "Browse"버튼을 눌러 다운로드 받은 폴더를 선택하고, "Projects:"에서 BaasioStartupProject를 프로젝트를 선택하고 "Finish"를 선택합니다.
-
baas.io 사이트에 접속하여 로그인합니다.
-
My Page의 Apps 목록에서 sandbox를 선택하면 아래와 같이 기본 정보 화면이 나타납니다.
-
BaasioStartupProject의 "com.kth.baasio.startup" 위치에 있는 BaasioConfig.java을 열어,
PUT_YOUR_BAASIO_MEMBER_ID
부분을 baas.io ID로 바꿉니다. 위 기본정보 화면의 baas.io ID에 표시된 UUID 형태의 값을 넣어주시면 됩니다.(email 주소가 아닙니다.)PUT_YOUR_SANDBOX_APPLICATION_ID
부분을 baas.io에 이미 생성되어 있는 'sandbox' 백엔드앱의 아이디로 바꿉니다. 위 화면의 Appliation ID에 표시된 UUID 형태의 값을 넣어주시면 됩니다.// BaasioConfig.java package com.kth.baasio.startup; public class BaasioConfig { public static final String BAASIO_URL = "https://api.baas.io"; // baas.io member ID public static final String BAASIO_ID = "PUT_YOUR_BAASIO_MEMBER_ID"; // baas.io application ID public static final String APPLICATION_ID = "PUT_YOUR_SANDBOX_APPLICATION_ID"; // GCM(google cloud messaging service) sender ID public static final String GCM_SENDER_ID = null; }
※ sandbox 백엔드앱의 Application ID로 하는 이유
- baas.io에 가입하시면 "sandbox"라는 백엔드앱이 기본으로 생성되어 있습니다.
- "sandbox"앱은 모든 권한이 풀려있어 가입/로그인한 회원이 아니어도 데이터를 저장할 수 있습니다.
- 만약
PUT_YOUR_SANDBOX_APPLICATION_ID
부분에 생성하신 애플리케이션의 ID를 넣으시고 동작을 시키면, 권한오류가 나면서 저장되지 않습니다. - 생성하신 애플리케이션의 ID로 동작되도록 하려면, baas.io의 데이터브라우저에서 Role을 설정하여 권한을 풀어줘야합니다.
- 권한을 풀어주는 방법은 아래와 같습니다. 1. My page > Apps에서 앱 선택 > 데이터브라우저 > roles 에서 name: guest를 선택 2. ROLES Entity 조회창에서 Permission 탭 선택 > 입력창에 "/greetings/*" 입력 > read, create, update, delete 체크박스 선택 > Path 추가 선택
- Role에 관련된 자료는 아래 링크를 참고 바랍니다. - 역할과 권한 - baas.io 에서 User Role 설정 기본
Push 기능확인이 필요 없으시면 이 부분은 건너뛰셔도 됩니다.
Push 기능을 확인하시기 위해서는 GCM 관련 설정이 필요합니다. 이때 Google API Key와 Sender ID가 필요하며, 발급 받는 방법은 아래 링크에 쉽게 설명되어 있으니 꼭 확인 바랍니다.
이 가이드에서는 Google API Key와 Sender ID를 알고 계시는 것을 가정하겠습니다.
baas.io이동 > My page > 백엔드앱을 선택 > 설정 > 푸쉬인증서 관리에 Google API Key를 등록합니다.
BaasioConfig.java에 GCM_SENDER_ID
를 Google API Key를 발급받을 때 받은 Sender ID(Project ID)로 설정합니다.
public class BaasioConfig {
public static final String BAASIO_URL = "https://api.baas.io";
// baas.io member ID
public static final String BAASIO_ID = "PUT_YOUR_BAASIO_MEMBER_ID";
// baas.io application ID
public static final String APPLICATION_ID = "PUT_YOUR_APPLICATION_ID";
// GCM(google cloud messaging service) sender ID
public static final String GCM_SENDER_ID = "PUT_YOUR_GCM_SENDER_ID";
}
이제 모든 준비가 완료됐습니다. BaasioStartupProject를 "Project-Clean..."하여 Clean Build하시고, BaasioStartupProject를 실행하시면 됩니다.
-
Startup 프로젝트는 실행하면 "baas.io 시작하기"버튼과 "확인하기"버튼이 있습니다.
-
"baas.io 시작하기" 버튼을 누르시면, 기본적인 커스텀 Entity를 하나 생성하여 baas.io로 저장합니다.
-
"확인하기" 버튼을 누르시면, "baas.io 시작하기" 버튼을 눌러 생성한 커스텀 Entity의 값을 가지고와 화면에 보여줍니다.
-
이를 통하여 정상적으로 데이터가 저장되고 있음을 확인하실 수 있습니다.
-
APPLICATION_ID
의PUT_YOUR_SANDBOX_APPLICATION_ID
에 설정하신 "sandbox" 백엔드앱은 회원가입 없이도 데이터를 저장할 수 있는 테스트용 애플리케이션입니다. 테스트를 완료하시면 실제 백엔드앱을 생성하셔서 수정하시고 사용하시기 바랍니다.
※ 잘 안되시나요?
- <CHECK!!> 인터넷이 연결되어 있는지 확인해주세요.
- <CHECK!!> AndroidMenifest.xml에 INTERNET 퍼미션을 빠뜨리진 않으셨나요?
- <CHECK!!> ADT 22 부터는 Android Private Libraries가 Build Path에 포함되어 있어야합니다. Properties > Java Build Path > Order and Export에 "Android Private Libraries"를 체크해주시고, "Project-Clean..."하여 Clean Build 해주시기 바랍니다.
- <CHECK!!>
APPLICATION_ID
의PUT_YOUR_SANDBOX_APPLICATION_ID
가 sandbox 백엔드앱의 UUID로 설정되어 있는지 확인해주세요.
baas.io이동 > My page > 백엔드앱을 선택 > 푸시관리 > 푸시발송에서 내용을 입력하고 메시지를 보내보세요.
테스트 하실 때에는 Google Play가 설치된 실제 안드로이드 단말에서 테스트 바랍니다. 특히, 에뮬레이터는 메시지를 받을 수 없습니다.
테스트하시는 단말로 메시지가 도착하셨나요? 축하드립니다.!!!
※ 잘 안되시나요? Push가 정상 설정되었는지 확인하세요.
Push를 활성화를 하시면, 정상적으로 동작시키기 위해 아래 체크리스트를 확인 바랍니다.
- <CHECK!!> Google Play가 설치된 실제 안드로이드 단말에서 테스트하셔야합니다.
- baas.io 사이트 이동
- 로그인 > My page 이동> Application 선택
- 설정 > 푸시인증서 관리
- <CHECK!!> Android API KEY 등록되었는지 확인
- <CHECK!!> 푸시 사용 설정이 사용함인지 확인
- 데이터브라우저 > Role 선택 > guest 선택 > Permission 탭 선택
- <CHECK!!>"/devices" Create 체크됨 확인(v0.8.1 이전 버전은 "/pushes/devices")
- <CHECK!!>"/devices/*" Update, Delete 체크됨 확인(v0.8.1 이전 버전은 "/pushes/devices/*")
- 데이터브라우저 > Role 선택 > default 선택 > Permission 탭 선택
- <CHECK!!>설정된 Role이 "/device" Create와 "/devices/*" Update, Delete를 포함하고 있는지 확인(v0.8.1 이전 버전은 "/pushes/devices", "/pushes/devices/*")
- <CHECK!!>프로젝트의 AndroidMenifest.xml 파일을 열어 아래와 같이 package 명이 제대로 들어가 있는지 확인합니다.
<permission
android:name="{package명}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
...
<receiver
android:name="{package명}.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="{package명}" />
</intent-filter>
</receiver>
...
<service android:name="{package명}.gcm.GCMIntentService" />
<주> Role관련부분은 역할과 권한을 참고 바랍니다.
이제 모든 설정이 끝났습니다. 좀더 세세하게 알아보고 싶으시다면 아래 링크를 확인바랍니다.