Pull to refresh
30
0

Web-разработчик, Android-разработчик

Send message

Релиз ReactOS 0.3.16

Reading time2 min
Views37K
imageКоманда разработки проекта ReactOS рада сообщить вам о релизе версии 0.3.16. С момента выпуска предыдущей версии (0.3.15) прошло 8 месяцев, и за это время система претерпела значительные изменения и улучшения. По информации из баг-трекера было исправлено более 400 багов.

Одними из наиболее значимых из них являются завершение модернизации подсистемы CSRSS и первые этапы работ по рефакторингу shell32, одним из интересных результатов которого является работа нового Проводника в Windows 8.

ReactOS explorer_new в Windows 8
image

image

На что еще способен ReactOS 0.3.16
Total votes 111: ↑100 and ↓11+89
Comments29

Обзор особенностей ядра Андроида

Reading time7 min
Views107K
“А я… карбюратор промываю!”
Анекдот


Введение

В детском садике мы с единомышленниками препарировали кузнечиков в надежде разобраться в их строении. В школе распаивали радиоприёмник “Россия”. В институте дошла очередь до автомобилей, гайки которых были многократно переставлены. Интересы поменялись, но желание “разбирать” иногда просыпается, и сегодня оно направлено на Андроид.

Сколько раз вас выручало наличие исходников Андроида? Меня — уже не счесть. Андроид — открытый проект, но, к сожалению, у нас есть возможность только читать; править код Андроида, не будучи сотрудником Google, практически невозможно. Погрустим над этим моментом и загрузим репозиторий. Как это сделать, отлично описано на официальном сайте.


Читать дальше →
Total votes 169: ↑151 and ↓18+133
Comments17

Расширение Chrome для смягчения громких заголовков новостей

Reading time2 min
Views32K
Главным критерием успеха СМИ является посещаемость страниц. Поэтому некоторые издания не стесняются использовать очень громкие и привлекающие внимание заголовки, лишь бы заставить пользователя перейти по ссылке. Они используют слова вроде «невероятно», «шок», «сенсация» и прочее.

Американского программиста из рекламного агентства Noise реально достал этот бред — и он написал Downworthy, это расширение для браузера Chrome, которое заменяет громкие слова в заголовках на более адекватные.

Вот некоторые примеры из списка автозамены.

  • буквально → фигурально
  • взорвёт мозг → наверное, может развлечь на секунду
Читать дальше →
Total votes 113: ↑82 and ↓31+51
Comments45

Vaadin: полезные доработки и наблюдения

Reading time9 min
Views16K
Vaadin — компонентный UI фреймворк для создания веб-приложений на Java. Мы используем Vaadin в составе своей платформы CUBA на протяжении 4 лет и за это время накопили большой опыт работы с ним.

Vaadin был выбран нами по нескольким причинам:
  • Серверная модель программирования, не требующая применения JavaScript/HTML в прикладном коде
  • Возможность создавать насыщенный AJAX UI
  • Множество компонентов и сторонних аддонов

Из недостатков стоит отметить:
  • Высокие требования к памяти сервера, поскольку все элементы пользовательского интерфейса и их данные хранятся в HTTP сессии
  • Сложность расширения компонентов Vaadin и написания аддонов

В этой статье я поделюсь решениями некоторых проблем и задач, с которыми мы столкнулись при использовании Vaadin. Несколько решений я разберу подробно, для остальных — только важные моменты.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments3

IdBasedLocking

Reading time3 min
Views5.5K
У Java отличная поддержка параллелизма (concurrency) и блокировки (locking) — возможно, самая лучшая из тех, что предлагают современные языки. Кроме того, что в самом языке есть встроенная поддержка синхронизации, существует целый ряд полезных утилит на основе AQS framework. К ним относятся CountDownLatches, Barriers, Semaphores и прочие. Однако часто встречается ситуация, не поддерживающаяся напрямую: когда надо блокировать доступ не к конкретному объекту, а к идее этого объекта.

Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments31

Модификация стоковых прошивок для Android. Часть 4

Reading time21 min
Views50K
Здравствуй Хабр!

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

На прошлых скриншотах были следующие меню в моем самодельном твикере и вызвало множество приватных вопросов о реализации.

Предпочтительный слот
Выберите SIM карту на которой использовать передачу данных
Уведомление о соединении
Запретить оповещение об интернет подключении
Автоматическая запись звонков
Все звонки будут записаны стандартным диктофоном согласно его настройкам
Запретить энергосбережение
Запретить иконку энергосбережения в слайдере и статус баре
Запретить выключатели
Отключение в слайдере статус бара
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments14

По следам бага и немного о событиях MotionEvent в Android

Reading time5 min
Views20K
Думаю, многие из нас писали код вида:

    @Override
    public boolean onTouch(View view, MotionEvent event) {
        final float x = event.getX();
        final float y = event.getY();
        // использование x и y...
        return false;
    }

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

Год назад я с друзьями разрабатывал приложение, где очень многое упиралось в обработку касаний. Однажды, загрузив новые исходники из репозитория и собрав приложение, я обнаружил, что вертикальная координата касания определяется неверно. Просматривая последние коммиты команды, я наткнулся на интересную строку, где внезапно от y-координаты отнималось 100. То есть, что-то вроде «y -= 100;», причем, это число не было вынесено как константа и вообще было непонятно почему именно 100. На мой очевидный вопрос я получил ответ «Ну, мы опытным путем определили, что в этом месте y-координата всегда на 100 (пикселей) больше, чем должна быть». Здесь, конечно, стоило бы перечитать документацию по обработке касаний и, просмотрев код проекта, найти ошибку, но я решил пойти более интересным путем – проследить по исходникам Android за MotionEvent от его получения до утилизации.

Если я смог кого-то заинтриговать историей в стиле «По следам полосатого бага» — добро пожаловать под кат.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments7

Вконтакте представили SDK для Android

Reading time6 min
Views47K
ВКонтакте представили SDK для Android

На днях ВКонтакте в разделе для разработчиков выложили SDK для Android.



Популярная социальная сеть ВКонтакте пополнила свой набор инструментариев для разработки приложений, в котором уже имеются Flash и Javascript SDK, а также SDK для iOS, еще одним — SDK для Android.

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

Не забыли ребята и о владельцах девайсов с неактуальными версиями Android на борту — тестовое приложение, поставляемое вместе с SDK, имеет требования Android 2.2+

Также не оставлен без внимания вопрос защиты.
Подробности под катом.
Читать дальше →
Total votes 46: ↑33 and ↓13+20
Comments14

Работа с геозонами (geofences) в Android

Reading time7 min
Views21K

Добрый день, хабровчане. Сегодня я хотел бы рассказать о Location APIs в общем и о геозонах (geofences) в частности, которые были представлены на Google I/0 2013 (видео и презентация). Не смотря на то, что событие произошло более полугода назад, на хабре до сих пор нет вменяемой информации об этом (только одно упоминание). Постараюсь немного исправить ситуацию.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments7

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments66

Загрузка классов в Java. Практика

Reading time7 min
Views84K
Данная статья является продолжением статьи Загрузка классов в Java. Теория.

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

Код приложения не претендует на оригинальность, а лишь объясняет подходы и принципы написания пользовательских загрузчиков классов и методы инвокации динамического кода.
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments19

ActionBar на Android 2.1+ с помощью Support Library. Часть 3 — Полезные функции

Reading time4 min
Views14K
Всем доброго времени суток!

Мда, давно не писал я статей на Хабр. Что ж, буду это дело исправлять.
Вообще, ActionBar в Android – довольно сложная штука. В первой и второй частях я рассмотрел только основные его функции – меню и навигация. Но есть ведь и множество дополнительных: Split ActionBar, кастомный View для элемента меню и ActionProvider. О них и пойдёт речь. Кроме того, бонус: многие знают, что кнопка Up служит для перехода на предыдущее Activity. Но если на экран можно попасть только с одной другой Activity, то можно не кодить переход вверх. Заинтригованы? Прошу под кат.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments0

200 миллисекунд свободы

Reading time3 min
Views199K
В 1979 году американский психолог Бенджамин Либет провел свой знаменитый эксперимент, который взбудоражил научное сообщество, но как-то прошел мимо широкой массы. А очень зря, ведь он показывает всю чудовищную правду о нашей «свободной воле».
Читать дальше →
Total votes 458: ↑287 and ↓171+116
Comments501

Маленькая хитрость для отображения большого объёма данных в ListView

Reading time4 min
Views41K


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

Проблема


Стандартный механизм отображения списков из базы данных в Android выглядит примерно так:
  • Activity содержит ListView
  • ListView обращается к экземпляру CursorAdapter
  • CursorAdapter получает данные из объекта, реализующего интерфейс Cursor
  • Cursor получен либо из ContentProvider, либо сразу из SQLiteDatabase


Всё работает нормально ровно да тех пор, пока количество строк в Cursor сравнительно небольшое. Но если в нём 50 тысяч, 100 тысяч и более строк (хотя дело не только в количестве строк, но об этом чуть позже), время от времени список будет притормаживать. Особенно это заметно при «быстрой прокрутке», если у ListView установлено в true свойство fastScrollEnabled.
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments26

Фантастические сериалы

Reading time5 min
Views122K
Любите ли вы сериалы? Точнее, любите ли вы хорошие сериалы? Конечно, понятие «хорошо/плохо» в искусстве полностью субъективно, поэтому ещё больше уточню свой вопрос: любите ли вы хорошие фантастические сериалы? Полагаю, что подавляющее большинство хабражителей ответят утвердительно. Сегодня я хотел бы рассказать вам о нескольких сериалах, которые стоит посмотреть каждому любителю фантастики.

Светлячок





Если вы ещё не смотрели классику приключенческих фантастических сериалов, «Светлячок», то самое время это сделать. На протяжении 14 (формально — 15) серий мы наслаждались приключениями команды космических наёмников-авантюристов во главе с обаятельным капитаном Рейнольдсом, роль которого исполнил Натан Филлион.
Читать дальше →
Total votes 125: ↑74 and ↓51+23
Comments245

Chrome extension за выходные

Reading time7 min
Views57K
image

Проблема

Как обычно поздней ночью, садясь в автобус, я достал телефон, и пока набирал “habr…” он отрубился. Я вслух подумал: “А раньше не мог сказать?”, немного пожалел, что телефоны редко пищат, пока разряжаются. А потом…

Потом мы с приятелем решили подойти к вопросу по-мужски. Он написал программулину для андроида, а я расширил Хром. О последнем и пойдёт речь.

Задача

Итак, идея: андроид-приложение наблюдает за состоянием аккумулятора и периодически уведомляет сервер об уровне заряда. Причём делает это как-нибудь по-умному, чтобы заряд от этого не пострадал. Хром-расширение выставляет свою иконку в специально отведённом месте, иконка показывает заряд батарейки андроида и всячески привлекает внимание, если она совсем почти разряжена. А чтобы всё не казалось слишком простым, реализовать идею надо было за одни выходные. В противном случае баланс ценность/усилия вываливался за рамки бесплатного приложения.

Таким образом, выбор подхода к задаче оказался даже важнее скорости десятипальцевой печати.
Ну я и взялся за дело
Total votes 96: ↑84 and ↓12+72
Comments66

Разработка под Android в NetBeans IDE без плагинов. Часть 1

Reading time10 min
Views48K
Обычно у разработчика есть свой любимый инструмент, которым ему пользоваться удобнее, чем другими. Однако бывает так, что платформа заставляет разработчиков брать в руки инструмент, который не так удобен, как ему хотелось бы, или просто чем-то не устраивает. Так получилось, что традиционно приложения под Android пишут при помощи Eclipse, поскольку Google приняли решение о том, что будут разрабатывать официальный плагин, ADT, именно для этого редактора. В результате тем разработчикам, которые им не пользовались, волей-неволей пришлось его освоить.

К счастью, Google также предоставляют систему сборки, которая работает независимо от имеющейся в наличии IDE. А это означает, что можно настроить любой редактор для работы с приложениями Android. Лично я предпочитаю писать код на Java в NetBeans IDE и хочу поведать о том, как его можно настроить для этого. Есть такие плагины, как nbandroid, но разрабатывается он нерегулярно, энтузиастами, так что есть смысл воспользоваться гибкостью NetBeans и задействовать официальную систему сборки напрямую из редактора.
Посмотрим, как это можно сделать
Total votes 21: ↑16 and ↓5+11
Comments4

Логирование в Android приложениях

Reading time3 min
Views60K
Уверен, что всем разработчикам приложений на платформе Android знаком класс Log, позволяющий логировать различные события. По различным причинам, формат записи логов для каждого проекта может отличаться достаточно сильно — начиная от «AAA», «111111» и «I was here» до более-менее внятных — «Opening HTTP connection to habrahabr.ru». Под катом вы найдете пример функции, которая поможет навести порядок в логах.
Данный топик не претендует на оригинальность и универсальность. И поэтому, если в вашем проекте уже существует некий стандарт логирования событий, то смело проходите мимо — топик скорее ориентирован на начинающих разработчиков.
Читать дальше →
Total votes 35: ↑28 and ↓7+21
Comments14

Разработка виджета под Android

Reading time6 min
Views43K
На Хабре уже достаточно статей о том, как разработать «hello world»-виджет для устройств на базе Android. Еще больше об этом можно почитать в сети, в том числе и на сайте Google для разработчиков, StackOverflow и других ресурсах. Казалось бы, все подробно разжевано, есть сотни примеров — зачем же писать очередную статью, когда вокруг и так достаточно информации?
Однако, когда мы начали разработку виджета, нам пришлось потратить несколько недель на то, чтобы разобраться с нюансами и реализовать проект так, как мы задумали его изначально.
Надеемся, наш опыт поможет сэкономить время на реализацию вашего виджета.
Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments20

Java-программист в Петербурге. Обзор рынка труда с точки зрения соискателя. Часть 3/3. Какие бывают работодатели

Reading time6 min
Views35K
Часть 1/3. Какие бывают 'плюшки'.
Часть 2/3. Подводные камни для «новичка».

Какие бывают работодатели. Характерные особенности.


Вместо краткого вступления, одну закономерность можно назвать сразу: чем длиннее и крупнее проект, тем древнее технологии. Хотите на практике освоить новые технологии — участвуйте в стартующих проектах длиной 3-6 месяцев.

  • Фирмы, работающие на Министерство обороны и подобные структуры.
    Секретность, используется относительно узкий набор технологий — которые сертифицированы в ФСБ. Например, Java 1.6 и Tomcat сертифицированы, а EJB-контейнеры не сертифицированы, вместо них может использоваться самописная недо-пародия. Что хорошего в самописных недо-пародиях — разработчик, что обычно рядом и доступен для общения, что плохого — какая-то мелкая функция, которая есть, но её пока (почти год) не использовали, но которая внезапно понадобилась тебе, — может просто тупо не работать (но можно заставить разработчика быстро починить).
Читать дальше →
Total votes 73: ↑53 and ↓20+33
Comments30

Information

Rating
Does not participate
Location
Рыбинск, Ярославская обл., Россия
Date of birth
Registered
Activity