-Поиск по дневнику

Поиск сообщений в lj_mkazantsev

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 06.05.2010
Записей:
Комментариев:
Написано: 1


Apple WWDC

Пятница, 25 Июня 2010 г. 11:18 + в цитатник
8 июня, на следующий день после презентации компании Apple, на которой Стив Джобс показал миру во всей красе iPhone 4 и iOS 4, начались рабочие сессии конференции WWDC. WWDC — Worldwide Developers Conference — это ежегодная конференция для разработчиков, на которой в деталях рассказывают о том, как удовлетворять требованиям клиентов и соответствовать заявленной Джобсом на заглавной презентации идее.

Материалы этой конференции с 19 июня свободно может скачать через iTunes любой зарегистрированный как разработчик пользователь сайта компании Apple.

Я пока посмотрел только одну презентацию, но уже по ней можно сделать ряд выводов о том, как Apple ведет себя со сторонними разработчиками и почему она ведет себя именно так.

Рабочая сессия называлась Core OS Networking, и была посвящена самому общему разбору новшеств и особенностей работы с сетью главным образом в iOS 4. Но, на самом деле, работа с сетью что в iOS 4, что в Mac OS X, выглядит примерно одинаково, за исключением некоторых дополнительных требований, которые налагает природа устройства, в частности его мобильность и разнообразие используемых сетевых интерфейсов (WiFi, HSDPA, EDGE, GPRS).

Под катом конспективно изложены тезисы, которые Brett R. Halle, senior director команды Core OS, доносил до аудитории в течение 40 с небольшим минут.


Первое, о чем говорит Brett — быть готовым к IPv6, по его предположениям уже через год и два месяца возможности IPv4 исчерпаются и всех нас ждет IPv6. Поэтому следует забыть про gethostbyname() и использовать getaddrinfo(), к которому прилагается структура данных, умеющая хранить и IPv4, и IPv6. Если вы используете API более высокого уровня, там все уже учтено — можно не суетиться.

Второе — для пользователя вся работа с сетью должна быть как магия. Всё происходит правильно и никому нет дела до того, через что вам пришлось пройти, чтобы оно работало идеально.

Особо отмечены captive networks, в частности платные WiFi-хотспоты, для которых теперь есть возможность организовать интерфейс под ввода кредитки, кода доступа, имени-пароля не в браузере при посещении первой страницы, а нативными средствами iOS 4.

И далее 10 советов, как следует работать с сетью на новых устройствах.

10. Никогда не предполагайте, что соединение с сетью — бесплатно.
Разрывайте соединение при первой возможности, оптимизируйте объемы передаваемой информации, если есть возможность — спрашивайте пользователя, хочет ли он обмениваться данными.
9. Тщательно отслеживайте все возможные ошибки.
Здесь Brett отвлекся и рассказал, что за проблема возникла у Стива на keynote, когда сайт The New York Times отлично загружался на iPhone 3GS, но категорически не хотел открываться на iPhone 4. Дело в том, что 3GS поддерживает только 802.11b/g, а у iPhone 4 есть возможность подключаться к 802.11n, что его и подвело — несмотря на всего одну букву разницы в названии протокола, это две разные сети, с разной степенью загруженности подключениями и трафиком. Тоже интересная тема для улучшения сетевого API в ОС.
8. Используйте только асинхронные соединения, выводите любые блокирующиеся вызовы (тот же getaddrinfo, работающий с DNS) за пределы main thread. Не блокируйте UI, используйте event-driven API.
7. Качество связи может быть самым различным. Особенно интересна в этом случае тема многослойных сетей (layered networks) — например, если в самолете у вас отличный сигнал местного WiFi, не совсем понятно, насколько хорошее соединение торчит из этого WiFi-роутера наружу, по спутнику из самолета.
6. Будьте готовы к тому, что сеть не всегда доступна — иногда нужно подождать.
5. Предполагайте, что сеть не защищена — не пересылайте незащищенные данные пользователя, всегда шифруйте конфиденциальные данные.
4. Не забывайте о том, что IPv4 исчерпает себя очень скоро, заранее предполагайте, что вам может прилететь как IPv4, так и IPv6. Особо отсмотрите свой старый код на эту тему, поскольку в новых API разработчики ОС уже учли все эти детали.
3. Для широковещательных сообщений используйте Bonjour — никто и никогда не запомнит IPv6.
2. Не только производительность вашего великолепного приложения, но и количество потребляемой энергии имеет значение: разрывайте соединения при первой возможности, используйте push notifications.
1. Будьте готовы к изменениям в любой момент: HSDPA может пропасть в лифте, но там останется WiFi, на последнем этаже сигнал от WiFi может ухудшиться, но появится отличный GPRS, на балконе снова восстановится HSDPA.
Не держите открытыми соединения, которые вам уже не нужны.
Если соединения нет, используйте Reachability API, который оповестит приложение, если соединение снова возникнет.


Теперь, наконец, те самые выводы, которые я сделал для себя.
1. Мобильная платформа Apple — эталонная среда. Строгая премодерация приложений для App Store и строгие ограничения по используемым для разработки технологиям — это то, что компания была бы рада внедрить и в OS X. Так что десктопным разработчикам не стоит расслабляться.
2. Причина, по которой компания не ленится тщательно отсматривать весь разрабатываемый софт и не боится запрещать разработчикам пользоваться сторонними технологическими решениями, заключается в бесконечной преданности комфорту конечного пользователя и качеству того опыта, который он приобретает при работе с мобильными устройствами. Apple добивается той ситуации, когда ни одна программа никогда не зависнет и не умрет неожиданно, все они будут работать корректно по отношению друг к другу (не должна очередная "Веселая ферма" случайно очистить список контактов) и все они будут работать корректно по отношению к системе (минимум софтовых перезагрузок, полное отсутствие хардовых).
3. Добиваясь этих целей, компании не обойтись без тесного контакта с разработчиками. Именно для этого проводятся эти конференции, именно для повышения лояльности и интереса придумывается iAd, и единый и неделимый источник для приложений — App Store — тоже служит этой цели.

И в умении держать контакт с программистами Apple не откажешь. Эта небольшая вводная в работу с сетью рабочая сессия очень узкоспециальна, вплоть до того, что местами разработчикам объясняют, в какой именно последовательности дергать функции из Sockets API, что для людей, непосредственно занятых производством мобильных приложений, гораздо важнее, чем магические пассы Джобса. Именно поэтому всю магию и оставляют только для keynote, только для того события, к которому прикованы взгляды биржевых трейдеров и фанатичных покупателей, оставляя детали людям, которые должны сделать так, чтобы эту магию можно было безболезненно повторить, даже установив на iPhone 150 сторонних приложений.

Несмотря на такую тонкую работу с гиками, основная цель, которую ставят себе люди из Apple, в особенности в рамках мобильной платформы, — удовлетворение запросов простых клиентов. Клиенты не знают и не хотят ничего знать о сокетах и DNS — им просто нужны Farmville с привязкой к любимому аккаунту в Facebook, клиенты для Foursquare и Twitter и возможность звонить друзьям и родственникам. Они должны получить всё это и еще 25 тысяч приложений, надежно и быстро работающих на телефонах и планшетах.
Именно поэтому функции в ОС появляются последовательно и довольно медленно (до многозадачности и папок руки у компании дошли только к четвертой версии) — нужно приготовить достойный и предельно продуманный API, и подготовить к правильной работе с ним армию сторонних разработчиков.

https://mkazantsev.livejournal.com/132589.html

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку