Поиск по этому блогу

понедельник, 29 мая 2017 г.

Создаем циферблат для Android Wear

Купил я значит себе часы на android wear, и думал что они будут полезные мне. На деле совершенно безсмысленная хрень, на деле — фитнес трекер с функцией приема звонков и уведомлений. На них конечно можно еще играть в игры которые адаптированы под маленький экранчик, но это выглядит дико, когда в метро или на улице идет дядька и втыкает в часы на руке. Дико в общем.

Посмотрев на экраны часов которые предоставленны в google play, я подумал что лучше я буду использовать стандартные циферблаты которые предустановленны в часах. Но потом меня осенило, я же типа программист, я могу сам запедалить себе циферблат который мне будет подходить, ну и в общем я решил попробовать и сделать себе какую-то красоту на часы. Так как у меня вкуса нет вообще, и дизайнер из меня никакой экран я сделал очень простой, ну и тут я вам покажу основные функции. У нас часы будут уметь показывать время, дату и уровень батареи.


Рисовать мы будем с помощью canvas'a, в CanvasWatchFaceService. Для этого вам нужно создать проект специальный для часов. Вам создастся проект в котором у вас будет пример с аналоговыми часами. Стираем все по самое
public class WatchFaceService extends CanvasWatchFaceService { }
Теперь у нас есть пустой класс, мы разобьем логику часов на две части, в первой у нас будет вся логика относящаяся к работе часов в фоне, и во второй у нас будет вся отрисовка с помощью canvas'a на экране. Так и понятней и логичней как по мне.

суббота, 27 мая 2017 г.

Создаем настраевываемый PieChartView с помощью Canvas

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

Я не претендую на нобелевскую премию этим кодом, так что не осуждайте меня :)

четверг, 25 мая 2017 г.

Работа с Retrofit


image
Сталкиваясь с разными проектами я заметил, что большинство до сих пор используют разные библиотеки, которые реализуют запросы внутри UI или вообще через AsyncTask. Это как по мне глупо, так как для реализации API в приложении есть такая чудесная библиотека, как Retrofit 2.

По данной библиотеке существует огромное количество статей, которые в полной мере описывают работу с ней. Я опишу только то, как я с ней работаю, потому что не знаю почему, но большинство туториалов используют много лишнего кода при работе с ней. 

Приведу описание библиотеки из вики:
Retrofit является REST-клиентов для безопасной работы в Android и Java. Библиотекой удобно пользоваться для запроса к различным веб-сервисам с командами GET, POST, PUT, DELETE. Может работать в асинхронном режиме, что избавляет от лишнего кода.

среда, 24 мая 2017 г.

Создаем CustomView из LinearLayout

Всем привет. Не писал сто лет, времени небыло вообще. Решил написать пару статей по простым задачам которые я встречал за этот год который я не писал. Уже забыл как это делается, по этому буду учиться с начала. 

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

вторник, 8 декабря 2015 г.

Show / Hide FAB Button

Сегодня встретился с такой интересной штукой как FAB Button. Раньше как то пользовался только кастомной кнопкой из разных репозиториев, а тут как то получилось что проект создался сразу с ней, и я столкнулся с проблемой показа ее во время скролла, когда скролили в низ кнопка то появлялась то исчезала, когда возвращались на верх она вообще не появлялась, в общем куча проблем, заказчик истерит «как это так», все истерят, в общем всеобщий апокалипсис. По этому мне пришлось написать кастомный листвью для этого. Решение нашел на хабре, по этому кому надо тот найдет, эту статью, переношу решение сюда для удобства.

Заметка будет очень короткая, но по делу, возможно она спасет много жизней и нервов разработчикам и заказчикам (:

понедельник, 5 октября 2015 г.

Callback'и в Android

Еще решил написать одну заметку по поводу коллбеков. Штука интересная и полезная, без нее редко когда получается что то разумное написать. По этому решил что надо будет написать пару примеров по работе с колбеками.

Плавающая кнопка на подобии как у Messenger

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

суббота, 21 февраля 2015 г.

Фильтр на поле для ввода мобильного номера

Интересная штука фильтры, я вот задавался целью добавить фильтр на ввод мобильного телефона, начал гуглить, а гугл то показывает все кроме того что мне надо. Перепробовал кучу вариантов, в итоге нашел хороший вариант, спасибо одному человеку на форуме, он как то спрашивал там и ему никто не помог в итоге он сам нашел решение и написал ответ на форуме.

пятница, 6 февраля 2015 г.

Живые обои с GIF анимацией

Сегодня я хочу вам рассказать как сделать красоту и не набраться гемороя. Обычно живые обои делают какая то фоновая картинка, какой-то живой движущийся объект и летают или появляются кружки или линии. Это все можно сделать стандартным канвасом, а вот как сделать что бы вместо тупых летающих квадратов на экране бегала анимация с nyan котом или например анимация с горящим костром? А просто, нужно всего лишь заюзать тот же канвас, только немного не стандартно.

Как создавать живые обои я рассказывал вам раньше еще в далеком феврале 2012 года. Вот эта статья Создаем живые обои для Android. Но это было давно, да и там рассматривается немного иная ситуация, кому интересно переходите смотрите, правда там почему то картинки убились… Не знаю как восстановить, в исходниках все есть в принципе :)

среда, 21 января 2015 г.

Авторизация в Facebook через FB SDK 3.0 Android

Продолжаю писать про интеграцию с социальными сетями, теперь я вам расскажу про интеграцию facebook в ваше приложение. У фейсбука апи намного удобней и проще. и есть куча библиотек обеспечивающих полный функционал в пару строк кода, но я же говнокодер, я не люблю изящные решения, я иду в лоб (: По этому в этом посте я расскажу про и интеграцию классического фейсбук сдк в ваше приложение.

Я раньше писал уже про работу с FB, но многое изменилось с того времени (март 2013 года). как ни как почти два года прошло. У фейсбука появилось куча фишек которых в старом апи нет, оно рабочее и в принципе если лень разбираться с новым, хотя он проще и удобней, можно использовать старый, но тогда вы потеряете кучу возможностей по работе с новым апи.