MonthМай 2016

Почему я не люблю цирк.

Представьте, живете вы на воле, вдруг вас ловит какое-то существо, которое явно вам что-то говорит, но непонятно что. Садит в клетку, где в одном углу вы организовываете себе туалет, а в другом — спальное место. Душ? Я вас умоляю. Развлечения — можете часами смотреть в чистое небо. Иногда оттуда начинает лить дождь, от которого никуда не скрыться — ну что поделать, ко всему можно привыкнуть, оказывается.

И тут это непонятное существо заходит к тебе в клетку и что-то говорит. Ничего не понятно. Ты смотришь, пытаешься понять что к чему, может, попробуешь наладить контакт, улыбнуться там, или наоборот, забиться в страхе в угол. А потом — бац! — существо начинает тебя бить чем-то. Экзекуция заканчивается так же внезапно, как и началась, но на следующий день повторяется все заново. И через несколько дней до тебя наконец-то доходит, чего от тебя хотят — надо сделать стойку на руках, а пальцами ног достать изо рта ромашку! Во дела! Ты не умеешь это делать, но стараешься научиться как можно быстрее, потому что если у тебя не получается, то ты получаешь новую порцию ударов.

Continue reading

EditText с отображением валют

Первая попытка работать с gist.github, кстати

EditText с префиксом

Код взят отсюда

Пример использования

Почему лучше использовать кастомные TextView, EditText и проч.

  1. Работа с кастомными шрифтами.
    В случае, если вы хотите использовать шрифты Roboto в вашем проекте (или какие угодно ttf шрифты), то можно пойти двумя разными путями. Первый путь — подключать эти шрифты к TextView (давайте все виды вьюшек обобщим в этот тип) программно, в коде. Явный минус этого решения — то, что одно и то же действие придется прописывать при каждой инициализации вьюшки.
    В какой-то момент я написал класс ThemeHelper, который немного облегчал эту процедуру.
    Continue reading

Eloquent: фильтр по hasMany

Мысли в одну строку: есть модель, у которой может быть множество других моделей. Такая связь указывается с помощью метода hasMany

При этом, если вы не знали или знали, но забыли, связать объект Variant с парентом можно с помощью belongsTo

Так вот, возникла необходимость получить список shedules, и в них провести фильтрацию объектов variant. Странно, но пришлось немного покопаться как на laracast.com, так и на прочих stackoverflow. Разгадка оказалась проста, хотя пришлось перепробовать много разных вариантов.

В этом случае в метод with надо передать массив данных с фильтрами.
Особый интерес у меня вызывает список sql запросов при рендеринге каждой страницы, но это уже другой вопрос.

Instant Run в Android Studio: медленно, а не быстро

Вообще на словах это офигенная фишка — проверяются локальные изменения, и заливаются только они, а не перекомпилируется весь проект. Однако на деле, лично для меня, это усложнило процесс разработки. Во-первых, первый запуск приложения стал о-о-очень долгим. Причем неважно, собирал ты его уже или нет — при смене девайсов считается, что все построить нужно с нуля. То же касается при переключении между flavors проекта…
Так что это имеет смысл, если тебе нужно посмотреть, как выглядит изменения в margin у вьюшки, например, но в целом, это чаще оборачивается капанием слюны на монитор во время сборки проекта.

Отключить Instant Run можно в настройках.

Отладка Android приложений через WiFi

Оставив в стороне споры о том, насколько нужный этот инструмент в разработке или нет, хочу поделиться найденным на github shell  скриптом, который автоматом подключает устройство к отладке по wifi.

Ссылка на gist

Continue reading