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

четверг, 15 июня 2017 г.

Пример записи аудио с паузой и востановлением записи

Это будет не большая заметка о том как лучше записывать аудио. Я для себя недавно открыл библиотеку PauseResumeAudioRecorder, оч крутая библиотека, позволяет выполнять все нужные функции для записи аудио, есть и запись, и пауза, и резум и стоп, чего собственно нет в стандартном AudioRecord'ере. Я на основе этой либы создал свою, немного подредактировал код под свои нужды, вывел амплитуду громкости и еще пару фич. Очень удобная библиотека в общем, можно ее кастомизировать под себя.

Разработка базы данных с помощью Realm


Иногда приходится создавать небольшие базы данных для хранения мелких данных, иногда большие для хранения кеша всего приложения, я лично для такого использую библиотеку Realm. Это очень удобная ORM которая позволяет в пару строк кода создать таблицу и записать туда данные. Это все очень красиво и удобно реализованно в библиотеке которую мы можем подключить через gradle.

вторник, 6 июня 2017 г.

Создаем бесконечный список с помощью RecyclerView

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


В общем начнем с того я писал про работу с ретрофит вот тут. В этой статье я буду использовать его так же для работы с API. API же я буду использовать от github как вы уже наверно заметили со скриншота и будем мы искать репозитории. Вообще приложение для примера будет очень простое, думаю для человека который раньше уже работал с RecyclerView, Callback'ами и Retrofit все окажется очень даже просто. Ну в общем начнем педалить.

понедельник, 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 в котором надо было сделать приложение с кнопкой которая все время должна быть на экране поверх остальных приложений и по клику должно было что то происходить. Что сказать не могу но могу сказать что это было круто и теперь я хочу поделиться реализацией этой функции так как я нашел ее с огромным трудом в интернете.