воскресенье, 9 декабря 2012 г.

Подборка полезных ссылок по мобильной тематике №1

Уф, что-то я давно ничего не писал. Постараюсь сделать публикацию интересных ссылок по мобильной тематике регулярной. Интересно Ваше мнение - стоит ли делать мини обзор как в этом посте, или просто делать пост с интересными ссылками и описанием в одно предложение (как делает, например, Дмитрий Жарий)?

1. Keynote Джонатана Коула на STARWEST 2012
Отличный keynote - живо, с экспрессией. Очень классно раскладывает по полочкам текущую ситуацию. Прямо, как говорится "из головы достает" :)

Благодарен ему за акцент на тестировании юзабилити приложения. Благо рынок взрослеет и приложения "задизайненые профессиональными разработчиками" потихоньку уходят с рынка:
  • на iOS таких приложений и не было сильно много 
  • Android-приложения перестают быть глупой калькой с iOS версий, особенно после обновления гайдлайнов
На данный момент есть достаточно много хороших инструментов для прототипирования: Prototyper, FluidUI, Pencil, Proto.io, BalsamiqMockups

Отлично, что он акцентирует внимание на тестировании приложения при разных типах интернет-соединения:
  • 2G>3G>4G и наоборот
  • Wi-Fi>Cellular и наоборот
  • разные сценарии потери и восстановления связи
  • при меняющемся уровне приема
Единственно, что он не упомянул - симуляция запароленной или неисправной точки доступа - выдергиваете патчкорд из WAN-порта: сигнал есть, а данные "не ходят" :)
Очень часто встречаюсь с приложениями, которые достаточно неадекватно реагируют на такие трюки с соединением. Особенно девайсы от Apple, да простит аллах их разработчиков драйверов и железа для Wi-Fi :)

Примеры с GPS, датчиками температуры и заряда батареи очень показательны - сам сталкивался с подобными случаями. Теперь эти кейсы основательно закрепились в моему чек-листе.

Но не могу сказать что согласен со всем, о чем он говорит - все-таки возможные "гейзенбаги", появляющиеся при странных обстоятельствах скорее являются следствием не очень хорошо написанного приложения. Возможно, я его неправильно трактую, но все же...
Пример 1: возможный баг в приложении на платформе Android: при принятии или отклонении звонка с одним из скринов приложения случается что-то не то. Например, вернувшись в приложение Вы увидите, что оно упало или находится не в том состоянии. Такой баг можно найти и другим способом - залочить экран, дать уйти телефону в deep sleep (когда понижается частота процессора и тп) и разлочить экран. Оба проявления бага вызваны неправильной реализацией жизненного цикла activity.
Пример 2: iOS приложение может упасть если долго и нудно переходить между двумя-тремя скринами. Может быть вызвано неправильной работе с памятью:
  • утекает до определенного порога и приложение "падает",
  • иные причины при работе с памятью: указатель на очищенную память, segfault, etc
Все, больше не буду вам портить удовольствие от просмотра данного видео :)

Black-box is dead (c)

2. Семь смертных грехов мобильных приложений 
Отрывок из книжки Коула про тестирование мобильных приложений. Как дочитаю - напишу рецензию :) У него вообще много классных материалов - рекомендую.

3. Классная инфографика про планшеты :)
Товарищи с NevoSoft его перевели, но мне нравится ComicSans да и очепятки есть :)