4. RAD 스튜디오는?
• 가장 빠르게 크로스-플랫폼 네이티브 앱을 개발하는
방법
•유연한 클라우드 서비스와 다양한 IoT 연결 제공
PLATFORM
INDEPENDENT
CLOUD READY
CROSS
PLATFORM
NATIVE
5. RAD 스튜디오 플랫폼 지원
• 최신버전의 메이저 운영체제를 하나의 코드베이스로!
• 공식 지원
• Windows 10 Anniversary Update
• macOS Sierra
• iOS 10
• Android N (Nougat)
• Linux 64-bit (우분투와 레드햇 엔터프라이즈)
6. 빠르고, 시각적인 개발
• RAD 스튜디오는 윈도우 10을 위한 강력한 VCL 컨트롤과
윈도우, 맥, iOS, 안드로이드를 개발할 수 있는 FMX를
제공
7. 클라우드 서비스
AWS, Azure 지원
• 스토리지, 테이블, 쿼리 엑세스
BaaS 프로바이더
• Parse, Kinvey 포함
REST 그리고 HTTP 클라이언트 라이브러리
• 플랫폼 라이브러리 기반으로 구현, 네이티브 HTTPS 지원
NoSQL 데이터베이스 컴포넌트
• MongoDB 완벽 지원
8. 광범위한 사물인터넷 연결
사물인터넷(IoT) 기능으로 데스크탑과 모바일 앱 확장
• 블루투스, 블루투스 LE, 그리고 WiFi
• 바로 사용할 수 있는 IoT 컴포넌트
• 비콘을 통한 근접 인식, 비콘펜스
• ThingPoints를 사용한 분산 장치 모니터링
11. 찬성
네이티브 UX
네이티브 성능
보안
반대
다중의 코드베이스
중복된 여러 팀
개발/운영 비용 상승
찬성
단일 팀
개발 비용 절감
신속한 시장 대응
반대
스크립트 성능 이슈
네이티브가 아닌 UX
보안 취약
앱 개발 툴 선택지
벤더사 개발툴 웹 기술 기반 툴멀티-디바이스
순수 네이티브
Embarcadero
Apple
Google
Microsoft
단일
디바이스
멀티
디바이스
스크립트, VM네이티브
HTML5 /
JavaScript
12. Embarcadero,
XCode
Appcelerator,
HTML5, Sencha,
Kendo, Edge,
PhoneGap, Corona
Xamarin,
Dalvik
Titanium.Geolocation.distanceFilter =
.25;
Ti.Geolocation.purpose = "Callbacks Are
Your Friend”;
// make the API call
Ti.Geolocation.getCurrentPosition(functi
on(e) {
// do this stuff when you have a
position, OR an error
if (e.error) {
Ti.API.error('geo - current
position' + e.error);
return;
}
// got the location information
Ti.App.info('got a location
',JSON.stringify(e));
}); JavaScript
100100110010
011001001100
100110010011
001001100100
110010
ARM Binary
Bytecode IL
JavaScript
런타임인터프리
터
가상 머신 (VM)
런타임
네이티브 스크립트 가상머신
14. 플랫폼 API로 개발
iOS iOS iOSiOS iOS iOS iOS iOS
Code
Android Android Android Android Android Android Android Android
Windows Windows Windows Windows Windows Windows Windows Windows
Mac Mac Mac Mac Mac Mac Mac Mac
APIs
15. 제공되는 컴포넌트로 개발
iOS iOS iOSiOS iOS iOS iOS
Component Component
iOS
Code
Android Android Android Android Android Android Android Android
Windows Windows Windows Windows Windows Windows Windows Windows
Mac Mac Mac Mac Mac Mac Mac Mac
APIs
필요한 경우
개발자들은 플랫폼
API에 직접 접속하여
사용 가능
파이어몽키에서 외부 라이브러리 연동하기(jar, so, a) : http://tech.devgear.co.kr/410845
16. 하나의 코드, 하나의 팀, 하나의 스케줄
•하나의 코드 하나의 팀 주요 장점
• 개발자: 같은 시간에 더 인상적인 결과 제공
• 매니저: 앱 개발을 위한 모든작업이 하나 –
복잡성과 비용 감소
• 경영진: 빠른 시장 진입 - 기술 주도권,
경쟁우위를 지킴
17. 멀티 디바이스 개발 시작하기
http://tech.devgear.co.kr/402210
플랫폼 사전 준비사항 디바이스에서 실행
(공통)
안드로이드 •제조사 USB 드라이버 설치
•USB 디버깅 설정(안드로이드
환경설정)
•USB 케이블 연결
•타겟 플랫폼 선택
(안드로이드, iOS 디바이스
32/64 bit, iOS 시뮬레이터)
•빌드(실행), 디버깅
아이폰 •애플 개발자 계정 등록
•맥(OS X)에 인증서 설치
•맥에 PAServer 설치 및 실행
윈도우 •(없음) •타겟 플랫폼 선택
•빌드(실행) 디버깅OS X •맥에 PAServer 설치 및 실행
18. 멀티-디바이스: FireUI
• 엠바카데로의 기술 컬렉션으로 하나의 화면(UI) 폼을 서로 다른
모든 디바이스와 화면 비율에 적용
• 멀티-디바이스 디자이너
• IDE 미리보기 / 앱 미리보기
• 반응형 서비스
• MultiView 컴포넌트
19. 모바일 개발 사례
모바일 개발 사례 : http://tech.devgear.co.kr/delphi_news/345279
21. RAD 서버 아키텍처
EMS
DB
System Database EMS Server HTTP Clients
• Version
• API
• Users / Groups
• Installations
• Push
• Edgemodules
• Resource A1
• Resource A2
• Resource B1
• …
VCL / FMX
기본 제공 리소스
사용자 제작 리소스
플러그인 형태의
EMS 패키지(*.bpl)
(REST API 제공)
24. 사물인터넷 통신기술
통신기술 블루투스 WiFi
연결 장비 비콘 블루투스 센서/장비
(클래식 블루투스,
블루투스LE)
WiFi 인터페이스 장비
(REST API, TCP/IP, UDP, …)
구조
특징 실내외 위치기반
서비스(LBS) 제공 가능
블루투스 LE 기반
최근 모바일/PC 장비에서
블루투스 지원
기타 장비에는 모듈
추가가능
범용적인 인터넷환경에서
프로토콜 제공
[따라하기] 위험지역 경보 앱 만들기 : http://tech.devgear.co.kr/413402
[따라하기] 건강데이터 수집 앱 만들기 : http://tech.devgear.co.kr/416019
25. 비콘 펜스(Beacon Fence)
• Beacon Zone Fencing
• 구역(Zone) 입/퇴장 감지
• 구역별로 설치된 비콘 신호 이용
• Beacon Map Fencing
• 실/내외 길찾기, 지정 구역 입/퇴장
감지
• 지도위에 비콘, 경로, 지역 설정
(BeaconFence Map Editor)
비콘펜스 소개 및 데모 : http://tech.devgear.co.kr/432221
27. 왜 Windows 10인가?
윈도우 중 가장빠른 채택률
• 2016년 3월 30일 기준 2억 7천만의 윈도우 10 장치
• 윈도우 10 채택 기업 꾸준한 증가
VCL은 윈도우 10으로의 최고의 마이그레이션 경로 제공
• 아직 이전버전 윈도우 지원을 유지
• 프로젝트 센터니얼(Microsoft 출시예정)을 통해 윈도우 10 스토어
배포
36
마이그레이션 센터 : http://www.devgear.co.kr/rad-in-action/migration-upgrade-center/
28. 윈도우 8.1, 윈도우 7 2016년 10월 판매 중단
Windows 수명 주기 팩트 시트: https://support.microsoft.com/ko-kr/help/13853/windows-lifecycle-fact-sheet#section_2
29. RAD Studio Windows 10 지원
가장 완벽하게 원도우 플랫폼 지원
• VCL은 가장 뛰어나고, 가장 완벽한 네이티브 윈도우
컴포넌트 라이브러리입니다.
• Win32, Win64 그리고 WinRT API를 통합
Windows 10 전용 컴포넌트
• 새로운 윈도우 10 UI 컨트롤과 스타일
• WinRT/UWP 이용 윈도우 10 공지와
공유 컴포넌트
• 10 시애틀 이후 사용가능
37
40. 윈도우 10 스토어 지원
• 이미 제작한 또는 신규 Win32/64 애플리케이션을
윈도우 10 스토어에 등록
• 마이크로소프트의 윈도우 10 Anniversary(1주년)
업데이트 일환으로 윈도우 10 스토어 도입
• 데스크탑 브릿지(일명 Centennial Bridge) 기술을
사용해 Win32/Win64 애플리케이션을 Universal
Windows Platform 애플리케이션으로 패키지화
• IDE기반 윈도우 스토어 배포 지원
• 윈도우 10 스토어 미리보기 모드로 즉시 열림
VCL & FMX베를린 업데이트 2 Anniversary 에디션에서 처음 지원
41. RAD 스튜디오: 데스크탑 브릿지를 지원하는 첫번째 IDE!
“윈도우 10의 데스크탑 브릿지를 통해 마이크로소프트 윈도우
데스크탑에 구축 된 소프트웨어가 최신 윈도우 애플리케이션 패키지
형식을 사용할 수 있게 해주는 도구를 제공합니다. 이를 통해 보다
깨끗한 설치, 제거 및 업데이트, 윈도우 스토어 및 윈도우 스토어 for
비지니스를 통한 새로운 배포 기회를 얻을 수 있으며 알림과 같은
Universal Windows Platform 기능으로 소프트웨어를 향상시킬 수
있습니다. 개발자는 이제 RAD 스튜디오를 사용해 데스크탑 브릿지를
사용하는 애플리케이션을 직접 구축 할 수 있게되어 매우 기쁩니다.
RAD 스튜디오는 데스크탑 브릿지를 지원하는 최초의 개발자 IDE이며,
큰 재작성 없이도 기존 응용 프로그램을 빠르게 마이그레이션 할 수
있습니다.”
Kevin Gallo, 마이크로소프트, 윈도우 개발자 플랫폼 부사장
43. 리눅스 지원
• 리눅스 64비트 서버에 집중
• 공식 지원
• Ubuntu 16.x LTS
• RedHat Enterprise 7
• 대부분의 배포판에서 작동할 것으로 예상 됨
• 서버 사이드 기술만
• RTL, DB RTL, IOUtils 그리고 파일 시스템 접근, FireDAC, HTTP, REST, Cloud,
WebBroker, Apache 통합, DataSnap, EMS/RAD Server,
JSON, XML, SOAP, Indy, IoT, 그리고 그 이상
• C++빌더 리눅스 지원은 10.2 업데이트1 예정
Linux server 지원은 엔터프라이즈와 아키텍처 에디션
44. 델파이 리눅스 컴파일러
• 64-비트 인텔 리눅스 대상
• LLVM 기술 기반
• ARC 사용
• 기본으로 ZBS 꺼짐
• SDK 가져오기 위해 리눅스 박스 필요(PAServer 통해)
• 컴파일을 위한 것은 아님
• 배포 및 디버깅을 위해 PAServer 사용
• 직접 배포할 수 있으며 파일 사용 권한을 조정해야 할 수 있음
45. 리눅스 RTL 기능
•모든 코어 RTL을 사용 할수 있습니다.
• System, Exceptions, Kernel, POSIX Headers, File System,
IOUtils, RTTI, Unicode, Threading and Parallel Library…
• Native HTTP client library (libCurl)
• XML DOM and JSON processing
• DUnitX
46. 리눅스 데이터베이스 엑세스 기능
• 모든 리눅스 지원 DBMS 용 FireDAC 드라이버
• MySQL (and MariaDB), InterBase, FireBird, Oracle, MS SQL
Server
• Sybase ASA, DB2, MongoDB, PostgreSQL, SQLite, Teradata
• Informix만, 제외!
• 사용할 수 없는 드라이버: MS Access, DataSnap, DBX
47. 리눅스 인터넷 클라이언트와 서버 지원
• Indy 클라이어트와 서버
•WebBroker + DataSnap + RAD Server modules (EMS)
• Apache 2.4 통합
• 독립 실행형(Standalone) 서버
•클라이언트 라이브러리
• HTTP 그리고 REST 클라이언트 라이브러리
• Cloud 그리고 BaaS 클라이언트
• SOAP 클라이언트
48. 리눅스 개발환경 설정하기
RAD 스튜디오 리눅스 개발환경 설정하기 - http://tech.devgear.co.kr/430268
49. 리눅스 기반 웹서비스 제작하기
델파이로 리눅스 기반 웹서비스 제작하기(WebBroker 이용) - http://tech.devgear.co.kr/431630
• 콘솔 기반 WebBroker 프로젝트
• 아파치 모듈 기반 WebBroker 프로젝트
• MySQL 데이터 연결(FireDAC 이용)
51. FireDAC
• 높은-성능, 손쉬운-사용, 기업용
데이터베이스 연결
• 범용 데이터 엑세스, BUT 데이터베이스
전용 기능 사용 가능(DBMS 별
DriverLink 제공)
• 별도 설치 프로그램 없음, 전체
소스코드 제공
•리눅스 지원
FireDAC 성능 비교 : http://tech.devgear.co.kr/424484
53. FireDAC 주요 기능
고성능 네이티브 데이터베이스 엑세스
이기종 데이터베이스를 넘나들며 컴포넌트 공유
데이터베이스 별 고유기능 사용
메모리 기반 데이터셋과 로컬-SQL
로깅, 모니터링과 추적(tracing)
트렌젝션, 전처리 그리고 캐스캐이딩
ETL: 데이터 가져오기, 내보내기
캐쉬업데이트와 Auto-Inc 필드
Array DML과 그 이상
54. FireDAC 성능과 기능들
FireDAC의 성능
• http://tech.devgear.co.kr/424484
FireDAC 주요기능 10가지의 설명, 데모, 샘플코드 - http://tech.devgear.co.kr/410454
1 FireDAC 소개
2 FireDAC으로 DBMS 사용 내역 추적, 모니터링 하기
3 캐쉬를 이용한 업데이트와 자동증가필드(Identity) 적용
4 ArrayDML로 30배 빠르게 데이터 입력하기
5 Cascading Options: 고급기능을 활용 할 수 있는 FireDAC 옵션
6 전처리: SQL문을 유연하게 작성할 수 있는 Param와 Macro 사용하기
7 FireDAC ETL: 데이터 내보내기, 가져오기 기능 구현하기
8 TFDMemTable: 메모리 기반 데이터셋 사용하기
9 LocalSQL: DB에서 가져온 데이터(데이터셋)를 대상으로 다시 SQL쿼리 실행하기
10 reFind 도구를 이용해 BDE 프로젝트를 Fi`reDAC으로 마이그레이션 따라하기
[따라하기] FireDAC으로 오라클(Oracle) DB와 연결하기
• http://tech.devgear.co.kr/410237
56. 요약
• RAD 스튜디오는 가장 빠르게 크로스-플랫폼 네이티브 앱을
개발하는 방법, 유연한 클라우드 서비스와 다양한 IoT 연결제공
• 한번에 윈도우, OSX, 안드로이드, iOS, 리눅스 용 네이티브 앱
빌드 및 디버깅 제공
• 하나의 코드, 하나의 팀으로 높은 생산성과 품질을 한번에
개발해 기술주도와 경쟁우위 확보
• 리눅스 지원으로 그동안의 델파이 기술과 노하우로 리눅스
콘솔과 서버 애플리케이션 개발 가능
• IDE 개선으로 더욱 높아진 생산성, FireDAC으로 성능과 기능
강화, 모바일과 사물인터넷으로 서비스 확장
57. 참고 링크
• 참고리소스 : http://tech.devgear.co.kr/432239
• www.devgear.co.kr
• 제품 상세 정보
• tech.devgear.co.kr
• 새소식, 기술자료, 개발자 Q&A
• devgear.co.kr/docwiki
• 최신 온라인 기술문서(한글번역)
• www.devgear.co.kr/edu/
• 데브기어 정기교육
• youtube.com/embarcaderoKR
• 데브기어 유튜브
58. 따라하기 자료
• 트라이얼 다운로드: http://tech.devgear.co.kr/432239
도서대여 프로그램 만들기 나의 도서관 앱 만들기
• VCL 폼 애플리케이션(2티어)
• 데이터베이스 프로그래밍 학습
• 멀티-디바이스 애플리케이션(임베디드 DB)
• 모바일 UI 구성, 기능 구현 학습
http://tech.devgear.co.kr/429302 http://tech.devgear.co.kr/406416