Разработка мобильного кроссплатформенного...
Post on 05-Jul-2015
1.077 Views
Preview:
DESCRIPTION
TRANSCRIPT
Кроссплатформенность в Delphi XE5
Разработка мобильного кроссплатформенного приложения под iOS и Android на основе единого
кода в Delphi
Desktop vs Mobile
Единый код на всех платформах
• Дешевле разрабатывать
• Дешевле тестировать
• Проще управлять
Прогресс
Embarcaderoприобрела Codegearу Borland
2008 2009 2010 2011
Начата разработка64битного компилятора
v2009Unicode
v2010Win7TouchDataSnap
XEDev Process CloudDataSnap+
XE2FireMonkeyMobile Connectivity
2012
XE3FM2 (2.0)Windows 8
2013
XE4FM3 (3.0)True iOS
2013
ARM-компилятор
XE5FMAndroid
Два компилятора
Классический
Win32
Win64
OSX
NEXTGEN
iOS
Android
NEXTGEN: что нового?
Automatic Reference Counting (ARC)
Строки индексируются с нуля
Один тип строкstring (он же UnicodeString)AnsiStringWideStringRawByteStringShortStringPCharPAnsiCharPWideChar
Работа со строками
Директива {$ZEROBASEDSTRINGS}
TStringHelper, TStringBuilder
Result := 'ABC'.IndexOf('B')); // 1
Copy, Pos, Delete… (deprecated)
Result := Pos('B', 'ABC')); // 2
Automatic Reference Counting (ARC)
Классический компилятор
var
MyObj: TMyClass;
begin
MyObj := TMyClass.Create;
try
MyObj.SomeMethod;
finally
MyObj.Free;
end;
end;
NEXTGEN-компилятор
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
top related