Как стать автором
Обновить

Комментарии 106

Так вот почему отложили выпуск Max Payne Mobile для Andoid.
Думаете из-за этого? :)
НЛО прилетело и опубликовало эту надпись здесь
Как показывает практика, крупным студиям достаточно пофигу на качество Ж:)
НЛО прилетело и опубликовало эту надпись здесь
Потому что все это разрядилось?)
нет, ставят и проходят на каждом:)
> Это ставит под сомнение прогноз Эрика Шмидта, данный им полгода назад, что разработчики начнут создавать свои первые приложения для Android в течение ближайших шести месяцев

Странная какая-то фраза.
Разве полгода назад никто не создавал свои первые приложения для андроида?
Подавляющее большинство разработчиков первое приложение делает под iOS. Как это более правильно сказать?
Ну наример:
… разработчики станут отдавать предпочтение Android на старте создания новых кроссплатформенных приложений…
или
… программисты начнут с версии под Android при начале разработки новых мультиплатформенных приложений…
Да не — дело не в новых.
Человек делает ВООБЩЕ первое мобильное приложение. Не мультиплатформенное — просто самое первое.
Этот человек скорее выберет iOS, чем Android.
Дык тогда можно вообще просто сказать:
… начинающие разработчики станут выбирать Android в качестве первой мобильной платформы для программирования…
Ок, исправил, спасибо.
Новые в мобильной области разработчики, начнут свои первые шаги в разработке с приложений под андроид
По ценам на аккаунты врядли)
Цены тут не при чем. Начинать разработку можно бесплатно :)
Да. Но если вы начинаете разработку на андроид, вам ничего не нужно.
Если вы начинаете разработку на ios, вам нужны сертификаты, профили, чтоб на устройствах тестить.
или jailbreak
Когда разработка добирается до устройств, уже можно покупать сертификат. Новичку хватит и симулятора: не надо прыгать из огня да в полымя.
А ещё как минимум мак.
Ну тут хакинтош, хоть через хитрую попу, но можно поставить
А разве гугл не берет те же $100 за дев акк, т.е. за возможность размещать аппликухи в маркете?
А если Вы про отладку, то я когда-то на PowerPC собирал аппликухи под айфон и запускал их, без всяких сертификатов. Было бы желание. (Разработка под айфон под powerpc была заблокирована, если что.)
Гугл берёт лишь $25 за акк, причём единоразово, причём не запрещает тестировать программы на реальных устройствах и без аккаунта.
если человек делает первое мобильное приложение и живёт не в сша то он выберет андроид. Просто потому что у него нет макинтоша и айфона которые мало распространены в азии, восточной европе и южной америке.
я по идее могу поспорить, посмотрите на гигантскую долю айфона в японии.
а с точки зрения китайцев всё иначе

image
Давайте не будем скатываться в срачи и просто согласимся, что покупательная способность приложений в китае и японии настолько разнится, что сразу видна рентабельность разработки под локальный японский (очень специфический рынок) или глобальный iOS рынок. Тут сразу видны плюсы.

Насчет чего согласен, так первое приложение на андроиде можно писать. Но коммерческое и продуманное — на iOS или WP (потому что конкуренции меньше пока еще).
сектантство и коммерческая выгода не всегда идут параллельно. Вернее коммерческой выгоды могут добиться руководители но отнюдь не рядовые сектанты.
Боюсь недопонял. Мы собрались деньги зарабатывать? Значит в индустрии делаем простые глуповатые казуалочки, а не проработанный хардкор. Да, тут можно спорить, но когда будет достаточно денег и времени на качественный проект — можно пилить его, иначе — по приведенному сценарию.
american pie?
Что-то я не понял, если он делает мультиплатформенное, то какая разница, что он выберет?
Вряд ли, т.к. для разработки под iOS ЕМНИП мало владеть айфоном, нужно ещё и Мак, которым многи просто не нужен.
НЛО прилетело и опубликовало эту надпись здесь
Мы говорим про нормальные возможности к разработке, или костыли для оной? :)
Про нормальные возможности к разработке. Сейчас разрабатываю на iMac, но 3 года сидел на хакинтоше и не жаловался особо.
Речь о легальных способах.
НЛО прилетело и опубликовало эту надпись здесь
На фото недостает нескольких сотен разнокалиберных зарядных устройств :)
У большинства ж micro-usb?
или minu-usb? ba dum tss
Спасибо за статью! Теперь будет еще один пример web-разработчикам, которые иногда ленятся в 5-ке браузеров написанный код протестить :)
То, что компания держит такую планку — честь и хвала.
Но вообще ситуация с этим андроид-зоопарком выглядит очень печально.
Если бы на каждом из этих девайсов была своя ОСь, ситуация была бы куда печальнее.
А вот не факт. Если бы ось была разная, не возникало бы даже вопроса о том, где приложение заработает, а где нет. А сейчас выкладываешь что-то в гугломаркет и не знаешь, сколько пользователей обломается. Вроде, везде андроид, только какой-то очень разный.
Интересно, почему таких проблем никогда не было на «взрослых» осях?
Может, потому, что нормальные производители не разрешают так сильно ковырять свои оси? Линукс, кстати, тоже страдает этой болезнью, хотя и в меньшей степени — все-таки, большая часть железа делается под винду и проходит хоть какую-то сертификацию.
Есть такие сервисы, которые предлагают тестирование вашего приложения на разных устройствах. В том числе, автоматическое.
Это намного выгоднее, чем пытаться самому купить все устройства и нанять кучу людей для них.
Немного помучав поисковик, получил следующие ссылки:
duarlander.ning.com/ — a Ning community organized by Android device
androidtestingteam.com — a service for getting users to test apps on various devices
www.testingandroid.com — Usability and device testing service
www.perfectomobile.com/portal/cms/services/android
www.keynotedeviceanywhere.com/

В Windows Phone фрагментация меньше, то тоже имеет смысл смотреть такой сервис
В винфоне я б просто отделил первое поколение (1) и самсунг первое поколение (2) (потому что они там свое железо химичили), а также второе поколение с камерой фронтальной (3) и без (4).

Это все с расчетом страховок и на всякий пожарный, чтобы уж всё проверить.
Вот не знаю, зачем первое поколение отделять от последующих. Разве что в играх, и то все настолько высокоуровневое, что проблем возникать не должно в подавляющем большинстве случаев.
Смысл имеет иметь устройства с и без фронтальной камерой, с и без компаса/гироскопа, ну и бюджетный телефон вроде Lumia 610.
Например Surround косячный вышел, там у половины (преувеличиваю) устройств проблема в чем-нибудь.
Насчет 610-й забыл, да, но цену на него заломили просто невероятную в России…
а вы собираетесь поддерживать бракованное устройство? или я вас не правильно понял? (цена скорее всего упадет, ну стыд же кастрированную ос продавать на 700р дешевле полной)
это было бы актуально до манго) Потому что поддержка любых единиц людей с винфонами хоть как-то помогала бы xDD)
Нет ну правда… Задрали уже ныть про кол-во устройств. Как маленькие ей богу.
iphone-ов тоже 5 шт. Ipad-ов уже 3. А если посчитать с каким кол-вом различных комбинаций железа сталкиваются разработчики ОС и Десктопного софта… Ни кто же из них не ноет!!!

Хотите одну железку — идите программировать на БК0010!!!
ок
Проблема не в комбинациях железа, а в том что одни и те же системы ведут себя по разному на разном железе в зависимости от прошивки.
Ну ведь то же самое с десктопными системами и приложениями. Но никто ж не плачет…
ну как вам сказать, люди зачем-то упорно придумывают Java, .Net/Mono и прочие приблуды.
Но это вина не платформы, а конечных производителей устройств. Введет Гугл обязательную сертификацию прошивок — возможно, ситуация облегчится.
Как можно ввести обязательную сертификацию для проекта с открытым кодом?
Ну Cyanogen, AOKP и прочее они конечно не могут заставить сертифицировать, но заводские-то прошивки могут. Они и сейчас сертифицируются, но не особо-то жестко.
У БК была еще и 11 модель, а в последствии привязка к дисководу (для оперативной подгрузки). В то время тоже жаманили =)
Из них 5 шт два уже ушли в небытие, обладатели iphone 4 обновились до последний прошивки в день релиза этой самой прошивки (андроиду бы такие показатели). Итого, есть два варианта:
1) Сохранять img.png и img@2x.png.
2) Забить на 3gs и поддерживать только iPhone 4 и iPhone 4S.

Такие дела.
рано еще забивать на 3gs он пока обновляется до последней оси.
Смотря какие условия. Если ограничения 3gs не мешают, то сохранить совместимость при помощи @2x не такая уж проблема, но если все же мешают — стоит ли тратить время на ту долю которая сейчас у 3gs?
у 3gs оперативы на приложение выделяется меньше. А насчет доли, ну не все пользователи apple являются фанатиками покупающими новый телефон в день релиза. И даже у таких людей телефон потом отходит родственникам и им продолжают пользоваться. А еще есть iPod Touch. В экосистеме Эппл тоже не все упирается в разрешение эрана.
3gs доживает свой последний год, вы считаете, что пользователи iphone 4 и 4s должны быть ущемлены из-за этого?
я думаю, что пользователи 3gs будут ущемлены из-за этого :) я видел людей, которые до сих пор пользуются вторым айфоном :)
У меня у самого первый айфон, при разработке я просто забиваю на все ниже 3gs. Если встречу API которые хочу использовать, но недоступен на 3gs — забью на 3gs.
Мне кажется, это скорее пиар Animoca, чем реальная проблема. Разумеется, фрагментация устройств на Андроиде — это плохо для разработчиков, но должна же быть какая-то экономическая целесообразность тестирования приложения для устройства, которое занимает менее 1/600-й части рынка? Иными словами — должно быть дешевле потерять пару процентов пользователей (которые, вероятно, осознают, что покупая дешёвый андроид, рискуют несовместимостью с мейнстримом), чем тестировать всё на 600 устройствах и наверняка идти на какие-то компромиссы по качеству на топовых телефонах.
> должна же быть какая-то экономическая целесообразность тестирования приложения для устройства, которое занимает менее 1/600-й части рынка?

Проблема в том, что самое популярное Андроид устройство — это что-то типа 3-5% от пользователей на Андроиде. Где-то тут в одной из статей про фрагментацию было. Поэтому «потерять пару процентов» — это как раз отказаться от топовых и популярных ;)
Вы видимо не были на китайских и индийских рынках. Там тысячи локальных производителей с MTK процессорами, они такие дешевые, что глаза на лоб лезут.

Средняя цена 50-80 баксов за девайс, причем будет ли на нем хоть половина чего-то работать — большой вопрос! (на самом деле сгущаю тучи, большинство фейсбуков и контактов пашет, но вот skype — все, тут почти никогда не работает). Поэтому такая чехарда с приложениями и тестированием, по крайней мере в китае, ооочень важна.

Я б даже переиначил хвастовство Google, когда дело касается активаций… приложений китайцы в процентах почти не покупают, а активируют сотнями тысяч в день, с такими-то ценами.

Поверьте, то небольшое количество «смартфонов» на pandawill / dealextreme / etc — это ничто с океаном локального, прошу прощения, ужаса и шлака.
Вот кстати стартап, который будет позволять тестировать приложения на разных устройствах
reporterr.org/
Блин, а как можно организовать тестирование на 400 устройствах? Вот выходит очередной пятничный релиз — и садятся, значит, 100 тестеров, у каждого пусть по 4 устройства и день его тестируют — так? Это же капец.
Капец. Но в Азии дешевая рабочая сила :)
почему день? это логика работы — день нужен. а на уровне «все менюшки красивые, весь текст нормально отображается, проблем с графикой нет» можно в пару часов уложиться.
про 400-600 устройст они немного преувеличили, больше похоже на пиар ход, в плане «мы пишем качесвенные программы». Конечно набрать такое количество не проблема, но особой необходимости нет, достаточно протестировать на самых часто всеречающихся моделях и на основных «железные конфигурациях» — тоесть на разрешениях экрана, ldpi/mdpi/xdpi, для игр — на всех доступных на рынке ускорителях. И таких конфигураций будет вполне разуманое количество, а не сотни девайсов. Для азиатского рынка фрагментация тоже не проблема, устройст конечно много наклепали, но железо всередине очень похожее, с прошивками они тоже не особо заморачиваюся делать что-то принципиально отличающееся от обычного андроида. А значить можно протестировать на основных конфигурациях, и с очень большой вероятностью никто из пользователей проблем иметь не будетю
Не могу вполне согласиться, нюансы все равно остаются. Я в своем приложении имел проблемы с частью устройств на PowerVR, а с частью — не имел. Пока разбирался с этим, натыкался на такие моменты, как то, что у Kindle Fire есть проблемы с альфа-каналом на любой прошивке, а у какого-то другого очень похожего устройства с PVR — нет.
нюансы конечно есть, но они не настолько страшны как нам расказывают в статьях про фрагментацию, но почему тогда говорят про «фрагментацию» и кучу девайсов которые нужно перетеситить и забывают сказать что девайсы могуть по-разному работать на разных версиях прошивки? И тестирования тут не спасет — может случится так, что новая версия прошивки приведет к появлению глюков, а тестировалось все на старой.
А упомянутый киндл вообще спецефический девайс, его нужно иметь, но какой смысл иметь несколько разных планшетов на тегре2? на них разници между устройсвами замечено не было. (если разрешение экрана одинаковое)
Нюансы да, не столь уж мега страшные, но вот от прошивок фрагментация еще хуже страдает. Ибо нет четких спецификаций на все.

Киндл такой проблемой даже на цианогене страдает, не то что на родных, там уж специфики почти не остается.

Правда я про глюки в играх честно говоря ничего не скажу, там могут быть как раз злобные вещи. Мои же нюансы в основном можно было обойти сверхпредусмотрительностью
Абослютно поддерживаю. Конфигураций железа не так уж и много основных. А различные разрешения отлично тестируются даже на эмуляторах.
Я тоже так думал. Потом оказалось, что с сенсорами бывают весьма веселые финты…
сталкивался с такими проблемами когда js фреймоврки по своему интерпретировали тач события, да. Если нейтив разработка проблем меньше.
Ну мне приходилось пару раз смотреть что за железо там используется и как написан драйвер — нативность бы не помогла. Одни умеют прерывания, другие нет и работают по таймеру, одни могут выдавать значение при включении сенсора, другие не умеют и нужно придумывать метод обхода. Реально во фреймворке системы ошибка была только один раз на одном устройстве, когда не отфильтровывались одинаковые значения от сенсора, хотя по документации событие должно приходить только при изменении значения, а слал их сенсор с хорошей частотой, подъедало батарейку.
фрагментация андроида, ха) в основном они отличаются характеристиками экрана. вот на j2me была фрагментация так фрагментация — вплоть до того, что на разных устройствах жизненный цикл экранной формы мог быть разным
НЛО прилетело и опубликовало эту надпись здесь
А еще у них в штате есть специально обученный человек, в обязанности которого входит зарядка всех этих устройств. И у него есть свой взгляд на словосочетание «утренняя зарядка».
Это не рационально утро начинать с зарядки — весь рабочий день на нее уйдет :). С вечера надо ставить.
А вот, кстати, Вы никогда не задумывались, как производители мобильной аппаратуры заряжают аккумуляторы, которых производится далеко не 400. Один мой приятель, который раньше в Н-ском институте БП для ускорителей «паял», теперь работает в одной Корейской компании. И они там заряжают и затем разряжают батареи несколько раз. Уж не знаю точно, для тестирования это или так надо для аккумуляторов. А чтобы не разориться на электричестве, разряжают эти аккумуляторы обратно в сеть энергоснабжения. Вобщем тема, то не шуточная.

Я смотрю, среди разработчиков под Андройд, кодеры-перфекционисты — самые несчастные люди на планете.
НЛО прилетело и опубликовало эту надпись здесь
На типовых разрешениях потестировать разве не достаточно? На десктопе под Win конфигураций вообще немеряно — каждый магазин собирает какую хотите конфигурацию из комплектующих, но такой проблемы нет…
Не все так просто.
Есть как минимум вендоры, которые считают своих долгом запихнуть как можно больше своих плюшек в систему.
на десктопах-то почти никто не пишет код зависимый от разных сенсоров, которых может и не быть. На десктопах все давно забили на разрешение 640*480 и очень много прог в него не влезут. ну и так далее. Десктоп — это десктоп.
Какие там разрешения… Вот у меня есть простенькое проложеньице — само снимает трубку, если подключена гарнитура. Судя по отзывам, приложеньице нужное. Только вот незадача: в андроиде нет документированного способа ответить на звонок программно. Поэтому мое приложеньице делает это иммитируя нажатие кнопки на гарнитуре. На многих устройствах это работает. А на некоторых (особенно на HTC) не хочет. Причем с разными симптомами — где-то совсем ничего не происходит, где-то вместо ответа может, скажем, запуститься аудиоплеер. Люди мне пишут, просят: сделай, чтобы работало на моем девайсе. А я отвечаю — извиняйте, хлопцы, не получится. Нет у меня такого девайса. И дело, кстати, не только в железе. Один товарищ жаловался, что у него раньше все работало, а после обновления до ICS перестало.

А вы говорите — типовые разрешения. На десктопах все гораздо лучше, потому что железо-то разное, но система одна и ведет себя одинаково на любом железе. По крайней мере, напороться на отличия гораздо сложнее. У андроида же трудно найти два устройства, которые будут всегда вести себя одинаково.
О каком приложении речь? Могу попытаться помочь с тестированием и пр. Недавно тоже решал подобную проблему, сделал по примеру другого приложения: сначала через рефлексию вызываем метод сервиса TelephonyManager, а на экзепшн NoSuchMethod вешаем уже эмуляцию нажатия кнопки, которая при вызове срабатывает как положено (на нескольких протестированных мною устройствах), но в режиме ожидания ожидаемо запускает плеер.
Приложение Handsfree (есть в маркете, бесплатное). Насчет TelephonyManager — что-то мне вспоминается, что через него можно было что-то сделать в старых версиях, а потом дыру закрыли. Я писал для себя, под 2.2, так что мне это было неактуально. Использовал простейшую эмуляцию нажатия кнопки. Где-то работает, где-то нет. На андроидном эмуляторе, кстати, оно запускает плеер даже когда иммитируется входящий звонок. Очень много жалоб на устройства от HTC — подозреваю, что они что-то сильно подкрутили. Я даже думал, не прикупить ли что-нибудь дешевое от них — для тестов. Но на некоторых девайсах работает и непонятно, что именно покупать. Вобщем, зоопарк полный.

От помощи я бы не отказался, конечно. У меня есть несколько идей, как можно попробовать исправить ситуацию. Но протестировать не на чем. Если есть желание, можно списаться о обсудить.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Вот наш арсенал (фотка старая, появились еще Google Nexus и Eee Pad Transformer с 4.0.3 Android), и все равно часто заказчики жалуются «а у меня сыпиться там то и там» или «а у меня разметка поползла...».
Пришлось даже свой логгер написать, который все эксепшны и крэши сохраняет в файл и шлет нам.
Зачем свой велосипед если есть ACRA или хотя бы BugSense?
ACRA — лишние 78 кб кода в проекте, BugSense — вообще какой-то платный сервис. Легче использовать свой небольшой классик…
78кб — не 780кб, одна иконка часто больше весит. Если есть свой, то почему бы и нет. А если нет, то на его разработку время требуется, что при наличии готовых решений не всегда требуется.
Мы поддерживаем версии 2.1 и выше, а в 2.1 возможно сохранять приложения только на телефон, поэтому размер имеет значения (Например на Samsung i5500 60 мб на все про все). Посмотрел последние проекты — размер иконок 72х72 в среднем 8-15 кб.
72*72 — это HDPI, сейчас уже пора добавлять поддержку XHDPI-экранов, появляется всё больше мобил и планшетов с большими экранами, там и иконки больше весят. По поводу либ: если использовать обфускацию с оптимизацией, то неиспользуемые методы должны отрезаться, так что в результате приложение увеличивается лишь на объём кода используемых методов.
Полностью с Вами согласен
Зарегистрируйтесь на Хабре, чтобы оставить комментарий