Разработка под Apple iOS → Синхронная загрузка UIWebView
Приветствую, Хабр!
Все началось с поиска решения задачи отображения форматированного текста внутри UITableViewCell, причем не строго заданного формата (тогда можно было бы использовать набор UILabel c заданным font) а произвольного. Да так, чтобы форматирование можно было задать простейшими html тегами. Решить такую задачу можно по-разному:
Как читеталь мог догадаться из заголовка статьи, я остановился на последнем способе, однако те из вас кто пробовал этот сопособ знают об очень неприятном подводном камне. Как от него избавиться я расскажу под катом.
Все началось с поиска решения задачи отображения форматированного текста внутри UITableViewCell, причем не строго заданного формата (тогда можно было бы использовать набор UILabel c заданным font) а произвольного. Да так, чтобы форматирование можно было задать простейшими html тегами. Решить такую задачу можно по-разному:
- Реализовать кастомный компонент с использованием CoreText (не подходит если нужна iOS3.x совместимость)
- Реализовать кастомный компонент с использованием CoreGraphics (очень объемная работа)
- Реализовать кастомный компонент с динамическим число UILabels в качестве subviews (довольно мутно в связи с переносами и прочим)
- UIWebView c загрузкой через loadHTMLString
Как читеталь мог догадаться из заголовка статьи, я остановился на последнем способе, однако те из вас кто пробовал этот сопособ знают об очень неприятном подводном камне. Как от него избавиться я расскажу под катом.
Android → iOS 4.3 vs. Android 2.3: тестирование скорости загрузки сайтов
Компания Blaze.io, занимающаяся оптимизацией сайтов, провела сравнительное тестирование последних версий iPhone и Android на тысяче сайтов. Результаты оказались смешанными: на 84% сайтов быстрее оказался встроенный браузер Android, а на 16% сайтов — встроенный браузер iPhone. При этом среднее по медиане время загрузки страницы по WiFi на Android составило 2,144 с, а у iPhone — 3,254 с.
Всего было проведено 46000 тестов на сайтах компаний из списка Fortune 1000 в разное время суток с отбрасыванием слишком быстрых и слишком медленных результатов (ошибки в сети). Использовались устройства iPhone 4.2, iPhone 4.3, Galaxy S (Android 2.2) и Nexus S (Android 2.3), WiFi-маршрутизатор, подключенный к быстрому DSL-соединению.
Всего было проведено 46000 тестов на сайтах компаний из списка Fortune 1000 в разное время суток с отбрасыванием слишком быстрых и слишком медленных результатов (ошибки в сети). Использовались устройства iPhone 4.2, iPhone 4.3, Galaxy S (Android 2.2) и Nexus S (Android 2.3), WiFi-маршрутизатор, подключенный к быстрому DSL-соединению.