42
Вёрстка для iPhone 16 декабря, 2008, Москва

Coding for iPhone

Embed Size (px)

DESCRIPTION

My presentation at clienttech, Moscow, 15-16 Dec, 2008. http://cienttech.ru

Citation preview

Page 1: Coding for iPhone

Вёрстка для iPhone

16 декабря, 2008, Москва

Page 2: Coding for iPhone

Продано более 10 000 000

Page 3: Coding for iPhone

За следующие 12 месяцевеще 40 000 000

Page 4: Coding for iPhone

За следующие 12 месяцевеще 40 000 000

85% владельцев ходили в интернет

Page 5: Coding for iPhone

И всё равно нельзя верстать только для iPhone

Page 6: Coding for iPhone
Page 7: Coding for iPhone

Don’t Build for Just One DeviceFlickr

Page 8: Coding for iPhone

Мобильные платформы

• Nokia (Symbian) – WebKit• iPhone – WebKit• Android – WebKit

Не так важен сам iPhone как будущее.

Page 9: Coding for iPhone

Чем отличается от других?

• Почти полноценный браузер

Page 10: Coding for iPhone

Чем отличается от других?

• Почти полноценный браузер

• Два режима (portrait+landscape)

Page 11: Coding for iPhone

Чем отличается от других?

• Почти полноценный браузер

• Два режима (portrait+landscape)

• Пальцы очень разные (хоккеисты и балерины)

Page 12: Coding for iPhone

Чем отличается от других?

• Почти полноценный браузер

• Два режима (portrait+landscape)

• Пальцы очень разные• Нос

Page 13: Coding for iPhone

Расписание поездов?Одну минуту, посмотрю на сайте.

Page 14: Coding for iPhone

ОГРАНИЧЕНИЯ

Page 15: Coding for iPhone

Почти Safari, кроме...

• Размер приложения не более 10Мб• Кеш для файлов не более 25Кб• Таймаут всего, что исполняется более 5

секунд• Клик неточный, мышки нет• Нет работы с файлами• Flash

Page 16: Coding for iPhone

Размер экрана

Page 17: Coding for iPhone

СЛАДКОЕ

Page 18: Coding for iPhone

Хорошее

• Нет Internet Explorer• Нет Internet Explorer и Nokia 1100!!!• AJAX отлично работает• В CSS возможно почти все что известно• Canvas

Page 19: Coding for iPhone

CSS3 и анимация.divSlide {       

-webkit-animation-name: "slide-me-to-the-right";       

-webkit-animation-duration: 1s;

}

@-webkit-keyframes "slide-me-to-the-right" {        from { left: 0px; }       

to { left: 100px; }

}

Page 20: Coding for iPhone

Шрифты (Helvetica!)

Page 21: Coding for iPhone

РАЗНЫЕ САЙТЫ ДЛЯ IPHONE

Page 22: Coding for iPhone

Не работают

Page 23: Coding for iPhone

Хотя бы открываются

Page 24: Coding for iPhone

Оптимизированы

Page 25: Coding for iPhone

Копируют интерфейс (iUI)

Page 26: Coding for iPhone

imoviemash.com (iUI)

Page 27: Coding for iPhone

По какому пути идти?

Page 28: Coding for iPhone

По какому пути идти?

По правильному!

Page 29: Coding for iPhone

По какому пути идти?• Вариант оптимизированного сайта

• Запоминающийся дизайн• Не ограничены интерфейсом• Красиво

Page 30: Coding for iPhone

ОПТИМИЗАЦИЯ САЙТА ДЛЯ IPHONE

Page 31: Coding for iPhone

• CSS для iPhone:<link media="only screen and (max-device-width: 480px)"

…/>

• CSS для всех остальных:<link media="screen and (min-device-width: 481px)”

…/>

• JS:if (navigator.userAgent.indexOf('iPhone') != -1)

Page 32: Coding for iPhone

Размер экрана

Page 33: Coding for iPhone

60px!: window.scrollTo(0,1)

Page 34: Coding for iPhone

Различать ориентацию

• JS:currentWidth = window.innerWidth; var orient = currentWidth == 320 ? "profile" : "landscape";document.body.setAttribute("orient", orient);

• CSS:body[orient="profile"] {}

body[orient="landscape”] {}

Page 35: Coding for iPhone

landscape

profile

Page 36: Coding for iPhone

Трафик

• Уменьшение HTTP-запросов• Меньше картинок• Gzip• Кеширование (файлы менее 25Кб)• Аякс (грузить части сайта)• Base64• Избегать фреймворков

Page 37: Coding for iPhone

Оптимизация изображения

• Запретить пользователю увеличивать сайт:

• Одинаковый размер шрифта при поворотах:

Page 38: Coding for iPhone

Юзабилити

• Ссылки – кнопки. Большая кликабельная область.

• Рекомендуемый шрифт Helvetica• Легкие странички

Page 39: Coding for iPhone

Полезные мелочи

• Звонок по клику: <a href="tel:555-1212">Call Me</a>• По умолчанию в эти поля вводятся числа:

<input name="phone_whatever"

<input name="zip"

• Тултипы

Page 40: Coding for iPhone

Тестировать

• iPhoney (дизайн)• ySlow (производительность)• Обычные инструменты веб-разработки• iPhone

Page 41: Coding for iPhone

Ссылки

• Официальная документация: http://developer.apple.com/webapps/

• Хороший «хакерский» ресурс http://www.iphonewebdev.com/

• Фреймворк с интерфейсом под iPhone:http://code.google.com/p/iui/

• Статья на alistapart:http://www.alistapart.com/articles/putyourcontentinmypocket

Page 42: Coding for iPhone

СПАСИБО!

Юрий Артюх,сайт: http://cssing.org.uaпочта: [email protected]