Pull to refresh
22
0
Aleksei Bespaly @Alexey_Bespaly

Senior Developer

Send message

Руководство по фоновой работе в Android. Часть 1

Reading time5 min
Views28K

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


Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments9

Dagger 2 для начинающих Android разработчиков. Dagger 2. Часть 1

Reading time7 min
Views63K
Данная статья является четвертой частью серии статей, предназначенных, по словам автора, для тех, кто не может разобраться с внедрением зависимостей и фреймворком Dagger 2, либо только собирается это сделать. Оригинал написан 10 декабря 2017 года. Перевод вольный.

image
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments1

Заблуждения Clean Architecture

Reading time15 min
Views410K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments203

Рецепты под Android: Как вкусно приготовить LayoutManager

Reading time16 min
Views48K
Привет хабр!

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


Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments4

История создания простой мобильной игры

Reading time11 min
Views27K
Привет! Мы — небольшая команда из двух человек, которая пытается делать игры в свободное время. Совсем недавно мы наконец-то зарелизили свое первое скромное творение и решили поделиться опытом его создания с хабрасообществом.


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

Мы нарисовали пару скетчей, написали диздок на 2 листа и взяли Unity, с которым у нас уже был небольшой опыт работы. Решив, что справимся с простым раннером примерно за месяц-два, приступили к работе.

Осторожно, под катом довольно много картинок!
Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments46

Обзор Android Shortcuts

Reading time8 min
Views27K
С версии ОС Android 7.1 (API 25) Google предлагает нам новый механизм работы с приложениями — Android Shortcuts. Мы написали краткий обзор этой фичи, созданной для удобства пользователей.

image

Общий обзор


В переводе с английского «shortcut» — кратчайший путь, такое название хорошо отражает основное предназначение шорткатов. Они позволяют нам попасть в какую-то определенную точку приложения и выполнить конкретное действие всего за пару нажатий. Шорткаты неплохо смотрятся, например, если пользователю надо:

• выбрать заранее определенный маршрут в навигаторе;
• начать беседу с другом в мессенджере;
• продолжить игру с последней точки сохранения.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments8

Манифест архитектурной боли

Reading time3 min
Views11K
Всем привет! Это будет необычная статья. Это будет статья-манифест! Манифест архитектурной боли! Хватит это терпеть, хватит это держать в себе. Возьми и скажи все, что думаешь об архитектуре. Все, что думаешь о «чистой архитектуре»! Все, все, все! От начинающих до неудержимых гиков.

Все под кат!

image
Читать дальше →
Total votes 50: ↑26 and ↓24+2
Comments18

5 вещей, которых вы не знали о многопоточности

Reading time10 min
Views291K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →
Total votes 86: ↑77 and ↓9+68
Comments40

Ресурсы, о которых должен знать каждый Android-разработчик

Reading time6 min
Views189K
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

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

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →
Total votes 133: ↑128 and ↓5+123
Comments33

Сверхбыстрое распознавание речи без серверов на реальном примере

Reading time10 min
Views331K

В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
К статье я также прилагаю все исходники программы и саму сборку под Android.

Прикручиваем Pocketsphinx к своему Андроиду
Total votes 185: ↑182 and ↓3+179
Comments87

Первые впечатления от разработки под Андроидом — пишем handsfree

Reading time4 min
Views8.5K
Совсем недавно обзавелся андрофоном (LG Optimus) и решил попробовать свои силы в написании софта под него. Почитав про устройство платформы сначала очень порадовался за ее простоту, удобство и логичность. Но на практике все оказалось далеко не так радужно…

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

На первый взгляд, приложение должно быть очень простым:
  1. В манифесте вешаем receiver на сообщения об изменении статуса линии (TelephonyManager.ACTION_PHONE_STATE_CHANGED) и следим за входящими звонками.
  2. При поступлении звонка проверяем, подключена ли гарнитура. Меня интересовала, прежде всего, bluetooth, но и проводную гарнитуру было бы хорошо отслеживать.
  3. Если гарнитура подключена, говорим телефону ответить на звонок.

С первым пунктом особых проблем не возникло. А вот остальные два оказались не такими тривиальными.
Читать дальше →
Total votes 47: ↑37 and ↓10+27
Comments26

Подготовка к экзамену Oracle Certified Professional Java Programmer — Часть 1

Reading time8 min
Views56K

Предисловие



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

Продолжаем готовиться к экзамену под катом.

Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments30

Как я писал кастомный локер

Reading time11 min
Views35K


Привет хабрастарожилам от хабрановичка. Ровно год назад я решил написать кастомный локер (экран блокировки) для моего старичка Samsung Galaxy Gio в стиле популярного тогда Samsung Galaxy s3. Какие причины заставили меня это сделать, писать не буду, но добавлю лишь то, что в Google Play я программу не собирался выкладывать и каким-либо другим способом заработать на ней не планировал. Данный пост посвящен последствиям моего решения.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments8

Видео. Основные принципы Material Design

Reading time1 min
Views75K
Не секрет что Material Design уже очень сильно нашумел в сети, и заинтересовал не малую аудиторию своей задумкой. А ведь и вправду Material Design показал как нужно правильно строить UI, который был бы понятен пользователю как что-то материальное, что он может потрогать.


Читать дальше →
Total votes 33: ↑24 and ↓9+15
Comments14

Борьба с 2D-физикой в Unity на примере бесконечной игры

Reading time9 min
Views83K


Мой странный творческий путь занес меня в разработку игр. Благодаря отличной студенческой программе от IT-компании, название которой СостоИт из одной Греческой МАленькой буквы, сотрудничающей с нашим университетом, удалось собрать команду, родить документацию и наладить Agile разработку игры под присмотром высококлассного QA-инженера (здравствуйте, Анна!)

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

Наша игра использовала физический движок неожиданным для него способом, что породило множество проблем с производительностью на мобильных платформах. В этой статье, на примере нашей игры, описана моя борьба с физическим движком и все те особенности его работы, которые были замечены на пути к жизнеспособной бета-версии.
Читать дальше →
Total votes 56: ↑49 and ↓7+42
Comments32

Ещё раз (надеюсь, последний) про double-checked locking

Reading time4 min
Views51K
Статей про double-checked locking на Хабре было столько, что казалось бы ещё одна — и Хабр лопнет. Вот только по Java неплохие публикации: Реализация Singleton в JAVA, Правильный Singleton в Java, А как же всё-таки работает многопоточность? Часть II: memory ordering или вот замечательный пост от TheShade (слава web-archive!). В наши дни, наверно, каждый Java-разработчик слышал, что если используешь DCL, будь добр объявить переменную volatile. Найти сегодня в коде известных опенсорсных проектов DCL без volatile довольно трудно, но оказалось, что проблемы ещё не полностью решены. Поэтому я добавлю небольшую заметку по теме с примерами из реальных проектов.

Иногда складывается ощущение, что программисты не включают мозги и не пытаются понять, как что работает, а просто следуют простым и понятным правилам вроде «объяви переменную volatile, используй DCL, и всё будет хорошо». К сожалению, такой подход в программировании не всегда работает.
Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments116

Что такое утечки памяти в android, как проверить программу на их отсутствие и как предотвратить их появление

Reading time14 min
Views87K
В этой статье для начинающих android-разработчиков я постараюсь рассказать о том, что такое «утечки памяти» в android, почему о них стоит думать на современных устройствах, выделяющих по 192МБ на приложение, как быстро найти и устранить эти утечки в малознакомом приложении и на что нужно обращать особое внимание при разработке любого приложения.


Конечная цель этой статьи — ответ на простой вопрос:
Куда нажать, чтобы узнать, какую строчку в приложении поправить?

Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments36

Встреча с кометой сегодня

Reading time3 min
Views150K
Два года назад состоялась невероятная посадка марсохода Curiosity на Марс, а сегодня происходит не менее сложное и важное событие в Солнечной системе — космический аппарат Rosetta, после десятилетнего перелета, выходит на орбиту кометы 67P/Чурюмова-Герасименко.

ESA_ROSETTA_NAVCAM

Я постараюсь максимально оперативно сообщать о том, как проходит эта операция в 400 миллионах километров от Земли.
Читать дальше →
Total votes 167: ↑162 and ↓5+157
Comments112

Офис компании «ВКонтакте»

Reading time6 min
Views221K
   На днях нас с коллегами случайно занесло в северную столицу, где не менее случайно нам удалось побывать в самом, пожалуй, необычном офисе города. Наличие фотоаппарата позволило частично передать вам ту атмосферу, которая царит в этом месте — осторожно, много фоток!

image
Читать дальше →
Total votes 390: ↑303 and ↓87+216
Comments342

FAQ по программированию под Android от новичка, и для новичков

Reading time16 min
Views158K
Предисловие к FAQ.

Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
На данный момент выпущено 7 программ и две находятся в разработке.
Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

Надеюсь, что приведенные примеры окажутся полезными.
Читать дальше →
Total votes 114: ↑98 and ↓16+82
Comments23

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity