Search
Write a publication
Pull to refresh
-3
Дмитрий Романенко @WraithOWread⁠-⁠only

User

Send message

200 блогов по разработке и проектированию

Reading time8 min
Views46K


Привет, Хабр! Мы решили посмотреть на то, как крупнейшие бизнесы и студии делятся своими наработками, и адаптировали подборку технологических блогов. Уверены, что опыт коллег поможет нам всем сделать Хабр еще интереснее.
Читать дальше →

10 советов по использованию ExecutorService

Reading time13 min
Views159K
Предлагаю читателям «Хабрахабра» перевод публикации «ExecutorService — 10 tips and tricks».



Абстракция ExecutorService была представлена еще в Java 5. На дворе шел 2004 год… На секунду – сейчас Java 5 и 6 больше не поддерживаются и Java 7 готовится пополнить список. А многие Java-программисты по-прежнему не в полной мере понимают как работает ExecutorService. В вашем распоряжении множество источников, но сейчас я хотел бы рассказать о малоизвестных тонкостях и практиках по работе с ней.
Читать дальше →

Android разработка — Gradle JarJar plugin

Reading time2 min
Views11K
Разрабатывая наш Мобильный Банк мы однажды столкнулись с такой проблемой.

А именно: при использовании библиотеки GSON для сериализации/десериализации в/из JSON на некоторых устройствах от HTC в рантайме мы получали креш. Причина такого поведения в том, что некоторые устройства от HTC имеют в своей прошивке свою версию GSON, которая более старая чем та которую использовали мы в своих проектах. А андроидовский java class loader при загрузке класса в память предпочитает «системную» версию, вместо версии в проекте.

Кроме того на некоторых устройствах существует аналогичная проблема с OkHttp — тоже довольно популярной библиотекой в мире андроид разработки.

Для решения проблемы необходимо переупаковать GSON (или любую другую библиотеку) с помощью утилиты JarJar. После переупаковки артефакт будет иметь новую структуру пакетов, которую необходимо использовать в директивах импорта в своем проекте. Для этого нужно подключить переупакованный jar к своему проекту вместо исходного.

Нам захотелось автоматизировать эту задачу и в итоге появился Gradle JarJar Plugin, доступный в Maven Central. Плагин позволяет указать jar-библиотеки и правила для переупаковки их с помощью JarJar.

Подключение и испольование...

Material Design и поиск на примере приложения-справочника

Reading time8 min
Views29K

Введение


Несколько лет назад я писал статью на Хабр о приложении-справочнике по математике для Android, которое стало моим первым опытом в разработке для GooglePlay. Сегодня, оглядываясь назад на свой прошлый хабрапост и прошлую версию приложения, мне становится страшно (чтобы содрогнуться достаточно взглянуть на первый скриншот ниже). За прошедшие несколько лет многое поменялось: AndroidMarket стал называться GooglePlay с новыми правилами и прочим, выходили новые версии ОС, появилась некая общая google-концепция к дизайну приложений material-design, появились новые среды разработки, да и Хабр изменился.

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

Читать дальше →

Appodeal — бесплатный оптимизатор доходов от рекламы для мобильных разработчиков

Reading time4 min
Views34K


Этим постом я бы хотел официально представиться и вкратце познакомить вас с нашим проектом. Меня зовут Павел Голубев, с 2009 года я работаю в сфере разработки и публикации мобильных приложений. Наша команда в свое время запустила SaaS-сервис Columbis для турагентств, позволяющий автоматизировать их деятельность. После этого я переехал в Соединенные Штаты, Сан-Франциско, и уже тут продолжил работу в сфере мобильной рекламы. В определенный момент у нас возникла потребность в платформе, которая позволила бы увеличить доход от рекламы в наших приложениях. На поиски подобного инструмента оптимизации трафика мы потратили несколько месяцев, после чего приняли решение сделать его сами. В итоге, разработка для внутренних нужд переросла в самостоятельный проект — Appodeal, в блоге которого и размещена данная публикация.

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

  • какую рекламную сеть выбрать;
  • как к ней подключиться;
  • насколько высокая заполняемость (fill rate) у этой сети;
  • насколько высокий eCPM для региона вашей аудитории в конкретной сети;
  • какой тип оплаты подходит для вас (CPI/CPM/CPC);
  • есть ли плагин для фреймворка, в котором вы ведете разработку;
  • как в конечном итоге вывести свои деньги.

Читать дальше →

LeakCanary — помощник в поиске утечек памяти

Reading time3 min
Views33K

Никому не нравятся креши с OutOfMemoryError


Работая над Square Register, мы рисуем подпись клиента используя битмап-кеш. Поскольку этот битмап размером с экран устройства, у нас было очень много OutOfMemory крешей во время создания его.

image

Мы пробовали несколько подходов ни один из которых не решил проблему:
  • Использовали Bitmap.Config.ALPHA_8
  • Ловили OutOfMemoryError, вызывали сборку мусора и пробовали снова (подглядели в GCUtils),
  • Мы не рассматривали вариант с размещением битмапов вне кучи Java. К счастью Fresco еще не существовало,


Читать дальше →

Учим Python качественно

Reading time4 min
Views1.4M
Здравствуйте всем!

Решил поделиться методом обучения сего мощного, но в одно и тоже время лёгкого языка программирования. Он действительно лёгкий. Вам не надо будет запоминать и вводить лишних символов, которые Вы можете встретить в Си-подобных языках.

Удобочитаемый синтаксис, прост в обучении, высокоуровневый язык, Объектно-Ориентированый язык программирования (ООП), мощный, интерактивный режим, масса библиотек. Множество иных плюсов… И это всё в одном языке.
Для начала окунёмся в возможности и узнаем, что же умеет Python?
Читать дальше →

Делаем скриншоты правильно: практические советы

Reading time8 min
Views190K
Устройство для снимка экрана на первых компьютерах (Command-Shift-3)
Устройство для снимка экрана на первых компьютерах (Command-Shift-3)

Если вы когда-либо делали хелп или мануал для своего приложения, наверняка вы отметили, как неожиданно много времени и сил занимает создание скриншотов.

Ведь кажется, что скриншот — это “секунда работы, Alt+PrintScreen и Ctrl+V!”. Некоторые клиенты удивляются, когда слышат, что скриншот в мануале может стоить и $2 и даже $5.

В этой статье я расскажу, как правильно делать скриншоты, почему это не просто “два клика” и какие подводные камни встречаются на пути неопытного скриншотера. Рассматривайте ее как чеклист или список практических советов для тех, кто документирует ПО. Надеюсь, это поможет вам избежать разочарований и порадовать юзеров красочными понятными картинками.
Читать дальше →

Android. Пару слов об MVP + rxJava

Reading time5 min
Views75K


Работая с Android часто можно видеть, как весь функциональный код помещается в методы жизненного цикла activity/fragment. В общем-то такой подход имеет некоторое обоснование — «методы жизненного цикла» всего лишь хэндлеры, обрабатывающие этапы создания компонента системой и специально предназначенные для наполнения их кодом. Добавив сюда то, что каркас UI описывается через xml файлы, мы уже получаем базовое разделение логики и интерфейса. Однако из-за не совсем «изящной» структуры жизненного цикла, его зависимости от множества флагов запуска, и различной (хоть и похожей) структуры для разных компонентов, эффективно воспользоваться подобным разделением не всегда бывает возможно, что в итоге выливается в написании всего кода в onCreate().
Читать дальше →

Книги по Swift

Reading time1 min
Views21K
Добрый день, Хабровчане!

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

1. Книга для начинающих. Например такая
Swift for Beginners: Develop and Design
image
Читать дальше →

Material Design: на Луну и обратно

Reading time11 min
Views391K
“Это унылое диалоговое окно действительно нужно?”



В этой статье я изложил главные принципы Material Design и дал советы по их воплощению. Текст написан по следам мастер-класса для разработчиков, который мы, Роботы, устраивали совместно с российским офисом Google (Think Mobile).


Когда-то все продукты Google выглядели по-разному плохо. Даже один продукт на разных платформах выглядел неконсистентно.

Все стало меняться в 2011 году, когда в Google начали усиленно работать над унификацией визуальной части экосистемы своих продуктов и назвали все это Project Kennedy.

При чем тут Кеннеди?
Легенда такова: президент Кеннеди инициировал программу полёта человека на Луну (если верить, что этот полёт когда-либо был). А большой начальник в Google Ларри Пейдж исповедует принцип, что продукты нет смысла улучшать на 10% — они должны быть в 10 раз лучше, чем у конкурентов. Если уж запускать продукт, то сразу на Луну. Вот и здесь было решено круто всё переделать.

Читать дальше →

11 крутых сайтов для iOS разработчиков

Reading time3 min
Views41K


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

Интерфейсы в реальном мире (ещё примеры)

Reading time10 min
Views140K
Обычный кран с горячей и холодной водой очень жесток к пользователю. В идеале его интерфейс решает три основные задачи:
  • Позволяет выбрать напор воды.
  • Позволяет выбрать температуру воды.
  • И защищает систему от гидравлического удара.

Вот тут вы можете узнать пару своих знакомых кранов:



А это — очень страшный автомобильный диод, по нему только вперёд:



Итак, если вам интересно продолжение про интерфейсы в реальном мире – заходите в пост. Осторожно, трафик.
Читать дальше →

Архитектурный дизайн мобильных приложений

Reading time9 min
Views98K
Признак плохого дизайна №1:
Наличие объекта-«бога» с именем, содержащим «Manager», «Processor» или «API»


Ведущий iOS-разработчик Redmadrobot Егор BepTep Тафланиди — о том, как добиться стройного архитектурного дизайна мобильного приложения, используя классические шаблоны проектирования и логическое разделение исходного кода на модули.

Читать дальше →

Анонс конференции Mobius 2015: доклады по iOS, Android и Mobile Security

Reading time4 min
Views6.8K
Всем привет!

3 апреля 2015 года в Санкт-Петербурге пройдёт конференция Mobius для программистов, разрабатывающих ПО под Android, iOS, Windows Phone и другие мобильные платформы.



Доклады конференции будут сугубо ТЕХНИЧЕСКИМИ. В программе:
  • более 20 технических докладов от экспертов в области мобильной разработки;
  • Мастер­классы от гуру программирования под iOS и Android;
  • Зоны свободного общения — возможность неформального контакта с участниками.


На конференции НЕ БУДЕТ:
  • докладов про маркетинг и продвижение мобильных приложений;
  • презентаций про инвестиции, стартапы, бизнес-­модели, монетизацию и т.п.;
  • лекций про внедрение Agile и других методологий разработки;
  • коворкингов, хакатонов и прочих всем надоевших баззворд-активностей.


Из похожих конференций в России есть только московская конференция #MBLTDev от компании e-Legion и… и всё. Все остальные конференции занимаются играми, продвижениями, трафиками и другими не-девелоперскими делами. Так что приятно, что в этом поле появился хоть кто-то, кроме нас :) Потому что на других конференциях, конечно, попадаются девелоперские доклады, а иногда и целые секции, но этого, к сожалению, все равно мало. Особенно на фоне роста числа технических мобильных конференций в Европе и США.

Подробнее о Mobius 2014 и Mobius 2015 ...

Печать и воспроизведение звука на бумаге

Reading time3 min
Views103K
Можно ли закодировать звук в виде изображения, которое считывается камерой и проигрывается в реальном времени?

На ум сразу приходит QR-код или некие его аналоги. В такой код можно записать ссылку на mp3, или даже совсем маленький звуковой файл. Но в первом случае требуется выход в сеть, а во втором — большая плотность кода и повышенные требования к качеству изображения. Кроме того, ни тот ни другой способ не обеспечит мгновенное воспроизведение.

Что, если кодировать звук не в цифровом, а в аналоговом формате? То есть, допустить возможность больших потерь информации с сохранением основных «очертаний» звукового послания. Например, такие потери возникнут при плохом освещении, плохой камере, маленькой картинке, мятой или рваной бумаге с кодом. Пусть со страшными артефактами, но картинка должна звучать.


Читать дальше →

Выбираем нано-квадрокоптер за 20$

Reading time3 min
Views62K
Актуально на февраль 2016

Прошёл ровно год, после того, как я написал пост "Прощай квадрокоптер или будьте осторожны с летательными аппаратами". Напомню, что тогда мой DJI Phantom, вместе с подвесом и GoPro, улетел в неизвестном мне направлении, а его поиски ничего не дали. Какого же было моё удивление, когда перед новым годом мне пришло сообщение:
«Привет Юра и Надя! Вчера я нашел ваш хеликоптер. Случайно увидел в серванте у одного местного. Зашел в дом к нему по делам. Смотрю на шкафу штучка интересная. Вряд ли полезная в этой семье. Спросил: Нашел? Да, нашел. На поленнице лежало. В мае нашел».

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

Состояние коптера — это большая тема для отдельной статьи, а пока скажу лишь, что основные элементы отлично функцонируют и коптер уже летает. Однако я решил не повторять своих ошибок и учиться пилотированию, начиная с более бюджетных моделей, а именно с нано-квадрокоптеров стоимостью ~20$, о них и пойдёт речь.


DJI Phantom в сравнении с нано-коптерами SYMA X12 и Cheerson CX-10
Читать дальше →

Пять лучших VPN-сервисов

Reading time3 min
Views536K


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

Private Internet Access


Это наш любимый сервис, а судя по количеству наград, которые они собрали – и ваш тоже. PIA обеспечивает не только шифрование трафика, но и анонимизацию вкупе с отвязкой от регионального расположения. Вы можете выбрать выходной сервер из списка почти в 1000 штук (в 10 разных странах). PIA не хранит логи, не запрещает никакие протоколы и IP-адреса, и не хранит у себя информации о действиях пользователей. Также они поддерживают несколько методов авторизации, практически все операционки (мобильные и десктопные), а стоимость услуг начинается от $7 в месяц. Возможно подключение до пяти различных устройств.
Читать дальше →

Лучший способ изучить Rails

Reading time5 min
Views200K
Доброго времени суток!

Предисловие


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

Введение


У меня за спиной огромный опыт работы с PHP, но сейчас я работаю Rails разработчиком. Огромную сложность для большинства людей, которые пытаются освоить что-то новое — это сам процесс обучения. Когда вы владеете каким-либо языком или фреймворком и знаете его вдоль и поперёк, переход на что-то новое не представляется необходимым.

Однако, изучение Ruby on Rails является достаточно простым занятием. Это невероятно мощный фреймворк, который имеет огромное сообщество, продвигающее его вперёд. Итак, у нас возникает вопрос: какой способ изучить Rails является лучшим? Вот он — план занятий.
Читать дальше →

Всё о версиях Windows 8.1 и о том, как легально загрузить последний образ без подписки

Reading time6 min
Views773K
Хочу поделиться в одной заметке важной, на мой взгляд, информацией о версионности образов Windows 8.1, и о том, как любой желающий может совершенно легально загрузить ту языковую версию и издание, которые ему требуется. С учётом того, что после выхода Windows 8.1 образы пересобирались минимум пять раз, вопрос версионности становится интересным для администраторов и энтузиастов.

Недавно я писал о том, как можно совершенно легально загрузить самый последний Microsoft Office с сайта Microsoft — как корпоративную версию, так и коробочную Retail — любые языки и продукты, со всеми интегрированными обновлениями. Сегодня я расскажу, как сделать то же самое и с операционной системой — средствами предоставляемыми самой Microsoft.

Но для начала я хочу рассказать о версиях Windows 8.1. Не об изданиях — этого добра в сети много, а именно о публичных версиях сборок ОС. Ведь для любого администратора удобно загрузить образ со всеми интегрированными обновлениями, чем устанавливать сотню самостоятельно. Причём загрузить образ с сайта Microsoft, а не самодельную сборку с торрентов. Всё что я буду рассказывать о версиях ОС Windows 8.1 применимо и к Windows Server 2012 R2, за исключением канала для бесплатной загрузки образов для переустановки ОС. Но давайте всё по порядку.
Читать дальше →

Information

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