가장빠른모바일개발, 가장쉬운멀티플랫폼개발 2014. 02. 07 김현수 hskim@embarcadero.kr
Agenda EMBARCADERO TECHNOLOGIES 내용 시간 등록및인사말 13:00 ~ 13:30 RAD Studio 소개 13:30 ~ 15:00 휴식 & ITMA 소개 ( 각 10분 ) 15:00 ~ 15:20 RAD Studio 앱개발데모 15:20 ~ 17:20 Q & A, Lucky Draw 17:20 ~
Embarcadero Technologies ( 엠바카데로테크놀러지스 - 미국샌프란시스코 ) 1993 년설립 320 만고객 29 개국글로벌커버리지 5 개의앞선 R&D 센터 세계최대의독립툴벤더 - 개발툴, DB 툴
국내 : http://www.devgear.co.kr/about/customers.html EMBARCADERO TECHNOLOGIES
3 백만 RAD Studio(Delphi/C++) 개발자들이코딩 해마다 97 억라인이작성됨 100,000 개의윈도우앱 하지만다른툴대비 80% 만코딩가능
RAD Studio RAD? EMBARCADERO TECHNOLOGIES 종래의소프트웨어개발방법보다더짧은기간에완성시키는것 시스템의완성이미지를보여주면서요구분석, 설계등을추진하는방법
RAD Studio Mobile 맛보기! EMBARCADERO TECHNOLOGIES 프로토타입모바일앱개발 - 사원정보
지금은멀티디바이스세상
가트너선정 2014 년 10 대전략기술 EMBARCADERO TECHNOLOGIES
클라이언트장비의혁명 (2013) 10 억 650 만 10 억이상 Windows Mac Mobile 지금은역사상유래가없는멀티 - 디바이스세상
OS 의재구성 ( 가트너 ) EMBARCADERO TECHNOLOGIES 역사상유래가없는멀티 - 디바이스세상
글로벌모바일 PC 태블릿보급예측 ( 가트너 ) EMBARCADERO TECHNOLOGIES
클라이언트장비는더욱다양해지는추세 PC vs Mobile? PC & Mobile!!! EMBARCADERO TECHNOLOGIES
모바일의성장과여러분의변화
변화와여러분 여러분의아이디어실현새로운기회그리고경력의확장고객에게 최고 개발자가될수있는기회
변화와여러분의팀 앞의 변화와여러분 의모든항목플랫폼만큼의팀 ( 그리고비용 ) 이필요외주? 플랫폼업그레이드대응은?
변화와여러분의사업 고객曰 - 당연히모바일지원되죠? 24/7, 고객의손에여러분의사업이연결되어있어야합니다. 고객의니즈에맞춘빠른출시새로운사업의기회
앱개발툴선택지 EMBARCADERO TECHNOLOGIES 벤더사개발툴 찬성네이티브 UX 네이티브성능보안 반대다중의코드베이스중복된여러팀개발비용상승 Embarcadero Single Multi Single Multi Device Device Device Device Native Scripted Native Scripted Apple HTML5 and Google Apple HTML5 JavaScript and Microsoft Google JavaScript Microsoft 웹기술기반툴 찬성단일팀개발비용절감신속한시장대응 반대스크립트성능이슈네이티브가아닌 UX 보안취약
멀티디바이스를위한벤더사툴접근법 $ $ $ $ Objective-C Java C# or C++ C++ or Obj-C ios SDK Android SDK.NET or MFC OSX SDK 다수의언어, 다수의코드베이스
True Native Apps EMBARCADERO TECHNOLOGIES 10010011001 00110010011 00100110010 01100100110 0100110010 ARM Binary Titanium.Geolocation.distanceFilter =.25; Ti.Geolocation.purpose = "Callbacks Are Your Friend ; // make the API call Ti.Geolocation.getCurrentPosition(fu nction(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 JavaScript Runtime Interpreter Bytecode IL Virtual Machine (VM) Runtime True Native Scripted VM
High Latency UX is accepted in Browser Action High Latency Internet Reaction HTML/J avascrip t Software Virtual Machine/Interpreter/JIT Web Browser UX Time
Unacceptable in Apps EMBARCADERO TECHNOLOGIES High Latency Action Reaction Virtu al Code Software Virtual Machine/Interpreter/JIT Device HW UX Time
Low Latency = Great UX EMBARCADERO TECHNOLOGIES Low Latency Action Reaction True Native App Device HW UX Time
멀티디바이스와네이티브앱 찬성네이티브 UX 네이티브성능보안 Single Device Multi-Device True Native Embarcadero Multi Device EMBARCADERO TECHNOLOGIES 찬성단일팀개발비용절감신속한시장대응 Native Apple Google Microsoft Scripted HTML5 and JavaScript
왜, RAD Studio? EMBARCADERO TECHNOLOGIES
RAD Studio XE5 EMBARCADERO TECHNOLOGIES $ Delphi, C++ FM Framework Futur e One team, One codebase, Multi platform, Multi device
개발도빠르게, 성능도빠르게 RAD - 보이는개발, 예상되는개발 FAST - 네이티브 그리고커스텀스타일 EASY - 델파이컴포넌트와개발모델 NATIVE - 순수네이티브앱
컴포넌트기반프레임워크 EMBARCADERO TECHNOLOGIES
3rd Party Components EMBARCADERO TECHNOLOGIES
현대식언어특성 프로퍼티-메소드-이벤트 자동참조카운팅 (ARC) 인터페이스 애트리뷰트 제네릭스 / 컬렉션 익명메소드 (Lambda functions/closures) 풍부한 RTTI (introspection/reflection)
C++ 안드로이지원은 2014 년 4 월예정 공통컴파일러아키텍처 EMBARCADERO TECHNOLOGIES C/C++* Delphi Open IR Intel ARM
FireMonkey Architecture Application Framework Platform.exe,.dll.app,.dylib Desktop.app in IPK Mobile.so in APK
환상적인 RAD Studio 소개
빌트 - 인모바일애플리케이션마법사 Blank HD 또는 3D FireMonkey application 로시작 Tabbed Application, Header/Footer, Master/Detail Templates 중선택하여시작
IDE 개발옵션 ( 안드로이드 ) 안드로이드앱을에뮬레이터에배포 모든 AVD 디바이스안드로이드앱을디바이스에배포 디버그 디바이스에배포하고디버깅 앱스토어 구글플레이, 아마존등의안드로이드앱스토어에배포
IDE 개발옵션 (ios) EMBARCADERO TECHNOLOGIES ios 앱을시뮬레이터에배포 iphone (Retina/non-Retina) iphone 5 (Retina/non-Retina) ipad (Retina/non-Retina) ios 앱을디바이스에배포 Debug ( 디바이스에배포하고디버깅 ) 애드혹 (Ad-hoc) ( 회사내부에배포 ) 앱스토어 ( 앱스토어에배포 )
애플리케이션셋팅정의 EMBARCADERO TECHNOLOGIES 디바이스지원정의 : Project->Options 앱스토어용앱아이콘선택 ( 다중해상도지원 ): Project-> Options
네이티브스타일제공 EMBARCADERO TECHNOLOGIES
네이티브콘트롤 EMBARCADERO TECHNOLOGIES 메시지공지 커스텀픽커 날짜픽커 전화다이얼 ios 키보드 TMemo 와 TEdit 텍스트편집 잘라내기 / 복사하기 / 붙이기 / 줌
제스처 Swipe Tap Pinch & Zoom Tap & Hold Double-Tap
미디어라이브러리액션 사진찍기 사진앨범접근 컨텐츠공유 ( 예 : 사진을 SMS, 메일, 페이스북, 트위터등으로전달 ) 탭전환시슬라이드애니메이션효과
센서컴포넌트 위치센서 (GPS) 모션센서 (Accelerometer) 방향센서 (Gyroscope)
위치센서 EMBARCADERO TECHNOLOGIES 위치정보가필요한애플리케이션에서널리사용 ios 디바이스위치파악 : 위도와경도사용 위도와경도를읽을수있는위치주소로변환 Win/Mac/iOS 에모두적용 위치를표시하는웹브라우저컴포넌트에서사용가능
공지센터 ios, 안드로이드, 맥 OS X 의다양한공지유형지원 74
카메라 EMBARCADERO TECHNOLOGIES 카메라센서액세스제공 : 플래쉬활성화 센서위치파악. 앞 / 뒤카메라액세스 사진촬영
TListView 기능 (XE5) 밀어서삭제하기기능내장 다중디스플리에와편집모드 다양한리스트액세서리스타일 편집모드애니메이션 검색필터링가능 라이브바인딩지원
기타모바일컴포넌트들 EMBARCADERO TECHNOLOGIES TWebBrowser 웹브라우저임베딩 TCamera - 앞 / 뒤카메라플레시등 TListBox - 스크롤이없거나최소화된리스트에적합, 헤더 / 풋터 / 그룹 / 검색스타일적용 TListView 대량, 스크롤이필요한, 데이터바인딩리스트 TSwitch 선택 On/Off TProgressBar 진행상태표시 TSpeedButton 아이콘적용옵션등등!
앱의완성도를높여주는요소 (Animation, Effects)
모바일에서데이터베이스연동 REST/JSON 또는 SOAP 를통해인하우스또는클라우드서비스에원격액세스 모바일디바이스에서엔터프라이즈데이터연결 모바일앱 ( 델파이 ) DataSnap 서버 ( 델파이 ) Database
로컬데이터베이스 SQLite IBLite InterBase ToGo 무료 무료 상업용 가벼운기능 가벼운기능 풀기능팩 보안기능없음 보안기능없음 보안암호화지원 단순데이터스토리지 완전한 SQL-92 RDBMS 완전한 SQL-92 RDBMS 단순 read/write 빠른멀티 read/write 빠른멀티 read/write
Visual LiveBindings ( 비주얼라이브바인딩 ) 콘트롤을데이터에바인딩 신속한프로토타이핑
Break time RAD Studio 로만들어진앱 모바일개발사례 : http://tech.devgear.co.kr/delphi_news/345279/
Live Demo EMBARCADERO TECHNOLOGIES
Live Demo First Camera App EMBARCADERO TECHNOLOGIES 카메라제어사진앨범접근컨텐츠공유 Real-time Image effects
Live Demo 모바일데이터연동 Using RESTful Database 기존웹서비스활용 Json, xml 등이용 Using DataSnap Remote DataSet 활용 Window 서버필요
Live Demo 모바일데이터연동 (Using RESTful) RESTful RestClient(or IdHttp) Source API http://www.discogs.com/ ( 음반라이브러리제공 )
Live Demo 모바일데이터연동 (Using DataSnap) DataSnap 서버구성 IB 데이터베이스연결고객정보조회모바일앱작성 Desktop 어플리케이션작성 ( 모듈재사용 )
요약 EMBARCADERO TECHNOLOGIES
요약 멀티 - 디바이스라고해서각네이티브디바이스의플랫폼 (Android, ios, Windows, and Mac) 별로프로젝트를각각만들고개발해야만하는것은아니다. 순수네이티브앱을개발하면스크립트에서해방되므로, 해당하드웨어플랫폼에최적화된네이티브앱을제공할수있다 더빠르고더풍부하므로사용자가만족한다. 가장빠른방법으로 ios 와 Android 앱을개발하려면완전한애플리케이션프레임워크를사용하여시각적으로개발한다. 근본적인보안강화를위해서는가상머신을거치지않고타겟플랫폼에서직접실행되는코드를작성함으로써본질적으로보호한다. 멀티디바이스엔터프라이즈플랫폼이란주요엔터프라이즈, 인하우스멀티 - 티어미들웨어, mbaas 서비스커넥터에즉시연결되는것을의미한다.
추가정보 EMBARCADERO TECHNOLOGIES C++ 빌더세미나 - 3/18( 대전 ), 3/19( 서울 ) http://forms.embarcadero.com/ap14q1krcbuilderinactionlive 참고자료 http://docwiki.embarcadero.com/(http://goo.gl/q83nns) http://tech.devgear.co.kr/ http://blog.hjf.pe.kr/ ( 서울 ) 교육안내 (http://www.devgear.co.kr/edu/) 모바일기본과정 (2 일 ) 모바일고급과정 (2 일 ) 모바일엔터프라이즈데이터과정 (2 일 )
Q&A EMBARCADERO TECHNOLOGIES
감사합니다 hskim@embarcadero.com http://blog.hjf.pe.kr/