Baas(Backend as a Service)와 RAD Studio(GCM, APN, 푸시알림 가능)

2014.05.27 11:36

BaaS(Backend as a Service)

BaaS는 Backend as a Service 약자로 모바일에서 필요한 Backend 기능을 추상화하여 표준 API(JSON 등)로 제공하는 클라우드 서비스의 한 종류 입니다.

Backend as a service - http://en.wikipedia.org/wiki/BaaS


더보기


간단히 설명하면, 여러분이 앱을 만드는 경우 앱에서 사용하기 위한 데이터, 사용자 정보등의 Backend 기능을 여러분의 서버에 구성하지 않고, BaaS 사이트(또는 연동)에서 제공하는 기능을 설정(커스터마이징) 후 이용하는 방식입니다. 별도의 여러분의 Backend 서비스 개발 과정이 생략되어 개발 시간을 대폭 단축 할 수 있습니다.


대표적인 BaaS 제공자로는 Kinvey, Pharse, Bass.io(국내)가 있으며 제공되는 기능은 푸시알림, SNS 연동, 사용자 관리, 데이터 관리, 이미지/사운드 등의 파일 관리 등이 있습니다.


RAD Studio XE6에서도 새롭게 BaaS 관련된 컴포넌트가 추가되었습니다.


현재는 대표적인 BaaS 서비스인 Kinvey와 Pharse를 제공합니다.

BaaS 컴포넌트


BaaS 컴포넌트는 위와 같이 제공자 컴포넌트와 서비스 기능 컴포넌트로 구분됩니다.

서비스 기능 컴포넌트는 BaaS에서 제공되는 대표적인 기능을 사용할 수 있는 컴포넌트이며, 기능별로 추상화(표준화)되어 제공되어 제공자별로 별도로 구성하지 않아도 됩니다. 앱 개발 시 서비스 기능 위주로 개발하고 제공자를 연결하면 제공자의 서비스와 연결되도록 아주 유연한 구조로 설계가 되어있습니다.

즉, 향후 제공자가 추가된다면, 기존에 구현된 기능을 그대로 사용하고 제공자 컴포넌트만 변경해 적용 할 수 있습니다. 


그리고 BaaS 컴포넌트는 멀티플랫폼을 지원하여, VCL과 FMX에서 모두 사용이 가능합니다.

즉, VCL에서 사용자 및 데이터 관리와 푸시메시지 전송등을 기존의 어플리케이션에서 적용할 수도 있습니다.

BaaS 관련 샘플

다음은 엠바카데로에서 제공하는 BaaS 컴포넌트 관련 설명과 샘플소스입니다. 

(개인적으로 GCM 부분을 따라해 봤는데 아주 쉽게 되었습니다.)

▶ Remote Notification(GCM, APN)


Mobile Tutorial: Using Remote Notifications


메시징 서비스 설정 - 구글과 애플에서 클라우드 서비스 사용을 위한 설정


클라우드 서비스에 구글과 애플 계정 연결 설정


어플리케이션 구현 - 컴포넌트를 이용 클라우드 메시지 수신하도록 구현 및 테스트


데이터에 트리거(Trigger)를 걸어 데이터 변경 시 데이터 전송

데스크탑에서 클라우드 메시지 전송


▶ Storage 이용

BaaS 컴포넌트를 이용한 ToDo List


사용자 계정관리(생성)


▶ 파일 업로드/다운로드


Uploading images to the cloud with BaaS in RAD Studio XE6


C++빌더 샘플 다운로드


      ▶ VCL 어플리케이션에서 특정 사용자에게 푸쉬메시지 전송

      Custom Endpoint 설정과 어플리케이션 데모

      참고



      관련글



      험프리.김현수 파이어몽키 BAAS, Delphi, Kinvey, Pharse, Rad Studio

      1. Blog Icon
        희아

        문의드립니다. XE6 에서의 GCM 지원은 결국 상용화되어있는 것을 이용하는 것 뿐인가요?
        메시지밖에 안보내는데도...
        비용을 들이지 않고 작업하려면 Send/Receive 를 통신이나 java를 이용하여 개발해 포함시켜야 하는건가요?
        XE5 에서 개발된 샘플을 이용해보려하는데 쉽지않네요.

      2. 네 BaaS를 사용하지 않으려면 위글의 참고 항목의 링크를 확인하시면 직접 GCM/APN을 구현할 수 있습니다.
        말씀하신대로 BaaS 컴포넌트를 이용할때 보다 상당히 어렵습니다.

      3. Blog Icon
        정상언

        국내 bass.io 서비스는 7월28일자로 종료되었다네요
        https://www.facebook.com/backendservice

      FireMonkey 배포시 간단한 팁(선택적 배포-설정파일 유지)

      2014.05.23 11:35

      오늘은 간단한 팁을 공유합니다.


      파이어몽키를 이용해 앱 개발 후 컴파일(배포) 시 모든 파일들이 덮써져 버립니다.


      환경파일(INI) 또는 임베디드 디비파일등의 테스트 데이터는 유지되야 할 경우가 많은데요. 꽤 불편합니다.


      하지만, 배포 관리자의 툴바에 선택적으로 파일을 배포하는 기능버튼이 있어 안내합니다.

      아래 그림과 같이 버튼 제일 우측에 Change Overwrite value for selected Items라는 힌트를 가진 버튼이 있구요.

      직역해 보면 "선택된 항목의 덮어쓰기 값을 변경" 정도가 됩니다.


      목록에서 파일을 선택하고 해당 버튼을 누르면 필드 제일 오른쪽의 OverWrite 항목이 Always <> Never로 변경됩니다.



      한가지 팁을 더 드리면

      모바일 기기가 연결된 경우 툴바의 Connect() 버튼을 누르면 Remote Status에 원격지(기기)와 로컬의 파일 변경 상태를 확인 할 수 있습니다.


      자세한 내용은 엠바카데로 문서 중 배포 관리자 항목을 참고하세요.

      • http://docwiki.embarcadero.com/RADStudio/XE6/en/Deployment_Manager
      이상 간단한 배포 팁이었습니다.


      험프리.김현수 파이어몽키 Deployment, Firemonkey, 배포관리자

      파이어몽키 안드로이드 SDK Full Wrapper 파일

      2014.05.21 11:32

      RAD Studio XE7 에서는 Java2OP라는 이름으로 자바라이브러리를 델파이 브릿지 파일로 컨버젼하는 툴을 기본 제공합니다.

       - http://blog.hjf.pe.kr/268


      아래 글은 XE6 이전 버전 사용자들이 참고할 수 있습니다.


      파이어몽키 자료가 상당히 풍부한 FMXExpress(http://www.fmxexpress.com)에서 안드로이드 SDK 전체를 Object Pascal(Delphi)로 변환한 소스코드를 공개했습니다.

      파이어몽키로 개발할 경우 제공되는 컴포넌트와 라이브러리 외에도 네이티브 SDK를 직접 제어할 수 있는데요. 그러기 위해서는 안드로이드 SDK를 오브젝트 파스칼에서 사용할 수 있도록 변환(Wrapping)하는 작업이 선행되어야 합니다.

      FMXExpress에서는 Java2Pas(http://www.softwareunion.lu/en/downloads/)툴로 안드로이드 소스코드를 Object Pascal로 컨버팅 진행했습니다.



      험프리.김현수 파이어몽키 SDK, 안드로이드, 파이어몽키

      1. Blog Icon
        에우로카엘

        참고들 하세요.

        uses 구문 때문에 circle error많이나서 하나하나 다 손봐줘야하고,

        xe6에선 androidapi.helpers에 jstring 변환함수 들어가있는데 xe5에 맞춰져있는 것 같네요.

      안드로이드 ARM 에뮬레이터 속도를 올리는 8가지 팁

      2014.04.25 13:11

      안드로이드 개발 시 많은 안드로이드 장비(device)에서 테스트 하지만 그렇지 못한 경우가 많습니다. 


      이 경우 안드로이드 에뮬레이터를 이용할 수 있는데요. 안드로이드 에뮬레이터가 너무 느려서 고생을 합니다. 

      이 문제를 다소 완화할 수 있는 내용이 있어 소개합니다. 


      delphi.org를 운영하는 Jim McKeeth는 다음과 같이 안드로이드 에뮬레이터 속도를 올리는 8가지 팁을 소개했습니다.


      1. 실제 하드웨어를 사용 
      2. 가상머신에서 에뮬레이터를 실행하지 말 것 
      3. 가상머신에서 돌려야 한다면, Parallels desktop 9을 사용 
      4. 호스트 GPU를 사용 
      5. OpenGLES 라이브러리를 복사 
      6. Mac에서 에뮬레이터를 실행 
      7. 안드로이드 이전 버전으로 실행 
      8. AVD 하드웨어 구성을 조정 할 것

      http://delphi.org/2013/11/8-tips-to-speed-up-your-android-arm-emulator-avd/


      해당 글을 보시면 Jim McKeeth는 위의 8가지 중 2, 4, 5 항목과 때때로 7번 항목을 사용한다고 합니다.

      여러분들도 상황에 맞춰 선택적으로 안드로이드 에뮬레이터에 적용하시면 더 낳은 성능으로 에뮬레이터를 사용하 실 수 있을 것 같습니다.


      자세한 설명과 사용법은 해당 링크를 통해서 확인 바랍니다.


      그리고 기본으로 제공되는 안드로이드 애뮬레이터 외의 다른 애뮬레이터를 사용할 수 있습니다. 

      해당 내용은 다른 블로그 포스팅을 참고하시기 바랍니다.



      험프리.김현수 파이어몽키 android, AVD, Emulator

      1. Blog Icon
        초보자

        궁금한점이 있어 이곳에 문의 드립니다.. ^^
        아 처음 하다 보니 뭐 이리 복잡한지.. 쩝...

        첫번째 질문..
        업무용 앱을 만들고 있는데 서버 IP와 Port 등을 앱에서 저장하고 있어야 하는데...
        PDA나 뭐 이런곳에서는 텍스트 파일로 가지고 있으며 저장된걸 불러 주기도 하고 다시 바꿔 저장한 후에
        프로그램이 실행되면 텍스트에서 읽어 전역변수에 넣어서 사용했는데..
        앱에서는 어케해야 할지 잘 모르겠더군요... 좀 알려주세요.. ㅠ.ㅠ

        두번째 질문.
        종료하여면 스맛폰에서 빽을 누르면 바로 종료가 되버리는데 한번더 물어 보고 싶은데...
        showmessage 만 써봐서리.. 네/아니오 버튼이 나오게 하질 못하겠네요..
        다른 방법이 있는지.. ^^

        마지막으로
        스맛폰마다 고유ID 가 있는지요?
        컴퓨터는 Mac어드레스를 이용했는데... 앱도 있을법한데... 음
        혹 있다면 고유ID를 구하는 방법좀 알려주세요..

        언제나 와서 각종 정보 얻어 갑니다.. 정말 감사해요..
        ^^

      2. 1, 설정정보
        - 모바일도 INIFile을 이용하면 됩니다.
        2, 백버튼 제어
        if Key = vkHardwareBack then
        begin
        // 구현코드 입력
        Key := 0;
        end;
        3, 고유ID는 잘모르겠네요^^

      3. Blog Icon
        만주

        안녕하세요.
        위 링트에서 지니모션을 제가 이크립스에서는 태스트 해봤는데 잘 됩니다.
        그런데 xe6에서 태스트 해보니 "this application does not support ...." 애러 메지지가 지니모션
        창에서 뜨고 실행이 되지 않습니다.
        해결 할 수 있는 방법 있으면 좀 알려주세요.
        인터넷 좀 뒤져도 답이 나오지 않습니다.
        xe fmx는 정보가 너무 부족해서 첨 접하는 개발자는 너무 망막하군요.

      4. 제가 실수를 했네요^^
        지니모션의 경우 x86 기반의 안드로이드 애뮬레이터입니다.

        현제 델파이(파이어몽키)의 경우 ARM 기반으로 앱 제작이 가능하기 때문에 지니모션의 경우 현재 사용할 수 없습니다.

        글에 부가설명을 추가해 놓겠습니다.

        참고로 Intel(x86) 기반의 경우 엠바카데로에서 준비중에 있습니다.
        질문 주셔서 감사합니다.

      스노우크래프트(Snow Craft) for 안드로이드(소스포함)

      2014.04.25 10:48



      델마당(http://www.delmadang.com)을 통해 양병규님이 Snow Craft 라는 게임을 Delphi XE5로 만드시고(Clone) 공개하셔서 소개합니다. 아마 예전에 윈도우 버전으로 작업했던 부분을 안드로이드로 포팅하신 듯 합니다.


      제가 가지고 있는 넥서스7 1세대에서도 아주 잘 돌아가고 무엇보다 게임이 재밌네요^^

      소스를 열어보시면 배울 만한 것들이 많이 있습니다.

      (아주 좋은 소스코드를 공개해 주신 양병규님에게 다시한번 감사드립니다.)


      소스코드

      아이콘 경로가 절대경로로 잡혀 있어 델마당 자료실의 첨부파일에서 절대경로만 수정하여 올립니다.

      ▶ 클래스 상속

      클래스 상속을 통해 TBoy와 TSnow, TBunker의 공통된 기능을 TCharacter에서 구현되었습니다.

      왜 클래스를 사용해야 하는지와 사용하는 방법에 대해 이해하실 수 있을 것 같네요.

      ▶ 캔버스의 사용

      Canvas에 캐릭터 들을 직접 그리는 방식으로 작성하셨습니다.

      캔버스 사용법 과 마우스 이벤트를 어떻게 각 케릭터와 연결했는지를 보시면 아이디어를 얻으 실 수 있습니다.

      ▶ 리소스를 통한 효과음 사용

      Sound.pas 파일을 보시면 효과음 파일을 배포관리자를 통해 배포하지 않고 사용할 수 있는 좋은 팁이 있습니다.

      Sound.pas 파일의 PlaySound 메소드에는 ResourceID를 통해 등록된 Resource에서 스트림을 가져와 재생하는 코드는 아주 유용한 팁인 것 같습니다.


      procedure PlaySound(const ResourceID: String);
      var
        ResStream: TResourceStream;
        TempFile, FileName: String;
      begin
        if MediaPlayer.State = TMediaState.Playing then Exit;
      
        FileName := ResourceID + '_tmp.mp3';
        TempFile := TPath.Combine( TPath.GetTempPath, FileName );
      
        if not FileExists( TempFile ) then
         begin
           ResStream := TResourceStream.Create(HInstance, ResourceID, RT_RCDATA);
           try
             ResStream.SaveToFile( TempFile );
           finally
             ResStream.Free;
           end;
         end;
        MediaPlayer.FileName := TempFile;
        MediaPlayer.Play;
      end;
      


      Project > Resources and images.. 메뉴를 통해 위의 화면을 이용 할 수 있습니다.


      참고 링크




      험프리.김현수 파이어몽키 android, Firemonkey, Snow craft, 양병규

      1. Blog Icon

        비밀댓글입니다

      2. 네 의견 감사합니다^^ 정지화면을 하나 더 올렸습니다.
        모바일에서 gif애니메이션이 안돌아가는 것을 몰랐네요.

      델파이 물리엔진 Box2d 소개. FMX, VCL 용(오픈소스)

      2014.04.22 11:11


      Qianyuan Wang은 몇 년전 델파이 VCL용 2D 물리엔진을 오픈소스로 진행하였습니다.


      위의 코드를 멀티플랫폼 용 Firemonkey용 소스코드로 변환되었다는 반가운 소식을 전합니다.(oDesk 엔진니어 참여)

      제가 간단하게 테스트 해보니 테스트가 벅찰 정도로 다양한 샘플이 준비되어 있구요. 

      별도의 라이브러리 추가 없이 소스코드만으로 구현이 가능합니다. 


      여러분의 모바일 앱과 어플리케이션에 물리엔진을 장착해 보세요.


      아래는 Box2d에서 제공하는 데모 목록입니다.
      • Add Pair(stress test)
      • Apply Force
      • Body Types
      • Breakable
      • Bridge
      • Bullet Test
      • Buoyancy Controller
      • Cantilever
      • Car
      • Chain
      • Character Collision
      • Collision Filtering
      • Collision Processing
      • Compound Shapes
      • Confined
      • Continuous Test
      • Convex Hull
      • Conveyor Belt
      • Distance Test
      • Dominos
      • Dynamic Tree Test
      • Edge Shapes
      • Edge Test
      • Explosion
      • Free Rope
      • Gears
      • Graviation Controller
      • Mobile
      • Mobile Balanced
      • Motors & Limits
      • One Sided Platform
      • Pin Ball
      • Poly Shapes
      • PolyCollision
      • Prismatic
      • Pulleys
      • Pyramid
      • RayCast
      • Restitution Test
      • Revolute
      • Rope In Wind
      • Rope Joint
      • Sensor Test
      • Shape Editing
      • Slider Crank
      • Sphere Stack
      • Terrain Box
      • Theo Jansen’s Walker
      • Tiles(stress test)
      • Time of Impact
      • Time of Impact2
      • Tumbler(stress test)
      • Varying Friction
      • Varying Restitution
      • Vertical Stack
      • Web
      • Wheel Joint
      • Ping Pong (Arkanoid / Breakout)



      험프리.김현수 파이어몽키 appmethod, box2d, Delphi, Firemonkey, vcl, 소스포함, 오픈소스

      Instagram Filter 효과와 같은 앱(소스 포함)

      2014.04.09 11:21


      인스타그램 앱과 같이 사진에 다양한 필터를 적용하는 앱에 대한 소스코드가 공개되 었습니다.

      아시다 시피 파이어몽키에는 60여종의 다양한 이펙트(TEffect)가 제공(62개의 파이어몽키 이미지 효과(Effects))됩니다. 이펙트를 이용해 아주 쉽게 위와 같은 동작을 하는 앱을 만들 수 있습니다.


      간단한 구현 원리를 추가하면, 

      • 첫번째 탭에서 원본이미지에 TSelection 컴포넌트를 올리고 영역을 지정합니다.
      • 두번째 탭에서 상단의 이미지에 앞에서 선택한 영역의 이미지를 표시하고, 아래에는 다양한 효과(TEffect)가 적용된 이미지를 놓고, 이미지 선택 시 TFilterEffect.ProcessEffect 메소드를 적용합니다.
      • 세번째 탭에서는 이펙트가 적용된 이미지를 ActionList의 ShowShareSheetAction을 통해 공유 및 저장합니다.


      더 자세한 내용은 아래의 소스코드를 통해 확인하세요.



      참고링크



      험프리.김현수 파이어몽키 FMX, TEffect

      모바일 Gesture로 메뉴를 표시/감추기(소스공개)

      2014.03.27 10:54

      제스쳐(손가락 끌기)로 좌측 메뉴를 표시하고 감추는 샘플 동영상 및 코드입니다.






      관련링크



      험프리.김현수 파이어몽키 Drawer, Gesture, Menu, UI, 모바일, 소스공개

      1. Blog Icon
        관심

        궁금한게 한가지 있습니다.
        XE5로 안드로이드 앱 작업중인데.. main.pas 와 sub.pas 이렇게 두개의 창이 있는데..
        서로 데이터를 주고 받고 싶은데.. 그게 잘 않되더라구요..
        main.pas에서 fromSub.show 해서 창이 띄우고 그곳에서 작업을 해서 해당 결과를 main 창으로 가져오려고
        전역 변수도 써보고 했는데.. 그 데이터가 않들어 오더라구요..
        혹시 방법이 잘못된 것인지요.. 일반 C/S 프로그램만 개발해 봐서리.. 잘 모르겠네요..
        알려주세요.. ^^

      2. 아이디어를 2가지 드릴게요.
        1, SubForm에 이벤트를 통해 내용을 전달할 수 있습니다.
        property OnData: TNotifyEvent read FOnData write FOnData;
        서브폼에서 결과가 나오면 아래의 이벤트를 발생시키고 메인폼에서 서브폼의 public한 데이터를 참고하면 좋을 것 같네요.(너무 어렵나요?)

        2, 모바일에서는 TFrame을 사용하시면 편리합니다.

      3. TSubForm = class(TForm)
        ...
        private
        FData: TMemoryStream;
        procedure DoData;
        public
        property OnData: TNotifyEvent read FOnData write FOnData;
        property Data: TMemoryStream read FData; // 원하시는 데이터 등등...
        end;

        implimentation

        procedure TSubForm.DoData;
        begin
        if Assigned(FonData) then
        FOnData(Self);
        end;

        /////

        TMainForm = ...
        private
        procedure SubFormDataEvent(Sender: TObject);
        end;

        ///
        SubForm := TSubForm.Create(Self);
        SubForm.OnData := SubFormDataEvent;

        //
        procedure TmainForm.SubFormDataEvent(Sender: TObject);
        begin
        if SubForm.Data.Size > 0 then
        begin
        ........
        end;
        end;

        위의 답변이 너무어려워 몇자 구현코드를 추가했는데 이해되실지 모르겠네요 ...-_-; 쉽운 설명은 너무 어려워요...
        대충 흐름만 보시면 될 것 같습니다.

      4. Blog Icon
        관심

        정말 감사합니다..
        함 도전해보구.. 다른 질문 사항 있으면 다시 여쭤 볼께요..
        정말 염치가 없지만 감사합니다..

      5. TFrame을 이용한 내용 곧 포스팅 예정이니 해당 내용도 참고하시면 도움이 될것 같습니다.
        이달안에 포스팅하겠습니다.^^

      Sliding Popup menu 디자인(소스 공개)

      2014.03.27 10:51



      상단의 버튼을 누르면 슬라이드 형태로 팝업메뉴가 나오는 방식입니다. 아래의 동영상으로 자세한 내용 확인할 수 있습니다.





      관련링크



      험프리.김현수 파이어몽키 Firemonkey, Slide menu, 소스공개

      Bitmap의 Pixel에 접근(TBitmap.Map, TBitmapData)

      2014.03.27 10:31

      이 내용은 FireMonkey 관련 내용입니다.


      Bitmap에 Pixel 단위로 접근하는 방식을 소개합니다.

      Bitmap의 Map 메소드를 이용해 TBitmapData 객체를 얻어와 제어하는 방식입니다.


      아래의 링크를 참고하시면 더 자세한 정보 얻으실 수 있습니다.


      참고링크


      험프리.김현수 파이어몽키 TBitmapData Bitmap.Map

      구글맵과 3D 연동(느슨한)

      2014.03.26 10:01



      구글맵과 3D를 연동해 아주 색다르게 맵을 표현하는 데모 앱입니다.

      실제 구동하면 지도가 회전되고 그 중심에 TCone으로 현재의 위치를 표시합니다.


      샘플을 통해 아래의 내용을 확인하실 수 있습니다.

      • 위치센서로 위도와 경도를 읽는다.
      • 구글맵에서 주변 지도를 얻는다.
      • 지도에 InvertEffect효과를 주어 위의 화면과 같이 표현한다.
      • 위의 작업은 AnonymousThread로 처리한다.
      • 기타 3D layer 구성과 FloatAnimation을 이용한 회전


      참고링크



      험프리.김현수 파이어몽키

      메신저 형태의 대화상자 표시

      2014.03.26 09:34


      메신저 형태의 대화를 표시하는 방법을 소개합니다.


      TVertScrollBox 위에 TCalloutRectangle을 올리고, TText와 TImage로 표현했는데요.

      더 다양한 컨트롤들로 확장할 수 있을 것 같습니다.


      참고하셔서 더 멋진 UI를 구성하시기 바랍니다.


      http://www.fmxexpress.com/build-a-messenger-layout-like-whatsapp-using-delphi-xe5-firemonkey-on-android-and-ios/

      험프리.김현수 파이어몽키

      MP4 Tag Library(Win32/64, OSX, iOS, Android 사용가능)

      2014.03.13 09:23


      http://www.3delite.hu/Object%20Pascal%20Developer%20Resources/download.html#mp4taglibrary

      험프리.김현수 파이어몽키 Delphi, Firemonkey, 파이어몽키

      무선으로 안드로이드 앱 디버깅 하기(RAD Studio XE5)

      2014.03.10 09:52


      안드로이드 앱 개발 시 매번 USB 케이블을 꽂고 디버깅하는 것이 아니라 WIFI환경의 무선인터넷으로 안드로이드 앱을 테스트, 디버깅하는 방법을 소개합니다.

      두개의 블로그 포스팅에서 내용을 확인할 수 있습니다.


      http://delphi.org/2013/10/wireless-android-debugging-with-delphi-xe5/


      http://blog.devart.com/remote-debug-of-android-application-in-rad-studio-xe5-via-wifi.html

      험프리.김현수 파이어몽키 android, Firemonkey, Wifi ADB, XE5

      Flappy Firemonkey 게임앱 소개(소스 공개)

      2014.03.06 11:15


      Flappy bird와 비슷한 게임인 Flappy firemonkey라는 게임이 파이어몽키로 만들어 졌습니다.

      아주 간단하면서도 중독성 있는 게임이죠^^ 


      현재는 TBitmap에 Assigned하는 방식으로 캐릭터를 구현했구요. 향후 TSprite 컴포넌트나 TBitmapListAnimation에 변경할 계획을 갖고 있다고 합니다.

      화면을 탭하면 뛰어오르고 서서히 기울어지며 떨어지는 캐릭터를 어떻게 구현했는지 공개된 소스를 통해 확인하면 좋을 것 같습니다.

      관련 링크



      험프리.김현수 파이어몽키 Firemonkey, Flappy Fiiremonkey, 소스공개, 파이어몽킹

      안드로이드 셋팅값 셋팅하기

      2014.03.04 18:01


      안드로이드의 설정값을 델파이 코드로 설정하는 방법을 안내해 줍니다.

      샘플로 절전모드(자동 화면꺼짐)을 제어하는 부분을 설명합니다.


      http://delphi.org/2014/03/setting-android-settings/

      험프리.김현수 파이어몽키 Firemonkey, 안드로이드 설정, 파이어몽키

      1. Blog Icon

        비밀댓글입니다

      앱의 화면모드(가로, 세로) 지정하기

      2014.02.27 16:03

      앱의 가로모드, 세로모드를 고정하는 방법은 프로젝트 옵션에서 설정 가능합니다.


      가로만, 세로만 지원하기 위해서는 아래와 같이 Custom orientation 항목을 설정해 주세요.

      • Project > Options > Application > Orientation


       모드

       반영내용 

       Portrait

      세로모드 고정 

       Upside down

      세로모드 고정(거꾸로: 홈버튼이 위에)

       Landscape home right

      가로모드 고정(홈버튼이 오른쪽에)

       Landscape home left

      가로모드 고정(홈버튼이 왼쪽ㅇ)



      험프리.김현수 파이어몽키

      Sheet Animation 컴포넌트(움직이는 캐릭터 컴포넌트) 소개

      2014.02.27 13:04

      안녕하세요. 험프리.김현수입니다. 


      오늘은 필요할듯 말듯한 캐릭터 애니메이션 컴포넌트 하나  소개합니다. 


      TSprite라는 컴포넌트인데요. 오른쪽처럼 사용됩니다.

      동작원리는 한장의 이미지에서 영역을 이동하며 화면에 출력하는 방식입니다.


      일반적으로 캐릭터 애니메이션이 게임같은 곳에서 많이 사용되는데요. 제가 생각하기론 앱의 기능을 소개하는 부분이나 움직이는 이모티콘 등에 활용한다면 앱의 완성도를 높이고, 풍부한 기능구현이 가능 할 것 같습니다.


      오른쪽의 데모는 소스코드에 포함된 데모이구요. 뒤집기, 회전, 반전, 반복등의 기능을 자체 제공하고 있습니다.


      아래와 같은 이미지가 순차적으로 표시됩니다.



      컴포넌트를 다운로드 받으면 소스가 포함되어 있어 어떤식으로 구현되어 있는지 확인하실 수 있어 도움이 되실 것 같습니다.


      설치안내

      컴포넌트 설치 후 사용 시 몇가지 이슈가 있어 설치 및 대처방안을 남깁니다.


      설치방법

      1. 아래에서 컴포넌트 다운로드 후 좋은(컴포넌트를 모아두는) 디렉토리로 이동합니다.(델파이에 경로 지정이 필요)
      2. source 디렉토리에서 FireBlaze.dpk를 열고 설치합니다.(프로젝트 메니저에서 Install 하면 됩니다.)
      3. 델파이에서 Tool > Options > Environment Options > Delphi Options > Library > Library path에 위의 source 경로를 추가합니다.
      설치시 오류대응


      만약 위와 같은 오류가 실행 시 발생하는 경우 아래의 단계를 진행하세요.

      1. FBSprite.pas 파일 오픈
      2. TSprite의 published 영역에 아래의 코드 추가
         property Position;
         property Width;
         property Height;


      다운로드


      참고링크



      험프리.김현수 파이어몽키 Animation, Firemonkey, FMX, 컴포넌트, 파이어몽키

      1. Blog Icon

        비밀댓글입니다

      안드로이드와 iOS 연락처 목록을 얻어오는 방법

      2014.02.27 10:19

      모바일 기기의 연락처 정보가 필요한 경우 유용한 팁이 될 것 같습니다.

      각 플랫폼의 네이티브 API를 이용해 연락처의 이름, 전화번호, 이메일등의 정보를 얻어올 수 있습니다.

      연락처 목록 조회

      ▶ 안드로이드

      ▶ iOS



      험프리.김현수 파이어몽키 android, contacts, Firemonkey, ios, 연락처조회

      1. Blog Icon
        김근배

        안녕하세요.
        너무 죄송하지만 혼자 하려다 보니 막막하기만 하네요
        스마트폰의 contact2.db 화일을 얻었습니다. 스마트폰의 연락처 이지요.
        이 db화일을 다시 다른 스마트폰으로 contacts 방으로 옴기려는데 permission denied 문제네요.쓰기 변경을 하고 옴기는 게 맞죠. 그런데 변경 하려면 방법을 모르네요
        그리고 옴기는 명령을 (pull,push, cp)여러가지 찾아 보앗지만 혼자 해결하기가 어려워서요 도움을 청해봅니다.
        도와 주실수 있으시죠.
        부탁 드리겠습니다.
        e-mail : gracekgb@naver.com
        수고하세요

      2. 다음 글을 참고해보세요. 저도 구체적인 연락처DB를 다루는 방법은 잘모르겠습니다.^^
        http://cranix.net/351

      Tap-Tap 안드로이드 게임(소스공개)

      2014.02.25 12:02

      Delphi XE5로 개발된 Tap-Tap이라는 게임을 소개합니다. 손을 흔드는 귀여운 안드로이드 캐릭터(드로이드?)가 인상적인데요^^

      이 게임은 러시아에서 개최된 2013년도 델파이 안드로이드 경연대회 우승하신 분의 작품입니다.


      아래 보시는 것 처럼 대회용 작품이어서 약간은 급조한 태가 나지만, 초기 인트로 영상효과 및 드로이드의 애니메이션 효과가 너무나 멋지네요.


      저도 간단하게 소스코드를 확인해 봤는데요. 드로이드의 애니메이션 효과는 대부분 TRectangle에 FloatAnimation 효과를 줘서 처리한것이 참 인상적이네요.

      소스코드가 공개되어 있어 다운로드하셔서 테스트 가능합니다.(관련링크 참조)


      여러모로 소스를 분석해 보시면 많은 아이디어와 도움이 될 것 같습니다.


      구글플레이에서도 설치하셔서 테스트 해볼 수 있습니다.


      관련링크



      험프리.김현수 파이어몽키 android, Firemonkey, taptap, 소스공개