Coding for iPhone

Post on 05-Dec-2014

2.262 views 0 download

Tags:

description

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

Transcript of Coding for iPhone

Вёрстка для iPhone

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

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

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

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

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

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

Don’t Build for Just One DeviceFlickr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ОГРАНИЧЕНИЯ

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

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

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

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

СЛАДКОЕ

Хорошее

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

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; }

}

Шрифты (Helvetica!)

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

Не работают

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

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

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

imoviemash.com (iUI)

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

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

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

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

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

ОПТИМИЗАЦИЯ САЙТА ДЛЯ 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)

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

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

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

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

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

body[orient="landscape”] {}

landscape

profile

Трафик

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

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

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

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

Юзабилити

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

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

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

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

<input name="phone_whatever"

<input name="zip"

• Тултипы

Тестировать

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

Ссылки

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

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

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

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

СПАСИБО!

Юрий Артюх,сайт: http://cssing.org.uaпочта: akella.a@gmail.com