вторник, 23 октября 2012 г.

generation next...блин

Сынуля сегодня сделал подарок папе. А именно: купил за 13 баксов на Амазоне книжку, которую я точно не собирался покупать(ссылка). Для этого ему потребовалось всего лишь:
- утянуть у меня из под носа Киндл
- найти кнопочку включения снизу
- зайти в настройки и включить вай-фай
- зайти в Amazon Shop
- выбрать книгу и купить ейную

Следует отметить, что:
- Киндл без тач-экрана, то есть управляется сугубо несколькими кнопочками внизу устройства
- в руки он его взял первый раз

На все это безобразие ему потребовалось 10 минут, не больше.
Я в небольшом офигевании....что будет дальше?

четверг, 11 октября 2012 г.

Incredible Android

Все больше и больше поражаюсь многообразию андроид-платформы, а именно тому, как на свое усмотрение производители девайсов отключают важные элементы системы или доводят их до невменяемого состояния.
Сейчас плотно работаю с двумя вещами: камера и сеть.
Камера - это боль и стоны и анальный секс кекс андроид-разработчиков. Базовые примеры из SDK могут запросто(а зачастую они так и делают) не работать чуть ли не на топово-флагманских девайсах. Вот, например краткий список:
- Samsung Galaxy S3 - фронтальная камера пишет зеленое видео, хак на это пока не нашел
- Samsung Galaxy S2 и Note - задняя камера пишет зеленое видео пока не поставишь хардкодный параметр в "1" в определенный момент времени
- LG3D, Optimus и еще какой-то  - зум на фронтальной камере не работает, хотя метод isZoomSupported железобетонно возвращает true
- Motorolla DEFY + - зум вроде как бы работает, но при начале записи он просто сбрасывется в 0.
И еще много, много аналогичных примеров, которые просто ставят в тупик. В результате чего некоторые фичи приходится отключать не просто для конкретных девайсов, а чуть ли не для всей линейки конкретного производителя. Так, например, у меня для всех LG отключен контрол зума для фронтальной камеры.
Во время тестирования таких вещей очень хорошо делать отсылку к приложению Camera, которое идет с firmware. Я задаю тогда один каверзный вопрос и, мысленно вознося молитву к Гуглу, надеюсь, что в нативном приложении эта фийча не работает. В 90% случаях именно так и происходит, тогда вопрос реализации таких вещей на девайсах, которые не поддерживают этого аут-оф-зе-бокс сразу отпадает. А вообще меня очень сильно умиляет момент, когда на телефоне за 600уе невозможно сделать видео-съемку с использованием зума.

Теперь поговорим о сети. Есть задача написать пингер, который будет выцеплять из сети девайсы с запущенным "нашим" приложением. "Ну что ж тут сложного?", подумал я и, вспомнив курс Сетей из универа, написал небольшой пингер, которы по UDP шлет броадкаст. Но и тут вмешались могучие и злющие производители телефонов и, в казалось бы такой фундаментальной вещи как работа с сетью, тоже наваляли дров. К примеру:
- на моем Galaxy Nexus(флагмане от Google) я не могу параллельно читать и писать из/в UDP сокет, но я спокойно могу это делать на Samsung Ace, на девайсе, который на порядок проще/дешевле/хуже моей "прелести"
- HTC Desire попросту отказывается принимать броадкасты. Как оказалось, таким образом HTC заботится о своих пользователях, дабы их батареечки не разряжались. Чинится это только кастомными проишвками, например cyanogenmod. И так делают не только они.

Одним словом, чем больше педалю под Андроид, тем больше я уверен в том, что сделал правильный выбор. Ну разве можно представить себе такие проблемы под iPhone? Та ни в жизнь.