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

6,601
-1

Published on

Дмитрий Жестилевский, Яндекс

Закончил факультет экспериментальной и теоретической физики Московского инженерно-физического института в 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. В докладе рассматривается процесс внедрения общих компонентов в мобильные приложения Яндекса на примере Панорам улиц, а также трудности, с которыми мы столкнулись во время разработки, и пути их решения.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,601
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. Кросс-платформенная разработка под мобильные устройства<br />Жестилевский Дмитрий<br />Старший разработчик<br />YaC, Москва, 19 сентября 2011 года<br />
  2. 2. Панорамы<br />2<br />
  3. 3. Platform Abstraction Layer (PAL)<br />3<br />
  4. 4. PAL<br />HTML/JavaScript<br />Virtual Machine<br />Native C/C++<br />4<br />
  5. 5. PAL – почему свой?<br />Расширяемость<br />Совместимость<br />5<br />
  6. 6. Threading<br />Networking<br />Core<br />Events<br />IO<br />Windowing<br />+ Extensions<br />6<br />
  7. 7. App 1<br />App 2<br />App 3<br />Application Part<br />3rd party<br />High Level API<br />STL<br />C++<br />POSIX<br />Ext API<br />Android<br />iOS<br />Symbian<br />etc…<br />7<br />
  8. 8. Варианты общих компонентов<br />8<br />
  9. 9. Варианты общих компонентов<br />kdFopen(“/res/file.bin”)<br />9<br />
  10. 10. Варианты общих компонентов<br />sync<br />sync<br />10<br />
  11. 11. Варианты общих компонентов<br />Common View<br />Activity<br />UIViewController<br />Input<br />Redraw<br />QWidget<br />CAknView<br />11<br />
  12. 12. 12<br />
  13. 13. Loop-in-application vs callbacks<br />13<br />
  14. 14. Http Networking<br />OpenKODE spec<br />OpenKODE ext<br />Extended API<br />14<br />
  15. 15. didFinish vs. onFinished<br />delegates vs. listeners <br />Apple vs. Android <br />15<br />
  16. 16. 16<br />
  17. 17. Profit<br />17<br />
  18. 18. Profit<br />18<br />
  19. 19. Ограничения<br />> 90% UI<br />19<br />
  20. 20. Попробуйте сами!<br />20<br />
  21. 21. Жестилевский Дмитрий<br />Старший разработчик<br />gordon@yandex-team.ru<br />

×