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

Tags:

Post on 11-Nov-2014

6.764 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

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

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

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

Панорамы

2

Platform Abstraction Layer (PAL)

3

PAL

HTML/JavaScriptVirtual MachineNative C/C++

4

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

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

5

Core

Windowing

Threading

Events

Networking

IO

+ Extensions6

Application Part

STLC++

POSIXExt API

3rd party High Level API

Android iOS Symbian etc…

App 1 App 2 App 3

7

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

8

kdFopen(“/res/file.bin”)

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

9

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

sync sync

10

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

Common View

InputRedraw

ActivityUIViewControllerQWidgetCAknView

11

12

Loop-in-application vs callbacks

13

Http Networking

OpenKODE specOpenKODE extExtended API

14

didFinish vs. onFinished

delegates vs. listeners

Apple vs. Android

15

16

Profit

Common

Android

iOS

Win32

0 100 200 300 400 500 600 700 800

700

25

23

2

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

17

Profit

18

Ограничения

> 90% UI

19

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

20

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

gordon@yandex-team.ru

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

top related