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

Post on 15-Jun-2015

373 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

для iPhoneРоман Бусыгин, ramzes@yandex-team.ru

Tuesday, March 30, 2010

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

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

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

Tuesday, March 30, 2010

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

• UIView

• UIImageView

• UIScrollView

Tuesday, March 30, 2010

UIView

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

Tuesday, March 30, 2010

UIImageView

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

Tuesday, March 30, 2010

UIScrollView

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

Tuesday, March 30, 2010

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

• Нюансы:

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

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

UIScrollView + UIImageView

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

Tuesday, March 30, 2010

UIScrollView + UIImageView

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

Tuesday, March 30, 2010

UIScrollView + UIImageView

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

Tuesday, March 30, 2010

UIScrollView + UIImageView

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

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

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

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

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

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

Tuesday, March 30, 2010

CATiledLayer

Tuesday, March 30, 2010

CATiledLayer

Tuesday, March 30, 2010

CATiledLayer

Tuesday, March 30, 2010

CATiledLayer

Tuesday, March 30, 2010

CATiledLayer

Tuesday, March 30, 2010

CATiledLayer

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

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

Tuesday, March 30, 2010

Свой MapKit.framework

Tuesday, March 30, 2010

Свой MapKit.framework

Tuesday, March 30, 2010

Свой MapKit.framework

Tuesday, March 30, 2010

Свой MapKit.framework

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

Tuesday, March 30, 2010

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

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

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

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

Tuesday, March 30, 2010

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

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

1000 мс

90 мс

450 мс

25 мс

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

Tuesday, March 30, 2010

А ещё…

Tuesday, March 30, 2010

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

Tuesday, March 30, 2010

top related