2013년 4월 19일 금요일

안드로이드 차트 라이브러리 - Essence Chart(에센스 차트) 라이브러리 시작하기

앱을 개발할 때 멋있는 차트를 넣어 보는 것은 어떨까요?

안드로이드(Android) Essence Chart(에센스 차트) 라이브러리를 이용하면 2D/3D 차트를 쉽게 만들 수 있습니다.

본 문서는 에센스 차트 라이브러리를 처음 사용하는 개발자들이 쉽게 따라할 수 있는 교재입니다.


에센스 차트의 특성은 다음과 같습니다.

  • Essence Chart 라이브러리는 다양한 차트를 지원합니다. 지원 하는 차트의 종류는 Essence Chart가 지원하는 차트의 종류에서 확인 하실 수 있습니다.
  • Essence Chart 라이브러리는 크기가 작습니다.
    Android용 라이브러리의 경우 3MB 정도의 크기 입니다.
  • Essence Chart 라이브러리는 다양한 OS를 지원 합니다.
    현재 Android용만 제공 하고 있지만, 추후에 Window, iOS용도 제공할 예정입니다.
  • Essence Chart 라이브러리는 무료로 사용 하실 수 있습니다.
    Essence Chart 라이브러리의 라이센스는 Essence Chart(에센스 차트) 라이센스에서 확인 하실 수 있습니다.

시작하기를 진행 하기 위해서는 반드시 Essence Chart SDK를 설치 해야만 합니다.
설치는 Essence Chart(에센스 차트) SDK 설치하기에서 확인 하실 수 있습니다.
image

Android 시작하기 - 1단계(Chart 생성)

Essence Chart 라이브러리는 Android에서 사용할 수 있는 JAR(Java Archive)를 제공합니다.
Android에서 쉽고 편하게 Chart를 생성 할 수 있습니다.
현재 Android에서는 다음과 같이 지원 되고 있습니다.
  • SDK 설치 프로그램 제공
  • Android JAR 제공
  • 지원 Device : armebai-v7, armebai(armebai는 추후 지원 예정)
  • SDK Demo APP 제공(Google Play에 등록 예정)
  • Min SDK Version : Android 2.3.3(API 10)
  • 동작 확인된 Device
    • 삼성 갤럭시 S2(Android 4.1.2, 젤리빈)
    • 삼성 갤럭시 S3(Android 4.1.2, 젤리빈)
    • 삼성 갤럭시 노트 10.1(Android 4.1.2, 젤리빈)
    • LG 옵티머스 G 프로(Android 4.1.2, 젤리빈)
    • 구글 Nexus7(Android 4.2.2, 젤리빈)
    • 구글 Nexus10(Android 4.2.2, 젤리빈)
  • 일부 Device에서 정상 동작 하지 않을 수 있습니다.
    • 현재 armebai-v7만 지원됩니다.
    • Android OS 버전에 따라 동작 하지 않을 수 있습니다.
  • 문의 사항은 댓글을 이용하시면 됩니다.

Android 시작하기 전에 다음 항목을 확인 하시기 바랍니다.
  • Eclipse 설치 확인
    • Eclipse Classic 3.7.2를 사용하여 시작하기가 제작이 되어 있습니다.
    • 다른 버전(상위 버전)으로도 개발하는 것도 가능합니다만, 본 문서는 3.7.2 기준으로 설명이 되어 있어 메뉴나, 항목이 조금 다를 수 있습니다.
    • Eclipse Classic 3.7.2 다운로드
    • Eclipse 설치는 인터넷에 Eclipse 설치 관련 사이트를 참조하셔서 설치 하십시오.
  • Android SDK 설치 확인
    • Android 시작하기는 Android SDK가 설치 되어 있어야 진행 할 수 있습니다.
    • Android 개발자 사이트에서 다운로드에서 다운 받을 수 있습니다.
    • Android SDK 설치는 인터넷에서 Android SDK 설치 관련 사이트를 참조하셔서 설치 하십시오.
  • Essence Chart SDK 설치 확인

아래 이미지에서 표기된 버전은 업데이트에 따라 버전은 다를 수 있습니다.

Android App 생성하기


eclipse를 실행한다.
image

File –> New –> Other 메뉴를 실행 한다.
image

Android –> Android Application Project를 선택 하고 “Next” 버튼을 선택 한다.
image

Application Name, Project Name, Package Name을 입력한다.
Minimum Required SDK 항목은 API 9: Android 2.3(Gingerbread)를 선택 한다.
Target SDK, Compile With, Theme는 상황에 맞게 선택한다.
“Next” 버튼을 선택 한다.
image

Create custom launcher icon, Create activity, Create Project in Workspace 항목의 Check를 켠다.
”Next” 버튼을 선택 한다.
image

아이콘 이미지 정보를 설정 한다.
”Next” 버튼을 선택 한다.
image

Create Active를 Check하고 BlankActivity를 선택 한다.
”Next” 버튼을 선택 한다.
image

Activeity Name, Layout Name 항목의 값을 입력한다.
(시작하기에서는 기본값을 사용한다, 만약 다른 값을 사용할 경우 해당 항목의 이름이 다를 수 있음)
”Finish”를 선택한다.
image

Essence Chart SDK 복사

설치한 Essence Chart SDK 폴더에서 JAR 파일과 library 폴더를 복사한다.
탐색기를 실행하여 Essence Chart SDK 폴더로 이동한다.
기본 설치 경로는 다음과 같다.
  • Window 32bit : C:\Program Files\Essence Chart SDK\sdk\android
  • Window 64bit : C:\Program Files (x86)\Essence Chart SDK\sdk\android
image

“armebai-v7a” 폴더와 “essence.chart.0.7.6.jar” 파일을 복사한다.
 image

복사한 파일을 Eclipse의 Chart Projcet의 libs 폴더에 복사를 한다.
image

복사를 완료되면 libs 폴더에 “armebai-v7a” 폴더와 “essence.chart.0.7.6.jar” 파일이 복사 된 것을 확인한다.
 image


layout에 chart 추가하기

Eclipse에서 res/layout/activity_main.xml파일을 선택한다.
(activity_main.xml은 Projcet를 생성시 지정한 파일임)
image

activeity_main.xml의 activity_main.xml 탭을 선택한다.
(Graphical Layout옆에 있는 activity_main.xml 탭을 선택)
image

TextView 항목을 다음과 같이 변경한다.
변경 전

변경 후
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world" />
</RelativeLayout>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <com.essence.chart.Chart
        android:id="@+id/chart01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>


image image

수정한 내용을 저장한다.
Project->Clean 메뉴를 선택 하여 Clean all projects를 선택 한다.
image

Chart App 실행

저장된 Project를 실행하여 Chart가 정상적으로 생성이 완료 되는지 확인한다.

Eclipse의 toolbar의 Run 버턴을 선택한다.
Run As 창이 나타다면 “Android Application”을 선택 후 “OK” 버턴을 선택 한다.
image

정상적으로 빌드가 되면 Android Device Chooser가 표시된다.
Android Device Chooser에서 원하는 Device를 선택 하고 “OK” 버튼을 선택 한다.

image

정상적으로 실행이되면 Device에 다음과 같은 Chart App이 실행이 된다.
  • 삼성 갤럭시 S2
image

  • 삼성 갤럭시 노트 10.1
image

  • Google Nexus7
image

안드로이드 차트 라이브러리 - Essence Chart(에센스 차트) SDK 설치하기



Essence Chart SDK는 Essence Chart Library를 사용하여 App을 개발하기 위해서 설치 프로그램을 제공합니다.
Essence Chart SDK를 설치 하신 후 제공되는 Library를 App 개발하고자 하는 Project에 복사 하는 형태로 사용합니다.
Essence Chart SDK는 다음 항목을 포함 하고 있습니다.

  • 설치 프로그램은 Window용 설치 프로그램입니다.
  • Android용 Library
    • JAVA Library(JAR)
    • Native Binary Library(so)
  • Window용 Library(추후 제공 예정)

Essence Chart SDK 0.7.6을 이미 설치 하셨으면 Essence Chart(에센스 차트) 라이브러리 시작하기를 참조 하셔서 App을 개발 할 수 있습니다.

Essence Chart SDK 0.7.6를 다운로드는 Essence Chart(에센스 차트) 다운로드에서 다운로드 받을 수 있습니다.

Essence Chart SDK 설치 방법은 다음과 같습니다.

다운로드 받은 설치 프로그램을 실행 한다.

설치 프로그램에서 사용할 언어를 선택 한다.
 image


Essence Chart SDK 설치를 시작 합니다.

image

사용권 계약 내용을 확인 하신 후 “동의함” 버튼을 선택 하십시오.

image


설치 위치를 선택 하신 후 "다음"을 선택 하십시오.

image


시작 메뉴 폴더를 선택 하신 후 "설치"을 선택 하십시오.

image


설치가 성공하면 "다음" 을 선택 하십시오.

image


Essence Chart SDK 설치가 완료 되었습니다.

image


이제 Essence Chart(에센스 차트) 라이브러리 시작하기를 참조 하셔서 App을 개발 할 수 있습니다.

안드로이드 차트 라이브러리 - Essence Chart(에센스 차트) 다운로드

안드로이드 Android Essence Chart(에센스 차트)를 다운로드 받으 실 수 있습니다.

관리 편의를 위하여 예전 버전 파일은 삭제될 수 있습니다.














안드로이드 차트 라이브러리 - Essence Chart(에센스 차트)가 지원하는 차트의 종류

안드로이드 Android Essence Chart는 많은 종류의 차트를 지원하고 있으며, 지속적으로 새로운 형식의 차트를 늘려갈 예정입니다.

현재 지원하고 있는 차트의 종류는 다음과 같습니다.


  • 세로 막대형
    • 묶은 세로 막대형
    • 누적 세로 막대형
    • 100% 기준 누적 세로 막대형
    • 3차원 묶은 세로 막대형
    • 3차원 누적 세로 막대형
    • 3차원 100% 기준 누적 세로 막대형
  • 꺽은선형
    • 꺽은선형
    • 누적 꺽은선형
    • 표식이 있는 꺽은선형
    • 3차원 꺽은선형
  • 원형
    • 원형
    • 쪼개진 원형
    • 3차원 원형
    • 3차원 쪼개진 원형
  • 가로 막대형
    • 묶은 가로 막대형
    • 누적 가로 막대형
    • 100% 기준 누적 가로 막대형
    • 3차원 묶은 가로 막대형
    • 3차원 누적 가로 막대형
    • 3차원 100% 기준 누적 가로 막대형
  • 영역형
    • 영역형
    • 100% 기준 누적 영역형
    • 3차원 영역형
    • 3차원 100% 기준 누적 영역형
  • XY(분산형)
    • 표식만 있는 분산형
    • 직선 및 표식이 있는 분산형
    • 직선이 있는 분산형
  • 주식형
    • 고가-저가-종가
    • 시가-고가-저가-종가
  • 표면형
    • 표면형(조감도)
    • 3차원 표면형
  • 도넛형
    • 3차원 도넛형
    • 3차원 쪼개진 도넛형
  • 거품형
    • 거품형
  • 방사형
    • 방사형
    • 표식이 있는 방사형
  • 콤보 차트
    • 2차원 콤보
    • 3차원 콤보

안드로이드 차트 라이브러리 - Essence Chart(에센스 차트) 라이센스

안드로이드 Android Essence Chart 라이센스

사용하시면서 궁금하신 분들이 많을텐데, MIT License와 비슷하다 생각하시면 됩니다. Essence Chart 자체에 대한 소스는 제공하지 않기 때문에 여기서 라이센스란 Essence Chart 라이브러리에 대한 라이센스를 말합니다.

MIT 라이센스를 좀 쉽게 설명하자면, 상용프로그램에서 사용하셔도 되고, 독점 프로그램(비공개 소스)에서 사용할 수도 있습니다. 버그 패치 및 기능 확장 공개의 의무도 없으며, 자유롭게 사용할 수 있는 라이센스입니다.

단 Essence Chart 자체에 대한 라이센스 재전파는 허용하지 않습니다. (그럴분들은 없겠죠...)

라이센스라는게 참 어려워서 이 글을 보시고도 긴가민가 하실텐데 다음과 같은 경우 걱정없이 사용하실 수 있다는 의미입니다.
  • 나만의 상용 앱을 만들때 Essence Chart 라이브러리를 적용한다. - No Problem!
  • 고객의 의뢰를 받아서 앱을 개발하는데 Essence Chart를 포함한다. - No Problem!
단 큰규모(매출액기준 200억 이상) 기업의 경우는 별도 라이센스 문의를 해주시기 바랍니다.


아래글은  MIT 라이센스의 전문입니다.


The MIT License
MIT 라이선스

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

이 소프트웨어의 복제본과 관련된 문서화 파일(“소프트웨어”)을 획득하는 사람은 누구라도 소프트웨어를 별다른 제한 없이 무상으로 사용할 수 있는 권한을 부여 받는다. 여기에는 소프트웨어의 복제본을 무제한으로 사용, 복제, 수정, 병합, 공표, 배포, 서브라이선스 설정 및 판매할 수 있는 권리와 이상의 행위를 소프트웨어를 제공받은 다른 수취인들에게 허용할 수 있는 권리가 포함되며, 다음과 같은 조건을 충족시키는 것을 전제로 한다.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

위와 같은 저작권 안내 문구와 본 허용 문구가 소프트웨어의 모든 복제본 및 중요 부분에 포함되어야 한다.


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

이 소프트웨어는 상품성, 특정 목적 적합성, 그리고 비침해에 대한 보증을 포함한 어떠한 형태의 보증도 명시적이나묵시적으로 설정되지 않은 “있는 그대로의” 상태로 제공된다.


소프트웨어를 개발한 프로그래머나 저작권자는 어떠한 경우에도 소프트웨어나 소프트웨어의 사용 등의 행위와 관련하여 일어나는 어떤 요구사항이나 손해 및 기타 책임에 대해 계약상, 불법행위 또는 기타 이유로 인한 책임을 지지않는다.