Как стать автором
Обновить
13
0
Юрий Кучанов @kuchanov

Разработчик под Android

Отправить сообщение

5 лучших ORM для Android

Время на прочтение4 мин
Количество просмотров68K


Как вы понимаете, мы имеем самое непосредственное отношение к разработке приложений для Android, ведь именно эта ОС установлена на YotaPhone. И этим постом мы открываем серию публикаций, в которых будем освещать различные аспекты разработки приложений под Android, делиться опытом, как своим, так и других специалистов. Кстати, некоторое время назад мы уже писали об SDK и особенностях архитектуры YotaPhone, что тоже отчасти перекликается с темой данной публикации: полностью разработанная нами SDK построена по принципам, аналогичным стандартной SDK для Android, чтобы дать разработчикам интуитивно понятные инструменты.

Если вы разрабатываете приложения под Android, то вам, скорее всего, нужно где-то хранить данные. Вы можете выбрать один из облачных сервисов (в этом случае удобно пользоваться SyncAdapter) или воспользоваться встроенной SQLite-базой данных. Во втором случае вам придётся выбрать между записью SQL-запросов с помощью Content Provider (если вы планируете использовать данные несколькими приложениями) или ORM.

В этом посте мы рассмотрим некоторые из Android ORM, которые вы можете использовать в своих приложениях.
Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии38

RecyclerView и CardView. Новые виджеты в Android L

Время на прочтение4 мин
Количество просмотров120K
Как известно, в июне проходила очередная конференция Google I/O, в ходе которой было вкратце рассказано о двух новых виджетах. И поскольку на хабре об этих виджетах пока ничего не написано, я решил написать эту статью с простенькой демонстрацией.

Демо приложение доступно на гитхабе по ссылке.

Собственно, под катом можно прочесть пару слов о RecyclerView, CardView и о подключении соответствующих библиотек в Gradle. Также, можно посмотреть коротенькое видео, демонстрирующее стандартную анимацию операций со списком в RecyclerView.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии15

Звоним на мобильные телефоны из браузера с записью разговоров

Время на прочтение6 мин
Количество просмотров79K


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

Или другой сценарий — входящий в компанию звонок. Как здорово, когда ты в качестве клиента звонишь на безликий 8800 и девушка на том конце телефона отвечает тебе приятным голосом — здравствуйте, Алексей (подставить_свое_имя)! Это производит потрясающий эффект. Когда вместо «назовите себя, номер паспорта и имя кота, информация грузится — послушайте шестую симфонию Моцарта» оператор уже поднимая трубку знает, как вас зовут и видит по вам всю информацию. Сервис, что и говорить.

Но есть ли возможность реализовать такую систему без погружения в дебри настройки АТС — максимально быстро и минимальной кровью? Желательно еще, чтобы все разговоры записывались для целей контроля и обучения сотрудников. Ответ — конечно, погнали под кат.
Читать дальше →
Всего голосов 51: ↑46 и ↓5+41
Комментарии20

Во главе Гугла: как выжать максимум из контекстной рекламы

Время на прочтение7 мин
Количество просмотров60K
Что делать, если потраченные на контекстную рекламу деньги вылетели в трубу? Как бороться с тем, что трафика из Google AdWords кот наплакал? Почему стоимость конверсии выше стоимости продукта? С чего вообще правильно начинать настройку контекстных рекламных кампаний? Мы решили поделиться своим опытом в этом посте.



Есть несколько основных проблем, которые чаще всего мешают достичь хороших результатов от контекстной рекламы:

  • высокая цена клика;
  • нет кликов;
  • высокая цена конверсии;
  • низкая позиция объявления;
  • низкий CTR;
  • плохое качество трафика (нет покупок, заказов, подписок и т.д.);
  • плохой показатель качества (QS).

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

Поэтому мы не будем рассматривать отдельные кейсы. Лучше поэтапно опишем, как создавать кампании в Google AdWords, которые будут эффективны и конкурентоспособны. Проверено специалистами Alconost.
Читать дальше →
Всего голосов 36: ↑30 и ↓6+24
Комментарии7

AppCompat v21 — Material Design для пре-Lollipop устройств

Время на прочтение8 мин
Количество просмотров92K
image
17 октября был опубликован Android 5.0 SDK, который принес новые виджеты и материальный дизайн. Мы расширили библиотеки поддержки, чтобы вы могли использовать ваши последние разработки и на предыдущих версиях Android. Это изменения включают в себ крупное обновление для AppCompat, а так же библиотеки RecyclerView, CardView и Palette.

В этом посте мы взглянем, что нового появилось в AppCompat и как это использовать для поддержки материального дизайна в ваших приложениях.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии22

Composer — менеджер зависимостей для PHP

Время на прочтение10 мин
Количество просмотров402K
Composer (getcomposer.org) — это относительно новый и уже достаточно популярный менеджер зависимостей для PHP. Вы можете описать от каких библиотек зависит ваш проект и Composer установит нужные библиотеки за вас! Причём Composer — это не менеджер пакетов в классическом понимании. Да, он оперирует с сущностями, которые мы будем называть «пакетами» или библиотеками, но устанавливаются они внутрь каждого проекта отдельно, а не глобально (это одно из основных отличий от старого-доброго PEAR).

Кратко, как это работает:
  1. У вас есть проект, который зависит от нескольких библиотек.
  2. Некоторые из этих библиотек зависят от других библиотек.
  3. Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
  4. Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.

При создании Composer авторы черпали идеи и вдохновение из аналогичных проектов: npm для Node.js и Bundler для Ruby.

Изначально он был спроектирован и разработан двумя людьми Nils Adermann и Jordi Boggiano, сейчас в проекте участвует более двадцати контрибьюторов, Проект написан на PHP 5.3, распространяется под лицензией MIT и доступен на github.

Первые коммиты были сделаны апреле 2011 года и на сегодняшний день Composer находится в стадии «alpha3». Однако, он уже достаточно стабилен и используется многими популярными PHP проектами (например, Symfony 2). Список проектов использующих Composer можно посмотреть на сайте packagist.org — это официальный репозиторий Composer пакетов. Кстати, на недавней конференции Devconf 2012 разработчик фреймворка Yii в своём докладе упомянул, что Yii2 скорее всего тоже будет использовать Composer.

В этой статье я кратко опишу основные возможности Composer и мы попробуем создать демонстрационный проект использующий Composer для загрузки необходимых библиотек. Все примеры будут доступны на github.com и bitbucket.org.

Читать дальше →
Всего голосов 73: ↑60 и ↓13+47
Комментарии43

Как использовать API сайта, у которого нет API?

Время на прочтение4 мин
Количество просмотров80K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →
Всего голосов 115: ↑105 и ↓10+95
Комментарии40

Текст с разметкой в android.widget.TextView

Время на прочтение15 мин
Количество просмотров65K
Недавно мне понадобилось сделать довольно хитроумный чат в приложении под Android. Помимо собственно информации требовалось передавать пользователям дополнительную функциональность в контексте определенного сообщения: имя автора сообщения по нажатию на него должно вставляться в текстовое поле ответа, а если это сообщение о только что созданном игровом сеансе, пользователи должны иметь возможность присоединиться к игре по клику и так далее. Одним из главных требований была возможность создавать сообщение, содержащее несколько ссылок, что и задало направление исследований.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии2

Набор иконок Material Design от Google

Время на прочтение1 мин
Количество просмотров105K


В списке самых популярных репозиториев Github за неделю на первое место вышел набор иконок Material Design, разработанный в компании Google.

Набор содержит аж 750 (!) глифов. Это пиктограммы, часто используемые в различных мобильных приложениях для воспроизведения медиа, коммуникаций, редактирования контента, установки соединения и т.д.
Читать дальше →
Всего голосов 66: ↑60 и ↓6+54
Комментарии16

Борьба с утечками памяти в Android. Часть 1

Время на прочтение6 мин
Количество просмотров49K
Этой статьей мы открываем цикл статей на Хабре о нашей разработке под Android.
Согласно докладу компании Crittercism от 2012 года, OutOfMemoryError — вторая по распространенности причина «крашей» мобильных приложений.
Честно говоря, и в Badoo эта ошибка была в топе всех крашей (что неудивительно при том объеме фотографий, которые просматривают наши пользователи). Борьба с OutOfMemory — занятие кропотливое. Мы взяли в руки Allocation Tracker и начали играться с приложением. Наблюдая за данными зарезервированной памяти, мы выявили несколько сценариев, при которых выделение памяти росло с подозрительной стремительностью, забывая при этом уменьшаться. Вооружившись несколькими дампами памяти после этих сценариев, мы проанализировали их в MAT (http://www.eclipse.org/mat/).
Результат был занимательный и позволил нам в течение нескольких недель снизить количество крашей в разы. Что-то было специфично для нашего кода, но также выявились типичные проблемы, присущие большинству Android приложений.
Сегодня поговорим о конкретном случае утечки памяти. О нем многие знают, но часто закрывают на это глаза (а зря).
Читать дальше →
Всего голосов 59: ↑55 и ↓4+51
Комментарии18

Новый SwipeRefreshLayout из библиотеки Android support — «потяните чтобы обновить»

Время на прочтение3 мин
Количество просмотров44K
Тихо и незаметно вместе с обновлением библиотеки Android support до версии 19.1 в нее прокрался новый компонент, который часто бывает нужным и полезным в быту. Сей совсем крохотный росчерк я посвящаю ему, SwipeRefreshLayout.

Он добавляет функционал, который один мой коллега называет «резинка от трусов», а остальные знают этот UI-паттерн под названием «потяни, чтобы обновить». Он бывает нужен, когда есть какой-то контент, который пользователь хочет часто обновлять, и может это сделать, просто потянув контент жестом вниз, а потом отпустив.

Очень похоже, что компонент был создан для GoogleNow, а потом перекочевал в support lib (очень похожа анимация).
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии7

Как начать работать с GitHub: быстрый старт

Время на прочтение6 мин
Количество просмотров1.2M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →
Всего голосов 182: ↑165 и ↓17+148
Комментарии51

Попытка выстрелить номер два

Время на прочтение5 мин
Количество просмотров19K
image

Не прошло и полугода со дня констатации клинической смерти моего первого цифрового детища. Камни Лабиринта поосыпались, графики количества установок сползли до позорных непечатных значений, мизерные центы ежедневных прибылей превратились в пыль. Что в такой ситуации делает отважный и неутомимый инди-разработчик? Правильно: он делает выводы. А после выводов не грех вдохнуть жизнь в новый свежий проект — и стрельнуть им прямо по вершине топа. Главное не промахнуться.

Аккумулируем заряд и стреляем...
Всего голосов 26: ↑18 и ↓8+10
Комментарии26

Советы и рецепты начинающему Android программисту

Время на прочтение12 мин
Количество просмотров78K
Добрый день, уважаемые хабраюзеры.

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

Поэтому в данном посте я предлагаю вашему вниманию сборник рецептов и советов, которые помогут быстрей и правильней создать Ваше приложение.
В бой!
Всего голосов 46: ↑35 и ↓11+24
Комментарии60

Игры для Windows Phone Store — 5% конверсии без маркетинга

Время на прочтение3 мин
Количество просмотров10K


Игры и развлекательные приложения для мобильных устройств являются одним из самым популярных типов приложений. Вполне понятен тот интерес который проявляют разработчики в этом контексте к Windows Phone. В сети есть немало материалов которые раскрывают секреты разработки игр для этой платформы и, как показывает практика, порог вхождения для программистов достаточно низок чтобы за три, четыре недели освоить весь необходимый инструментарий. Важным моментом при этом является вопрос возврата инвестиций. Сможет ли ваша игра заработать те деньги на которые вы рассчитываете, насколько высока конкуренция на этой платформе, каков процент конверсии, какие требуются маркетинговые усилия для продвижения игры? Не многие компании решаются раскрыть такие секреты и рассказать о своем опыте, но сегодня у вас есть возможность узнать об этом из первых рук от компании Playtox.
Читать дальше →
Всего голосов 37: ↑25 и ↓12+13
Комментарии4

Как я создавал приложение, но был вынужден закрыть из-за действия закона

Время на прочтение4 мин
Количество просмотров118K
26 января 2014 года я создал приложение «MCKO для андроид». Классная шутка, которая обрела некоторую популярность. Но об этом позже.

MCKO (МЦКО) — это электронный дневник для московских школ. Так получилось, что он ужасен. Просто УЖАСЕН, а если заходить с телефона, то он вообще перестает работать. При всем его уродстве он, черт возьми, один из самых популярных в Москве. Наверное, его заставляли использовать сверху, государственный же.
Читать дальше →
Всего голосов 197: ↑182 и ↓15+167
Комментарии111

Зима близко: правильные зимние перчатки для любителей тачскринов

Время на прочтение5 мин
Количество просмотров21K
Во времена Nokia 3310 все было просто. Даже в самый лютый мороз можно было легко нажать на кнопку приема звонка или отправить СМС прямо из кармана (да-да, были такие умельцы). Однако с приходом сенсорных экранов все заметно усложнилось. И если весной и летом тыкать по экрану голым пальцем удается вполне комфортно, то зимой и промозглой осенью этот квест дается с трудом.

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



На рынке существует несколько моделей, поддерживающих так называемый Glove Mode – режим работы в перчатках. Однако их слишком мало, чтобы хоть как-то влиять на рынок, и вообще, лучшие телефоны по соотношению цена/качество обычно этой функции лишены. Поэтому я решаю этот вопрос с помощью сенсорных перчаток. Удивительно, но эта простая штука до сих пор ставит в ступор многих знакомых. В том числе тех, кто давно с техникой на «эй, ты». Собственно, выбору правильных зимних перчаток и будет посвящен этот топик.
Читать дальше →
Всего голосов 18: ↑11 и ↓7+4
Комментарии26

GitHub Student Developer Pack — лучшие инструменты разработки бесплатно для студентов

Время на прочтение1 мин
Количество просмотров68K

Несолько минут назад я получил сообщение от гитхаба с информацией о новой программе Student Developer Pack, о которой я и хочу с вами поделиться.

Програма Student Developer Pack расчитана на студентов, которые не могут себе позволить использование дорогостоящих подписок на платные сервисы для разработки.
Читать дальше →
Всего голосов 64: ↑56 и ↓8+48
Комментарии45

Опыт интеграции библиотеки OpenIAB в Android приложение

Время на прочтение10 мин
Количество просмотров8.9K
В этой статье мы бы хотели поделиться своим опытом интеграции библиотеки OpenIAB в наше Android приложение, помогающее изучать английские слова. Если кто не знает, то OpenIAB это библиотека, которая позволяет подключать in-App покупки различных магазинов приложений, абстрагируясь от деталей реализации API конкретного магазина.


OpenIAB разрабатывается исходя из следующий принципов:

* API библиотеки должно быть максимально похоже на API Google Play In-app Billing.
* Один APK файл должен работать для всех поддерживаемых магазинов приложений.
* Никаких посредников при проведении оплат. Это значит что нет никаких третьих сторон которые обрабатывают транзакции. Под капотом библиотеки все транзакции обрабатываются все теми же Google Play, Yandex.Store и другими нативными приложениями магазинов. По сути, OpenIAB является прослойкой, приводящей API различных аппсторов к одному API, который мы и будем использовать в своем приложении.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии5

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

Время на прочтение1 мин
Количество просмотров29K


25 сентября корпорация Google внесла изменения в "Google Play Developer Distribution Agreement". Большая часть изменений не слишком интересна, поскольку ничего критичного там нет, но есть и весьма любопытные пункты.

Например, в пункте 7.2 есть такое предложение " If your Product contains elements that could cause serious harm to user devices or data, Google may at its discretion disable the Product or remove it from devices on which it has been installed". Таким образом, если Google посчитает, что продукт разработчика чем-то может повредить устройству пользователя или данным пользователя на устройстве, такое приложение может быть отключено либо удалено с устройства пользователя.

Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии60

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность