• +1
    Не надо переключалку! Наступаете на те же грабли :)
    Графика очень крутая, но ИМХО стоит немного привести к одному стилю. Например карты у вас шикарно выглядят, а фоны иконок с закгуглениями — выбиваются из стиля.
    Семь итераций наивности или как я полтора года свою дебютную игру писал
  • 0
    Тогда никто бы не вводил кассы самообслуживания, коих сейчас полно. Даже в нашей провинции есть.
    За смарт-тележками будущее ритейла, или Как я изобрел колесо
  • +5
    К сожалению, должен заметить, что библиотека ActionBar-PullToRefresh пока более совершенна, так как может еще показывать сообщения в ActionBar на разные события компонента и более кастомизируема.
    Новый SwipeRefreshLayout из библиотеки Android support — «потяните чтобы обновить»
  • 0
    Если кому пригодится — использование плагина 'aptlibs' товарища evilduck (до всего доходил опытным путем, куря исходники плагина и разные мануалы).

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            // добавляем плагин из репозитория, он там есть, обратите внимание, что подключение идет для buildscript 
            classpath 'com.github.hamsterksu:android-aptlibs-gradle-plugin:1.0.0'
        }
    }
    // вот мы его активируем
    apply plugin: 'aptlibs'
    aptlibs {
        // тут можно все перечисленные в статье библиотеки подключить (annotatedSql, androidAnnotations, groundy)
        // для примера подключаем annotatedSql
        annotatedSql {
            version '1.7.8' // ОБЯЗАТЕЛЬНО УКАЗАТЬ ВЕРСИЮ! а то ничего не заработает
        }
    }
    

    Конечно, для уважаемых товарищей evilduck и hamsterksu все понятно и по исходникам, мне же пришлось доходить довольно долго. Было бы здорово чиркануть где-то маленький примерчик на github.
    Еще раз об архитектуре Android приложения или джентльменский набор библиотек
  • 0
    Понимаю, что оживляю уже старый топик, но не могли бы вы добавить в текст, что вы опубликовали плагин в maven central и его можно подключить вот так в build.gradle:
    // ...
    apply plugin: 'annotatedsql'
    // ...
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
    // тут может быть еще что-то
            classpath 'com.github.hamsterksu:android-annotatedsql-gradle-plugin:1.7.9'
        }
    }
    
    dependencies {
    // ...
    // подключаем, чтобы сама IDE адекватно показывала подстветку и узнавала классы
        compile 'com.github.hamsterksu:android-annotatedsql-api:1.7.8'
    // ...
    }
    
    

    Это может и очевидно, но я на это потратил несколько часов.
    Пишем свой Gradle плагин для AnnotatedSql
  • +1
    Интересно, сколько пользователей, решивших этот тест, ответит больше чем на половину?

    Я неправильно ответил только на 3-й вопрос. Меня сбило с толку нижнее подчеркивание. Хотя, если бы меня попросили пояснить, то я бы пояснил не все. То есть, местами угадал просто. Спасибо, узнал кое-что новое.
    Хитрые задачи по Java
  • Комментарий из публикации, перенесённой в черновики.
  • 0
    Да, действительно, если нужна хорошая камера в «китайце», стоит брать именно THL. У меня тоже замечательная камера на THL W3.
    Jiayu G3S работа над ошибками
  • +1
    Я уверен вы, еще не слышали слово «Volley»

    Ну почему же, слышал. Я сейчас пользуюсь библиотекой DataDroid уважаемого товарища foxykeep. Штука просто отличная, очень советую. Каждая операция выносится в свой класс, запросы формируются с помощью класса-билдера Request, который сам по себе очень удобен для передачи между процессами и экранами, так как является Parcelable. Можно легко сделать повторение запроса, просто переслав этот же Request.

    Без допила конечно не обошлось, там он использует для своих Listeners WeakReference, которые мрут как мухи. Ну и совместимость с 2.3 подпилил, HttpUrlConnection почему-то не шлет Content-Lenght по умолчанию. Сделаю чуть позже форк.
    Простой пример использования библиотеки Volley
  • 0
    Возможно, проблема в том, что время дизайнера в среднем стоит дороже времени девелопера, и менеджеру легче заставить девелопера самому все сделать. Вот дизайнеров и приучили.
    Вы правы, нужно учить своих дизайнеров. К сожалению те же дизайнеры, о которых я говорил к тому же еще и не умеют или не хотят рисовать нормально под мобильные платформы с разными экранами. Не умеют думать «мобильными» категориями.
    Как дизайнеру заработать больше денег уже сегодня?
  • +1
    Жесткий прием № 3: Делать меньше (+50...200% $)

    А, вот теперь понятно, кто вместо того, чтобы подготовить все нужные графические элементы в одном месте, нарисовать им стейты и прописать основные цвета просто скидывает PSD, с которого он делал превью картинки для менеджера. А ты же девелопер, ты и кнопочку в ворохе слоев найдешь, и нужные слои смержишь, и стейты ей нарисуешь, и сожмешь для подготовки в 9-patch. Ну а элементы все в растре, потому если нужно больше разрешение, то растяни и подправь.

    Извините, вырвалось. Каждый проект такой. Один раз за всю мою карьеру попался нормальный дизайнер. Спасибо ему.
    Как дизайнеру заработать больше денег уже сегодня?
  • +9
    Не знаю, какие приложения автор имеет ввиду, но мобильные приложения, основанные на HTML для Android OS и iOS — полное гвно. Это жрущие кучу памяти, тормозящие, криво работающие и отображающиеся поделки, которые не следуют никаким гайдлайнам (а обычно копируют UI iOS) и взаимодействующие с системой через таки костыли, что лучше живым людям этого не знать.
    Я участвовал в разработке подобного контейнера в разных проектах, когда клиент придумывал экономию из разряда «а давайте один раз сверстаем и оно везде будет работать». И оно не работало нормально нигде.
    Есть куча фреймворков, в которых там все на локальном JS, что улучшает положение, но все равно смотреть на это без грусти нельзя.
    Это направление — ошибка и тупик.
    9 признаков того, что не стоит нанимать этого Веб-разработчика
  • +11
    Я не очень понял, как приложение может модифицировать другие приложения без рут доступа. Кроме проверки подписей существуют еще и линуксовые права, которые не должны дать это сделать.
    Уязвимость в Android позволяет злоумышленникам превратить любое приложение в троян
  • +13
    В голосовалке нужен ответ «Дороговато». Купил бы долларов за 40. Я ценю такие устройства еще и за то, что их абсолютно не жалко потерять и красть их тоже не имеет смысла.

    О, кстати. Самый классный экран — вот такой:
    Здравый смысл против маркетологов. Письмо Стивену Элопу с предложением воскресить Nokia 3310
  • 0
    Вот как раз перезапуск демона и не помогает. Я первым делом попробовал.
    Мы спасены! Genymotion — забудьте про вашего эмулятора-слоупока
  • +1
    Тоже сегодня прочитал блог Cyril Mottier и сразу бросился тестить. Насторожили такие моменты?
    1. Все время отпадает от adb, лечится только перезапуском эмулятора (надеюсь пофиксят).
    2. Требует регистрации и логина, что говорит о том, что продукт будет каким-то образом монетизироваться. Надеюсь, они выберут демократичный путь, что-то типа покупки образов для тестирования.

    К сожалению, у меня AMD, иначе бы пользовался образами образами x86 для Интел.
    Мы спасены! Genymotion — забудьте про вашего эмулятора-слоупока
  • 0
    Вообще, если делать проверку на тип, то вероятность допустить ошибку как раз повышается. Так вы сразу получите class cast exception, а если делать проверку, то выполнение пойдет дальше и непонятно что там дальше будет.
    Мне кажется, такие проверки нужны в строго определенных случаях, когда неизвестно что в лейауте и нельзя его поменять.
    Несколько полезных шаблонов для Android-разработки под eclipse
  • 0
    Проверка на тип довольно ресурсоемкая операция (если вы об instanceof). И нигде в исходниках не видел проверку типа, если не предполагается какой-то мультилейаут.
    Да и у меня никогда подобных проблем не было, если использовать документированные Views.
    Несколько полезных шаблонов для Android-разработки под eclipse
  • 0
    Проблема была в том, что клиент хотел сам готовить темы (сам — в смысле на его стороне). А писать специальный тул и обучать его сотрудников им пользоваться показалось еще более трудоемкое занятие.
    Темы оформления. С блэк-джеком и WeakReference
  • 0
    У меня когда-то была задача подгружать темы динамически из интернетов, но при этом не использовать apk, чтобы пользователю не нужно было ничего устанавливать. Все вроде ок, кроме того, что подгрузить 9-patch было невозможно из-за того, что aapt готовит его заранее еще при сборке.

    Решил проблему портированием 9-patch парсера из aapt в native библиотеку. Вот это было интересно :)
    Темы оформления. С блэк-джеком и WeakReference
  • +2
    Может быть, aleks_raiden имеет ввиду, что можно было бы сделать для электрокаров цену на электроэнергию ночью еще более привлекательной, чтобы они заряжались преимущественно в ночное время, тогда они возьмут на себя спады потребления и исчезнет проблема куда девать излишки.
    Готовы ли мы все перейти на электрокары (задача Ферми)
  • +32
    «Закройте браузер и работайте!»
    В IBM разработали фотогальваническую систему с КПД ~80%
  • +1
    Это наглядно показывается в фильме «Муха». Ну и «Муха-2». Явно же на витуху кто-то стул поставил, и все, пожалуйста…
    Оцифровка человека: мы не готовы
  • +7
    В вашем идеальном мире да. А в нашем, где бывает «ахтунг», «срочно» и «ааааа!!», бывает разное, и даже установка на продакшн сервер без тестирования. Или изменение политик домена и конфигурации роутера абсолютно в этом ничего не понимающего начальника отдела ИТ.

    Это я без наезда, просто не забывайте, что бывает разное.
    Браузер Chrome разбудил человека в 3:00 ночи криками монстров
  • +11
    Вам тут сейчас разное будут писать про то, что нужно еще больше денег или найти еще лучшую компанию, или там вообще засудить вашего аутсорсера.
    Но я Вам посоветую вот что. Позвоните Петру и спросите, есть ли у него знакомый сисадмин, который не прочь подработать. Потом позвоните Николаю и спросите, нет ли у него знакомого хорошего студента, который эникеит потихоньку. Ну это конечно если вы с ними двумя в нормальных отношениях.
    Научите их пользоваться багтрекером (если они не работали раньше с ним) и пусть они сами смотрят трекер и ассайнят на себя задачи. Либо ассайньте на них Вы. Вам этих двух специалистов хватит на ваши задачи. Студент на раз в неделю придти планку воткнуть, сисадмин — иногда по сложным задачам.

    Плюсы этого — личная ответственность. Когда человек работает в компании, он думает, что раз компания берет львиную долю от того, что платит клиент, значит пусть компания сама и решает проблемы. А у компании клиентов полно и компания не особо разбирается что там кому нужно. И не особо хочет. Человек, который сам называет стоимость и сам делает будет естественный за то, что сделал.
    Единственное, что важно не пропустить — когда человек дорастет до уровня, когда ему захочется большей оплаты. Ему ведь может быть неудобно вам повышать расценки, но при этом у него может уже быть другая работа с большей оплатой. Потому, если Вы видите, что ситуация так складывается, либо немного поднимите ему оплату, либо спросите у него же о другом специалисте. Он с радостью Вам посоветует, чтобы избавиться от груза совести.
    За что я ненавижу аутсорсинговое системное администрирование. Взгляд со стороны клиента
  • 0
    Удивлен. Думал — все пишут тесты, а я нет.
    Не являюсь противником тестов, даже наоборот. Но на это просто не выделяют денег.
    Опрос о специфике тестирования при разработке приложений для Android?
  • +2
    А потом: дизайнер справился за пять часов (молодец), а вы — криворукие разработчики — уже два дня колупаете! Потому что дизайнер прислал макет девелоперу в psd со свойствами слоя (у него Linux Mint и GIMP), слоя называются Слой 1… 146 и у контролов только один стейт — normal. Как они выглядят нажатыми и выделенными — выдумывай самостоятельно. Ну и конечно все нарисовано только в одном разрешении.
    За что HTML-верстальщики так не любят веб-дизайнеров
  • +1
    The standalone version of hieararchyviewer is deprecated.
    Please use Android Device Monitor (tools/monitor) instead.

    Или в эклипсе Open Perspective --> Hierarchy Viewer
    Используем Hierarchy Viewer для оптимизации Android приложения
  • 0
    Лично мне кажется, что Нотч имел ввиду не кризис идей, а то, что ему не нужно столько денег. Он говорит о том, что общество устроено таким образом, что на одного человека может свалится такая куча денег, которая ему никогда не была нужна. Ведь было бы правильнее, если бы эти деньги изначально были у людей, которые в них действительно нуждаются.
    Нотч заработал 101 млн USD за 2012 год на лицензиях Minecraft, сейчас слегка растерян
  • +3
    Спасибо, первый мануал по Unity, который сподвигнул меня к действию.
    Делаем простую игру с кнопками, ящиками и дверями на Unity
  • +6
    Тут сравнивается работа в мегаполисе vs работа в небольшом уютном городе.
    Почему мне нравится работать программистом в Луисвилле (или почему я не перееду, чтобы работать в Вашем стартапе)
  • 0
    Насколько я помню, dialog.dismiss() или cancel() нужно делать и в AlertDialog, в примерах его нету, потому что показывается событие нажатя кнопки. Откуда известно, когда вы захотите закрыть диалог? Вдруг вы сначала хотите сделать асинхронный вызов а потом уже закрыть. Потому dialog.dismiss() нужно вызывать вручную.
    Диалоговые окна в Android. Часть 1
  • +1
    Если вы уж не хотите использовать DialogFragment, так используйте диалог правильно.
    У класса Dialog есть метод setOwnerActivity, который обязательно нужно вызывать после создания. Тогда Activity принимает его как родного и менеджит все его превращения (смена ориентации, кнопка back, разрушение самой Activity).

    А вообще диалоги правильно (было) создавать в коллбэке Activity::onCreateDialog куда вы возвращаете сам созданный диалог. Это аналогично вызову setOwnerActivity.

    Если уж пишете статью, даже по старому API, внимательно прочитайте документацию по диалогам. Извините, но ставлю вам минут за статью.
    Диалоговые окна в Android. Часть 1
  • 0
    Также хочу заметить, что если вы используете ActionBarSherlock, то NineOldAndroid уже туда включены.
    Анимация фрагментов в Android
  • +1
    У меня такой девайс (только одноядерный).
    1. Судя по всему (все — это сайт на китайсом языке и прошивки, из которых производитель выпиливает все языки кроме китайского и английского, и стоковых приложений на китайском) — продукт ориентирован на китайский рынок. То, что его продают всякие DX — это бизнес. Потому конечно русификация и прочая адаптация осуществляется сообществом.
    2. Прошивки выходят очень часто. Можно тут посмотреть (в менюшке 下载中心 -> 刷机软件包).
    3. Что-то у меня никаких бубнов не требовалось для установки. Хотя бубен дома присутствует, да :) Может быть для некоторых игр и нужно помудрить, но это бывает не только с китайскими девайсами, а с любыми, прошивка которых перелопачена производителем (все время вспоминаю баг приложения камеры в Самсунгах, когда оно не возвращало картинку после фотографирования).
    4. По поводу производительности — если вам нужен девайс, чтобы просто знать, что он самый производительный — тогда нужно платить. Если просто пользоваться — то W3 отлично справляется со всем обязанностями, не тормозит и не глючит (это при том, что у меня одноядерник).

    И конечно, сейчас уже переплата за официальную модель 100 баксов. А раньше, до появления Нексус 4 что было? 300 долларов минимум доложить приходилось.
    Amazon и Google подрывают цены на мобильные устройства и это может ударить по всем
  • 0
    Я решал подобную проблему с помощью LocalBroadcastManager. Вот например тут вкратце описано.

    Все сложнее, ежели вам нужно гонять туда-сюда много разных данных своего типа. Кстати, вижу у Message есть поле obj, по идее туда можно что-то свое положить, в документации написано «Objects are reference counted across processes.».

    Есть еще AIDL. С его помощью можно передавать любые данные и дергать свои методы + многозадачность.
    Коммуникация между Activity и Service
  • +8
    Советую завести собаку. Даже если есть жена :)
    Выгуливать ее все равно приходится — и вот появляется отличный повод прогуляться.

    Кстати, сейчас пишу этот коммент, вместо того, чтобы работать.
    Проблемы удаленной работы дома и пути их решения
  • 0
    У меня часто проблемы с реКапчей. Ввожу не 15 минут, но раза с третьего минимум. А особенно если еще на форме из ста полей все приходится заново вводить…
    Вы тоже по 10 -15 минут сидите и не можете ввести CAPTCHA?
  • 0
    У меня так и не получилось нормально подружить Мавен с EDT для Eclipse. Все время вылазили какие-то глюки и особенности, которые приходилось обходить, и времени на это уходило много. Пришлось отказаться в пользу обычной сборки вручную.
    Android — Сontinuous Integration. Часть 1
  • +4
    Вообще, если такой возможности нету, значит это не зря. Показывать диалог из сервиса — не очень хорошая идея в практически любом из вариантов (как и тосты). Лучше всего использовать уведомления или foreground service.
    Вызов AlertDialog из сервиса