Кросс-платформенная разработка под мобильные...

21
YaC, Москва, 19 сентября 2011 года Старший разработчик Жестилевский Дмитрий Кросс-платформенная разработка под мобильные устройства

Upload: yaevents

Post on 11-Nov-2014

6.763 views

Category:

Technology


0 download

Tags:

DESCRIPTION

Дмитрий Жестилевский, ЯндексЗакончил факультет экспериментальной и теоретической физики Московского инженерно-физического института в 2011 году. С 2006 года занимается разработкой приложений (игры, бизнес-приложения) под мобильные устройства на платформах J2ME, BREW, Windows Mobile, Android, iOS. В Яндексе с 2010 года, занимается разработкой архитектуры мобильных картографических сервисов. Область интересов: кросс-платформенная разработка под мобильные устройства, визуализация 3D.Тема докладаКросс-платформенная разработка под мобильные устройства.ТезисыРазработка приложений под embedded-устройства сильно фрагментирована из-за обилия OS (Android, iOS, WM, WP7, Symbian, Bada). Независимая разработка под каждую платформу в отдельности приводит к пропорциональному росту количества участников процесса разработки и объема поддерживаемого CodeBase. Внедрение общего кода, который будет работать на всех платформах за счет использования Platform Abstraction Layer с унифицированным интерфейсом, способно сократить эти издержки. В то же время остается возможность использовать платформенно-зависимые сущности, например UI, для придания приложению native look and feel. В докладе рассматривается процесс внедрения общих компонентов в мобильные приложения Яндекса на примере Панорам улиц, а также трудности, с которыми мы столкнулись во время разработки, и пути их решения.

TRANSCRIPT

Page 1: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

YaC, Москва, 19 сентября 2011 года

Старший разработчикЖестилевский Дмитрий

Кросс-платформенная разработка под мобильные устройства

Page 2: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Панорамы

2

Page 3: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Platform Abstraction Layer (PAL)

3

Page 4: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

PAL

HTML/JavaScriptVirtual MachineNative C/C++

4

Page 5: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

PAL – почему свой?

РасширяемостьСовместимость

5

Page 6: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Core

Windowing

Threading

Events

Networking

IO

+ Extensions6

Page 7: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Application Part

STLC++

POSIXExt API

3rd party High Level API

Android iOS Symbian etc…

App 1 App 2 App 3

7

Page 8: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Варианты общих компонентов

8

Page 9: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

kdFopen(“/res/file.bin”)

Варианты общих компонентов

9

Page 10: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Варианты общих компонентов

sync sync

10

Page 11: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Варианты общих компонентов

Common View

InputRedraw

ActivityUIViewControllerQWidgetCAknView

11

Page 12: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

12

Page 13: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Loop-in-application vs callbacks

13

Page 14: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Http Networking

OpenKODE specOpenKODE extExtended API

14

Page 15: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

didFinish vs. onFinished

delegates vs. listeners

Apple vs. Android

15

Page 16: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

16

Page 17: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Profit

Common

Android

iOS

Win32

0 100 200 300 400 500 600 700 800

700

25

23

2

Объем кода, кБ (Яндекс.Панорамы)

17

Page 18: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Profit

18

Page 19: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Ограничения

> 90% UI

19

Page 20: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Попробуйте сами!

20

Page 21: Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский, Яндекс

Старший разработчик

[email protected]

Жестилевский Дмитрий