본문 바로가기

파이어몽키

델파이 iOS Touch ID 구현하기(래퍼 클래스) Touch ID는 애플 iOS의 LocalAuthentication 프레임워크 통해 구현할 수 있습니다.애플의 Touch ID는 애플의 지문인식 시스템입니다.https://developer.apple.com/library/ios/documentation/LocalAuthentication/Reference/LocalAuthentication_Framework/ 델파이에서 Touch ID를 구현하기 위해 LocalAuthentication 프레임워크를 델파이로 래핑한 iOSapi.LocalAuthentication.pas를 다운로드 받아 시스템 PATH에 등록된 경로에 복사합니다. iOSapi.LocalAuthentication.pas 소스파일 다운로드 및 사용법과 설명은 아래 링크에서 가능합니다.(영문).. 더보기
[데이터스냅] 데이터스냅 클라이언트에서 TCP/IP로 접속 시 ConnectTimeout이 적용되지 않는 경우 대처방법 (이글은 RAD 스튜디오 10 시애틀 기준으로 테스트하고, 작성되었습니다. 다른 버전 사용자들은 이슈 발생여부를 먼저 확인하고 아래 내용을 참고하시기 바랍니다.) 이 글은 데이터스냅 클라이언트에서 TCP/IP로 접속 시 Timeout이 적용되지 않는 이슈에 대해 원인을 확인하고 회피하는 내용을 소개합니다. 데이터스냅 클라이언트 프로그램에서 서버에 접속하기 위해 SQLConnection을 사용합니다. 연결방식(CommunicationProtocol)은 tcp/ip, http, https가 있습니다.Timeout 속성은 CommnunicationTimeout(송수신 시간제한)과 ConnectTimeout(연결 시간제한) 두가지가 있습니다. 결론적으로 Timeout 속성이 적용되지 않는 경우는 tcp/ip 연.. 더보기
[따라하기] 건강데이터 수집 및 기록 시스템 #1 - BLE 기반 스마트 체중계에서 실시간 데이터 받기 위 동영상(건강데이터 수집 및 기록 시스템 데모) 중 스마트 체중계의 체중정보를 모바일에서 실시간으로 받아오는 기능을 따라하기로 진행합니다. 스마트 체중계에서 체중정보 수신앱 만들기 ❑ 앱소개앱소개 이 앱은 스마트체중계와 블루투스 LE로 연결 해 체중정보를 실시간으로 받아와 화면에 표시하는 앱입니다. 따라하기의 목적 스마트 체중계 연결을 통해 블루투스 LE 인터페이스를 제공하는 다양한 기기(또는 센서)에 연결하고 데이터를 수신하는 방법을 이해합니다. 따라하기에서는 다음 내용을 다룹니다.RAD Studio로 멀티-디바이스(안드로이드, iOS, 윈도우, OS X) 앱 프로젝트 생성 및 화면 디자인TBluetoothLE 컴포넌트로 스마트 체중계와 연결 및 데이터 수신(구독)실 기기에 배포 및 테스트(안드로이드.. 더보기
iOS9의 새로운 기능인 "App transport Security" 예외 허용을 위한 Info.plist xml 수정방법 이 글은 엠바카데로의 David I 블로그 글을 인용 및 참고해 작성한 글입니다. 자세한 내용은 원글을 통해서 확인하시기 바랍니다.http://community.embarcadero.com/blogs/entry/how-to-use-custom-info-plist-xml-to-support-ios-9-s-new-app-transport-security-featureiOS9의 App Transport Security 예외 허용하기iOS9에서 애플은 내부적으로 HTTP 프로토콜 요청하는 응용프로그램을 제한하는 새로운 "App Transport Security" 기능을 추가했습니다. App Transport Security애플 App Transport Security 기술문서: https://developer... 더보기
[따라하기] 위험지역 경보 시스템 #1 - 비콘을 이용해 위험지역 진입 경보앱 만들기 업데이트 내역 2019-05 : 안드로이드 권한 모델 변경(런타임 시 권한 요청)이 적용되도록 업데이트2019-10 : 안드로이드 권한 모델에 위치(ACCESS_FILE_LOCATION) 항목 추가 위 동영상(위험 지역 경보 시스템 데모) 중 위험 지역 진입 시 경보를 발생하는 앱을 따라하기를 통해 만들어 봅니다.위험지역 진입 경보앱 만들기❑ 앱 소개앱 소개이 앱은 위험지역에 진입 시 화면과 경고음으로 위험지역에 진입을 경고해 주는 (프로토 타입)앱입니다. 따라하기의 목적따라하기를 통해 비콘을 이용한 위치기반 앱 개발을 시작합니다. 이 따라하기에서는 다음 내용을 다룹니다.비콘 컴포넌트를 이용해 비콘과의 거리를 활용합니다.UI 컨트롤의 투명도에 애니메이션 효과를 적용해 화면경고 기능을 구현합니다.사운드 파.. 더보기
[XE8] 모바일 앱에서 클래식 블루투스를 이용해 데이터 전송하기 지난 7월 24일 사물인터넷 앱 개발 with RAD Studio 교육을 진행했습니다. 교육이 끝나고 한 교육생분이 "클래식 블루투스로 데이터 전송이 잘되지 않아요."라는 질문을 받고 테스트한 내용 공유합니다. 클래식 블루투스 기능 테스트는 RAD Studio 기본 샘플 중 "Classic Bluetooth Basic app"으로 진행했습니다. Classic Bluetooth Basic appRAD Studio XE8 사용자는 다음 경로에서 샘플을 확인할 수 있습니다. C:\Users\Public\Documents\Embarcadero\Studio\16.0\Samples\Object Pascal\Mobile Samples\Device Sensors and Services\Bluetooth\Classic .. 더보기
모바일 앱 실행 시 검은화면이 표시되는 경우 조치방법 모바일 기기에 앱을 넣고 실행해보면 가끔 어찌된 영문인지 앱 실행 시 검은화면이 표시되고 더이상 구동되지 않는 경우가 발생합니다. 검은화면은 앱 실행 시 오류가 발생한 경우 표시됩니다. 실행 시 발생하는 오류는 다양하지만 자주 발생하는 이슈는 아래와 같습니다.FormCreate, FormShow 이벤트에 작성한 코드에서 오류 발생컴포넌트 Enable(또는 Active) 속성을 True로 설정 후 실행하면 실행 시 활성화 되고 활성화 시 오류 발생 가능필요한 라이브러리가 함께 배포되지 않은 경우(안드로이드 경우)권한이 없는 기능을 사용한 앱이 구동 시 오류 발생위 내용의 조치방법은 아래와 같습니다.1, FormCreate(또는 FormShow) 이벤트에 작성한 코드에서 오류 발생FormCreate 또는 F.. 더보기
[하이브리드 앱 개발] 웹페이지에서 델파이 함수 호출하기 델파이는 성능좋은 네이티브 모바일 앱을 개발할 수 있는 개발 도구입니다.모든 기능을 네이티브로 개발할 수 있지만, 이미 반응형 웹페이지를 갖고 있는 경우 일부 기능을 웹브라우를 통해 구현해 하이브리드 형태로 개발 할 수 있습니다. 이 경우 델파이 코드에서 웹페이지의 자바스크립트를 호출하는 방법은 웹브라우저에서 제공하는 메소드(EvaluateJavaScript)를 사용할 수 있지만, 반대로 웹브라우저에서 델파이 코드를 호출하는 방법은 잘 모르실 것 같아 샘플을 만들어 공개합니다. 이글에서는 다음 기능을 소개합니다.델파이 코드로 웹브라우저의 자바스크립트 코드 호출하기웹브라우저에서 델파이 메소드 호출하기(파라메터 포함) 기본 구성❑ 웹페이지 구성웹페이지(http://hjf.pe.kr/fmx/hybrid.php.. 더보기
TWebbrowser의 "tel:, sms:" 링크가 동작하지 않는 이슈 해결방법 델파이로 하이브리드 앱 개발 시 안드로이드 환경에서 전화걸기 링크(tel:)를 클릭하면 웹페이지 오류(ERR_UNKNOWN_URL_SCHEME)가 표시됩니다.원래는 전화걸기 기능이 실행되야 합니다. 이 글은 안드로이드 하이브리드 앱에서 웹브라우저(TWebBrowser)의 전화걸기, 문자전송 등의 링크 클릭 시 해당 기능이 동작하도록 처리하는 방법을 안내합니다. 먼저 웹페이지의 구성과 증상을 살펴봅니다.웹페이지 구성과 증상웹페이지(http://hjf.pe.kr/fmx/hybrid.php)에는 아래와 같이 전화걸기, 문자전송, 메일 전송 링크를 제공합니다.[Phone number] / [Send sms] / [Send mail] 위 페이지를 안드로이드 앱의 웹브라우저에 표시하고, 전화걸기 링크를 클릭하면 다.. 더보기
개발환경 설정 - 안드로이드 개발환경 안드로이드 개발환경 설정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와 안드로이드.. 더보기
앱의 상태바(StatusBar) 제어하기(색상변경, 감추기, 투명하게) iOS 상태바 제어하기iOS 앱의 상태바 색상을 변경하고, 감추고, 투명하게 할 수 있습니다.1, 상태바 색상 변경하기상태바 색상은 폼의 색상(Fill.Color)을 그대로 반영합니다.폼의 Fill.Color 변경폼의 Fill.Kind = Solid2, 전체화면 전환(상태바 감추기)폼의 테두리를 표시하지 않으면 상태바도 표시되지 않습니다.폼의 BorderStyle = None참고로 코드로 BorderStyle을 변경 시 메모리 참조 에러가 간혹 발생합니다. 만약, 코드로 전체화면으로 전환이 필요한 경우 아래글의 Under the hood – FullScreen & TPlatformServices 섹션을 참고하시기 바랍니다.http://delphiaball.co.uk/2014/10/16/expanding-.. 더보기
[XE8] 스피드버튼의 이미지를 크게 표시할 수 있습니다. 파이어몽키에 이미지리스트가 추가(XE8~)되어 스피드버튼에 이미지 표시가 아주 편리해졌습니다. 하지만, 이미지의 기본크기가 너무 작다고 느끼신 경우 다음 글을 통해 스타일을 수정해 큼지막한 이미지를 표시해 보세요. 중국인 개발자(龟山阿卍)의 블로그입니다. http://www.cnblogs.com/onechen/p/4549631.html (번역: https://translate.google.com/translate?sl=zh-CN&tl=ko&js=y&prev=_t&hl=ko&ie=UTF-8&u=http%3A%2F%2Fwww.cnblogs.com%2Fonechen%2Fp%2F4549631.html&edit-text=) 더보기
[JVESoft] 광고와 결재 컴포넌트(AdMob, Paypal 등) JVESoft는 각종 광고 플랫폼과 결재 플랫폼에 연결할 수 있는 컴포넌트를 제작해 판매하고 있습니다.http://www.jvesoft.com/wp/ads-and-in-app-payments/ RAD Studio에서는 TBannerAd 컴포넌트로 광고기능을 TInAppPuchase 컴포넌트로 결재 기능을 지원하고 있습니다.각 컴포넌트의 기능과 편의성을 검토해 보시고 원하는 컴포넌트를 선택해서 광고와 결재기능을 여러분의 앱에 추가하시기 바랍니다. 더보기
[iOS] 배포파일 아이클라우드 백업 옵션설정하기 iOS앱 배포 시 함께 배포하는 파일에 대해 아이클라우드 백업 설정하는 코드입니다.대상은 "StartUp\Documents"에 배포하는 파일이며, 아이클라우드 백업 설정하지 않으면 앱스토어 배포 시 리젝처리 될수 있다고 하니 아래 코드를 참고해서 아이클라우드 백업 설정처리하시기 바랍니다.uses iOSapi.Foundation; function SetBackupFlag( AFileName: string; ABackup: boolean): boolean; var URL : NSUrl; Err : PPointer; begin URL := TNSURL.Wrap(TNSURL.OCClass.fileURLWithPath(NSStr(AFileName))); Result := URL.setResourceValue(TN.. 더보기
파이어몽키에서 외부 라이브러리 연동하기(jar, so, a) 안드로이드 라이브러리 연동하기JAR 라이브러리 연동하기안드로이드 커스텀 라이브러리 연동하는 방법은 엠바카데로 기술문서를 통해 확인할 수 있습니다.Using a Custom Set of Java Libraries In Your RAD Studio Android Apps - (한글번역)위 페이지에서 제공하는 링크를 따라가며 상세 내용을 익히시기 바랍니다.Java2OP.exe - 안드로이드 용 네이티브 브릿지 파일 생성기프로젝트 매니저에서 JAVA 라이브러리 추가하기수동으로 classes.dex 파일 제작 및 배포libXXX.so 라이브러리 연동하기엠바카데로 팀 제팬 블로그(http://blogs.embarcadero.com/teamj/)의 글을 링크합니다. 아래 글에서 이클립스로 so 라이브러리를 만들고 델.. 더보기
[FMX] ListBox 전체체크 기능 구현하기 리스트박스(TListBox)에 체크박스를 두고 버튼 클릭 시 전체체크하는 기능에 대한 문의가 있어 정리해 봤습니다. 이 글에서는 아래 내용을 학습할 수 있습니다.리스트박스를 동적으로 생성하는 방법리스트박스 아이템에 체크박스를 표시하는 속성화면 구성컴포넌트 속성 설정주요 속성을 설정합니다.(Object Inspector에서 속성을 설정해도 됩니다.)procedure TForm2.FormCreate(Sender: TObject); begin Button1.StaysPressed := True; //버튼 눌림(IsPressed) 상태 유지 ListBox1.DefaultItemStyles.ItemStyle := 'listboxitemrightdetail'; // 텍스트와 오른쪽에 상세정보가 표시되도록 기본속성 .. 더보기
[XE7] iOS 시뮬레이터 배포 시 'Please specify exact device preset UUID.' 오류 대응 iOS 시뮬레이터 실행 시 아래와 같은 오류 발생 시 대처사항입니다. 결과적으로 원인은 RAD Studio XE7에서 iOS Simulator 8.1을 지원하지 않아서 입니다.(iOS Device에서는 8.1을 지원합니다.)Hotfix iPhone Simulator 7.1 지원RAD Studio XE7 출시 이후 나온 7.1에 대한 패치가 필요합니다. 아래 글의 2번째 Hotfix 설치하기 바랍니다.[Hotfix] iOS 배포와 요세미티, VCL Bitmap 파일 보안취약점 패치iPhone Simulator 7.1 설치 및 설정맥에서 XCode(6.1) 실행 > XCode > Preferences... > Download 화면에서 iOS 7.1 Simulator 다운로드델파이 Project Manager.. 더보기
파이어몽키 용 그리드 컴포넌트 안내 - FirePower 태블릿용 앱에서는 한 화면에 많은 정보(여러 컬럼과 레코드)를 표시해야하는 경우가 있는데요.이때, 기본 컴포넌트를 이용한다면 리스트뷰에 컬럼을 추가해 구현할 수 있지만, 아무래도 전통적인 그리드 컴포넌트가 필요할 수 있습니다. 오늘은 이미 인포파워 그리드로 유명한 Woll2Woll사의 파이어몽키용 그리드 컴포넌트인 FirePower 컴포넌트를 소개합니다. 제가 트라이얼로 돌려본 주요 기능은 아래와 같습니다.기본 그리드 컴포넌트(TGrid, TStringGrid) 대비 스크롤 속도가 상당히 빠릅니다.(이 부분은 기본 컴포넌트의 성능도 꾸준히 개선되고 있습니다.)다양한 스타일(배경색상, 글자색, 글자 스타일 등)을 적용할 수 있습니다.셀에 버튼, 이미지 등 속성을 지정할 수 있습니다.컬럼별 색상을 지정할 수.. 더보기
[XE7] 안드로이드 블루투스 활성화 조회와 설정하기 일본인 개발자인 山本隆(야마모토 타카시)의 글을 참고해 안드로이드에서 블루투스 활성여부 조회와 설정하는 내용을 공유합니다.블루투스 활성여부 조회uses Androidapi.JNI.Bluetooth; procedure TForm2.Button1Click(Sender: TObject); var Adapter: JBluetoothAdapter; begin Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter; if Adapter.isEnabled then ShowMessage('Bluetooth가 활성화 되어있습니다.') else ShowMessage('Bluetooth가 활성화 되지 않았습니다.'); end;블루투스 활성화 설정uses Androidapi.J.. 더보기
[XE7] 안드로이드 WiFi 상태조회와 설정하기 일본인 개발자인 山本隆(야마모토 타카시)의 글을 참고해 안드로이드 앱에서 Wifi 상태를 읽고 키고끄는 기능을 구현해 보고 공유합니다.❑ 안드로이드 WifiManager 델파이 브릿지 파일 생성Java2OP 툴을 이용해 WifiManager 델파이 브릿지 파일을 만듭니다.Java2OP.exe -classes android.net.wifi.WifiManager -unit Androidapi.JNI.WifiManager 위 명령어를 실행하면 아래와 같이 Androidapi.JNI.WifiManager.pas 유닛파일이 생성됩니다. 해당 유닛파일을 프로젝트 경로 또는 본인이 관리하는 라이브러리 경로에 복사합니다.(저는 D:\Projects\common\rtl\XE7\android 경로에 복사 후 Option .. 더보기