커스텀 폰트 배포와 사용하기(Android/iOS)

2014.12.22 10:28

커스텀 폰트를 배포하고 사용하는 방법을 안내하는 글이 있어 소개합니다.

배포기능을 이용해 폰트를 배포하고 플랫폼 별로 배포된 폰트를 사용하도록 설정할 수 있습니다.

(점점 다양한 종류의 아티클들이 나오고 있어 반갑네요^^)




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

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

[XE7] 자체적으로 원격푸쉬알림(GCM, APN) 전송 구현방법

2014.12.03 09:43

스페인의 델파이 개발자(fgonzalez.visiblogs.com/)가 자체적으로 원격푸쉬 알림 기능을 구현한 동영상을 소개합니다.


RAD Studio에서 원격 푸쉬 알림(Remote Push Notification)을 구현하기 위해서는 XE6 버전에 추가된 BaaS 클라이언트 컴포넌트를 통해 가능했는데요. 

이 동영상에서는 IdHttp(안드로이드), TCPClient(iOS) 컴포넌트 등을 활용해 푸쉬 메시지를 전송하고, System.PushNotification 클래스를 활용해 푸쉬 메시지를 수신하는 내용을 소개합니다.


동영상은 스페인어로 이야기를 합니다. 팁을 드리면 유투브의 자막을 한국어로 설정하고 화면과 코드위주로 보시면 충분히 이해할 수 있습니다.


참고 글


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

험프리.김현수 험프리.김현수 파이어몽키 APN, Firemonkey, gcm, ios, push, Remote Push Notification, 안드로이드

  1. Blog Icon
    석만근

    와우 감사합니다.
    전 서버를 웹페이지로 구현하고 Post방식으로 날렸는데 바로 날리네요;; 구글로 ㅎㅎ
    그리고 왠지 될것 같은데.... 당채 말을 알아들을수가 없네요
    감사합니다. 도움이 많이 될듯합니다.

  2. 그래도 개발자들에게는 코드가 있어 위안이 됩니다^^
    시도해 보시고 팁될만한 것 있으면 공유해주세요.
    감사합니다.^^

  3. Blog Icon
    오진성

    감사합니다 ^^
    잘되네요 근데 궁금증이있는데요
    message를 한글로 보내면 한글이 깨져서 나오든데 ... 어떻게 해결해야하나요 ?

  4. Blog Icon
    정상언

    한글 깨지는 분 저도 고생 좀 했는데
    AData := TStringStream.Create(AJson.ToString) 이부분을

    다음 처럼 하면 되네요
    AData := TStringStream.Create(AJson.ToJSON);

  5. Blog Icon
    키위

    영상을 통해 푸쉬 메세지 전송에 성공 했습니다.
    그런데 푸쉬를 여러개 받으면 받은만큼 아이콘과 알림이 생기는데
    이걸 어떻게 아이콘 하나에 "x개 메세지"로 만들수 있을까요?...
    여기저기 검색을 해봐도 통.. 찾을 수가 없네요.
    보내는놈, 받는놈, manifest file, 서비스.. 어디를 건드려야 하는지도 감이 안잡히네요.ㅡㅡ

  6. Blog Icon
    난다요

    푸시연구 중인데 도저히 모르겠어서 질문올립니다.

    여기 홈페이지에서 동영상 보면서 만들고 있는데요

    다른건 다 이해가 가는데

    DeviceToKen := '';

    이 디바이스토큰값을 어디서 가져오는지 모르겠습니다.

    혹시 아시는분은 자세히 설명좀 부탁드립니다. ㅜㅜ

  7. Blog Icon
    하이요

    종료시에 push를 받고싶은데
    그럴려면 안드로이드 스튜디오의 경우 gradle 파일을 수정하던데...
    델파이에서는 어떻게 해야하나요?

  8. 다음글을 참고해 종료 이벤트를 감지해보세요.
    WillTerminate 이벤트에 푸쉬를 발생하세요.
    http://blog.hjf.pe.kr/114

    푸쉬를 발생하는 내용은 아래 링크를 참고하세요.
    http://docwiki.embarcadero.com/RADStudio/Berlin/en/Mobile_Tutorial:_Using_Notifications_(iOS_and_Android)

안드로이드에서 음성인식 및 TTS(Text To Speach)

2014.07.14 09:51


현재(2014년 7월)에 진행되고 있는 Developer Skill Sprints에 아주 다양한 내용들이 올라오고 있습니다.

그 중 최근 개인적으로 관심을 두고 있는 음성인식 및 글자를 읽어주는 기능(TTS)을 소개하는 내용을 짐 매키트(Jim McKeeth)가 발표했습니다.


음성인식 및 TTS는 최근 웨어러블 디바이스가 다양해 지며 기존의 터치 인터페이스를 대치하는 방안으로 두각을 보이고 있는데요. 구글 글래스, 스마트 워치, 스마트 카 등에서 다양하게 사용될 것으로 예상됩니다.


이번 발표에서는 슬라이드와 데모 소스코드가 공개되었고 곧 동영상도 유튜브를 통해 공개될 것이므로 관심 갖으시면 많은 도움이 되실 것 같습니다.


추가: 공개된 유투브 동영상 추가합니다.


그리고 다음 링크를 통해 Developer Skill Sprints 정보를 더 확인해 보세요.


참고글


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

험프리.김현수 험프리.김현수 파이어몽키 Developer Skill Sprints, Firemonkey, Jim McKeeth, TTS, 음성인식

안드로이드 SMS 목록 얻어오기(샘플)

2014.07.14 09:20

러시아의 델파이 개발자가 안드로이드의 SMS 목록을 얻어오는 샘플을 공개했습니다.

해당 블로그를 보니 안드로이드 관련된 아주 다양한 정보들이 있네요. 한번 살펴보시면 많은 도움이 되실 듯 합니다.

단, 러시아어로 되어 있어 구글 자동번역기를 이용하면 될 것 같습니다.



참고



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

험프리.김현수 험프리.김현수 파이어몽키 Firemonkey, SMS, 샘플코드, 안드로이드

iOS개발 시 Log.d로 기록한 로그 확인

2014.07.11 15:53

iOS에서 Log.d로 기록한 로그 확인

기능을 확인하는 도중 상태 값이나, 그 당시의 데이터 값을 알고 싶을 때 로그를 사용합니다.

파이어몽키에서는 이미 Log.d라는 함수를 제공하므로 우리는 Log.d를 사용하면 됩니다.


▶ Log.d 사용

아래와 같이 추상 클래스의 클래스 함수로 기능이 구현되어 있는데요.(사실 구현은 중요하지 않습니다. 사용법만 알면 됩니다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
type
  Log = class abstract
  strict private
    class var FLogger: IInterface;
    class constructor Create;
  public
  type
    ToStringFunc = reference to function(O: TObject) : String;
 
    class procedure d(const Msg: String); overload;
    class procedure d(const Fmt: String; const Args: array of const); overload;
    class procedure d(const Tag: String; const Instance : TObject; const Msg : String); overload;
    class procedure d(const Tag: String; const Instance : TObject; const Method : String; const Msg : String); overload;
    class procedure TimeStamp(const Msg: String); overload;
    class function ObjToString(const Instance : TObject) : String;
    class function ArrayToString(const AArray : TEnumerable<tfmxobject>) : String; overload;
    class function ArrayToString(const AArray : TEnumerable<tfmxobject>; MakeStr : ToStringFunc) : String; overload;
    class procedure DumpFmxObject(const O: TFmxObject; Nest: Integer = 0);
  end;</tfmxobject></tfmxobject>

아래와 같이 간단하게 사용할 수 있습니다.(uses FMX.Types)
1
Log.d('Hello!! Log.d');

❑ iOS 장비 로그 확인하기

iOS 장비를 연결하고 응용프로그램에서 iPhone 구성 유틸리티를 실행합니다.

(설치되지 않은 분들은 설치 하세요.)


iPhone 구성 유틸리티의 좌측 메뉴에서 장비를 선택하고 [콘솔] 탭을 선택해 로그를 확인할 수 있습니다.


추가(2015-07-01)

iOS 콘솔 앱을 설치해서 로그를 확인할 수 있습니다.

http://lemonjar.com/iosconsole/


❑ iOS Simulator 로그 확인하기

iOS 시뮬레이터의 메인메뉴에서 Open System Log를 선택 해 콘솔창을 호출합니다.


콘솔을 실행하면 좌측의 로그 목록에서 system.log를 선택하면 앱에서 Log.d로 출력한 로그를 확인할 수 있습니다.

한가지 팁으로 상당히 많은 로그 중 좌측상단의 검색어 입력 란에 앱의 이름을 넣으면 해당 앱에서 출력한 로그만 확인할 수 있습니다.



관련글






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

험프리.김현수 험프리.김현수 파이어몽키 Firemonkey, ios, Log.d

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
이상 간단한 배포 팁이었습니다.


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

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

스노우크래프트(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.. 메뉴를 통해 위의 화면을 이용 할 수 있습니다.


참고 링크




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

험프리.김현수 험프리.김현수 파이어몽키 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)



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

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

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

2014.03.27 10:51



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





관련링크



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

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

사물인터넷(IoT)과 RAD Studio - 다양한 디바이스 연동

2014.03.21 15:33



 얼마전 애플에서 CarPlay를 발표했습니다. CarPlay는 자동차와 아이폰을 연결 후 시리를 통해 아이폰의 일부기능을 자동차에서 사용할 수 있도록 해주는 방식입니다. 이미 유튜브와 SNS등에 페라리, 벤츠, 볼도에 탑제된 동영상이 올라와 많이들 보셨을 것입니다.

(http://www.apple.com/kr/ios/carplay/?cid=wwa-kr-kwn-features-com)


 그리고, 애플의 CarPlay 발표 다음날 구글에서 Projected Mode를 발표했습니다. Projected Mode는 메르세데스-벤츠에 탑재될 예정으로 보이는 기술로 애플의 CarPlay의 기능을 대체하고 구글의 서비스와 연동해 네비게이션 등의 기능을 사용하실 수 있을 것으로 예상됩니다.(http://www.androidauthority.com/google-projected-mode-353022/)


출처 : http://www.bizwatch.co.kr/?mod=info_view&uid=234

 위의 스마트카가 이슈화 되기 앞서 이미 구글 글래스와 삼성의 겔럭시 기어등 웨어러블 디바이스(Wearable device)가 출시되었고, 구글글래스의 경우 SDK와 함께 이미 많은 개발자들의 관심과 새로운 시도가 있었습니다.

 또한, 몇일 전 모토로라에서도 아주 멋진 디자인의 모토360이라는 스마트 시계를 발표했습니다. 


 이렇듯 다양한 스마트 자동차, 스마트 안경, 스마트 시계 등이 나오고 있는 상황이 사용자 입장에서는 아주 좋지만, 개발자 입장에서는 어떻게 접근할까 고민이 될 것 같은데요. 사실 RAD Studio(델파이, C++빌더) 개발자들에게는 좋은 소식이 아닐까 싶습니다.


 왜냐하면, 스마트 자동차, 스마트 안경, 스마트 시계의 OS가 iOS와 안드로이드 플랫폼이기 때문에 멀티플랫폼 개발이 가능한 델파이와 C++빌더로 개발이 가능하기 때문입니다.

이제는 RAD Studio로 모바일 디바이스 개발 뿐만 아니라 다양한 스마트안경, 스마트 자동차, 스마트 시계까지도 개발이 가능하다고 생각하니 너무 좋네요.^^


 더 반가운 소식은 아래의 그림과 같이 이미 RAD Studio로 다양한 기기에 연동하는 사례가 있었습니다. 그 사례는 Embarcadero Technolgies(이하 엠바카데로)의 Youtube 채널을 통해 공개 되었습니다. 그 동영상의 중심에는 Jim McKeeth가 있었습니다.




짐 맥키트(Jim McKeeth)

짐 맥키트는 렘오프젝트 소프트웨어 등 20년이 넘는 오랜 소프트웨어 개발 경력의 델파이와 함께 하였습니다. 

현재는 엠바카데로 테크놀러지스의 개발자 에반젤리스트팀장 으로써 엠바카데로 MVP 프로그램을 이끌고 있으며 전세계에서 열리는 여러 컨퍼런스에서 델파이와 모바일 개발에 대한 발표자로써도 바쁘게 활동하고 있습니다. 

짐 맥키트는 스택 오버플로우(Stack Overflow) 상 최초로 델파이 뱃지를 받았으며 지금도 delphi.org(http://www.delphi.org) 팟캐스트에서 델파이 인터뷰와 기타 델파이 뉴스를 공유하고 있습니다.



오늘은 그가 발표한 동영상 중 구글 글래스 영상을 소개합니다.


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

험프리.김현수 험프리.김현수 RAD Studio 정보 C++Builder, carplay, Delphi, Firemonkey, Google Glass, IOT, Jim McKeeth, Rad Studio

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

2014.03.13 09:23


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

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

험프리.김현수 험프리.김현수 파이어몽키 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

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

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

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

2014.03.06 11:15


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

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


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

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

관련 링크



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

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

RAD Studio, Delphi 그리고 C++빌더 로드맵

2014.03.05 10:06


RAD Studio, Delphi 그리고 C++빌더 로드맵이 발표되었습니다.


지난해 멀티플랫폼(파이어몽키)에 너무 치중한다는 일부우려가 있듯이 올해(2014년)에는 VCL과 RTL에도 발전이 있을 것 같아 기대가 되네요^^

2014년에 2번의 릴리즈를 통해 제공되는 기술과 기능들

  • 안드로이드를위한 완벽한 C + + 툴 체인
  • QPS (품질, 성능, 안정성)
  • 안드로이드와 아이폰 OS에 대한 광고 및 지불 구성 요소
  • 데이터 스냅 미들웨어 향상 (성능, REST 매핑, 아키텍쳐 개선)
  • 새로운 멀티 디바이스 비주얼 디자이너 및 새롭고, 유연한 사용자 인터페이스 구성 요소를 더 강화된 단일 소스 멀티 플랫폼 지원
  • Mobile Backend as a Service(MBaaS) 컴포넌트, Parse, Kinvey(모바일 클라우드 서비스 업체)와 같은 업체와 인터페이스
  • 모바일 및 데스크톱 응용 프로그램의 상호 운용성
  • 안드로이드 KitKat 지원
  • VCL 애플리케이션을 위한 사용하기 쉬운 윈도우 작업 표시 줄 컴포넌트
  • VCL 스타일의 개선과 인텔 태블릿환경의 윈도우에서의 VCL 어플리케이션 지원, 스타일과 센서 컴포넌트
  • 특정 폼 팩터, 특히 구글 글래스를 사용 할 수있는 안드로이드 장치에 대한 직접 지원
  • 아파치 HTTP 서버 모듈은 현재 ISAPI의 IIS 지원과 함께, 웹 브로커 및 데이터 스냅에 대한 지원
  • 다양한 Run time Library(RTL) 개선, XML, JSON 처리와 그외의 것들을 모든 플랫폼 구현을 개선
  • FireDAC 새로운 데이터베이스 버전에 대한 지원을 포함하여 기존 드라이버에 새 드라이버 및 개선,
  • 한 해 동안 구글과 애플에 의해 발표 될 것으로 예상 안드로이드와 아이폰 OS의 미래 버전을 지원합니다.
  • 블루투스 지원 (모바일 장치)
  • C + + 11 언어 사양을 완벽하게 지원 Win32에서의 C + + 컴파일러의 새로운 버전

원문 : http://edn.embarcadero.com/article/43677

번역 ; http://translate.google.com/translate?sl=en&tl=ko&js=n&prev=_t&hl=ko&ie=UTF-8&u=http%3A%2F%2Fedn.embarcadero.com%2Farticle%2F43677



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

험프리.김현수 험프리.김현수 RAD Studio 정보 C++빌더, Delphi, Firemonkey, Rad Studio, 델파이, 로드맵, 빌더, 엠바카데로, 파이어몽키

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

2014.03.04 18:01


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

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


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

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

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

  1. Blog Icon

    비밀댓글입니다

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;


다운로드


참고링크



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

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

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

2014.02.27 10:19

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

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

연락처 목록 조회

▶ 안드로이드

▶ iOS



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

험프리.김현수 험프리.김현수 파이어몽키 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 효과를 줘서 처리한것이 참 인상적이네요.

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


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


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


관련링크



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

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

RESTful 웹서비스 연동(Rest Client 소개)

2014.02.24 23:21

현재 대상 서비스(discogs.com)에 인증 인터페이스가 추가되어 예제를 따라하면 인증오류가 발생합니다. 하지만 이 글을 통해 REST Client의 개념을 잡는데 도움이 될 것입니다.



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


모바일 개발 세미나 및 자료들에서 원격 데이터 연결 시 DataSnap을 강조하다 보니 원격지 데이터 연결 시 DataSnap만 써야 되는 것으로 오해가 종종있어, 기존 구성된 사이트에 RESTful(Http 요청)방식으로 연결하는 방법을 소개합니다.


여지껏 원격지 데이터를 받아오기 위해 일반적으로는 IdHttp 컴포넌트를 이용해 Get(또는 Post)하여 Response 데이터를 받아온 후 Parser를 이용해 데이터를 파싱하고, 파싱된 데이터를 사용하는 방법등 코딩 위의 방법이 대부분이었습니다.


이번에 소개해 드릴 컴포넌트는 XE5에서 새로 추가된 REST 컴포넌트입니다.


REST 컴포넌트는 RestClient, RestRequest, RestResponse 3가지 주요 컴포넌트를 주축으로 구성되어 있으며, 요청과 응답을 객체화 시키고, 응답의 경우 RESTResponseDataSetAdapter를 연결하여 사용자의 데이터 파싱없이 리스트 및 그리드에서 사용할 수 있는 DataSource로 데이터를 자동변환합니다. 


Source(대상) REST API 분석 및 준비

▶ 대상 사이트 API 분석

음반정보 제공 사이트인 discogs에 오픈된 API를 이용하겠습니다. 그중 Search API를 사용합니다.


대상정보

  • Request : http://api.discogs.com/database/search?q=psy&type=master&per_page=20
  • Response : JSON 포맷으로 응답, "results" 항목 이후의 배열데이터 사용(Search API 참고


REST Debugger을 실행하고 아래와 같은 정보를 입력합니다.(REST Debugger 설치 및 사용방법)

  • URL : http://api.discogs.com
  • Resource : database/search?q={query}&type=master&per_page={page}
    • query : psy
    • page : 20

[Send Request] 버튼을 누르고 응답이 성공한 경우 하단의 [Body] 탭에서 Root Element에 "results"를 입력 후 [Apply] 버튼을 누른 후 [Tabular Data] 탭으로 이동 후 목록이 표시되었는지 확인합니다.


(※ REST Debugger도 REST 컴포넌트 기반으로 개발되어 있습니다.)

REST 컴포넌트 추가

▶ 모바일 프로젝트 생성 및 데이터모듈 추가

새로운 프로젝트 생성 후 Data Module을 추가합니다.(Project Manager > Project 선택 > Add New > Other > Data Module)

아래와 같이 컴포넌트를 추가하고 속성값을 변경합니다.


RESTClient

  • BaseURL : http://api.discogs.com

RESTRequest

  • Client : RESTClient1
  • Resource : database/search?q={query}&type=master&per_page={page}
  • Params : query=psy, page=20

RESTResponse

RESTResponseDataSetAdapter

  • DataSet : ClientDataSet1
  • Response : RESTResponse1
  • RootElement : results

ClientDataSet

위와 같이 구성 후 RESTRequest1을 더블클릭(또는 우측마우스 > Execute) 하면 성공 시 "Response: 200 - HTTP/1.1 200 OK" 메시지가 실패 시 오류메시지가 표시됩니다.

연결이 성공한 경우 RESTResponse1의 Content항목을 선택하시면 응답받은 데이터를 확인할 수 있습니다.(만약, 목록이외의 항목이 필요한 경우 RESTResponse 컴포넌트의  Content 항목을 활용할 수도 있습니다.)

UI 구성(ListView 및 검색항목 추가)

위의 Data Module을 폼의 Uses 절에 추가합니다.(File > Use unit 후 선택)

(유닛명 및 컨트롤 명은 임의로 명명하였으니 본인의 이름으로 사용하세요.)

▶ 리스트 추가(ListView), 데이터연결

빈 폼에 ListView 하나 추가 후 align 속성을 "alClient"로 변경해 목록이 가득차도록 합니다. 

아래와 같이 DataModule의 ClientDataSet과 ListView의 LiveBinding을 연결해 리스트에 데이터를 표시합니다.


Live Binding 윈도우 표시하기 - Object Inspector 아래 Bind Visually를 누르면 메인폼 아래에 표시됩니다.


사실 위와 같이만 구성해도 얼마나 쉽게 원격지의 데이터를 사용할 수 있는지 느낌이 오실거에요.

▶ 검색 항목 추가

그럼 추가로 검색 UI를 추가하고 검색 인터페이스를 연동해보겠습니다.

검색 메소드 추가

DataModule 유닛의 public 절에 아래와 같이 검색용 Search메소드를 추가합니다.

type
  TDataModule9 = class(TDataModule)
    RESTClient1: TRESTClient;
    RESTRequest1: TRESTRequest;
    RESTResponse1: TRESTResponse;
    RESTResponseDataSetAdapter1: TRESTResponseDataSetAdapter;
    ClientDataSet1: TClientDataSet;
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Search(AKeyword: string);
  end;

var
  DataModule9: TDataModule9;

implementation

{%CLASSGROUP 'FMX.Controls.TControl'}

{$R *.dfm}

{ TDataModule9 }

procedure TDataModule9.Search(AKeyword: string);
begin
    RESTRequest1.Params.ParameterByName('query').Value := AKeyword;
    RESTRequest1.Execute;
end;

위의 RESTRequest1.Params를 변경하고 실행(RESTRequest1.Execute;)하는 동작으로 요청 파라메터를 변경할 수 있습니다.

UI 추가

검색 키워드 입력을 위해  TEdit를 Form에 추가합니다.(가끔 ListView에 추가하는 경우가 있으니 주의하세요)

align 속성을 "alTop"으로 변경합니다.


Edit의 OnChange에 아래와 같이 코딩합니다.

procedure TForm8.Edit1Change(Sender: TObject);
begin
  DataModule9.Search(Edit1.Text);
end;

배포 및 확인

REST 컴포넌트를 이용한 경우 내부적으로 MIDAS를 이용하기 때문에 MIDAS Library를 함께 배포해야 합니다.

배포 메뉴에서 기능파일 추가(Project > Deployment > Add featured files) 메뉴를 이용해 MIDAS Library를 추가합니다.



기기배포 등의 확인 단계는 설명을 생략하니 각자의 디바이스에서 확인해 보시기 바랍니다.


목록표시 및 요청 등의 인터페이스를 설명하였습니다. 등록요청 등의 인터페이스는 위의 내용을 조금더 확장하시면 충분히 구현가능 하실 것 같습니다.


다음에는 XML을 이용한 외부 서비스 연동에 대해서도 살펴보도록 하겠습니다.


감사합니다.


관련정보


추가정보



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

    험프리.김현수 험프리.김현수 파이어몽키 Firemonkey, FMX, JOSN, REST Debugger, RESTCilient, RESTful, 파이어몽키

    FireDAC을 이용해 InterBase database 생성하기

    2014.02.18 16:02


    Database를 미리 생성하지 않고 실행 시 파일을 생성하는 팁입니다.

    배포를 신경쓰지 않고 로컬DB를 사용하니 매우 편할 것 같네요^^


    아래 링크에서 자세한 내용을 확인하세요.

    http://blogs.embarcadero.com/stephenball/2014/02/14/creating-an-interbase-database-on-the-fly-with-firedac/





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

    험프리.김현수 험프리.김현수 파이어몽키 Firemonkey, IB, IBLite, Interbase, Interbase database