SlideShare a Scribd company logo
1 of 44
1
RAD Studio XE4
Alexey Golopyatkin & Vsevolod Leonov
Minsk, June 6, 2013.
translated by Maksim Abramovich.
EPAM Systems.
2
Agenda
The strategy of Embarcadero company
Mobile and desktop applications development based on a single source code
FireMonkey as a UI library for iOS application development
Product editions and different licensing opportunities
New database access facilities in Delphi
Practical training. Mobile application development
New language features in Delphi
3
22 April – the release date of RAD Studio XE4
• The strategy of the company
– What is happening on the market?
– What we are offering?
– Where are we going?
• What does this mean for you?
– For your business
– For your developers
4
The technology does not stand still
Windows
1999
Windows & Web
2005 2
W
5
2013: The revolution of «clients»
Windows MobileMac
1 Billion 65 Million 1 Billion
6
The revolution of «clients»
Completely new situation
Operation systems market share –
iOS + Android = 45% against Windows 35%
7
When the tablets will overtake laptops?
It is done already
8
2013+
Client Device Diversity Will
9
What this means for the developer?
$ $ $ $
C# илиC++
.NET или MFC
C++ или Obj-C
OS X SDK
C++ или Obj-C
iOS SDK
Java
Android SDK
Many languages, many projects, many source code libraries
10
What Embarcadero strategy is offering?
$ $ $ $
Delphi,
C++Builder
FM
Delphi,
C++Builder
FM
Delphi,
C++Builder
FM
Delphi,
C++Builder
FM
Delphi / С++Builder, one project, single source code, one team!
11
Embarcadero: Multi-Device App Development
$
Future
Delphi (С++)
FM3 Framework
One team, one source code, accumulated
experience
One team
One source code
12
12
Embarcadero: Multi-Device App Development
HTML5 Cross
Platform
“Platform
Native”
Platform Vendor
Tools
Rapid Multi-Device
Examples
Adobe, Sencha,
Kendo,
HTML5Builder
Appcellerator,
Xamarin Mono
XCode, Visual
Studio, Eclipse
Embarcadero
RADStudio
Platforms iOS/Android iOS/Android
Win or Mac/iOS
or Android
(Sep IDE, lang, & SDK
for ea platform)
Mac/Win/iOS &
Android* (2013)
Native “Real Code” No No Yes Yes
Native Platform API Access No (PhoneGap) Yes Yes Yes
Single Source Multi-Vendor
Targeting
Yes No No Yes
Single IDE Yes/Plugin Yes/Plugin No Yes
Single Project Multiple Multiple Multiple Yes
App Performance Low Low High High
App Number Crunching
Power
Low Low High High
App Capacity (mem/data) Low Low/Med High High
App UX (User Experience) Low/Med Med High High
Enterprise Connectivity Low Low High High
14
Where are we going?
• Two main projects (2nd half of 2013):
– Android support in Delphi
– Mobile Development in С++
(April 16 it was announced that,
Embarcadero now is a Standard C++ Foundation sponsor - isocpp.org)
• Support other platforms – next stops are
• 2013+ : SmartTV, Car Infotainment,
smart home, «smart» watches and other.
15
Embarcadero strategy
?
16
Delphi XE4
Mobile Development
17
Hardware (provisioning)
Ethernet, Wi-Fi
(patch cord)
Device cable
http://blogs.embarcadero.com/vsevolodleonov/2013/04/23/dios_dev_hardware/
18
Additional Sowtware
• Simulator in Mac OS
• RAD PAServer XE4 (need to be running)
• VMWare Fusion (Win on Mac)
• VNC Viewer (see Mac)
• Reflector (see iPhone or iPad)
19
Mac в in the cloud
• Suggested for the initial prototyping only
http://macincloud.com
20
Developer Account
• «Individual» - publish to AppStore
very attractive …
$$$
21
Developer Account
• «Corporate» - without AppStore
very attractive …
$$$
22
Delphi XE4
23
New mobile application
24
Delphi FireMonkey for iOS
• «Native style» iOS
• «Native» source code
• Well known Delphi development (iOS Human Interface Guidelines)
25
«Native» and custom styles
26
Gesture support
• Swipe
• Tap
• Pinch & Zoom
• Tap & Hold
• Double-Tap
27
Open or Grab XE4 FireMonkey Mobile
Samples and Code Snippets
• File | Open from Version Control…
– http://svn.code.sf.net/p/radstudiodemos/code/branches/RadStudio_XE4/FireMonkeyMobile/
– http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RadStudio_XE4/iOSCodeSnippets/
• SVN Command Line to get all XE4 samples
– svn co svn://svn.code.sf.net/p/radstudiodemos/code/branches/RadStudio_XE4 c:AllSamples
28
Need Mobile Development training?
You can get it …
• vsevolod.leonov@embarcadero.com
29
New language features
30
New Compiler Architecture
Open IR
C/C++
Delphi
Intel
ARM
31
New Language features
• String types
• ARC (Automatic Reference Counting)
32
Different String Types
• Pascal short strings (255)
• AnsiString (C-o-W, R-C)
• + little bit more (UTF8String и RawByteString)
• С-like (PChar)
• Unicode strings (from 2009), UTF16 (C-o-R, R-C)
• COM-compatible (no R-C)
33
One string type
• Unicode-based
• Immutable str1[i] := ch
• Reference-counted
34
What is the right way?
• TStringBuilder (it is not new …)
• s1, s2, s3 : string;
• s1 := ‘Hello’;
• s2 := ‘World’;
• s3 := s1 + s2;
• sBuilder := TStringBuilder.Create;
• sBuilder.Append(s1);
• sBuilder.Append(s2);
• s3 := sBuilder.ToString;
• sBuilder.Free;
35
Immutable
• TStringBuilder (it is not new …)
for I := Low (str1) to High (str1) do
if str1 [I] = 'a' then
str1 [I] := 'A’;
sBuilder := TStringBuilder.Create;
for I := Low (str1) to High (str1) do
if str1.Chars [I] = 'a' then
sBuilder.Append ('A')
else
sBuilder.Append (str1.Chars [I]);
str1 := sBuilder.ToString;
sBuilder.Free;
36
Zero-based strings
• We are familiar with it
– Dynamic arrays
– List : TList; List.Items[0]
– sList: TStringList; sList[]
– ListBox1.Items[0]
• $ZEROBASEDSTRINGS
37
Zero-based strings
• No changes in the string.
• You can mix it (project, unit, function)
• RTL functions are still 1-based
• Use TStringHelper
– unit System.SysUtils;
– MyString.Length; MyString.ToInteger;
– …
38
TStringHelper
• procedure TForm4.Button1Click(Sender: TObject);
• var
• s1: string;
• begin
• // apply to a variable
• s1 := 'Hello';
• if s1.Contains('ll') then
• ShowMessage (s1.Substring(1).Length.ToString);
• // apply to a constant
• Left := 'Hello'.Length;
• // «in chain»
• Caption := ClassName.Length.ToString;
• end;
39
Automatic Reference Counting
• Memory management
• string
• Interface variable
• Its not a Garbage Collector!
• ARC – automatic reference counting
40
Interface
• TMyClass = class(TInterfacedObject,
IMyInterface)
• // ...
• end;
• IMyInterface = interface(IInterface)
• // ...
• end;
41
Interface
• procedure TForm1.Button1Click(Sender: TObject);
• var
• myInterface : IMyInterface;
• begin
• myInterface := TMyClass.Create;
• //...
• end;
42
ARC
• ARC by default in LLVM compiler
• iOS device and Simulator (Mac)
• procedure TForm1.Button1Click(Sender:
TObject);
• var
• MyObj: TMySimpleClass;
• begin
• MyObj := TMySimpleClass.Create;
• // ...
• end;
43
ARC - release
• procedure TForm1.Button1Click(Sender:
TObject);
• var
• myObj : TMyClass;
• begin
• myObj := TMyClass.Create;
• // ...
• myObj := nil;
• // ...
• end;
MyObj.DisposeOf;
44
ARC - reference
• type
• TMyComplexClass = class;
•
• TMySimpleClass = class
• private
• [Weak] FOwnedBy: TMyComplexClass;
• public
• constructor Create();
• destructor Destroy (); override;
• procedure DoSomething(bRaise: Boolean = False);
• end;
•
• TMyComplexClass = class
• private
• fSimple: TMySimpleClass;
• public
• constructor Create();
• destructor Destroy (); override;
• class procedure CreateOnly;
• end;
45
New language features in Delphi
?

More Related Content

Viewers also liked

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentCiklum Ukraine
 
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat "Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat EPAM Systems
 
“Xcore (library) for android platform” by Uladzimir Klyshevich
“Xcore (library) for android platform” by Uladzimir Klyshevich“Xcore (library) for android platform” by Uladzimir Klyshevich
“Xcore (library) for android platform” by Uladzimir KlyshevichEPAM Systems
 
Collection view layout
Collection view layoutCollection view layout
Collection view layoutCiklum Ukraine
 
Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...
Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...
Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...Ciklum Minsk
 
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"Ciklum Minsk
 
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Ciklum Ukraine
 
Model-View-Controller: Tips&Tricks
Model-View-Controller: Tips&TricksModel-View-Controller: Tips&Tricks
Model-View-Controller: Tips&TricksCiklum Ukraine
 
Developing high load systems using C++
Developing high load systems using C++Developing high load systems using C++
Developing high load systems using C++Ciklum Ukraine
 
Your 1st Apple watch Application
Your 1st Apple watch ApplicationYour 1st Apple watch Application
Your 1st Apple watch ApplicationCiklum Ukraine
 
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy""Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"Ciklum Ukraine
 
Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...
Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...
Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...Ciklum Minsk
 
"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman LiashenkoCiklum Ukraine
 
Ольга Зигмантович "New-York: инструкция для путешественника"
Ольга Зигмантович "New-York: инструкция для путешественника"Ольга Зигмантович "New-York: инструкция для путешественника"
Ольга Зигмантович "New-York: инструкция для путешественника"EPAM Systems
 
Андрей Кравец Тема: "Пришло время быть реактивным, или..?"
Андрей Кравец Тема: "Пришло время быть реактивным, или..?"Андрей Кравец Тема: "Пришло время быть реактивным, или..?"
Андрей Кравец Тема: "Пришло время быть реактивным, или..?"Ciklum Minsk
 
Alex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_DesignAlex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_DesignCiklum Ukraine
 

Viewers also liked (20)

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat "Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat
 
HOW WE MAKE IT IN IT
HOW WE MAKE IT IN ITHOW WE MAKE IT IN IT
HOW WE MAKE IT IN IT
 
“Xcore (library) for android platform” by Uladzimir Klyshevich
“Xcore (library) for android platform” by Uladzimir Klyshevich“Xcore (library) for android platform” by Uladzimir Klyshevich
“Xcore (library) for android platform” by Uladzimir Klyshevich
 
Collection view layout
Collection view layoutCollection view layout
Collection view layout
 
Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...
Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...
Евгений Дрозд, Василий Сливка Тема: "Как тестировщику сделать счастливым Java...
 
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"
 
Mobile sketching
Mobile sketching Mobile sketching
Mobile sketching
 
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
 
Model-View-Controller: Tips&Tricks
Model-View-Controller: Tips&TricksModel-View-Controller: Tips&Tricks
Model-View-Controller: Tips&Tricks
 
More UX in our life
More UX in our lifeMore UX in our life
More UX in our life
 
Developing high load systems using C++
Developing high load systems using C++Developing high load systems using C++
Developing high load systems using C++
 
Kanban development
Kanban developmentKanban development
Kanban development
 
Your 1st Apple watch Application
Your 1st Apple watch ApplicationYour 1st Apple watch Application
Your 1st Apple watch Application
 
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy""Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
 
Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...
Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...
Dependency Injection Pattern in JavaScript, Speakers' Corner by Evgeny Dmitri...
 
"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko
 
Ольга Зигмантович "New-York: инструкция для путешественника"
Ольга Зигмантович "New-York: инструкция для путешественника"Ольга Зигмантович "New-York: инструкция для путешественника"
Ольга Зигмантович "New-York: инструкция для путешественника"
 
Андрей Кравец Тема: "Пришло время быть реактивным, или..?"
Андрей Кравец Тема: "Пришло время быть реактивным, или..?"Андрей Кравец Тема: "Пришло время быть реактивным, или..?"
Андрей Кравец Тема: "Пришло время быть реактивным, или..?"
 
Alex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_DesignAlex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_Design
 

Similar to Абрамович Максим, "Rad studio xe4"

Introduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidIntroduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidChris Hardy
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIndyMobileNetDev
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross SeminarXamarin
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyNick Landry
 
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013DuckMa
 
Android Scripting
Android ScriptingAndroid Scripting
Android ScriptingJuan Gomez
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA NITIN GUPTA
 
Building Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformBuilding Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformAndrew Ferrier
 
C# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform developmentC# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform developmentGill Cleeren
 
Demo class on android development
Demo class on android developmentDemo class on android development
Demo class on android developmentKshitiz Mishra
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionDuckMa
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkImam Raza
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platformsguestfa9375
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platformssmancke
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxPoooi2
 
Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptxridzah12
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to TitaniumGraham Weldon
 

Similar to Абрамович Максим, "Rad studio xe4" (20)

Introduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidIntroduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for Android
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual Studio
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET Guy
 
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
 
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA
 
Building Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformBuilding Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst Platform
 
C# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform developmentC# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform development
 
Demo class on android development
Demo class on android developmentDemo class on android development
Demo class on android development
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platforms
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platforms
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptx
 
Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptx
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
 

More from EPAM Systems

Miniq 11: Time management by Anton Zolotarev & Andrei Artisheuski
Miniq 11: Time management by Anton Zolotarev & Andrei ArtisheuskiMiniq 11: Time management by Anton Zolotarev & Andrei Artisheuski
Miniq 11: Time management by Anton Zolotarev & Andrei ArtisheuskiEPAM Systems
 
Reporting куда как-зачем by Anton Stoliar
Reporting   куда как-зачем by Anton StoliarReporting   куда как-зачем by Anton Stoliar
Reporting куда как-зачем by Anton StoliarEPAM Systems
 
Pool and billiards by Olga Nikolaeva
Pool and billiards by Olga NikolaevaPool and billiards by Olga Nikolaeva
Pool and billiards by Olga NikolaevaEPAM Systems
 
The Way of Creating Presentations: Just do it!
The Way of Creating Presentations: Just do it!The Way of Creating Presentations: Just do it!
The Way of Creating Presentations: Just do it!EPAM Systems
 
E-mail Communication: How and Why
E-mail Communication: How and WhyE-mail Communication: How and Why
E-mail Communication: How and WhyEPAM Systems
 
николай фролов, “Gamification“
николай фролов, “Gamification“николай фролов, “Gamification“
николай фролов, “Gamification“EPAM Systems
 
Real time bidding by Danil Melnikov
Real time bidding by Danil MelnikovReal time bidding by Danil Melnikov
Real time bidding by Danil MelnikovEPAM Systems
 
Никита Манько “Code review”
Никита Манько “Code review”Никита Манько “Code review”
Никита Манько “Code review”EPAM Systems
 
Чурюканов Вячеслав, “Code simple, but not simpler”
Чурюканов Вячеслав, “Code simple, but not simpler”Чурюканов Вячеслав, “Code simple, but not simpler”
Чурюканов Вячеслав, “Code simple, but not simpler”EPAM Systems
 
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...Демидюк Павел , “Continuous integration with the real traffic light in m&e of...
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...EPAM Systems
 
Agile retrospectives by nick frolov miniq
Agile retrospectives by nick frolov   miniqAgile retrospectives by nick frolov   miniq
Agile retrospectives by nick frolov miniqEPAM Systems
 
Other way to travel by Anna Lukyanenka
Other way to travel by Anna LukyanenkaOther way to travel by Anna Lukyanenka
Other way to travel by Anna LukyanenkaEPAM Systems
 
Computer as a musical instrument by Sergey Moiseychik
Computer as a musical instrument by Sergey MoiseychikComputer as a musical instrument by Sergey Moiseychik
Computer as a musical instrument by Sergey MoiseychikEPAM Systems
 
Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"EPAM Systems
 
Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"EPAM Systems
 
Alexander Litvinok (software engineer) "bdd wtf"
Alexander Litvinok (software engineer) "bdd wtf"Alexander Litvinok (software engineer) "bdd wtf"
Alexander Litvinok (software engineer) "bdd wtf"EPAM Systems
 
Юрий Шиляев "Marshmallow Challenge"
Юрий Шиляев "Marshmallow Challenge"Юрий Шиляев "Marshmallow Challenge"
Юрий Шиляев "Marshmallow Challenge"EPAM Systems
 
Павел Шут "Оптимизация интерфейсов под touch-девайсы"
Павел Шут "Оптимизация интерфейсов под touch-девайсы"Павел Шут "Оптимизация интерфейсов под touch-девайсы"
Павел Шут "Оптимизация интерфейсов под touch-девайсы"EPAM Systems
 
"Personal finance" by Viktar Volkau
"Personal finance" by Viktar Volkau"Personal finance" by Viktar Volkau
"Personal finance" by Viktar VolkauEPAM Systems
 

More from EPAM Systems (20)

Miniq 11: Time management by Anton Zolotarev & Andrei Artisheuski
Miniq 11: Time management by Anton Zolotarev & Andrei ArtisheuskiMiniq 11: Time management by Anton Zolotarev & Andrei Artisheuski
Miniq 11: Time management by Anton Zolotarev & Andrei Artisheuski
 
Reporting куда как-зачем by Anton Stoliar
Reporting   куда как-зачем by Anton StoliarReporting   куда как-зачем by Anton Stoliar
Reporting куда как-зачем by Anton Stoliar
 
Pool and billiards by Olga Nikolaeva
Pool and billiards by Olga NikolaevaPool and billiards by Olga Nikolaeva
Pool and billiards by Olga Nikolaeva
 
The Way of Creating Presentations: Just do it!
The Way of Creating Presentations: Just do it!The Way of Creating Presentations: Just do it!
The Way of Creating Presentations: Just do it!
 
E-mail Communication: How and Why
E-mail Communication: How and WhyE-mail Communication: How and Why
E-mail Communication: How and Why
 
николай фролов, “Gamification“
николай фролов, “Gamification“николай фролов, “Gamification“
николай фролов, “Gamification“
 
Real time bidding by Danil Melnikov
Real time bidding by Danil MelnikovReal time bidding by Danil Melnikov
Real time bidding by Danil Melnikov
 
Никита Манько “Code review”
Никита Манько “Code review”Никита Манько “Code review”
Никита Манько “Code review”
 
Чурюканов Вячеслав, “Code simple, but not simpler”
Чурюканов Вячеслав, “Code simple, but not simpler”Чурюканов Вячеслав, “Code simple, but not simpler”
Чурюканов Вячеслав, “Code simple, but not simpler”
 
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...Демидюк Павел , “Continuous integration with the real traffic light in m&e of...
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...
 
Agile retrospectives by nick frolov miniq
Agile retrospectives by nick frolov   miniqAgile retrospectives by nick frolov   miniq
Agile retrospectives by nick frolov miniq
 
Other way to travel by Anna Lukyanenka
Other way to travel by Anna LukyanenkaOther way to travel by Anna Lukyanenka
Other way to travel by Anna Lukyanenka
 
Computer as a musical instrument by Sergey Moiseychik
Computer as a musical instrument by Sergey MoiseychikComputer as a musical instrument by Sergey Moiseychik
Computer as a musical instrument by Sergey Moiseychik
 
Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"
 
Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"
 
Alexander Litvinok (software engineer) "bdd wtf"
Alexander Litvinok (software engineer) "bdd wtf"Alexander Litvinok (software engineer) "bdd wtf"
Alexander Litvinok (software engineer) "bdd wtf"
 
Dvcs overview
Dvcs overviewDvcs overview
Dvcs overview
 
Юрий Шиляев "Marshmallow Challenge"
Юрий Шиляев "Marshmallow Challenge"Юрий Шиляев "Marshmallow Challenge"
Юрий Шиляев "Marshmallow Challenge"
 
Павел Шут "Оптимизация интерфейсов под touch-девайсы"
Павел Шут "Оптимизация интерфейсов под touch-девайсы"Павел Шут "Оптимизация интерфейсов под touch-девайсы"
Павел Шут "Оптимизация интерфейсов под touch-девайсы"
 
"Personal finance" by Viktar Volkau
"Personal finance" by Viktar Volkau"Personal finance" by Viktar Volkau
"Personal finance" by Viktar Volkau
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Абрамович Максим, "Rad studio xe4"

  • 1. 1 RAD Studio XE4 Alexey Golopyatkin & Vsevolod Leonov Minsk, June 6, 2013. translated by Maksim Abramovich. EPAM Systems.
  • 2. 2 Agenda The strategy of Embarcadero company Mobile and desktop applications development based on a single source code FireMonkey as a UI library for iOS application development Product editions and different licensing opportunities New database access facilities in Delphi Practical training. Mobile application development New language features in Delphi
  • 3. 3 22 April – the release date of RAD Studio XE4 • The strategy of the company – What is happening on the market? – What we are offering? – Where are we going? • What does this mean for you? – For your business – For your developers
  • 4. 4 The technology does not stand still Windows 1999 Windows & Web 2005 2 W
  • 5. 5 2013: The revolution of «clients» Windows MobileMac 1 Billion 65 Million 1 Billion
  • 6. 6 The revolution of «clients» Completely new situation Operation systems market share – iOS + Android = 45% against Windows 35%
  • 7. 7 When the tablets will overtake laptops? It is done already
  • 9. 9 What this means for the developer? $ $ $ $ C# илиC++ .NET или MFC C++ или Obj-C OS X SDK C++ или Obj-C iOS SDK Java Android SDK Many languages, many projects, many source code libraries
  • 10. 10 What Embarcadero strategy is offering? $ $ $ $ Delphi, C++Builder FM Delphi, C++Builder FM Delphi, C++Builder FM Delphi, C++Builder FM Delphi / С++Builder, one project, single source code, one team!
  • 11. 11 Embarcadero: Multi-Device App Development $ Future Delphi (С++) FM3 Framework One team, one source code, accumulated experience One team One source code
  • 12. 12 12 Embarcadero: Multi-Device App Development HTML5 Cross Platform “Platform Native” Platform Vendor Tools Rapid Multi-Device Examples Adobe, Sencha, Kendo, HTML5Builder Appcellerator, Xamarin Mono XCode, Visual Studio, Eclipse Embarcadero RADStudio Platforms iOS/Android iOS/Android Win or Mac/iOS or Android (Sep IDE, lang, & SDK for ea platform) Mac/Win/iOS & Android* (2013) Native “Real Code” No No Yes Yes Native Platform API Access No (PhoneGap) Yes Yes Yes Single Source Multi-Vendor Targeting Yes No No Yes Single IDE Yes/Plugin Yes/Plugin No Yes Single Project Multiple Multiple Multiple Yes App Performance Low Low High High App Number Crunching Power Low Low High High App Capacity (mem/data) Low Low/Med High High App UX (User Experience) Low/Med Med High High Enterprise Connectivity Low Low High High
  • 13. 14 Where are we going? • Two main projects (2nd half of 2013): – Android support in Delphi – Mobile Development in С++ (April 16 it was announced that, Embarcadero now is a Standard C++ Foundation sponsor - isocpp.org) • Support other platforms – next stops are • 2013+ : SmartTV, Car Infotainment, smart home, «smart» watches and other.
  • 16. 17 Hardware (provisioning) Ethernet, Wi-Fi (patch cord) Device cable http://blogs.embarcadero.com/vsevolodleonov/2013/04/23/dios_dev_hardware/
  • 17. 18 Additional Sowtware • Simulator in Mac OS • RAD PAServer XE4 (need to be running) • VMWare Fusion (Win on Mac) • VNC Viewer (see Mac) • Reflector (see iPhone or iPad)
  • 18. 19 Mac в in the cloud • Suggested for the initial prototyping only http://macincloud.com
  • 19. 20 Developer Account • «Individual» - publish to AppStore very attractive … $$$
  • 20. 21 Developer Account • «Corporate» - without AppStore very attractive … $$$
  • 23. 24 Delphi FireMonkey for iOS • «Native style» iOS • «Native» source code • Well known Delphi development (iOS Human Interface Guidelines)
  • 25. 26 Gesture support • Swipe • Tap • Pinch & Zoom • Tap & Hold • Double-Tap
  • 26. 27 Open or Grab XE4 FireMonkey Mobile Samples and Code Snippets • File | Open from Version Control… – http://svn.code.sf.net/p/radstudiodemos/code/branches/RadStudio_XE4/FireMonkeyMobile/ – http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RadStudio_XE4/iOSCodeSnippets/ • SVN Command Line to get all XE4 samples – svn co svn://svn.code.sf.net/p/radstudiodemos/code/branches/RadStudio_XE4 c:AllSamples
  • 27. 28 Need Mobile Development training? You can get it … • vsevolod.leonov@embarcadero.com
  • 29. 30 New Compiler Architecture Open IR C/C++ Delphi Intel ARM
  • 30. 31 New Language features • String types • ARC (Automatic Reference Counting)
  • 31. 32 Different String Types • Pascal short strings (255) • AnsiString (C-o-W, R-C) • + little bit more (UTF8String и RawByteString) • С-like (PChar) • Unicode strings (from 2009), UTF16 (C-o-R, R-C) • COM-compatible (no R-C)
  • 32. 33 One string type • Unicode-based • Immutable str1[i] := ch • Reference-counted
  • 33. 34 What is the right way? • TStringBuilder (it is not new …) • s1, s2, s3 : string; • s1 := ‘Hello’; • s2 := ‘World’; • s3 := s1 + s2; • sBuilder := TStringBuilder.Create; • sBuilder.Append(s1); • sBuilder.Append(s2); • s3 := sBuilder.ToString; • sBuilder.Free;
  • 34. 35 Immutable • TStringBuilder (it is not new …) for I := Low (str1) to High (str1) do if str1 [I] = 'a' then str1 [I] := 'A’; sBuilder := TStringBuilder.Create; for I := Low (str1) to High (str1) do if str1.Chars [I] = 'a' then sBuilder.Append ('A') else sBuilder.Append (str1.Chars [I]); str1 := sBuilder.ToString; sBuilder.Free;
  • 35. 36 Zero-based strings • We are familiar with it – Dynamic arrays – List : TList; List.Items[0] – sList: TStringList; sList[] – ListBox1.Items[0] • $ZEROBASEDSTRINGS
  • 36. 37 Zero-based strings • No changes in the string. • You can mix it (project, unit, function) • RTL functions are still 1-based • Use TStringHelper – unit System.SysUtils; – MyString.Length; MyString.ToInteger; – …
  • 37. 38 TStringHelper • procedure TForm4.Button1Click(Sender: TObject); • var • s1: string; • begin • // apply to a variable • s1 := 'Hello'; • if s1.Contains('ll') then • ShowMessage (s1.Substring(1).Length.ToString); • // apply to a constant • Left := 'Hello'.Length; • // «in chain» • Caption := ClassName.Length.ToString; • end;
  • 38. 39 Automatic Reference Counting • Memory management • string • Interface variable • Its not a Garbage Collector! • ARC – automatic reference counting
  • 39. 40 Interface • TMyClass = class(TInterfacedObject, IMyInterface) • // ... • end; • IMyInterface = interface(IInterface) • // ... • end;
  • 40. 41 Interface • procedure TForm1.Button1Click(Sender: TObject); • var • myInterface : IMyInterface; • begin • myInterface := TMyClass.Create; • //... • end;
  • 41. 42 ARC • ARC by default in LLVM compiler • iOS device and Simulator (Mac) • procedure TForm1.Button1Click(Sender: TObject); • var • MyObj: TMySimpleClass; • begin • MyObj := TMySimpleClass.Create; • // ... • end;
  • 42. 43 ARC - release • procedure TForm1.Button1Click(Sender: TObject); • var • myObj : TMyClass; • begin • myObj := TMyClass.Create; • // ... • myObj := nil; • // ... • end; MyObj.DisposeOf;
  • 43. 44 ARC - reference • type • TMyComplexClass = class; • • TMySimpleClass = class • private • [Weak] FOwnedBy: TMyComplexClass; • public • constructor Create(); • destructor Destroy (); override; • procedure DoSomething(bRaise: Boolean = False); • end; • • TMyComplexClass = class • private • fSimple: TMySimpleClass; • public • constructor Create(); • destructor Destroy (); override; • class procedure CreateOnly; • end;

Editor's Notes

  1. Today PCs/LaptopsPhonesTabletsMini-TabletsPhabletsPC-bletsSmartTVsAutomobile InfotainmentImminentSmart Home AutomationSmart WatchesSmart Health Devices
  2. The old wayWindows dev team and Mac dev team using different tools and language variantsDuplicate development and QA effortIncreased development costSlower time to market or delay in delivering a Mac versionThe C++Builder wayOne development team, one toolCreate the application once. Click to compile to Windows. Click to compile to Mac from the same project. No extra development effort.Reduce lines of code by up to 80% using C++Builder’s proven visual development solutionResults: Faster time to market for Win/Mac at lower cost.
  3. The old wayWindows dev team and Mac dev team using different tools and language variantsDuplicate development and QA effortIncreased development costSlower time to market or delay in delivering a Mac versionThe C++Builder wayOne development team, one toolCreate the application once. Click to compile to Windows. Click to compile to Mac from the same project. No extra development effort.Reduce lines of code by up to 80% using C++Builder’s proven visual development solutionResults: Faster time to market for Win/Mac at lower cost.
  4. The old wayWindows dev team and Mac dev team using different tools and language variantsDuplicate development and QA effortIncreased development costSlower time to market or delay in delivering a Mac versionThe C++Builder wayOne development team, one toolCreate the application once. Click to compile to Windows. Click to compile to Mac from the same project. No extra development effort.Reduce lines of code by up to 80% using C++Builder’s proven visual development solutionResults: Faster time to market for Win/Mac at lower cost.