Разработка мобильного кроссплатформенного...

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

Upload: sqalab

Post on 05-Jul-2015

1.077 views

Category:

Education


8 download

DESCRIPTION

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

TRANSCRIPT

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

Кроссплатформенность в Delphi XE5

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

кода в Delphi

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

Desktop vs Mobile

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

Единый код на всех платформах

• Дешевле разрабатывать

• Дешевле тестировать

• Проще управлять

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

Прогресс

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

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

Два компилятора

Классический

Win32

Win64

OSX

NEXTGEN

iOS

Android

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

NEXTGEN: что нового?

Automatic Reference Counting (ARC)

Строки индексируются с нуля

Один тип строкstring (он же UnicodeString)AnsiStringWideStringRawByteStringShortStringPCharPAnsiCharPWideChar

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

Работа со строками

Директива {$ZEROBASEDSTRINGS}

TStringHelper, TStringBuilder

Result := 'ABC'.IndexOf('B')); // 1

Copy, Pos, Delete… (deprecated)

Result := Pos('B', 'ABC')); // 2

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

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;

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

Automatic Reference Counting (ARC)

private

[Weak] FOwner: TComponent;

constructor TMyClass.Create(AOwner: TComponent);

begin

FOwner := AOwner;

end;

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

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;

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

В перспективе...

deprecated:

with

object

указатели

ассемблер

S[3] := ‘X’;

[Warning]: W1068 Modifying strings in place may not be supported in the future

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

Пара слов о компиляции

App Sources

FM Framework

Cocoa SDK Native Developer Kit

.app in IPA .so in APK

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

Стили FireMonkey

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

Семейства форм

Form := GetDeviceForm(‘FamName');

Можно, но не обязательно!

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

Multi-Resolution Image

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

Базы данных

• Interbase

– IB ToGo (платный)

– IBLite (бесплатный)

• SQLite

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

Версии 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)

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

Живое демо

Настало время удивительных историй

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

Еще пример

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

Еще пример

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

Спасибо за внимание!

Вопросы?

Роман Янковскийhttp://roman.yankovsky.me/

[email protected]