Skip to content
Brad edited this page Jul 18, 2013 · 16 revisions

baas.io Android SDK를 쉽게 이용할 수 있도록, 샘플 앱(Kitchen Sink)을 제공해드리고 있습니다.

샘플앱은 크게 로그인/가입 화면과 메인 화면, 고객 센터 화면으로 구성되어 있습니다.

※ Sample Project 가이드를 보기 전에...

  • baas.io에 가입이 필요합니다. baas.io 가입 페이지에서 가입하실 수 있습니다.
  • Android ADT 및 SDK를 항상 최신으로 유지하는 것을 권장합니다. 개발툴은 "Get the Android SDK"를 확인하시기 바랍니다.
  • Text file encoding 방법이 UTF-8 기준으로 개발되어 있습니다. 사용하시는 개발툴의 Text file encoding 설정이 UTF-8로 되어 있는지 확인합니다.

화면별 설명

각 화면별로 어떤 기능의 Sample이 구현되어 있는지 설명합니다.

로그인/가입 화면

첫 실행시에 로그인이 안되어 있으면 실행되고 있습니다. 또한, Actionbar의 메뉴 또는 하드웨어 메뉴키를 눌러 로그인 메뉴를 선택하면 실행됩니다.

소스 위치는 com.kth.baasio.sample.ui.auth에 있으며 아래의 기능이 구현되어 있습니다.

  • E-mail로 가입/로그인 하기

  • Facebook으로 가입/로그인 하기

  • 비밀번호 찾기(비밀번호 초기화)

    관련 개발 가이드: User 서비스, Facebook 가이드

메인 화면

앱을 실행하면 나타나는 첫 화면입니다. BaasioMainActivity가 Tab 및 ViewPager를 가지고 있으며, 각 탭은 Fragment로 구현되어 있습니다.

위치는 com.kth.baasio.sample.ui.main에 있습니다.

Actionbar 메뉴

  • 비밀번호 변경

  • 로그인/아웃

    관련 개발 가이드: User 서비스

사용자 탭

그룹 탭

게시판 탭

  • 커스텀 Entity 리스트 조회

  • 커스텀 Entity 생성/수정/제거

  • 커스텀 Entity 관계 생성

  • 커스텀 Entity 관계에 따른 리스트 조회

    관련 개발 가이드: Data 서비스, 데이터질의(Query)

푸시정보 탭

파일 탭

고객 센터

Actionbar의 메뉴를 누르거나, 하드웨어 메뉴버튼을 눌러 고객센터를 선택하면 실행됩니다.

도움말

문의하기


프로젝트 실행하기

Step 1. 소스 다운로드하기

방법1: git clone

고객센터는 오픈 소스로 제공됩니다. clone을 받으시거나 fork를 하셔서 자유롭게 이용하실 수 있습니다.

git clone https://github.com/baasio/baas.io-sample-android.git

방법2: 압축(Zip) 파일 다운로드

아래의 링크에서 zip파일을 다운로드 받아 원하시는 위치에 압축해제 합니다.

https://github.com/baasio/baas.io-sample-android/archive/master.zip

Step 2. 프로젝트 Import 하기

  1. "File-Import" 를 선택합니다.

    <Import>

  2. Import 다이얼로그에서 "General-Existing Projects into Workspace"를 선택하고 "Next"버튼을 선택합니다.

    <Existing Projects into Workspace>

  3. 다음 Import 다이얼로그 화면에서 "Select root directory"의 "Browse"버튼을 눌러 다운로드 받은 폴더를 선택하고, "Projects:"에서 ActionBarSherlock, BaasioHelpCenter, BaasioSampleProject, FacebookSDK 프로젝트를 선택하고 "Finish"를 선택합니다.

    <Import BaasioSampleProject>

  4. BaasioSampleProject의 "com.kth.baasio.sample" 위치에 있는 BaasioConfig.java을 열어, PUT_YOUR_BAASIO_MEMBER_ID 부분을 baas.io ID로 바꿉니다. 아래 화면의 baas.io ID에 표시된 UUID 형태의 값을 넣어주시면 됩니다.(email 주소가 아닙니다.)

    PUT_YOUR_APPLICATION_ID 부분을 baas.io에 생성한 백엔드앱의 아이디로 바꿉니다. 아래 화면의 Appliation ID에 표시된 UUID 형태의 값을 넣어주시면 됩니다.

     // BaasioConfig.java
     package com.kth.baasio.sample;
    
     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_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 = null;	
     
     }
    

Step 3. Push 기능 활성화 하기

Push 기능확인이 필요 없으시면 이 부분은 건너뛰셔도 됩니다.

Push 기능을 확인하시기 위해서는 GCM 관련 설정이 필요합니다. 이때 Google API Key와 Sender ID가 필요하며, 발급 받는 방법은 아래 링크에 쉽게 설명되어 있으니 꼭 확인 바랍니다.

이 가이드에서는 Google API Key와 Sender ID를 알고 계시는 것을 가정하겠습니다.

1. 백엔드앱의 설정에 Google API Key 등록

baas.io이동 > My page > 백엔드앱을 선택 > 설정 > 푸쉬인증서 관리에 Google API Key를 등록합니다.

<Google API Key 등록>

2. BaasioConfig.java 수정

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";

}

Step 4. Facebook API Key 등록하기

BaasioSampleProject에는 Facebook을 이용하여 로그인하는 기능이 구현되어 있습니다. 이 기능을 확인하기 위해서는 Facebook에서 api key를 발급 받아, api key를 설정해 주어야 합니다.

아래 링크를 확인 확인하시어 api key 설정을 하시기 바랍니다.

Step 5. 빌드하기

추가된 프로젝트들을 FacebookSDK->ActionBarSherlock->BaasioHelpCenter->BaasioSampleProject 순으로 "Project-Clean..."하여 Clean Build하시고, BaasioSampleProject를 실행하시면 됩니다.

푸쉬 확인해보기

baas.io이동 > My page > 백엔드앱을 선택 > 푸시관리 > 푸시발송에서 내용을 입력하고 메시지를 보내보세요.

테스트 하실 때에는 Google Play가 설치된 실제 안드로이드 단말에서 테스트 바랍니다. 특히, 에뮬레이터는 메시지를 받을 수 없습니다.

<Push 발송>

테스트하시는 단말로 메시지가 도착하셨나요? 축하드립니다.!!!

※ 잘 안되시나요? Push가 정상 설정되었는지 확인하세요.

Push를 활성화를 하시면, 정상적으로 동작시키기 위해 아래 체크리스트를 확인 바랍니다.

  1. <CHECK!!> Google Play가 설치된 실제 안드로이드 단말에서 테스트하셔야합니다.
  2. baas.io 사이트 이동
  3. 로그인 > My page 이동> Application 선택
  4. 설정 > 푸시인증서 관리
  5. <CHECK!!> Android API KEY 등록되었는지 확인
  6. <CHECK!!> 푸시 사용 설정이 사용함인지 확인
  7. 데이터브라우저 > Role 선택 > guest 선택 > Permission 탭 선택
  8. <CHECK!!>"/devices" Create 체크됨 확인(v0.8.1 이전 버전은 "/pushes/devices")
  9. <CHECK!!>"/devices/*" Update, Delete 체크됨 확인(v0.8.1 이전 버전은 "/pushes/devices/*")
  10. 데이터브라우저 > Role 선택 > default 선택 > Permission 탭 선택
  11. <CHECK!!>설정된 Role이 "/device" Create와 "/devices/*" Update, Delete를 포함하고 있는지 확인(v0.8.1 이전 버전은 "/pushes/devices", "/pushes/devices/*")
  12. <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관련부분은 역할과 권한을 참고 바랍니다.

축하드립니다.!!

이제 모든 설정이 끝났습니다. 기능별로 좀더 세세하게 알아보고 싶으시다면 아래 링크를 확인바랍니다.

화면 캡쳐 모음

로그인/가입 화면

<로그인화면>

<가입화면>

메인 화면

<사용자탭>

<그룹탭>

<그룹탭-그룹멤버>

<게시판탭>

<게시판-댓글>

<푸시정보탭>

<파일탭>

<파일탭-업로드>

고객 센터

<고객센터>

<고객센터-문의하기>

Clone this wiki locally