이번 포스팅은 IoT를 위한 오픈 소스 개발 툴중에 하나인 Kinoma를 소개하고자 한다.

Kinoma는 Marvell Technology Group소유의 소프트웨어 플랫폼으로써 각기 다른 세개의 오픈소스 프로젝트를 포함하고 있다.

1. Kinoma Create은 프로토타입의 전자 기기를 위한 DIY키트이다. 

2. Kinoma Studio는 Kinoma Create과 Kinoma Platform Runtime에서 사용할 수 있는 개발 툴이다. 

3. Kinoma Connect는 스마트폰 또는 타블렛과 IoT 기기를 연결해주는 무료 iOS, Android앱이다.


이중에서 우리는 두번째에 있는 Kinoma Studio를 살펴보도록 하겠다.


Kinoma Studio



Kinoma Studio는 어플리케이션 프로그래밍 툴이다.

자바스크립트와 XML로 어플리케이션 작성을 할 수 있다. XML API 옵션은 유저인터페이스와 데이터 바인딩을 간단하게 해 준다고 한다. Node.js가 자바스크립트를 사용하지만 "웹" 부분을 서버로 사용하기 위한 프레임워크로 바꿔서 사용하듯이, Kinoma Platform Runtime(KPR)은 Kinoma Create, iOS, Android에서 사용될 고성능 앱을 구축하기 위하여 프레임워크를 최적화 한다.

Eclipse open source IDE에 Built-on된 Kinoma Studio는 개발자에게 친숙한 환경을 제공한다. 

Built-in 시뮬레이터가 있어서 키트가 없어도 즉시 코딩 가능하다. 또한, 수많은 예제들을 제공하여, 개발하고자 하는것과 관련된 예제들은 바로 테스트 가능하다.

Kinoma Stydio는 Kinoma Create App이나 iOS App, Android App으로 쉽게 Export 할 수 있다. 


설치

설치는 http://kinoma.com/studio/ 에서 각 OS에 맞는 버전을 설치하면 된다.


좀더 들여다 보기

이번에는 간단한 프로젝트를 실행해 보겠다.

버튼을 클릭(터치)할때마다 "Hello!"와 "World!"가 번갈아가면서 나오게 하기

1. 프로젝트를 생성하고, main.xml파일을 다음과 같이 작성해 준다.


main.xml


<?xml version="1.0" encoding="utf-8"?>

<!--

 Copyright 2011-2014 Marvell Semiconductor, Inc.

 Licensed under the Apache License, Version 2.0 (the "License");  you may not use this file except in compliance with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software  distributed under the License is distributed on an "AS IS" BASIS,  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and  limitations under the License. -->

<program xmlns="http://www.kinoma.com/kpr/1">

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++ --> <!-- ASSETS --> <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<skin id="MainSkin" color="#FFFFFF"/>

<skin id="ButtonSkin" color="#707070"/>

<skin id="ButtonSkinPressed" color="#4E4E4E"/>


<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<!-- STYLES -->

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<style id="ButtonStyle" color="white" font="bold 36px Helvetica, sans-serif"/>

 

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<!-- LAYOUTS -->

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++ -->  


   <container id="MainContainer" top="0" left="0" bottom="0" right="0" skin="MainSkin" active="true">    

       <container top="100" left="100" bottom="100" right="100" skin="ButtonSkin" active="true">

           <label top="0" left="0" bottom="0" right="0" string="'Hello!'" style="ButtonStyle"/>    

           <behavior>

               <method id="onTouchBegan" params="container, id, x, y, ticks"><![CDATA[

                   container.skin = ButtonSkinPressed;

                   /* Turn led on/off and switch the button's label */

                   if ( ledState ) {

                container.first.string = "Hello!";                

                } else {

                container.first.string = "World!";

                }

                   ledState = !ledState;                    

               ]]></method>

               <method id="onTouchEnded" params="container, id, x, y, ticks"><![CDATA[

                   container.skin = ButtonSkin;                      

               ]]></method>

           </behavior>       

       </container>

   </container>

   

   <script><![CDATA[

        

    /* Global Variables */

var ledState = false;

/* Start application */

      var main = new MainContainer();

       application.add( main );       

/* Same as

application.add(new MainContainer());       

*/

         

   ]]></script>

</program>


2. 실행하기 
프로젝트의 Run Configuration에서 원하는 프로젝트 경로와 시뮬레이터를 선택 후 실행해준다. 시뮬레이터는 application.xml에서도 지정 가능하다.

<이미지 1. applicaiton.xml>


<이미지 2. 세가지의 시뮬레이터를 선택할 수 있다.>

<이미지3. 실행 설정>

3. 각 시뮬레이터에서 실행 된 모습.

<이미지 4. Desktop Application 시뮬레이터>

<이미지 5. Kinoma Create 시뮬레이터>

<이미지 6. Nexus One 시뮬레이터>

마무리

IoT에대한 관심이 높아지는 요즘, Kinoma Studio는 가상 시뮬레이터를 제공해 주기때문에 실제 키트가 없더라도 IoT관련 개발을 손쉽게 접할 수 있을것 같다. 더구나 개발 언어가 자바스크립트와 XML이기 때문에 웹을 하던 사람들도 익숙하게 개발 할 수 있을것 같다. 또, eclipse IDE환경을 제공하여 친숙한 환경에서 개발 할 수 있어 진입장벽이 낮은것 같다. 

IoT 입문자 또는 관련 앱을 개발하고 싶은사람에게 적극 추천해주고 싶은 Kinoma Studio에 대해 이번포스팅을 마치겠다.

Posted by 알 수 없는 사용자
,