SlideShare a Scribd company logo
1 of 21
Кроссплатформенность в
Delphi XE5
Разработка мобильного
кроссплатформенного приложения
под iOS и Android на основе единого
кода в Delphi
Desktop vs Mobile
Единый код на всех платформах
• Дешевле разрабатывать
• Дешевле тестировать
• Проще управлять
Прогресс
2008

2009

2010

2011

2012

2013

2013

v2009

v2010

XE

XE2

XE3

XE4

XE5

Unicode

Win7
Touch
DataSnap

Dev Process
Cloud
DataSnap+

FireMonkey
Mobile
Connectivity

FM2 (2.0)
Windows 8

FM3 (3.0)
True iOS

FM
Android

Embarcadero
приобрела Codegear
у Borland

Начата разработка
64битного компилятора

ARM-компилятор
Два компилятора
Классический
Win32
Win64
OSX

NEXTGEN
iOS
Android
NEXTGEN: что нового?
Automatic Reference Counting (ARC)

Строки индексируются с нуля
Один тип строк
string (он же UnicodeString)
AnsiString
WideString
RawByteString
ShortString
PChar
PAnsiChar
PWideChar
Работа со строками
Директива {$ZEROBASEDSTRINGS}
TStringHelper, TStringBuilder
Result := 'ABC'.IndexOf('B')); // 1

Copy, Pos, Delete… (deprecated)
Result := Pos('B', 'ABC')); // 2
Automatic Reference Counting (ARC)
Классический компилятор

NEXTGEN-компилятор

var
MyObj: TMyClass;
begin
MyObj := TMyClass.Create;
try
MyObj.SomeMethod;
finally
MyObj.Free;
end;
end;

var
MyObj: TMyClass;
begin
MyObj := TMyClass.Create;
MyObj.SomeMethod;
end;
Automatic Reference Counting (ARC)
private
[Weak] FOwner: TComponent;
constructor TMyClass.Create(AOwner: TComponent);
begin
FOwner := AOwner;
end;
Automatic Reference Counting (ARC)
var
MyObj: TMyClass;
S: string;
begin
MyObj := TMyClass.Create;
try
MyObj.MyMethod;
finally
MyObj.DisposeOf;
end;
if MyObj.Disposed then
S := ‘Zombie object’;
end;
В перспективе...
deprecated:
with
object
указатели
ассемблер
S[3] := ‘X’;
[Warning]: W1068 Modifying strings in place may not be supported in the future
Пара слов о компиляции
App Sources
FM Framework
Cocoa SDK

Native Developer Kit

.app in IPA

.so in APK
Стили FireMonkey
Семейства форм
Form := GetDeviceForm(‘FamName');

Можно, но не обязательно!
Multi-Resolution Image
Базы данных
• Interbase
– IB ToGo (платный)
– IBLite (бесплатный)

• SQLite
Версии Android
• Gingerbread (2.3.3 – 2.3.7)
• Ice Cream Sandwich (4.0.3 – 4.0.4)
• Jelly Bean (4.1.x – 4.3.x)
~ 97,2% устройств (по данным на 12 декабря 2013)
Живое демо
Настало время удивительных историй
Еще пример
Еще пример
Спасибо за внимание!
Вопросы?
Роман Янковский
http://roman.yankovsky.me/
roman@yankovsky.me

More Related Content

Similar to Разработка мобильного кроссплатформенного приложения под iOS и Android на основе единого кода в Delphi

С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
it-people
 
CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7
CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7
CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7
CodeFest
 
DUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко Алексей
DUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко АлексейDUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко Алексей
DUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко Алексей
it-people
 

Similar to Разработка мобильного кроссплатформенного приложения под iOS и Android на основе единого кода в Delphi (20)

Net framework
Net frameworkNet framework
Net framework
 
Interbase xe7 - универсальная субд для windows linux mac ios android
Interbase xe7 - универсальная субд для windows linux mac ios androidInterbase xe7 - универсальная субд для windows linux mac ios android
Interbase xe7 - универсальная субд для windows linux mac ios android
 
Open gl и direct3d
Open gl и direct3dOpen gl и direct3d
Open gl и direct3d
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
 
Aterdux Entertainment: Собственный движок как способ экономной и эффективной...
 Aterdux Entertainment: Собственный движок как способ экономной и эффективной... Aterdux Entertainment: Собственный движок как способ экономной и эффективной...
Aterdux Entertainment: Собственный движок как способ экономной и эффективной...
 
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиковСергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
 
Способы лицензирования Delphi, RAD Studio, C++ Builder XE4
Способы лицензирования Delphi, RAD Studio, C++ Builder  XE4Способы лицензирования Delphi, RAD Studio, C++ Builder  XE4
Способы лицензирования Delphi, RAD Studio, C++ Builder XE4
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
 
CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7
CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7
CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7
 
DUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко Алексей
DUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко АлексейDUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко Алексей
DUMP-2013 Frontend - Свой PhoneGap за 15 минут! - Охрименко Алексей
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 
Idea for mobile project
Idea for mobile projectIdea for mobile project
Idea for mobile project
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)
 
Mobile revolution
Mobile revolutionMobile revolution
Mobile revolution
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
 
Firebird в 2008 году: эволюция или революция? (in Russian, by Dmitry Kuzmenko)
Firebird в 2008 году: эволюция или революция? (in Russian, by Dmitry Kuzmenko)Firebird в 2008 году: эволюция или революция? (in Russian, by Dmitry Kuzmenko)
Firebird в 2008 году: эволюция или революция? (in Russian, by Dmitry Kuzmenko)
 
WindowsCamp.ru - Разработка игр для Windows 8 и Windows Phone. Monogame и coc...
WindowsCamp.ru - Разработка игр для Windows 8 и Windows Phone. Monogame и coc...WindowsCamp.ru - Разработка игр для Windows 8 и Windows Phone. Monogame и coc...
WindowsCamp.ru - Разработка игр для Windows 8 и Windows Phone. Monogame и coc...
 
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NETДенис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
 

More from SQALab

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Разработка мобильного кроссплатформенного приложения под iOS и Android на основе единого кода в Delphi