Search results for '파이어몽키'

  1. 2014.10.10 -- 엠바카데로 제공 프리미엄 스타일 팩 사용(VCL / FMX) (2)
  2. 2014.10.06 -- 8단계로 완성하는 "2014년 출시 앨범" 앱 개발 따라하기
  3. 2014.10.01 -- REST Debugger 활용 팁(Copy Components)
  4. 2014.09.23 -- IoT와 RAD Studio(Bluetooth 이용)
  5. 2014.09.22 -- XE7으로 연동한 모토로라 모토360 (1)
  6. 2014.09.22 -- 병렬(패러럴) 컴퓨팅 라이브러리 소개
  7. 2014.09.17 -- iOS 개발환경에서 OpenSSL 라이브러리 설치 방법
  8. 2014.09.17 -- 멀티 디바이스 디자이너 소개
  9. 2014.09.17 -- 다양한 형태로 표시되는 적응형 컴포넌트 TMultiView 소개
  10. 2014.09.15 -- 멀티 디바이스 디자이너에 사용자 정의 View를 추가하기 (1)
  11. 2014.09.12 -- "Could not load SSL library." 오류 대응(XE7: BaaS, RESTClient, DataSnap)
  12. 2014.09.12 -- [NFC] 안드로이드에서 NFC 연동 방법
  13. 2014.08.26 -- 공백을 포함한 앱의 이름 설정하는 방법(iOS, 안드로이드)
  14. 2014.08.26 -- [REST Client] RESTRequest 비동기 호출방법
  15. 2014.08.24 -- RAD Studio 안드로이드 배포 시 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
  16. 2014.08.20 -- REST Client 컴포넌트 - 마블(Marvel) 개발자 API 사용
  17. 2014.08.13 -- 시스템정보 확인, 캔버스 벤치마킹 용 앱 소개(Win, OSX, iOS, Android)(소스공개)
  18. 2014.08.13 -- 15개 퍼즐 조각을 이동해 숫자를 맞추는 퍼즐게임(소스 공개)
  19. 2014.07.24 -- [BaaS] 데스크탑(VCL) 어플리케이션에서 특정 유저에게 GCM/APN 전송하기
  20. 2014.07.24 -- Kinvey(BaaS)에서 Business Logic 디버깅(테스트, 로깅) 하기 (2)

엠바카데로 제공 프리미엄 스타일 팩 사용(VCL / FMX)

2014.10.10 13:09

프리미엄 스타일 팩 사용방법

스타일은 어플리케이션 외관을 가장쉽게 유려하게 외관을 바꾸고 외관을 일관되게 유지할 수 있는 기술입니다. 

RAD Studio에는 기본으로 제공되는 스타일(VCL: 34가지, FMX: 22가지)외에도 더 프리미엄한 스타일을 구성할 수 있는 프리미엄 스타일 팩을 엠바카데로에서 제공합니다.

RAD Studio 구입 시 2 종류(VCL/파이어몽키)의 프리미엄 스타일 팩을 다운로드 후 사용할 수 있습니다.

❑ 다운로드

프리미엄 스타일 팩은 엠바카데로 EDN(embarcadero developer network) 사이트의 등록된 제품 다운로드 페이지에서 다운로드 가능합니다. (해당 페이지는 스타일 팩 뿐 아니라 프로모션 시 제공받는 다양한 툴들도 다운로드 받을 수 있습니다. ☞ 프로모션 보기)

❑ VCL 프리미엄 스타일 팩 사용하기

VCL 스타일은 어플리케이션의 외관을 일관되게 변경하는 가장 쉽고 유용한 방법입니다.
50여 종의 스타일을 기본 제공하고 별도의 프리미엄 스타일을 5개 추가 제공합니다.

    스타일 경로에 스타일 파일 복사

    • 다운로드 한 VCL 프리미엄 스타일 팩의 압축을 해제하면 총 5가지의 VSF(*.vsf) 파일이 있습니다.
    • VSF 파일을 VCL 스타일 경로로 복사합니다.
      • XE7기준 - C:\Users\Public\Documents\Embarcadero\Studio\15.0\Styles

      VCL 스타일 사용하기

      • RAD Studio에서 VCL Form Application 프로젝트를 열고 프로젝트 옵션(Project > Options) 호출
      • Application > Appearance 메뉴를 선택합니다.(Custom styles 항목에는 앞에서 추가한 Coral, Emerald 등의 스타일을 확인할 수 있습니다.)
      • 사용할 스타일을 선택 후 [Preview] 버튼으로 미리보기 후, 사용할 스타일의 체크박스를 선택합니다.
      • 아래 Default style에서 기본으로 사용할 스타일을 선택 후 [OK] 버튼을 누릅니다.

      VCL 스타일이 적용된 모습

      기본 데모 중 MastApp으로 스타일을 적용한 모습(C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Database\IBX\IBMastApp)


      Coral

      Emerald

      Diamond


      ❑ 파이어몽키(FMX) 프리미엄 스타일팩 사용하기

      FMX 스타일

      • 파이어몽키 스타일 파일(*.style)은 별도의 경로에 복사하지 않아도 됩니다.(다운로드 후 편리한 경로에 압축해제 후 사용합니다.)

      • 파이어몽키 스타일은 플랫폼별로 다양하게 제공됩니다.

        FMX 스타일 사용하기

        파이어몽키 스타일은 스타일북(TStyleBook) 컴포넌트를 이용해 스타일을 사용할 수 있습니다. 

        • RAD Studio에서 Multi-Device Application 프로젝트를 열고 폼위에 TStyleBook 컴포넌트 추가
        • 폼이 스타일북을 이용할 수 있도록 StyleBook 속성을 변경 후 StyleBook 컴포넌트를 더블 클릭해 스타일 디자이너 표시
        • 스타일 디자이너에서 [Load] 버튼을 누르고 앞에서 다운로드 한 스타일 파일을 선택하고, [Apply and Close] 선택
        • 플랫폼 별 스타일을 적용하려한다면 플랫폼 뷰를 추가하고 플랫폼에 맞는 스타일 파일 선택

        파이어몽키 스타일이 적용된 모습


        AndroidCoralCrystal.style

        AndroidEmeraldCrystal.style

        AndroidDiamond.style


        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 Rad Studio, style

        1. Blog Icon
          김주일

          프리미엄 스타일팩 엠바카데로 사이트 어느 메뉴에 있나요 ?

        2. 정식버전 구입 시 http://cc.embarcadero.com/myreg 으로 접속하면 목록에 나옵니다.

        8단계로 완성하는 "2014년 출시 앨범" 앱 개발 따라하기

        2014.10.06 15:39

        음원정보 제공 웹사이트(DiscoGS)의 정책 상 인증과정(OAuth 2.0)이 추가되어 부득이 아래 글을 따라할 수 없습니다. 

        하지만 아래 과정을 통해 웹서비스 연동하는 방안을 이해하는데 도움될 것입니다.


        이번 글에서는 올해(2014년도)에 출시된 앨범 목록과 앨범 수록곡을 확인할 수 있는 "2014년 출시 앨범" 앱을 8단계를 따라하며 만들어 보겠습니다.

        "2014년 출시 앨범" 앱 개발 따라하기

        ❑ 앱 소개

        • 2014년(올해) 출시된 앨범 목록 정보 제공
        • 앨범 선택 시 앨범정보와 수록곡 정보 제공
        • 앨범정보는 음반정보 제공 사이트 DiscoGS의 공개 API(http://api.dicogs.com) 이용

        따라하기를 통한 습득할 수 있는 기술
        • REST 클라이언트 라이브러리를 이용해 정보 조회
        • REST Debugger 개발도구를 이용해 REST API 분석 후 컴포넌트 재사용
        • Live Binding을 이용해 데이터와 화면 컨트롤 링크(마우스 연결)로 화면 출력
        • 투명도를 이용해 배경화면 설정
        따라하기는 Delphi XE7을 기준으로 작성되었습니다.

        따라하기

        1, 프로젝트 생성

        File > New > Multi-Device Application – Delphi 메뉴선택하여 Blank Application 선택해 프로젝트를 생성합니다.

        File > Save all 메뉴를 선택하고, 유닛이름은 기본(Unit1.pas)로 프로젝트 이름은 "music2014.dproj"로 저장합니다.

        2, 화면 레이아웃 구성

        아래의 그림과 표를 참고해 화면에 컴포넌트를 추가하고 레이아웃을 구성합니다.


         상위 오브젝트

        오브젝트 

        속성 

        값(또는 설명) 

         Form1

         MultiView1

         Visible

         True 

         Form1

         Layout1 

         Align

         Client 

         MultiView1

         MasterToolBar

         Align

         Top 

         MasterToolBar

         MasterLabel

         Align

         Client 

         StyleLookup

         toollabel

         Text

         2014년 출시 앨범

         TextSettings.HorzAlign

         Center

         MultiView1

         ListView1 

         Align 

         Client 

         CanSwipeDelete False
         Layout1

         DetailToolbar 

         Align 

         Top 

         DetailToolbar

         DetailLabel

         Align Contents
         StyleLookup toollabel 

         Text

         앨범정보
         MasterButton Align Left 

         StyleLookup

         detailstoolbutton 
         Layout1 ListBox1  Align  Top 
         Height 153 
         ListBox1

         ListBoxGroupHeader1 

         Text  앨범정보 

         ListBoxItem1

         Text 앨범명
         StyleLookup listboxitemrightdetail

         ListBoxItem2

         Text

         출시년도

         StyleLookup

         listboxitemrightdetail

         ListBoxGroupHeader2

         Text 수록곡
         Layout1 ListView1  Align  Client 
         CanSwipeDelete  False 
         ItemAppearance.ItemAppearance ListItemRightDetail 

         ItemAppearanceObject.

         ItemObject.Accessory.Visible

         False 

        3, 웹서비스 데이터 분석

        웹서비스 API 분석은 RAD Studio에서 제공하는 REST 분석도구인 REST Debugger를 이용합니다.

        Tools > REST Debugger 메뉴로 REST Debugger를 실행하고 다음 순서대로 작업합니다.

        1. Request 탭에서 "http://api.discogs.com"  입력
        2. Parameters 탭에서 Resource 박스에 다음 내용 입력 [Send Request] 버튼 클릭
          • database/search?type=release&per_page=20&country={country}&year={year}
        3. Request Parameters 수정(항목 더블클릭 또는 선택 후 [Edit] 버튼 클릭)
          • country=South Korea
          • year=2014
        4. JSON Root Element 항목에 results 입력 [Apply] 버튼 클릭
        5. 하단 Tabular Data 탭에서 데이터 확인 [Copy Components] 버튼으로 컴포넌트 클립보드에 복사

        4, REST 클라이언트 컴포넌트 추가

        폼디자이너 화면으로 돌아와서 클립보드에 복사된 컴포넌트 붙여넣기(Ctrl-V)로 컴포넌트를 생성합니다.

        수록곡 정보 표시용 컴포넌트 추가를 위해 3번과 같은 방법으로 다음 정보를 참고해 한 세트를 더 생성합니다.

          1. Parameters 탭에서 Resource 박스에 다음 내용 입력  [Send Request] 버튼 클릭
            • releases/{_id}
          2. [Edit] 버튼으로 Request Parameters 수정
            • _id : 5583330
          3. JSON Root Element 항목에 tracklist 입력  [Apply] 버튼클릭
          4. 데이터 로딩 확인  [Copy Components] 버튼으로 Components 클립보드에 복사 후 폼디자이너에서 컴포넌트 붙여넣기


        2개의 RESTRequest 컴포넌트를 더블클릭 하거나 마우스 우클릭 메뉴의 Execute를 이용해 요청을 확인합니다.

        5, Live Binding 데이터 연결

        View > LiveBindings Designer 메뉴를 실행하여 그림과 같이 FDMemTable 항목과 ListView ListBox 항목에 마우스 드래그로 데이터를 연결합니다.

        ListBoxItem의 ItemData.Detail을 표시하기 위해 ListBoxItem 영역의 [...] 버튼을 누르고 detail로 검색 후 멤버를 추가 후 진행할 수 있습니다.

        6, 데이터 요청 구현

        Live Binding 정상적으로 연결 되었으면 그림과 같이 데이터를 불러 있습니다.


        실행 시 데이터를 로드하고 앨범 선택 시 수록곡 정보를 가져오는 코드를 아래와 같이 추가합니다.

        오브젝트 

        이벤트 

        소스코드 

         Form1

        OnShow 

         RESTRequest1.Execute; 

         RESTRequest2.Params.ParameterByName('_id').Value := 

                                                              FDMemTable1.FieldValues['id']; 

         RESTRequest2.Execute; 

         MultiView1.ShowMaster; // 시작 시 메뉴 표시

         ListView1

        OnItemClick 

         MultiView1.HideMaster;

         RESTRequest2.Params.ParameterByName('_id').Value := 

                                                              FDMemTable1.FieldValues['id'];

         RESTRequest2.Execute;

        7, 앱 배경화면 꾸미기

        배경화면을 꾸미기 위해 메인화면(Layout1)에 Rectangle 컴포넌트를 추가하도록 아래의 표를 참고해 구성합니다.



         상위 오브젝트

        오브젝트 

        속성 

        값(또는 설명) 

         Layout1

         Rectangle1

         Align Contents
         Fill.Kind Bitmap 
         Fill.Bitmap.Bitmap

         아래 이미지 파일을 다운로드 후 선택

         


         Fill.Bitmap.WrapMode

         TileStretch 

         Hittest

         False 

         Opacity

         0.3


        8, 배포

        모든 개발이 완료되었습니다. 프로젝트 매니저에서 Target Platform을 선택 후 Run > Run Without Debugging 메뉴를 선택 해 앱을 실행 해 결과 화면을 확인합니다.


        ❑ 프로젝트 소스코드

        관련글



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 Delphi XE7, discogs, Rest Client, RESTful

        REST Debugger 활용 팁(Copy Components)

        2014.10.01 09:46

        이전에 RESTful 웹사이트 분석에 유용한 REST Debugger 소개하는 글을 남겼습니다.

        XE7 버전에 포함된 REST Debugger에 추가된 기능을 추가로 소개합니다.


        이번에 소개할 내용은 [Copy Components] 입니다.

        (RAD Studio XE7에서는 IDE 메인메뉴에서 Tools > REST Debugger 메뉴를 통해 실행할 수 있습니다.)

        ❑ Copy Components 버튼

        이전의 레스트 디버거의 경우 웹 서비스 API 분석에 아주 유용했지만, 분석한 내용을 구현하기 위해서는 개발 시 분석한 내용을 일일히 컴포넌트 추가후 값을 설정하는 작업이 필요했습니다.

        하지만, 이번에 추가된 Copy Components를 이용하면 위의 반복되는 작업 없이 레스트 디버거에서 분석한 내용을 그대로 개발 시 사용할 수 있습니다.


        이제 아래와 같은 프로세스로 웹서비스 연동 앱을 쉽고 빠르게 개발할 수 있습니다.


        1, 레스트 디버거(REST Debugger)로 웹서비스 분석

        저는 이전 글과 같이 api.discogs.com의 rest api를 분석했습니다.


        2, Copy Components로 REST Client 컴포넌트 복사

        컴포넌트 복사 이전에 하단의 Response 영역에서 JSON Root Elements에 사용할 요소를 선택 후 Apply 버튼으로 적용 후 Tabular Data 그리드에 목록이 표시되는 상태에서 복사하시기 바랍니다.


        3, 개발 폼(또는 데이터모듈)에 복 사 후 UI 연결

        델파이(또는 C++빌더)의 폼에 Ctrl + V로 붙여넣기 하면 아래와 같이 5개의 컴포넌트가 복사됩니다.(저는 보기 좋게 정리했습니다.)

        RESTRequest를 더블클릭해 새로운 데이터 요청 후 라이브 바인딩 기술 등을 이용해 UI 컨트롤과 데이터를 연결해 사용하면 손쉽게 웹서비스와 연결할 수 있습니다.



        Tip. 데이터가 없을 경우 RESTful 데이터 요청

        REST Debugger의 Copy Components로 컴포넌트 복사 직후 또는 프로젝트를 연 직후에는 데이터가 없는 상태로 표시됩니다.

        이때에는 RESTRequest 컴포넌트를 통해 웹서비스에 데이터 요청을 하면 수신데이터를 받아 데이터 셋에 표시됩니다.

        요청하는 방식은 

        1, RESTRequest 컴포넌트를 더블클릭 해 요청합니다.

        2, RESTRequest 컴포넌트 우측 마우스 팝업메뉴의  Execute... 버튼을 누릅니다.

        3, RESTRequest 컴포넌트 선택 후 Object Inspector 하단의 Execute 버튼을 누릅니다.


        관련글



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        IoT와 RAD Studio(Bluetooth 이용)

        2014.09.23 16:16


        사물인터넷, 세상의 모든 것과 연결하다는 의미입니다. 최근 다양한 스마트 장비와 센서들이 다양하게 나오고 서로 연결하며 모든 것을 연결하는 시대로 가고 있습니다.


        이번 글에서는 RAD Studio에서 세상이 모든 것과 연결 하는 방법에 대해 알아 보겠습니다.


        그전에 몇가지 사례에 대해 알아봅니다.


        <사례 1>

        최근 MIT 대학에서는 화장실에 센서를 달고 화장실 사용 정보를 기숙사의 학생들에게 제공하는 시도가 있었습니다.

        이 시도가 꽤 학생들에게 반응이 좋았습니다. 그 이후 해당 대학에서는 세탁실의 세탁기와 건조기에도 센서를 달아 언제 현재 세탁이 가능한지 언제 세탁기를 사용할 수 있는지에 대한 정보를 학생들에게 제공하는 프로젝트를 추가 진행했다고 합니다.


        <사례 2>

        국내의 스마트 양식장 사례입니다. 민물장어를 키우는 양식장에 수온, 용존산소량등의 센서를 달고 모니터링해 성공한 사례입니다. 민물장어는 환경에 대단히 민감해 그 전까지는 직원들이 2~6시간 간격으로 수십~수백개의 수조를 일일히 점검했습니다.

        이 과정을 센서를 통한 모니터링 시스템을 구축한 결과 PC와 스마트폰으로 손쉽게 모니터링 및 위급시 빠르게 대처할 수 있어 폐사율도 낮추고 직원의 수고도 줄이며 금전적으로 큰 이익을 본 사례로 소개되었습니다.


        위 사례 뿐 아니라 우리 삼과 연결되 사례가 많습니다.

        대표적으로 시계, 안경 등의 웨어러블 디바이스를 통한 방법과 신발, 칫솔, 기저귀, 팔찌, 심장박동기 등을 통해 건강정보를 수집해 더 쾌적한 삶을 살 수 있도록 도움을 주는 다양한 시도가 진행되고 있습니다.


        RAD Studio도 이러한 시대의 흐름에 맞춰 다양한 플랫폼은 물론, 사물인터넷을 위한 기능을 추가하고 있습니다.


        RAD Studio와 IoT(블루투스)

        오늘은 최근 출시된 RAD Studio XE7에 추가된 사물인터넷 기능 중 Bluetooth 기능에 대해 소개합니다.

        ❑ 블루투스

        RAD Studio에서는 아래와 같은 방식으로 블루투스를 지원하고 있습니다.

        • Bluetooth LE 컴포넌트
        • Bluetooth LE 라이브러리
        • Classic bluetooth 라이브러리
        • Bluetooth를 이용한 앱 테더링


        플랫폼 별 기능 지원 버전

        ❑ 블루투스 참고 문서



        ❑ 블루투스 샘플

        RAD Studio XE7 설치 사용자 기준

        [C++ 빌더]
        • C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\Mobile Samples\Device Sensors and Services\Bluetooth 
        • C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\RTL\Tethering 
        [델파이(Object Pascal)]
        • C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Mobile Samples\Device Sensors and Services\Bluetooth 
        • C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\RTL\Tethering

        온라인


        참고글



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        XE7으로 연동한 모토로라 모토360

        2014.09.22 10:29

        엠바카데로 에반젤리스트 팀장인 짐 매키트(Jim McKeeth)가 이번에는 모토로라 모토 360과 연동을 시도해 봤습니다.

        모토 360은 아주 멋진 디자인으로 많은 분들의 관심을 받았는데요. 


        아래와 같이 델파이 IDE에 있는 모습이 아주 멋집니다.

        IDE에서 모토360 개발을 위해서는 멀티 디바이스 디자이너커스텀 뷰를 추가하면 가능합니다.


        자세한 내용은 짐 매키트의 글을 통해 확인해 주세요.



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 XE7, 모토 360

        1. https://github.com/jimmckeeth/FireUI-Devices
          위 깃허브 소스를 통해 모토360과 갤럭시 기어 뷰를 추가하는 패키지를 다운로드 받을 수 있습니다.
          설치 방법은 ReadMe.txt파일과 http://delphi.org/2014/09/hello-moto-360-from-delphi-xe7/를 참고하세요.

        병렬(패러럴) 컴퓨팅 라이브러리 소개

        2014.09.22 10:09

        최근들어 PC는 물론이고 스마트폰에서도 멀티코어 CPU를 이용해 성능을 극대화 시키고 있습니다. RAD Studio는 XE7에서 이러한 멀티코어 CPU를 최대한 활용할 수 있는 패러럴 컴퓨팅 라이브러리를 추가해 멀티코어 CPU를 최대한 활용할 수 있도록 지원하고 있습니다.


        패러럴 컴퓨팅 라이브러리에 대해 알아봅니다.

        병렬(패러럴) 컴퓨팅 러이브러리

        패러럴 컴퓨팅 라이브러리(Parallel Computing Library)란?

        • 멀티코어 CPU를 이용해 최적의 성능을 낼 수 있도록 다수의 CPU에서 병렬(패러럴)로 작업
        • 비동기 연산작업에 사용되어 멀티코어 컴퓨터와 장비 최대한 활용 가능 
        • 기존 코드에 손쉽게 통합하도록 라이브러리 형태로 지원 
        • VCL과 FMX, 델파이와 C++빌더에서 모두 사용 가능


        패러럴 라이브러리를 이용해 고성능이 필요한 작업을 병렬로 처리해 최적의 성능을 발휘하는 코드로 변경할 수 있습니다.

        ❑ 참고자료

        동영상

        패러럴 라이브러리 관련 글

        ❑ 샘플코드

        RAD Studio XE7의 샘플경로에 위의 동영상에서 진행된 "Conways Game of Life"샘플코드가 포함되어 있습니다.

        샘플경로

        • Delphi : C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\RTL\Parallel Library
        • C++ : C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\RTL\Parallel Library


        샘플을 테스트 방법
        1. 샘플 프로젝트 컴파일 및 실행
        2. [Load] 버튼으로 "*.LIF" 파일 선택
        3. [Re-center] 버튼으로 중앙으로 이동(변경을 확인할 수 있도록)
        4. [Start] 버튼으로 실행
        5. Parallel 체크박스로 패러럴이 적용된 성능과 적용되지 않은 성능 비교

        인터넷 상에서는 아래의 경로를 통해 샘플코드 확인 할 수 있습니다.


        ❑ 마무리

        패러럴 라이브러리는 델파이(Object Pascal)과 C++ 빌더를 사용해 VCL과 FMX(멀티 디바이스) 모두에서 병렬 프로그램을 지원하고, 윈도우, 맥, 안드로이드, iOS에서 사용할 수 있습니다.

        단, 무분별하게 사용하면 다른 프로세스에 영향을 주거나 배터리 소모가 빠를 수 있으니 필요한 곳에 적절히 사용하시기 바랍니다.

        관련글



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 XE7, 페러럴

        iOS 개발환경에서 OpenSSL 라이브러리 설치 방법

        2014.09.17 14:04

        RAD Studio에서는 BaaS 클라이언트 컴포넌트와 DataSnap에서 HTTPS를 사용할 경우 OpenSSL을 사용하고 있습니다.


        iOS 클라이언트 앱을 컴파일 시 아래와 같은 메시지가 나오는 경우 대처방법입니다.


        E2597 ld: file not found: libcrypto.a


        ❑ 대처방법

        라이브러리 다운로드

        OpenSSL 라이브러리를 다운로드 받습니다.


        제일 하단의 OpenSSLStaticLibs.7z 파일(2014년 9월 현재)


        라이브러리 설치(복사)

        라이브러리를 적당한 곳에 압축해제 후 오류가 난 프로젝트 경로(*.dpr 파일이 있는 경로)에 복사합니다.


        다시 컴파일 및 실행하면 해당 오류가 발생하지 않습니다.


        참고: 

        델파이 라이브러리 경로에 복사하면 프로젝트 마다 복사하지 않아도 됩니다.


        라이브러리 패스를 확인하려면 Tools > Options > Environment Options > Delphi Options > Library에서 확인



        XE7 기준: "C:\Program Files (x86)\Embarcadero\Studio\15.0\lib\iosDevice\release"

        참고로 디버그 모드에서도 Release를 참고합니다.



        참고



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        멀티 디바이스 디자이너 소개

        2014.09.17 10:23

        최근 다양한 스마트 기기가 속속 등장하고 있습니다.


        안드로이드폰의 다양성은 수많은 제조사의 숫자가 대변하구요. 아이폰의 경우도 전통적인 작은화면(3.5인치, 4인치)의 벗어나 이제 큰화면(4.7인치, 5.5인치) 출시되고 있습니다. 그뿐아니라 다양한 웨어러블 디바이스와 태블릿은 또 스마트폰과 다른 화면과 스타일을 갖습니다.


        이렇듯 다양한 스마트기기의 종류만큼 다양한 화면크기와 스타일도 제각각입니다.

        이런 디바이스의 특성에 맞는 화면과 스타일을 맞추는 것은 멀티 플랫폼 제품을 만드는 개발자와 디자이너에게 매우 큰 고민일 것입니다.


        이러한 고민을 RAD Studio에서 풀어나가기 위해 "멀티 디바이스 디자이너"라는 새로운 컨셉의 개발화면이 추가되었습니다.

        멀티 디바이스 디자이너는 RAD Studio XE7(Delphi XE7, C++Builder XE7)에 추가된 기능입니다.

        멀티 디바이스 디자이너



        멀티 디바이스 디자이너는 디바이스 별로 상이한 화면크기와 스타일을 각각의 디바이스에 맞도록 화면 구성하기 위한 새로운 화면 디자인 기술입니다.


        안드로이드 4인치의 레이아웃과 7인치의 레이아웃을 각각 다르게 구성할 수 있고, 아이폰의 화면도 그와 다르게 구성할 수 있도록 해줍니다.


        멀티 디바이스 디자이너는 "마스터 뷰"와 "디바이스 뷰" 개념이 적용되어, 클래스와 같이 화면을 상속받아 개발하는 컨셉입니다. 마스터 뷰에서 기본적이고 공통적인 화면을 구성하고 각각의 디바이스 뷰를 추가해 디바이스에 최적화된 화면으로 변경할 수 있습니다.

        마스터 뷰의 컨트롤과 레이아웃은 디바이스 뷰에서 상속받기 때문에 다양한 디바이스 뷰는 같은 레이아웃에서 시작하고, 디바이스 뷰에서 레이아웃을 변경하면 변경된 부분만 디바이스 뷰에 적용됩니다.

        ❑ 마스터뷰와 디바이스뷰

        마스터 뷰

        마스터 뷰에 Button과 StyleBook을 올려놓았습니다. 버튼의 텍스트도 변경했습니다.

        컴포넌트와 컴포넌트의 속성은 모두 디바이스뷰에 상속됩니다.

        이후 안드로이드와 iOS에서 버튼의 위치와 스타일을 각각의 디바이스에 맞게 변경합니다.

        안드로이드 4"(디바이스 뷰)

        iPhone 4"(디바이스 뷰)


        ❑ 디바이스 별 화면을 하나의 소스코드로 제어

        위와 같이 디바이스 별로 화면을 구성하면 아래와 같이 마스터 뷰와 디바이스 뷰 별 폼파일(*.fmx)이 생성됩니다.



        그리고 컴파일 및 빌드 시 선택한 플랫폼에 맞는 폼파일을 이용해 앱이 만들어지기 때문에 플랫폼과 디바이스에 맞는 화면의 앱을 제작할 수 있습니다.

        마무리

        이제는 클래스 뿐 아니라 화면디자인까지 상속받아 개발할 수 있습니다.

        새로운 멀티 디바이스 디자이너를 이용해 다양한 디바이스에 맞는 화면을 제공해 보시기 바랍니다.


        RAD Studio(델파이, C++빌더)란?

        Embarcadero® RAD Studio는 윈도우, 맥, iOS, 안드로이드, 웨어러블 앱을 한번에 개발하고 다양한 기기들과 각종 센서를 서로연결하는 애플리케이션을 매우 빠르게 개발할 수 있는 완벽한 소프트웨어 개발 도구입니다. (자세히)

        관련글



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        다양한 형태로 표시되는 적응형 컴포넌트 TMultiView 소개

        2014.09.17 09:51

        이번 글에서는 XE7에서 새로 추가된 멀티뷰(TMultiView) 컴포넌트에 대해 간단히 살펴봅니다.

        멀티뷰(TMultiView)


        멀티뷰는 하나의 컴포넌트가 4개의 다양한 형태로 표시할 수 있는 적응형 컴포넌트입니다.

        "Mode" 속성을 변경해 원하는 표시방식을 직접 설정할 수 있지만 PlatformBehaviour 속성을 선택하면 플랫폼과 디바이스의 화면 해상도에 따라 적절한 표시방식으로 자동으로 화면에 표시됩니다.



        표시방식은 아래와 같습니다.

        TMultiView.ModeMaster Pane Presentation
        DrawerDrawer (Push/Overlap)
        PanelDocked panel
        PlatformBehaviour(see the following table)
        PopoverPopup menu
        CustomFor details, see the Custom Mode subsection.


        멀티뷰는 RAD Studio XE7(Delphi XE7, C++Builder XE7)에 추가된 기능입니다.

        참고자료




        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        멀티 디바이스 디자이너에 사용자 정의 View를 추가하기

        2014.09.15 11:16

        RAD Studio XE7에는 플랫폼과 디바이스의 폼팩터 별로 최적화된 화면을 구성할 수 있는 멀티 디바이스 디자이너 기술이 추가되었습니다.


        이제는 스마트폰의 화면구성과 태블릿의 화면구성을 아주 쉽게 차별화해 분리할 수 있게 되었습니다.



        위에는 기본적으로 제공되는 View의 목록 입니다. 최근 출시된 대부분의 스마트폰과 태블릿이 포함되어 있습니다.


        만약, 위 목록에 없는 장치의 화면을 별도록 구성하기 위해서는 여러분들이 직접 폼팩터와 플랫폼을 지정해 사용자 정의 뷰(Cusotom View)를 추가할 수 있습니다.


        패키지를 생성해 추가하는 방식인데요. 아래 링크를 참고하시면 어렵지 않게 추가할 수 있습니다.



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 Rad Studio, XE7, 멀티디바이스디자이너

        1. Blog Icon
          오실장

          이것 문서대로 테스트 해봤는데 마지막단계에서 MobileDevices.xml 파일을 수정하고 델파이 IDE를 재실행하니 MobileDevices.xml 파일이 저절로 다시 원상복구 되어서 사용자 Device View 가 생성되지 않더군요.
          시간될때 확인한번 해주세요.

        "Could not load SSL library." 오류 대응(XE7: BaaS, RESTClient, DataSnap)

        2014.09.12 14:46

        이전 코드 아카데미에서 BaaS 클라이언트 컴포넌트를 이용해 진행했는데요.

        이번 XE7으로 실행 시 아래와 같은 오류가 발생할 경우 대처방안 안내해 드립니다.


        해당 오류는 BaaS 클라이언트 컴포넌트와 DataSnap 사용 시 발생할 수 있습니다.

        해당 오류는 모바일로 배포시에는 발생하지 않으나, 윈도우에서 테스트 시 발생하는 오류입니다.



        Project Project1.exe raised exception class EIdOSSLCouldNotLoadSSLLibrary with message 'Could not load SSL library.'.

        ❑ 해결방안

        Open SSL 설치파일 다운로드


        설치 시 Windows 32bit 어플리케이션을 제작하기 위해 Win32OpenSSL v1.0.1i Light 버전을 다운로드 후 설치합니다.


        DLL 파일을 시스템 경로(C:\WIndows\System32)에 복사 되도록 설정 합니다.


        위 과정을 통해 이슈가 해결됩니다.


        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        [NFC] 안드로이드에서 NFC 연동 방법

        2014.09.12 10:20



        지난 9월 10일 새로운 아이폰(아이폰 6, 아이폰 6 플러스)에 NFC 기능이 포함된 애플페이가 소개되었습니다.


        NFC(근거리 무선 통신: Near Field Communication)

        근거리 무선 통신(近距離無線通信, Near Field Communication, NFC)는 13.56MHz의 대역을 가지며, 아주 가까운 거리의 무선 통신을 하기 위한 기술이다. 현재 지원되는 데이터 통신 속도는 초당 424 킬로비트다. 교통, 티켓, 지불 등 여러 서비스에서 사용할 수 있다.

        위키백과 참고


        델파이에서도 NFC 기능을 이용할 수 있는데요. 안드로이드에서 NFC 기능을 이용하는 방법을 소개합니다.


        Embarcadero의 MVP 이자 다양한 플랫폼 SDK와 API 연동하는 다양한 방법을 소개한 Brian Long의 글입니다.

        아주 상세하게 기본부터 설명을 하기 때문에 곱씹어 보면 다방면에서 도움이 될 자료입니다.


        또다른 엠바카데로의 MVP인 Daniel Magin도 브라이언 롱의 글을 참고해 부연했습니다.

        향후 애플에서 NFC 관련 기술을 공개하면 iOS에서의 NFC 연동에 관한 내용도 소개할 수 있기를 기대합니다.



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        공백을 포함한 앱의 이름 설정하는 방법(iOS, 안드로이드)

        2014.08.26 23:18

        모바일 프로젝트를 컴파일 하고 실행하면 프로젝트 이름이 앱의 이름으로 기본 생성됩니다.


        iOS와 안드로이드 앱의 이름에 공백을 포함해 지정하려면 아래의 설정 값을 변경하기 바랍니다.


        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        [REST Client] RESTRequest 비동기 호출방법

        2014.08.26 09:53

        델파이에서 이미 구축된 웹서비스와 연동하기 위해서 REST 클라이언트 컴포넌트를 이용할 수 있습니다.


        그동안 비동기로 전송하는 부분이 궁금했는데 우크라이나(?) 개발자인 Dave Gill이 남긴  글(RestRequest.ExecuteAsync and TaniIndicator)을 보고 반가운 마음에 글을 남깁니다.


        비동기로 웹서비스에 요청하면 아래의 장점이 있습니다.

        • 어플리케이션의 화면이 어는 현상이 없습니다.
        • 데이터 요청 시 TAniIndicator 컴포넌트로 진행여부를 표시할 수 있습니다.(동기로 호출 시 화면이 얼어 움직이지 않습니다.)
        • 백그라운드로 다른 작업을 진행할 수 있습니다.


        글을 참고하니 이미 TRESTRequest 컴포넌트에는 비동기로 호출할 수 있는 ExecuteAsync 메소드가 있었습니다.(저만 몰랐네요.)


        테스트를 진행해 봤습니다.(VCL에서 테스트 해봤습니다.)

        아래와 같이 ExecuteAsync 호출 시 TProc(인자가 없는 프로시저)를 함께 전달하면 요청이 끝나고 호출됩니다.

        호출된 메소드에서 응답데이터를 사용하도록 구현하면 비동기로 웹서비스를 연동할 수 있습니다.


        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 Rest Client, TRESTRequest

        RAD Studio 안드로이드 배포 시 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES

        2014.08.24 11:43



        Unable to create process: Unable to install '<path>'. Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]


        ❑ 오류원인

        빈번하게 일어나지 않는 오류이지만, RAD Studio(Delphi, C++빌더) 버전이 바뀔때면 가끔 보는 오류입니다. 하지만 환경오류가 나면 당황합니다. 


        당황하지 않고 오류를 해결하는 방법과 도움말을 통해 오류의 원인을 찾는 방법을 안내합니다.


        먼저 위 오류는 동일한 프로세스에 다른 서명 인증이 되어 있어 발생합니다.

        즉 동일한 프로세스 에를들면 "Project1"의 경우에서 많이 나는데요 이미 기기에 Project1이라는 앱이 들어있는데 새로운 버전의 개발툴에서 Project1으로 빌드하려 할때 발생합니다.


        이런경우 디바이스의 Project1 앱을 삭제하고 다시 시도하거나, 프로젝트 이름을 변경해서 배포하면 해결됩니다.

        ❑ 추가 도움말

        만약, 오류가 발생하면 오류 시 나오는 Troubleshooting 도움말을 참고하면 대부분 해결되지만 더 자세한 내용을 알고 싶으면

        구글등의 검색엔진에서 docwkik "오류명"으로 아래와 같이 검색하면 엠바카데로 도움말을 찾을 수 있습니다.


        ❑ 한글 도움말 확인

        한가지 팁을 더 드리면 영어가 어려우신 분들은 일본어 페이지에 들어가 구글번역을 시도하면 아주 훌륭한 품질의 한글로 내용을 확인할 수 있습니다.





        참고글


        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        REST Client 컴포넌트 - 마블(Marvel) 개발자 API 사용

        2014.08.20 10:50

        최근 개봉된 "갤럭시 오브 가디언즈"를 제작한 마블(Marvel)의 캐릭터와 스토리 등을 가져올 수 있는 API가 있습니다.

        그리고 개발자 API를 통해 델파이 XE6의 REST Client 컴포넌트로 앱을 만들어 공개한 내용이 있어 소개합니다.


        위 글에서는 REST Request 파라메터를 구성하고 이미지를 쓰레드로 받아오는 내용이 포함되어 있어 참고하면 아주 좋습니다.



        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        시스템정보 확인, 캔버스 벤치마킹 용 앱 소개(Win, OSX, iOS, Android)(소스공개)

        2014.08.13 09:54

        델파이 RTL과 파이어몽키의 속성값과 캔버스의 벤치마킹 등을 확인하는 앱이 구글 플레이어에 등록되었습니다.


        대표적인 기능은

        • 델파이(RTL)의 시스템, 수학함수 등의 정보
        • 파이어몽키를 이용한 시스템 정보(터치 지원 정보, 폼팩터 등)
        • 캔버스에 도형을 그리는 작업의 벤치마킹(TChart 이용)
        • 윈도우 32, 64 bit, OSX, iOS, Android 지원


        아래 원문에서 추가 설명 및 소스코드를 확인하세요. 소스코드를 보시면 많은 정보를 얻을 수 있습니다.


        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        15개 퍼즐 조각을 이동해 숫자를 맞추는 퍼즐게임(소스 공개)

        2014.08.13 09:31

        러시아 델파이 개발자인 Andrey Yefimov가 퍼즐게임을 만들어 공개했습니다.

        4 x 4 공간에서 숫자를 이동해 연속된 숫자를 맞추는 퍼즐인데요.


         


        TRectangle과 TLabel로 숫자 항목을 구성하고 TFloatAnimation으로 퍼즐 이동 시 효과를 주었습니다.

        다음 블로그를 참고해 자세한 내용과 소스코드를 다운로드 받으세요.(러시아 어입니다. 우측에 번역 기능을 이용하세요.)




        참고




        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

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

        [BaaS] 데스크탑(VCL) 어플리케이션에서 특정 유저에게 GCM/APN 전송하기

        2014.07.24 17:25

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


        요즘 BaaS 코드아카데미 준비하느라 바쁘면서도 즐겁습니다. 새로운 내용을 공부하고 누군가에게 도움을 줄 수 있다는 것이 보람되네요^^(코드아카데미 참석해 주세요. 좋은 내용이 많습니다. http://tech.devgear.co.kr/404011)


        이번에 소개해드릴 내용은 얼마전 어느분께서 데브기어를 통해 질문하신 내용입니다.

        질문 내용은 "VCL로 푸시메시지를 브로드캐스트는 되는데 특정 사용자에게 전송 가능하느냐? "라는 질문이었습니다.


        이 글을 이해하시기 위해서는  BaaS와 RAD Studio 글을 먼저 읽어보시고, 데스크탑에서 클라우드 메시지 전송 글을 선행해야 이글을 이해하시는데 도움이 많이 됩니다.

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

        앞에서 안내해 드린 글을 데스크탑에서 클라우드 메시지 전송 보면 VCL 어플리케이션에서 Kinvey의 PushEndPoint를 이용해 브로드캐스트 메시지를 전송합니다.

        특정사용자에게 전송할 때에도 PushEndPoint를 설정해 전송 할 수 있습니다. 

        ❑ 모바일 수신 설정(Custom Endpoint)

        먼저 Kinvey에 접속해 Custom EndPoints(Addons > Business Logic > Custom Endpoints > New)를 추가합니다.

        이름을 지정(저는 SpecificUsersMessage로 정했습니다.)하고, 다음의 코드를 입력하고 저장합니다.

        function onRequest(request, response, modules){
            // 모듈
          var push = modules.push, 
              collectionAccess = modules.collectionAccess, 
              logger = modules.logger;
         
          // 데이터
          var iOSAps = request.body.iosaps;
          var iOSExtras = request.body.iosextras;
          var androidPayload = request.body.androidpayload;
          var username = androidPayload.username;
        
          if(username){
            collectionAccess.collection('user').findOne({'username': username}, function (err, user) {
              if (err) {
                logger.error('Query failed: '+ err);
              } else {
                if(user){
                  // 사용자가 있으면 대상에게
                  logger.info('Pushing message to ' + user.username);
                  push.sendPayload(user, iOSAps, iOSExtras, androidPayload);
                } else {
                  logger.error('Not found user!!(username: ' + username + ')');
                }
              }
           
              // 콜백함수 안에 있어야 합니다. 밖에 있으면 콜백함수 수행전 먼저 응답합니다.
              response.complete(200);    
            });
          } else {
            // username 미 지정 시 전체
            logger.info('Pushing message to All');
            push.broadcastPayload(iOSAps, iOSExtras, androidPayload);
          }
        }

        그리고 어플리케이션 제작 전 API Console을 이용해 아래의 코드로 테스트(참고)합니다.

        {
          "iosaps": {
            "alert": "안녕하세요."
          }, 
          "iosextras": {
            "username": "testuser"
          }, 
          "androidpayload": {
            "username": "testuser",
            "message": "안녕하세요.",
            "title": "메시지 제목"
          }
        }

        위 내용 중 username 항목을 변경해 사용하시기 바랍니다.(Kinvey API 콘솔 에디터가 이상하게 복사/붙여넣기가 안되네요. 저만 그런가요? 타이핑해서 넣어서 사용하기 바랍니다.)

        ❑ VCL 전송 어플리케이션

        앞에서 만든 EndPoints를 이용해 푸시메시지 전송하는 VCL 전송어플리케이션을 작성합니다.

        VCL 폼의 디자인을 다음과 같이 대상(edtUserName) 항목을 추가하도록 수정합니다.(꼭 같을 필요는 없습니다.)

        저는 전체에게 보낼지 대상을 지정할지 선택하기 위해 체크박스를 넣었습니다.


        KinveyProvider의 PushEndPoint 속성에 앞에서 작성한 Custom EndPoints(SpecificUsersMessage)를 입력합니다.


        메시지 전송 버튼에는 아래의 코드를 이용합니다.

        var
          Data: TPushData;
        begin
          Data := TPushData.Create;
          try
            Data.Message      := edtMessage.Text;
            Data.GCM.Title    := edtTitle.Text;
            Data.GCM.Message  := edtMessage.Text;
        
            if CheckBox1.Checked then
              Data.Extras.Add('username', edtUserName.Text);
        
            BackEndPush1.PushData(Data);
          finally
            Data.Free;
          end;

        위 소스의 키포인트는 Data.Extras에 username을 추가하는 것입니다.

        Extras 정보에 username을 추가하면 실제 전송되는 JSON 데이터에의 androidpayload와 iosextras에 username항목이 추가되고 Custom Endpoints에서 androidpayload의 username으로 특정 사용자에게 전송하도록 설정되었습니다.


        BaaS를 이용하면 여러분들은 별도의 서버 준비 없이 서버기능인 백엔드 기능을 클라우드 기반의 서비스에서 이용할 수 있습니다.

        한번 익혀두면 모바일 및 데스크탑에서 유용하게 사용할 수 있으니 도전해 보시기 바랍니다.



        관련글

         

        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 APN, BAAS, Custom Endpoints, Delphi, gcm, Kinvey, vcl

        Kinvey(BaaS)에서 Business Logic 디버깅(테스트, 로깅) 하기

        2014.07.24 15:35

        클라우드 서비스 중 백엔드 서비스를 이용할 수 있는 BaaS를 델파이에서 이용할 수 있는 것 많이들 아실텐데요.


        사실 참고할 만한 내용이 많지 않아 아쉬울 따름입니다.(하지만 전세계적으로 사용량이 급증하고 있어 많은 참고할 글들이 곧 생긱것이라 확신합니다.) 제가 테스트하며 도움이 될만한 정보를 많이 남겨야겠습니다.

        이상 사설이었구요.

        Kinvey에서 비지니스 로직 디버깅하기

        오늘은 BaaS 제공자 중 Kinvey에서 비지니스 로직을 만들 때 도움이 될만한  비지니스 로직을 디버깅 하는 내용에 관한 글입니다.

        비지니스 로직은 일종의 함수라고 생각하면 됩니다. 사용자 및 파일이 추가되기 전/후(Before, After), 푸시메시지 요청 시 등록된 비지니스 로직이 호출됩니다.


        오늘 제가 테스트한 내용은 푸시메시지 호출 시 특정 대상에게만 푸시메시지를 전송하는 비지니스 로직(onRequest)을 작성해봤습니다.(이 내용은 곧 포스팅 하겠습니다.

        ❑ 로그를 남기고 확인하기

        비지니스 로직을 작성하다보면 예상한 결과대로 되지 않을때가 더 많습니다. 그때는 로그를 남겨야 하는데요. 다음과 같은 코드로 로그를 남길 수 있습니다.

        var 
          logger = modules.logger;
          logger.info('request.body.username: ' + request.body.username);

        그리고 로그를 확인하기 위해서는 에디터 아래의 logs 버튼을 누르면 로그 콘솔이 표시됩니다.


        다음과 같은 형태로 로그가 표시됩니다.


        ❑ 비지니스 로직 테스트

        매번 프로그램을 돌려 테스트하는 것보다 Kinvey 사이트 내에서 테스트하는 것이 더 간단합니다.

        Addons > Developer Tools > API Console로 API 콘솔 화면으로 이동합니다.


        좌측메뉴에서 대상 비지니스 로직을 선택하고, Headers를 추가하거나 필요한 내용의 body 내용을 추가 후 Send Request 버튼을 누르면 비지니스 로직이 동작합니다.

        body 내용은 푸시메시지를 받는 사용자정보를 넣어봤습니다. JSON 포맷으로 작성해야 합니다.


        다음과 같이 HTTP/1.1 200으로 나오면 잘 동작한 것입니다. 물론 로그를 통해 과정도 확인해야 합니다.


        만약 문법상의 오류가 있다면 아래와 같이 HTTP/1.1 400형태의 응답이 오고, 하단에 error, description, debug 항목을 통해 오류의 내용을 안내합니다.


        저작자 표시 비영리 동일 조건 변경 허락
        신고
        크리에이티브 커먼즈 라이선스
        Creative Commons License

        험프리.김현수 험프리.김현수 파이어몽키 BAAS, Business logic, Delphi, Kinvey

        1. 큰 도움이 되는 글이네요. BaaS 쓰는 분 보게 되어 반갑습니다.

        2. 큰 도움이 되는 글이네요. BaaS 쓰는 분 보게 되어 반갑습니다.