Search results for 'Firemonkey/팁과 정보'

  1. 2016.07.28 -- 구글 통계(Google Analytics)를 써드파티 컴포넌트 없이 구현하는 방법
  2. 2016.04.04 -- [FMX] 앱에서 문장을 출력하는 3가지 방법
  3. 2016.03.31 -- [안드로이드/iOS] 이미 배포(Deployment)된 파일 업데이트 하기
  4. 2016.02.17 -- 애플 WWDR 인증서 만료로 iOS 개발자 인증서 이슈 해결 방안
  5. 2016.01.28 -- 델파이 iOS Touch ID 구현하기(래퍼 클래스) (1)
  6. 2015.10.01 -- iOS9의 새로운 기능인 "App transport Security" 예외 허용을 위한 Info.plist xml 수정방법
  7. 2015.07.02 -- 모바일 앱 실행 시 검은화면이 표시되는 경우 조치방법
  8. 2015.06.09 -- 개발환경 설정 - 안드로이드 개발환경
  9. 2015.06.04 -- 앱의 상태바(StatusBar) 제어하기(색상변경, 감추기, 투명하게)
  10. 2015.04.14 -- 파이어몽키에서 외부 라이브러리 연동하기(jar, so, a) (3)
  11. 2015.02.24 -- [XE7] iOS 시뮬레이터 배포 시 'Please specify exact device preset UUID.' 오류 대응
  12. 2015.01.28 -- 트루타입 폰트(FontAwesome) 파일을 이용해 아이콘 표시하기(안드로이드, iOS)
  13. 2015.01.07 -- [XE7] 안드로이드 4.4 스타일의 대화상자 사용하기
  14. 2014.12.22 -- 커스텀 폰트 배포와 사용하기(Android/iOS)
  15. 2014.12.03 -- 안드로이드 5.0(Lollipop)에서 실행 시 오류대응 방법
  16. 2014.11.25 -- 구글 매터리얼 아이콘 753종
  17. 2014.11.04 -- RAD Studio XE7에서 추가된 안드로이드 기능 익히기(동영상)
  18. 2014.11.03 -- [XE7] 안드로이드 브릿지 파일을 생성할 수 있는 Java2OP.exe을 다운로드 하세요.
  19. 2014.10.22 -- FMX 리스트박스를 정렬하고 필터링하는 내용 설명
  20. 2014.10.21 -- 내가 원하는 이름으로 모바일 앱의 이름 변경하기

구글 통계(Google Analytics)를 써드파티 컴포넌트 없이 구현하는 방법

2016.07.28 10:55

델파이 개발자인 Rafael Ribas Aguiló의 블로그에서 델파이에서 써드파티 컴포넌트 없이 구글 통계(Google Analytics)와 연동하는 내용이 있어 소개합니다.


해당 내용은 안드로이드 기반으로 작성되었습니다. 안드로이드 앱 개발하시는 분들은 참고하시기 바랍니다.


최근에는 앱을 만드는 작업도 중요하지만, 사용성(Usability)을 높이는 작업이 상당히 중요합니다.

여러분들의 고객이 어떤 메뉴나 기능을 얼마나 많이 사용하는지 분석하는 작업에 이용하면 구글 통계를 이용해 더 완성도 높고 사용성 높은 앱을 만들어 보세요.




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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

[FMX] 앱에서 문장을 출력하는 3가지 방법

2016.04.04 11:22

앱에서 긴 글을 표시해야 하는 경우 3가지 방법을 이용해 표현할 수 있습니다.(아래 방법외에도 더 많은 방법이 있을 수 있습니다.)



TextContents.zip


1, TMemo 이용

문장을 나타내는 대표적인 컴포넌트입니다. 문장 출력뿐아니라 입력도 받을 수 있습니다.

출력이 목적인 경우 ReadOnly 속성을 True로 설정하면 입력을 제한합니다.

자동 줄바꿈이 필요하면 TextSettings.WordWrap 속성을 True로 설정합니다.


2, TWebBrowser + HTML 이용

HTML을 표현하는 웹브라우저에 문장을 출력하는 방법입니다. HTML 태그를 이용해 글자크기, 색상, 스타일 등을 자유롭게 사용할 수 있습니다. 만약, 문장이 HTML로 구성된 경우 아주 좋은 선택 입니다.
웹브라우저에 HTML을 불러오려면 아래와 같이 LoadFromString 메소드를 이용합니다.
  WebBrowser1.LoadFromStrings(html, '');

3, TVertScrollBox + TText 이용

수직으로만 스크롤되는 스크롤박스(TVerScrollBox)에 텍스트(TText)를 추가해 문장을 표현하는 방법입니다.

여러개의 텍스트를 추가하면 글자크기, 색상, 스타일을 다르게 지정할 수 있습니다.

텍스트를 상단에 정렬(Align := Top)하면 추가된 순서대로 위에서부터 표시되며, AutoSize 속성을 True로 설정해 높이를 자동 조정할 수 있습니다.

아래 코드는 몇가지 속성을 설정해 동적(코드작성)으로 텍스트를 추가하는 코드 입니다.

procedure TForm1.Button2Click(Sender: TObject);
  procedure AddText(const AText: string; AFontSize: Integer = 12; AFontColor: TAlphaColor = TAlphaColorRec.Black);
  var
    Text: TText;
  begin
    Text := TText.Create(Self);
    Text.Parent := VertScrollBox1;
    Text.Align := TAlignLayout.Top;
    Text.TextSettings.HorzAlign := TTextAlign.Leading;
    Text.TextSettings.Font.Size := AFontSize;
    Text.TextSettings.FontColor := AFontColor;
    Text.AutoSize := True;
    Text.Text := AText;
  end;

var
  S: string;
begin
  AddText('제목1', 20);
  S := 'SVN 서버 소프트웨어는 소스코드 ......';
  S := S + '예를들어, 팀내에서 소스코드를 ......';
  S := S + '만약, 외부와 협업이 필요한 경우 ......';
  AddText(S);

  AddText('제목2', 15, TAlphaColorRec.Red);

  S := 'SVN 서버 소프트웨어는 오픈 소프트웨어 부터 상용 소프트웨어까지 다양하게 선택할 수 있습니다.';
  S := S + '아래 링크를 참고해 원하는 플랫폼과 원하는 SVN 서버 소프트웨어를 설치할 수 있습니다.';
  AddText(S);
end;

추가로, 

델파이 마크다운 라이브러리를 이용할 수 있습니다. 다음 링크를 확인하세요.

http://blog.hjf.pe.kr/428

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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

[안드로이드/iOS] 이미 배포(Deployment)된 파일 업데이트 하기

2016.03.31 11:06

사운드, 이미지, 텍스트 파일을 최초배포하고, 변경된 파일을 다시 배포할 경우 덮어쓰기(overwrite)가 되지않는 이슈가 있습니다.(10 시애틀. 2016년 3월) 해당 증상은 안드로이드와 iOS 모두 해당됩니다.

해당 이슈는 파일을 배포하는 System.StartUpCopy.pas에 구현된 내용을 살펴보니 배포 대상파일이 있는 경우(FileExist) 배포를 진행하지 않도록 구현되어 있습니다.


위 이슈를 해결하는 방법은 3가지 정도로 생각해볼 수 있습니다.

1, System.StartUpCopy.pas를 수정하는 방법

2, 업데이트할 파일을 새로운 이름으로 배포하고, 앱 시작시 기존 파일로 덮어쓰는 방법

3, 파일을 앱과 함께 최초 배포 후, 파일 변경이 필요할 경우 인터넷 등을 통해 자동 업데이트 하는 방법


1, System.StartUpCopy.pas를 수정하는 방법

http://qc.embarcadero.com/wc/qcmain.aspx?d=125481 링크를 방문해 Xavier Dufaure de Citres 글을 참고해 수정할 수 있습니다.

Xavier Dufaure de Citres at 12/14/2014 3:10:58 PM -
Here is a workaround on Android:
* modify System.StartUpCopy
   - in the interface section add "Var ASSET_OVERWRITE : Boolean = false;"
   - in the interface section exopose "procedure CopyStartUpFiles;"
   - in the CopyAssetToFile change "if (not FileExists(DestFileName)) then" by "if (not FileExists(DestFileName)) or ASSET_OVERWRITE then"

* in your own code, store in the preference file the last version the user ran. If the current version is newer do
  if optLastVersionRan<Version then
  Begin
    ASSET_OVERWRITE := true;
    CopyStartUpFiles;
    ASSET_OVERWRITE := false;
  End;

On the 1st installation the data will be copied twice (no biggy), on update the file will be overwritten.

Note for iOS: i find out that deploying the files i need in ".\Data\" is much better: it put the file directly in the bundle, this way the file are not archived (i got my app rejected because i had 12 Mb of data that was archived). Of course these files can only be read only.


2, 업데이트할 파일을 새로운 이름으로 배포하고, 앱 시작시 기존 파일로 덮어쓰는 방법 

배포파일이 업데이트 되면 새로운 파일명으로 배포 후 앱 시작 시 원래파일로 덮어쓰는 방식입니다.

위 이미지와 같이, "deploy.txt" 파일 배포 시 remote name을 "deploy_2.txt"로 배포했습니다.


프로젝트에는 아래와 같은 코드를 구현했습니다.(코드에 대한 설명은 생략합니다.)

uses
  System.IOUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  Path: string;
begin
  Path := TPath.Combine(TPath.GetDocumentsPath, 'deploy.txt');
  Memo1.Lines.LoadFromFile(Path);
end;

procedure TForm1.DeployFileUpdate(const AFilename, AUpdateFilename: string);
var
  OrgPath, UptPath: string;
begin
  OrgPath := TPath.Combine(TPath.GetDocumentsPath, AFilename);
  UptPath := TPath.Combine(TPath.GetDocumentsPath, AUpdateFilename);

  if TFile.Exists(UptPath) then
  begin
    if TFile.Exists(OrgPath) then
      TFIle.Delete(OrgPath);
    TFile.Move(UptPath, OrgPath);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DeployFileUpdate('deploy.txt',  'deploy_2.txt');
//  DeployFileUpdate('sound1.wav',  'sound1_2.wav');
//  DeployFileUpdate('env.ini',     'env_2.ini');
end;


3, 파일을 앱과 함께 최초 배포 후, 파일 변경이 필요할 경우 인터넷 등을 통해 자동 업데이트 하는 방법

배포파일 자동 업데이트는 파일별 버전관리가 필요하며, 업데이트 파일을 내려주는 서버가 필요합니다.

앱 실행 시 배포파일 버전을  서버에서 확인 후 업데이트할 파일이 있으면, Http, FTP 등으로 파일을 다운로드해 배포파일을 교채하는 방식입니다.

웹상의 파일을 다운로드 받는 방법은 아래 링크를 참고할 수 있습니다.

참고링크


  • 모바일(iOS, Android)에서 사용자 파일 배포 및 사용 : http://blog.hjf.pe.kr/104



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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

애플 WWDR 인증서 만료로 iOS 개발자 인증서 이슈 해결 방안

2016.02.17 10:44

한국시간으로 2월 15일 오후 3시경 Apple Worldwide Developer Relations Certification Authority이 만료되었습니다.


그 여파로 잘 사용하던 iOS 인증서로 iOS Device 컴파일 시에 "[Error] Unable to match bundle identifier "앱이름" with AppID in all provisioning profiles" 오류가 발생 해 컴파일 되지 않았습니다.


그리고 키체인에서 개발자 인증서를 확인해보니, 인증서의 상태가 "이 인증서는 유효하지 않은 발급자를 가지고 있음" 이었습니다.


관련 이슈는 애플 개발자 포럼과 마르코칸투 블로그 등에서 다루고 있어 쉽게 해결할 수 있었습니다.

해결방안

  1. https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 새로운 WWDRCA 인증서 다운로드(애플 iOS 개발자 계정 필요)

  2. 다운로드 받은 WWDRCA 인증서 더블클릭 해 설치

  3. 키 체인 실행

  4. 만료된 인증서 보기(보기 > 만료된 인증서 보기)

  5. 로그인과 시스템(좌측 키체인 메뉴에서 선택)에서 만료된 WWDRCA 삭제

  6. 각자 개발자 인증서 선택 후 "인증서가 유효함" 상태 확인(만약, 유효하지 않다면 시스템 재부팅 후 다시 확인)



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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

델파이 iOS Touch ID 구현하기(래퍼 클래스)

2016.01.28 13:33


Touch ID는 애플 iOS의 LocalAuthentication 프레임워크 통해 구현할 수 있습니다.애플의 Touch ID는 애플의 지문인식 시스템입니다.


델파이에서 Touch ID를 구현하기 위해 LocalAuthentication 프레임워크를 델파이로 래핑한 iOSapi.LocalAuthentication.pas를 다운로드 받아 시스템 PATH에 등록된 경로에 복사합니다.


iOSapi.LocalAuthentication.pas 소스파일 다운로드 및 사용법과 설명은 아래 링크에서 가능합니다.(영문)





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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 ios

  1. Blog Icon
    섭이~

    안드로이드쪽 지문인식은 현제 불가능한가요?

iOS9의 새로운 기능인 "App transport Security" 예외 허용을 위한 Info.plist xml 수정방법

2015.10.01 13:11

이 글은 엠바카데로의 David I 블로그 글을 인용 및 참고해 작성한 글입니다. 자세한 내용은 원글을 통해서 확인하시기 바랍니다.

http://community.embarcadero.com/blogs/entry/how-to-use-custom-info-plist-xml-to-support-ios-9-s-new-app-transport-security-feature

iOS9의 App Transport Security 예외 허용하기

iOS9에서 애플은 내부적으로 HTTP 프로토콜 요청하는 응용프로그램을 제한하는 새로운 "App Transport Security" 기능을 추가했습니다. 


App Transport Security

“App Transport Security is a feature that improves the security of connections between an app and web services. The feature consists of default connection requirements that conform to best practices for secure connections. Apps can override this default behavior and turn off transport security. Transport security is available in iOS 9.0 or later, and in OS X v10.11 and later.”


간단하게 요약하면 iOS9 부터는 HTTP(암호화 되지 않은 통신)에 대해서 OS 단에서 제한을 한다는 내용입니다.


애플에서는 Info.plist를 설정해 앱에서 HTTP를 사용할 수 있도록 허용합니다. 

이 글에서는 RAD Studio에서 Info.plist 옵션을 설정하는 방법과 RAD Studio 10 시애틀 샘플소스코드 프로젝트에 대한 링크를 제공합니다.


❑ Info.plist 편집 방법

Info.plist 파일은 프로젝트를 빌드 할때마다 다시 생성됩니다. 그렇기 때문에 Info.plist 파일을 직접 편집하기 위해서는 예를들어 프로젝트의 디렉토리와 같은 위치에 Info.plist 파일을 복사 후 복사한 파일을 편집해야 합니다.

(Info.plist 파일은 iOS Device - 32 bit / 64 bit로 타겟 선택 후 프로젝트를 빌드하면 프로젝트 저장 경로의 하위에 생성됩니다.

예> \iOSDevice32\Debug\Project1.Info.plist)


복사 후 편집한 Info.plist 파일은 Project > Deployement 기능을 통해 별도로 배포해야합니다.

(이 과정은 이 글의 후반부에 다시 안내합니다.)


❑ App Transport Security 옵션 설정

옵션1. "App Transport Security" 비활성화


<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>


Info.plist 파일의 제일 마지막으로 이동 후 </dict> 태그 바로 위에 위의 코드를 추가합니다.

이 방법은 TWebBrowser, Indy HTTP 등의 컴포넌트를 사용하는 경우 앱에서 사용하는 모든 HTTP 통신에 대해 App Transport Security 기능을 해제하는 설정입니다.


옵션2. 'App Transport Security" 예외 도메인 등록


<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>appanalytics.embarcadero.com</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key><true/> </dict> </dict> </dict> 

Info.plist 파일의 제일 마지막으로 이동 후 </dict> 태그 바로 위에 위의 코드를 추가합니다.


이 방법은 특정 도메인(appanalytics.embarcadero.com)으로 접속하는 연결에 대해 보안이 적용되지 않은 HTTP 통신을 허용하도록 설정하는 방법입니다.



❑ Info.plist 배포 설정

앞에서 수정한 Info.plist 파일을 기본 Info.plist를 대신하도록 배포설정해야 합니다. 이 과정은 iOS Device 32 bit와 64 bit 모두에서 진행해야 합니다.(32 비트와 64비트 버전이 약간 다르다는 것을 주의)

배포 관리자(Project > Deployement)로 이동 후 편집한 Info.plist 파일을 추가(Add file)합니다.


아래 그림과 같이 기본 Info.plist 파일을 선택 해제합니다.(배포 대상에서 제외)

AppAnalytics_Info.plist_Project_Deployment

위와같이 배포 설정후 앱을 배포하면 변경된 설정의 Info.plist가 배포됩니다.

관련 링크



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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

모바일 앱 실행 시 검은화면이 표시되는 경우 조치방법

2015.07.02 16:39

모바일 기기에 앱을 넣고 실행해보면 가끔 어찌된 영문인지 앱 실행 시 검은화면이 표시되고 더이상 구동되지 않는 경우가 발생합니다. 

검은화면은 앱 실행 시 오류가 발생한 경우 표시됩니다.


실행 시 발생하는 오류는 다양하지만 자주 발생하는 이슈는 아래와 같습니다.

  • FormCreate, FormShow 이벤트에 작성한 코드에서 오류 발생
  • 컴포넌트 Enable(또는 Active) 속성을 True로 설정 후 실행하면 실행 시 활성화 되고 활성화 시 오류 발생 가능
  • 필요한 라이브러리가 함께 배포되지 않은 경우
  • (안드로이드 경우)권한이 없는 기능을 사용한 앱이 구동 시 오류 발생

위 내용의 조치방법은 아래와 같습니다.

1, FormCreate(또는 FormShow) 이벤트에 작성한 코드에서 오류 발생

FormCreate 또는 FormShow 이벤트핸들러에 작성한 코드에서 오류가 발생하면 구동 시 검은 화면이 발생합니다.

오류가 발생하지 않도록 코드를 점검하고, 예외처리(try..except)를 추가하기 바랍니다.


또, 라이프사이클 이벤트를 이용해 앱 완전 구동 후 작업을 수행할 수 있습니다.

2, 컴포넌트 Enable(또는 Active)속성을 True로 설정 후 실행하면 실행 시 활성화 되고 활성화 시 오류 발생 가능

폼위에 올려놓은 컴포넌트도 내부적으로는 앱이 실행될때 코드가 실행됩니다. 특히 Enable과 Active 속성을 갖는 컴포넌트의 경우 앱 실행 시 활성화됩니다. 이때 컴포넌트 활성화에 필요한 정보가  설정되지 않은 경우 오류가 발생합니다.

예를 들어 DB 연결 시 DB의 경로가 플랫폼의 경로로 설정되지 않았다면, 오류가 발생할 수 있습니다.


이 경우, 앱이 구동된 이후 Enabled, Active 속성을 True로 변경하도록 처리하기 바랍니다.

3, 필요한 라이브러리가 함께 배포되지 않은 경우 오류가 발생할 수 있습니다.

데이터 연결 등 외부 라이브러리를 이용하는 경우, 외부 라이브러리 배포를 하지 않고 앱을 실행하면 구동 시 오류가 발생합니다.


이 경우, 배포관리자(Project > Deployment) 화면에서 필요한 라이브러리를 추가하기 바랍니다.

그리고, 플랫폼별 배포경로를 다음 링크에서 확인해 Remote Path를 설정하기 바랍니다.

팁으로 데이터 엑세스 관련된 라이브러리 파일은 Add Featured Files 기능을 이용해 추가할 수 있습니다.


4, (안드로이드 경우)권한이 없는 기능을 사용한 앱이 구동 시 오류가 발생할 수 있습니다.

블루투스 컴포넌트를 폼에 올리고 안드로이드에서 앱을 실행하려면 블루투스 권한을 설정해야 합니다.


사용 권한은 프로젝트 옵션(Project > Option > Uses Permissions)에서 설정할 수 있습니다. 


권한에 대한 자세한 정보는 엠바카데로 기술문서를 참고하세요.

5, 기타 오류가 발생할 수 있는 경우

멀티-디바이스 뷰를 추가 후 추가한 뷰에 설정 값을 잘 못 넣은 경우

위 그림과 같이 멀티-디바이스 디자이너는 여러가지 플랫폼과 해상도에 맞는 디바이스 뷰를 추가해 폼 디자인을 다르게 구성할 수 있습니다.


간혹, 디자인 뿐 아니라 연결 컴포넌트 등의 속성을 추가한 뷰(위 그림에서 Android 5" Phone)에 잘못된 설정을 하고, Master 뷰에서 원인을 찾을 경우 쉽게 못찾는 경우가 있습니다.


위 문제의 해결책은 되도록, 연결 등의 Non-visual 컴포넌트는 데이터모듈에 추가하도록 합니다. 부득이 폼에 추가한 경우 Master 뷰에서 속성을 변경 해 추가한 뷰에서 Master의 속성을 상속받아 실행되도록 합니다.

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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

개발환경 설정 - 안드로이드 개발환경

2015.06.09 11:32

안드로이드 개발환경 설정

RAD Studio를 기본 설정으로 설치하면 안드로이드 앱을 개발할 수 있는 안드로이드 관련 소프트웨어(SDK, NDK, JDK 등)가 기본 설치됩니다.


1, 안드로이드 도구 설치확인하기

Android Tools 설치 확인

윈도우 시작 메뉴(시작버튼 > 앱 보기 > Embarcadero RAD Studio [버전])에서 Android Tools 항목을 확인합니다.


Android Tools 설치(설치하지 않은 경우)

만약, Android Tools 항목이 보이지 않는다면 Modify, Repair, Unistall 메뉴를 선택하고, 다음 화면에서 Android SDK와 Android NDK를 다시 설치하기 바랍니다.


2, 실제 디바이스 연결하기

개발PC와 디바이스 연결

개발 PC와 안드로이드 디바이스를 USB 케이블로 연결합니다. 개발 PC에는 안드로이드 디바이스를 인식하기 위한 USB 드라이버가 설치되어 있어야 합니다.
USB 드라이버 설치가 잘 되어 있다면 아래와 같이 탐색기에 디바이스 목록이 장치 관리자에 Android Phone 목록이 표시됩니다.


USB 드라이버 설치(USB 드라이버가 설치되어 있지 않은 경우)

만약, USB 드라이버가 설치되지 않은 경우 각 디바이스 제조사의 웹사이트를 통해 USB 드라이버 설치파일을 다운로드 받아 설치해야 합니다.


USB 디버깅 설정

개발 PC와 안드로이드 디바이스가 연결되어 있어도, 디바이스에서 USB 디버깅을 사용하도록 설정해야 앱을 배포하고 디버깅할  수 있습니다.

안드로이드 디바이스의 환경설정 > 개발자 옵션 > USB 디버깅 항목을 체크(선택) 합니다.


만약, 개발자 옵션 메뉴가 표시되지 않는다면 "환경설정 > 디바이스 정보 > 빌드 번호" 메뉴를 7회 터치하면 개발자 옵션 메뉴가 표시됩니다.(인드로이드 4.2 이상에서는 개발자 옵션이 기본적으로 감춰져 있습니다.)


USB 디버깅 허용

개발 PC와 장치 연결 시 "USB 디버깅을 허용할까요?" 메시지가 표시되면 허용해야합니다.

3, RAD Studio와 연결 확인하기

앞의 과정을 진행하면 개발PC와 디바이스 연결이 완료되었습니다. 이제 RAD Studio를 열고, File > New > Multi-Deivce Application 메뉴로 새로운 프로젝트를 만듭니다.

우측의 프로젝트 매니저에서 Target Platforms > Android > Target 트리메뉴를 확장하면 아래 그림과 같이 개발 PC와 연결된 디바이스 목록이 표시됩니다.


관련 글



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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

앱의 상태바(StatusBar) 제어하기(색상변경, 감추기, 투명하게)

2015.06.04 11:08

iOS 상태바 제어하기

iOS 앱의 상태바 색상을 변경하고, 감추고, 투명하게 할 수 있습니다.

1, 상태바 색상 변경하기

상태바 색상은 폼의 색상(Fill.Color)을 그대로 반영합니다.

  • 폼의 Fill.Color 변경
  • 폼의 Fill.Kind = Solid

2, 전체화면 전환(상태바 감추기)

폼의 테두리를 표시하지 않으면 상태바도 표시되지 않습니다.

  • 폼의 BorderStyle = None
참고로 코드로 BorderStyle을 변경 시 메모리 참조 에러가 간혹 발생합니다. 만약, 코드로 전체화면으로 전환이 필요한 경우 아래글의 Under the hood – FullScreen & TPlatformServices 섹션을 참고하시기 바랍니다.

3, 상태바 투명하게 하기

상태바를 투명하게 하기 위해서는 파이어몽키 소스코드(FMX.Platform.iOS.pas)를 수정해야합니다.

다음 글을 세번째 항목(三、透明状态栏(能见底图))을 참고하시기 바랍니다.


중국인 개발자(龟山阿卍)의 블로그입니다. 


Tip> 파이어몽키  소스코드를 수정하기

1, RAD Studio 소스코드 경로에서 파이어몽키 소스코드를 복사합니다.(설치경로로\source)

2, 프로젝트 경로에 파이어몽키 소스코드를 붙여넣기 합니다.

3, 프로젝트 매니저에서 위의 파이어몽키 소스코드를 추가합니다.

4, 프로젝트의 파이어몽키 소스코드를 수정 후 컴파일 시 프로젝트의 소스코드를 참고해 빌드됩니다.

안드로이드 상태바 제어하기

안드로이드는 XE7부터 몰입(Immersive)모드를 지원합니다. 몰입모드는 Android KitKat(4.4) 이상에서 동작합니다.

전체화면(상태바 감추기)

폼의 FullScreen 속성을 이용해 전체화면으로 전환/해제 할 수 있습니다.

  • 폼의 FullScreen = True
FullScreen 진입해 전체화면이 되면 상/하단을 쓸어 시스템 메뉴를 표시할 수 있습니다.

참고 글




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

험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

파이어몽키에서 외부 라이브러리 연동하기(jar, so, a)

2015.04.14 09:58

안드로이드 라이브러리 연동하기

JAR 라이브러리 연동하기

안드로이드 커스텀 라이브러리 연동하는 방법은 엠바카데로 기술문서를 통해 확인할 수 있습니다.

위 페이지에서 제공하는 링크를 따라가며 상세 내용을 익히시기 바랍니다.

libXXX.so 라이브러리 연동하기

엠바카데로 팀 제팬 블로그(http://blogs.embarcadero.com/teamj/)의 글을 링크합니다.

아래 글에서 이클립스로 so 라이브러리를 만들고 델파이에서 dlopen 함수를 이용해 로드해 오는 내용을 참고할 수 있습니다.

(델파이 XE5에서 작성된 글이지만 사용방식은 최신버전에서도 동일합니다.)

iOS 라이브러리 연동하기

정적 라이브러리(*.a) 연동하기

iOS에서는 동적 라이브러리(*.dylib)를 사용하면 앱을 앱스토어에 등록 시 거절 사유가 되기 때문에 정적 라이브러리(*.a)만 사용 가능합니다.


iOS에서 정적 라이브러리 연동하는 방법은 최원식옹(http://blog.naver.com/simonsayz)님의 블로그 글을 링크합니다.

(델파이 XE4에서 작성된 글이지만 사용방식은 최신버전에서도 동일합니다.)

    델파이(파이어몽키)에서 Objective-C 라이브러리를 사용하기 위한 로더를 만드는 내용을 샘플로 소개합니다.

    델파이(파이어몽키)에서 Objective-C 라이브러리와 컨트롤 연동하는 방법을 샘플로 소개합니다.

      실무에서 사용하는 라이브러리(ZBar)를 델파이에서 연동하는 내용을 샘플을 통해 소개합니다.



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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

      1. Blog Icon
        윤수아

        이제 막 XE7으로 안드로이드 개발을 시작하려고 하는데
        안드로이드 SDK, JAVA, 브릿지파일, 자바임포트, Java2OP
        이런 개념들이 뒤죽박죽 섞여서 개념 잡기가 힘이 드네요..

        그러다가 아래와 같은 컴포넌트 판매 페이지를 보게 되었는데...
        저 둘의 구분이 뭔지도 모르겠고.. JAVA2OP.exe 가 저 역활 아닌가.. 하면서 다시 혼란스럽네요..
        http://www.winsoft.sk/jbridge.htm
        http://www.winsoft.sk/jimport.htm

      2. Blog Icon
        김윤태

        위 주제에 반대로 하고 싶은데요. 파이어몽키에서 정적 또는 동적 라이브러리를 만들어서 외부 프로그램 (XCode, JAVA)에 연동하는 것은 어떻게 되는지 궁금합니다. 인터넷에서 찾아 봤는데 자료가 없더군요. 꼭 답변 부탁드립니다. ^^

      3. 델파이에서 아직 파이어몽키 라이브러리 개발을 지원하지 않습니다.

      [XE7] iOS 시뮬레이터 배포 시 'Please specify exact device preset UUID.' 오류 대응

      2015.02.24 17:48

      iOS 시뮬레이터 실행 시 아래와 같은 오류 발생 시 대처사항입니다.



      결과적으로 원인은 RAD Studio XE7에서 iOS Simulator 8.1을 지원하지 않아서 입니다.

      (iOS Device에서는 8.1을 지원합니다.)

      Hotfix iPhone Simulator 7.1 지원

      RAD Studio XE7 출시 이후 나온 7.1에 대한 패치가 필요합니다. 아래 글의 2번째 Hotfix 설치하기 바랍니다.

      iPhone Simulator 7.1 설치 및 설정

      1. 맥에서 XCode(6.1) 실행 > XCode > Preferences... > Download 화면에서 iOS 7.1 Simulator 다운로드
      2. 델파이 Project Manager의 iOS Simulator에서 Property > SDK에서 iPhoneSimulator 7.1 선택(없으면 Add new... 선택)
      3. (PAServer가 연결된 상태에서)자동으로 iPhoneSimulator 7.1 관련 라이브러리 생성(만약 동작하지 않으면 PAServer 재시작)
      4. iOS Simulator로 다시 배포 및 테스트


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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

      트루타입 폰트(FontAwesome) 파일을 이용해 아이콘 표시하기(안드로이드, iOS)

      2015.01.28 09:20

      트루타입 폰트에 그림을 등록해 아이콘으로 사용하는 방식은 최근 웹개발에서 많이 사용됩니다.

      델파이에서 어떻게 사용할까. 궁금했는데요. 마침 엠바카데로 커뮤니티 블로그에 관련 글이 올라와 소개합니다.



      간단한 개발팁을 보태면
      1. FontAwesome에서 다운로드 후 폰트파일 설치(fontawesome-webfont.ttf 찾아 더블클릭 > 설치)
      2. 윈도우 유틸리지 중 "문자표" 실행 후 FontAwesome 폰트 선택 후 사용할 아이콘 선택 > 클립보드 복사
      3. 델파이에서 Label 등을 추가 후 문자타입(Font.Family)를 "FontAwesome" 선택 후 값에 2번의 클립보드 내용 붙여넣기
      4. 안드로이드, iOS에 폰트파일 배포와 사용하도록 설정(원글 참고)

      관련 글


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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

      [XE7] 안드로이드 4.4 스타일의 대화상자 사용하기

      2015.01.07 10:04

      델파이를 이용해 안드로이드 앱개발 시 기본 대화상자(Dialog)는 안드로이드 2.3 버전으로 표시됩니다.

      이 이슈는 엠바카데로 커뮤니티 3.0 사이트에 등록되었으며 David I가 직접 답변을 달고 해결방안을 소개했습니다.


      결과 적으로 FMX.Helper.Android.pas 유닛의 GetNativeTheme 함수를 수정해 해결할 수 있습니다.

      (변경된 소스 적용은 프로젝트에 수정한 파일을 추가해서 간단히 해결할 수 있네요.)



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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 XE7, 델파이, 안드로이드

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

      2014.12.22 10:28

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

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

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




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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 Firemonkey, ios, 안드로이드

      안드로이드 5.0(Lollipop)에서 실행 시 오류대응 방법

      2014.12.03 10:02

      안드로이드의 새로운 운영체제인 롤리팝에서 앱 실행 시 스플래쉬 이미지 이후 예외가 발생해 앱이 정상 구동되지 않는 이슈가 발생하고 있습니다.


      간단하게 안내해 드리면

      안드로이드 5.0(롤리팝)에서 앱 구동 시 EBitmapLoadingFailed 오류가 발생합니다. 해당 오류는 *.fmx에 포함된 TBitmap 데이터를 LoadFromStream으로 읽어 올때 발생하는 것으로 보이며, 해결 방안은 Image등의 컴포넌트에 등록된 이미지를 파일로 배포 후 동적으로 읽어 들이는 방법으로 해결할 수 있습니다.


      아래 원문에서는 위 작업을 자동화 할 수 있는 팁과 관련 소스를 제공하며, 더 자세한 내용을 확인할 수 있습니다.

      (이탈리아어 이므로 구글 번역기를 통해 번역해서 보시기 바랍니다.)

      참고 글

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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 EBitmapLoadingFailed, 롤리팝, 안드로이드

      구글 매터리얼 아이콘 753종

      2014.11.25 22:24

      구글에서 공개한 753종의 매터리얼 아이콘입니다. 모바일 앱 개발 시 유용하게 사용할 수 있습니다.



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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 아이콘

      RAD Studio XE7에서 추가된 안드로이드 기능 익히기(동영상)

      2014.11.04 11:32

      RAD Studio XE7에서 다양한 안드로이드 기능 추가/개선 되었습니다.

      아래 동영상을 통해서 개선된 내용에 대한 소개와 몇가지 기능은 데모로 자세히 설명합니다.

      • 안드로이드 스플래쉬 스크린
      • 안드로이드 몰입모드(전체화면)
      • 안드로이드 라이브러리(JAR, Java class)를 RAD Studio에서 사용하는 Java2OP.exe 사용방법



      RAD Studio XE7에서 추가된 대표적인 안드로이드 기능은 아래와 같습니다.

      • 구글 모바일 광고 SDK(XE6에서도 Hotfix로 변경)
      • 몰입모드-전체화면(안드로이드 KitKat 4.4 이상)
      • 안드로이드에서 스플래쉬 스크린 지원
      • 푸시알림과 광고 프로젝트 옵션
      • 프로젝트 매니저에서 자바 라이브러리 추가
      • Java2OP tool: 자바 안드로이드 클래스를 오브젝트 파스칼 인터페이스로 생성


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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

      [XE7] 안드로이드 브릿지 파일을 생성할 수 있는 Java2OP.exe을 다운로드 하세요.

      2014.11.03 14:20

      RAD Studio XE7(델파이, C++빌더) 구입 하신 분들은 Java2OP 커맨드라인 유틸리티를 다운로드 할 수 있습니다.

      Java2OP(Java to Object Pascal) 커맨드라인 툴은 델파이 안드로이드 어플리케이션에서 자바 라이브러리를 사용할 수 있도록 자바 클래스 파일을 이용해 오브젝트 파스칼(델파이)용 브릿지 파일을 생성할 수 있는 도구입니다.

      이 툴을 이용하면 JAR 파일 또는 자바 클래스 파일을 연동할 수 있는 Object Pascal 브릿지 파일을 생성해 델파이에서 이용할 수 있습니다.


      자세한 사용법은 다음 글의 동영상으로 익힐 수 있습니다.


      참고





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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 Delphi, Java2OP, RAD Studio XE7, XE7

      FMX 리스트박스를 정렬하고 필터링하는 내용 설명

      2014.10.22 10:10



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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보

      내가 원하는 이름으로 모바일 앱의 이름 변경하기

      2014.10.21 11:30

      배포 전 프로젝트 옵션을 변경해 앱의 정보를 설정할 수 있습니다.

      이름을 변경하려하는 경우 아래 정보를 참고하세요.

      안드로이드

      Project > Option > Version Info > label



      iOS

      Project > Option > Version Info > CFBundleDisplayName





      참고



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

      험프리.김현수 험프리.김현수 Firemonkey/팁과 정보 android, CFBundleDisplayName, Display, ios