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

2009

2010

2011

2012

2013

2013

v2009

v2010

XE

XE2

XE3

XE4

XE5

Unicode

Win7
Touch
DataSnap

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

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

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

Copy, ...
Automatic Reference Counting (ARC)
Классический компилятор

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

var
MyObj: TMyClass;
begin
MyObj := TMyCla...
Automatic Reference Counting (ARC)
private
[Weak] FOwner: TComponent;
constructor TMyClass.Create(AOwner: TComponent);
beg...
Automatic Reference Counting (ARC)
var
MyObj: TMyClass;
S: string;
begin
MyObj := TMyClass.Create;
try
MyObj.MyMethod;
fin...
В перспективе...
deprecated:
with
object
указатели
ассемблер
S[3] := ‘X’;
[Warning]: W1068 Modifying strings in place may ...
Пара слов о компиляции
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% уст...
Живое демо
Настало время удивительных историй
Еще пример
Еще пример
Спасибо за внимание!
Вопросы?
Роман Янковский
http://roman.yankovsky.me/
roman@yankovsky.me
Upcoming SlideShare
Loading in …5
×

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

1,743 views

Published on

Доклад Романа Янковского на конференции Application Developer Days-4. г.Минск 13 декабря 2013

Published in: Education
  • Be the first to comment

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

  1. 1. Кроссплатформенность в Delphi XE5 Разработка мобильного кроссплатформенного приложения под iOS и Android на основе единого кода в Delphi
  2. 2. Desktop vs Mobile
  3. 3. Единый код на всех платформах • Дешевле разрабатывать • Дешевле тестировать • Проще управлять
  4. 4. Прогресс 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-компилятор
  5. 5. Два компилятора Классический Win32 Win64 OSX NEXTGEN iOS Android
  6. 6. NEXTGEN: что нового? Automatic Reference Counting (ARC) Строки индексируются с нуля Один тип строк string (он же UnicodeString) AnsiString WideString RawByteString ShortString PChar PAnsiChar PWideChar
  7. 7. Работа со строками Директива {$ZEROBASEDSTRINGS} TStringHelper, TStringBuilder Result := 'ABC'.IndexOf('B')); // 1 Copy, Pos, Delete… (deprecated) Result := Pos('B', 'ABC')); // 2
  8. 8. 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;
  9. 9. Automatic Reference Counting (ARC) private [Weak] FOwner: TComponent; constructor TMyClass.Create(AOwner: TComponent); begin FOwner := AOwner; end;
  10. 10. 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;
  11. 11. В перспективе... deprecated: with object указатели ассемблер S[3] := ‘X’; [Warning]: W1068 Modifying strings in place may not be supported in the future
  12. 12. Пара слов о компиляции App Sources FM Framework Cocoa SDK Native Developer Kit .app in IPA .so in APK
  13. 13. Стили FireMonkey
  14. 14. Семейства форм Form := GetDeviceForm(‘FamName'); Можно, но не обязательно!
  15. 15. Multi-Resolution Image
  16. 16. Базы данных • Interbase – IB ToGo (платный) – IBLite (бесплатный) • SQLite
  17. 17. Версии 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)
  18. 18. Живое демо Настало время удивительных историй
  19. 19. Еще пример
  20. 20. Еще пример
  21. 21. Спасибо за внимание! Вопросы? Роман Янковский http://roman.yankovsky.me/ roman@yankovsky.me

×