Роман Бусыгин "Особенности реализации Яндекс.Карт...

33
Особенности реализации Яндекс.Карт для iPhone Роман Бусыгин, [email protected] Tuesday, March 30, 2010

Upload: yandex

Post on 15-Jun-2015

372 views

Category:

Technology


3 download

DESCRIPTION

Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone" Я.Субботник по мобильным технологиям, Москва

TRANSCRIPT

Page 1: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Особенности реализации Яндекс.Карт

для iPhoneРоман Бусыгин, [email protected]

Tuesday, March 30, 2010

Page 2: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

План рассказа

• Различные способы отображения большого контента в iPhone

• Особенности реализации кэша в iPhone версии Яндекс.Карт

Tuesday, March 30, 2010

Page 3: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Базовые понятия

• UIView

• UIImageView

• UIScrollView

Tuesday, March 30, 2010

Page 4: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView

Базовый элемент интерфейса

Tuesday, March 30, 2010

Page 5: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIImageView

Хорошо умеет показывать картинки

Tuesday, March 30, 2010

Page 6: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIScrollView

Размер имеет значение

Tuesday, March 30, 2010

Page 7: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Отображение большого контента

• Нюансы:

• Плавная работа• Небольшое количество памяти• Ограниченные ресурсы CPU

Tuesday, March 30, 2010

Page 8: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Четыре способа

Tuesday, March 30, 2010

Page 9: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIScrollView + UIImageView

• Максимальный зум• Минимальный зум• Картинка

Tuesday, March 30, 2010

Page 10: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIScrollView + UIImageView

• Максимальный зум• Минимальный зум• Картинка

Tuesday, March 30, 2010

Page 11: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIScrollView + UIImageView

• Максимальный зум• Минимальный зум• Картинка

Tuesday, March 30, 2010

Page 12: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIScrollView + UIImageView

• Нельзя разместить в памяти сразу всю карту

• Скорость скролла на хорошем уровне

Tuesday, March 30, 2010

Page 13: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView с фоновой отрисовкой

Tuesday, March 30, 2010

Page 14: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView с фоновой отрисовкой

Tuesday, March 30, 2010

Page 15: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView с фоновой отрисовкой

Tuesday, March 30, 2010

Page 16: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView с фоновой отрисовкой

Tuesday, March 30, 2010

Page 17: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView с фоновой отрисовкой

Tuesday, March 30, 2010

Page 18: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView с фоновой отрисовкой

Tuesday, March 30, 2010

Page 19: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

UIView с фоновой отрисовкой

• Низкая производительность при скроллинге карты

• Умещаемся в памяти

Tuesday, March 30, 2010

Page 20: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

CATiledLayer

Tuesday, March 30, 2010

Page 21: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

CATiledLayer

Tuesday, March 30, 2010

Page 22: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

CATiledLayer

Tuesday, March 30, 2010

Page 23: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

CATiledLayer

Tuesday, March 30, 2010

Page 24: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

CATiledLayer

Tuesday, March 30, 2010

Page 25: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

CATiledLayer

• Неудовлетворительная скорость отрисовке при скроллинге

• Странный порядок отрисовки• Умещаемся в памяти

Tuesday, March 30, 2010

Page 26: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Свой MapKit.framework

Tuesday, March 30, 2010

Page 27: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Свой MapKit.framework

Tuesday, March 30, 2010

Page 28: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Свой MapKit.framework

Tuesday, March 30, 2010

Page 29: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Свой MapKit.framework

Идеально подходит Яндекс.Картам на iPhone!

Tuesday, March 30, 2010

Page 30: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Особенности реализации кэша

Не используем файловый кэш, как на остальных платформах

Используем SQLite кэш

SQLite кэш от 2 до 4 раз быстрее

Tuesday, March 30, 2010

Page 31: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

Особенности реализации кэша

Чтение Запись

1000 мс

90 мс

450 мс

25 мс

SQLite кэш Файловый кэш

Tuesday, March 30, 2010

Page 32: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

А ещё…

Tuesday, March 30, 2010

Page 33: Роман Бусыгин "Особенности реализации Яндекс.Карт для iPhone"

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

Tuesday, March 30, 2010