Search
Write a publication
Pull to refresh
48
0
Артём Гапченко @artemgapchenko

Android Dev

Send message

Библиотека Chronos: облегчаем написание долгих операций

Reading time7 min
Views15K
Привет, Хабр! Хочу рассказать вам о библиотеке Chronos для Android (API level >= 9), цель которой – облегчить написание долгих операций, например, сетевых запросов, или обращений к БД.

Какую проблему решаем?

Не секрет, что для Android задача выполнения асинхронных операций всегда была одной из самых частовстречающихся. Действительно, крайне мало приложений работают исключительно в оффлайн, и где можно обойтись без сетевого взаимодействия. И уж совсем крохотная их часть обходится без обращения к постоянной памяти устройства, будь то база данных, Preferences или обычный файл. Однако, на протяжении истории развития системы нам так и не было предложено ни одного достаточно удобного решения “из коробки”.
Читать дальше →

Вариант реализации MVP + DI(Dagger 2) в Android

Reading time5 min
Views52K
С недавних пор заинтересовался данной темой и порылся в дебрях сети на эту тему. На англоязычных ресурсах есть раскиданная по разным местам информация. Прочитал все, что есть в рунете на эту тему. Ссылки приведу в конце статьи. В итоге, стал применять этот подход в своих приложениях.

Для начала, вспомним, что такое MVP. MVP — это паттерн, который позволяет «разбивать» приложение на три основных слоя (компонента):
  1. Модель (Model) — где сосредоточены данные;
  2. Представление (View) — интерфейс приложения (UI — элементы);
  3. Presenter — промежуточный компонент, который реализует связь между Моделью и Представлением.

image

MVP паттерн — это наследник более известного шаблона — MVC. Применение такого подхода позволяет отделить в приложении логику от интерфейса.
Читать дальше →

Здравствуйте, я Meklon и я кофеин-зависимый

Reading time15 min
Views94K


Другие статьи цикла:
Хроники лаборатории: как мы молотый кофе считали софтом для анализа клеточных структур
Компот из кофейных сухофруктов. Знакомимся с каскарой — лучшим другом велосипедиста

Звонок будильника зазубренной пилой вырывает мозг из обьятий сна, свет из-за занавески жгучими импульсами внезапно заставляет сетчатку заливать мозг пакетами нервных импульсов. Спящий организм неторопливо проводит инициализацию базового оборудования, убеждается в относительной сохранности контрольной суммы нейрональных последовательностей и запускает базовую операционную систему по дороге на кухню. Запутанные скрипты инициализации заставляют руки выполнять сложные последовательности нажатий кнопок, регистрируют глухое жужжание акустическими сенсорами, звук льющейся жидкости… Мозг автоматически включает внутренний таймер на 25 секунд, одновременно отслеживая цветовые характеристики тихо журчащей пары тонких струек. Несколько движений чайной ложкой, ускоряющей растворение сахарозы, и сознание взрывается от сочетания тонкого бодрящего аромата, тягучего шоколадного вкуса с легкой кислинкой и нотами тропических фруктов. В сознании медленно проступает образ смуглых девушек, наполняющих свои корзины красными ягодами под лучами палящего горного солнца. Пробуждение...

На Хабре/Гиктаймсе уже не раз обсуждался кофе и все, что с ним связано. Я решил написать пост, посвященный этому напитку и различным эффектам кофеина с медицинской точки зрения. Если хватит времени — возможно это будет цикл статей с экспериментами над людьми, computer vision и прочим непотребством. Увидим. А пока, товарищи кофеиноманы и им сочувствующие, добро пожаловать под кат.
Получить свою порцию кофеина

Первый опыт участия в kaggle-конкурсе и работа над ошибками

Reading time5 min
Views15K
Хочу поделиться опытом своего первого участия в kaggle конкурсе (учебный Bag of Words). И хотя мне не удалось достичь поражающих воображение результатов, я расскажу о том, как искала и находила способы улучшить примеры “учебника” (для этого сами примеры тоже кратко опишу), а также остановлю внимание на разборе своих просчетов. Должна предупредить, что статья будет интересна прежде всего новичкам в области text mining. Тем не менее, большинство методов я описываю кратко и упрощенно, давая при этом ссылки на более точные определения, поскольку цель моя — обзор практики, а не теории. К сожалению, конкурс уже завершился, но прочитать материалы к нему все равно может быть полезно. Ссылка на код к статье тут.
Читать дальше →

Мой первый опыт в разработке 2D-игры (5 советов)

Reading time2 min
Views46K
Хочу поделиться небольшим опытом, который я приобрел при создании своей первой игры для Andriod. Скажу сразу, на момент начала разработки мой опыт программирования был средним (1С и немного C#), а опыт в гейм-деве — нулевым. В качестве инструмента разработки был выбран Unity3D 4.6, привлекла мультиплатформенность и наличие большого количества видео-уроков. Т.к. я вырос на играх 80-х, то было решено попробовать сделать ремейк культовой игры Prehistorik 2, в итоге получилась 2D-аркада под названием Prehistoric Story. Начиналось всё это как хобби, а потом переросло в большой проект, благодаря которому много людей получили ценный опыт и практические навыки. Далее будет 5 ценных советов, основанных на моем личном опыте.

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

Простая и очевидная замена android.util.Log

Reading time3 min
Views17K
Однажды я писал один проект. Проект выдался большим и писал я его долго.
Там было все что только можно было запихнуть — и retrolambda/java8, и пара десятков
других библиотек (жадность заказчика до новых фич не знала границ, а потому
росло число зависимостей).

Но речь даже не об этом. Настало время делать релиз. И оказалось что в проекте
множество логов и неплохо бы их из релизной сборки убрать. Всем известный
способ с ProGuard не сработал с первого раза. С каждым новым "-keep"
приложение падало в каком-то новом месте. Так что ProGuard пришлось отключить
до лучших времен.

Все это время меня не покидало ощущуение, что управление уровнем логировния c
помощью изменения байт-кода — это нелепо. И тогда за полчаса я написал свой
примитивный логгер.

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

MIT предлагает всем желающим бесплатные уроки по теории покера

Reading time2 min
Views22K

Первое видео курса

Массачусетский технологический институт выложил в свободный доступ курс лекций по теме «Теория и аналитика игры в покер» (на английском языке). Доступны видеолекции, конспекты и специальные заметки по курсу. Это событие – часть программы OpenCourseWare, которая посвящена организации бесплатного доступа к избранным лекциям института для всех желающих – даже для тех, кто не учится в нём.

Помните, как в школе многие говорят: «Ну зачем мы это учим, нам это не пригодится!»?



Так вот, лекции по покеру – пожалуй, могут оказаться не просто интересными, но и весьма полезными с практической точки зрения.

Лекции ведёт магистрант института Кевин Дезмонд, который получил степень бакалавра по финансам. И, что логично, его лекции как раз рассказывают о технологиях анализа и планирования, предназначенных для максимизации выгоды от игры на деньги.

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

Про модель, логику, ООП, разработку и остальное

Reading time29 min
Views111K
Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
Читать дальше →

16 научно-фантастических фильмов, рекомендуемых Гарвардским университетом

Reading time4 min
Views43K
image

Гарвардский университет составил список фильмов, которые рекомендуют к просмотру соискателям кандидатской степени в киноведении. В него вошли 800 картин, в том числе ключевые фильмы в истории мирового кино, а также  лучшие образцы голливудских жанровых фильмов. Для своих читателей  редакция Robohunter из списка выбрала самые интересные научно-фантастические ленты, которые стоит посмотреть.
Читать дальше →

Про Бурали-Форти, Пуанкаре и то самое определение единицы

Reading time11 min
Views84K
Если вы, уважаемый мой читатель, имеете обыкновение проводить много времени в интернете, вы наверняка уже видели эту картинку с цитатой:

image

Наверняка также вы задавались вопросом: что, чёрт подери, здесь написано? Формула из этой цитаты интересна тем, что у человека, имеющего высшее математическое образование, этот вопрос возникает столь же неумолимо, как и у любознательного семиклассника. У нелюбознательных семиклассников несколько иной круг интересов, выходящий за рамки данной статьи; однако даже они не откажут себе в удовольствии похихикать над «этими чокнутыми ботаниками», или как оно там формулируется на современном молодёжном сленге.

В нижеследующем тексте я раскрою перед вами тайну этого загадочного сочетания символов. Пожалуйте под кат, однако помните поучительную историю о любопытной Варваре, которой на базаре рассказали про парадокс Банаха-Тарского, отчего она сошла с ума, разрезала себе нос на конечное количество частей и склеила из них рогатую сферу Александера.
N.B. Я предупреждал.

Налоговый суслик. Особенности упрощенной системы налогообложения при работе по договорам с Apple, Google и другими

Reading time46 min
Views54K
В данной статье я постараюсь провести краткий юридический ликбез для разработчиков по некоторым положениям Гражданского кодекса, имеющим значение в контексте деятельности индивидуальных предпринимателей и организаций, применяющих упрощенную систему налогообложения, в работе по договорам с Apple, Google и другими компаниями, а также обратить внимание на некоторые не всегда очевидные налоговые нюансы, которые, как показал личный опыт изучения данной темы, довольно часто ускользают от внимания разработчиков или вызывают множество вопрос и споров.

Прочтите внимательно эту статью, если вы применяете упрощенную систему налогообложения с объектом налогообложения «доход» по ставке 6 процентов и продаете игры или приложения в Google Play, Apple App Store, а также прочий цифровой контент — например, 3D-модели — в Steam, Unity Asset Store или на других площадках, в условиях договоров с которыми фигурируют комиссии, агентские вознаграждения и прочие формы разделения выручки между сторонами.

Из материала вы узнаете:

  • Почему разработчику желательно обладать хотя бы базовой юридической грамотностью
  • Чем с точки зрения Гражданского кодекса являются игры и приложения и какие права на них есть у разработчиков помимо авторского права
  • Что такое агентский договор и почему все это важно при работе по договору с Apple или Google
  • Кто такой налоговый суслик и почему он может превратиться в пушного зверя
  • Какой «подвох» существует для применяющих «упрощенку» в части определения налоговой базы
  • Почему налог на добавленную стоимость (НДС) продолжает преследовать нас, даже когда мы не являемся его плательщиками
  • Как, с точки зрения Федеральной налоговой службы, облагаются НДС внутриигровые покупки (InApp Purchases)
Покажите мне суслика!

Серии Фейнмана [Озвучка Vert Dider]

Reading time1 min
Views33K


«Серии Фейнмана» — образовательный проект, созданный с целью повысить уровень научной грамотности в обществе. От создателей «Серий Карла Сагана».
Читать дальше →

Как красиво оформить публикацию на Хабре

Reading time7 min
Views46K
Публикация – основная единица связи автора с читателем. Практика показывает, что на Хабре можно разместить почти любой формат: небольшой анонс и лонгрид-обзор, интервью, фотоотчёт, трансляцию события, урок и многое-многое другое. Нередко успех публикации зависит и от её оформления – приятно оформленный материал читать одно удовольствие. В этой статье мы постараемся предоставить вам много полезных советов по хорошему оформлению материала.

И первый лайфхак – кликабельная картинка до ката, которая ведёт сразу внутрь публикации:


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

Условие как компромисс

Reading time9 min
Views34K
Они объясняли мне: «У тебя есть апельсин, так? Теперь ты разрезаешь этот апельсин на конечное количество кусочков, складываешь их обратно в апельсин, и он становится таким же большим как солнце. Истина или ложь?»
— Между кусочками нет пространства? — Нет.
— Невозможно! Такого просто не может быть.
— Ха! Попался! Идите все сюда! Это теорема Того-то о безмерной мере!
И когда им кажется, что они поймали меня, я напоминаю им: «Но вы сказали апельсин! А апельсиновую кожуру невозможно разрезать на кусочки тоньше атомов».
— Но у нас есть условие непрерывности. Мы можем резать бесконечно!
— Нет, вы сказали апельсин, поэтому я принял, что вы имеете в виду настоящий апельсин.
Так что я всегда выигрывал. Если я угадывал — здорово. Если не угадывал, то всегда мог найти в их упрощении что-то, что они упускали из виду.

Ричард Фейнман. «Вы, конечно, шутите, мистер Фейнман!»

Пролог


Так получилось, что с самого детства я увлекаюсь занимательными задачами. Решал я их, как правило, хорошо и быстро, хотя не обходилось и без курьезов. Например, на олимпиаде по математике за седьмой класс, куда я попал, будучи в шестом, была задача: найти такой-то угол в треугольнике, обладающем такими-то свойствами. Мои познания в области геометрии были на тот момент весьма отрывочны, однако кое на что их всё же хватило. Недолго думая, я построил этот треугольник в тетради с помощью циркуля и линейки, а затем измерил нужный угол транспортиром. Это было практически как в том анекдоте про «найдите икс», когда ученик ткнул в букву «x» пальцем с радостным криком «вот он!».
Как интересно! Что же было дальше?

Три мысли для любителей Android по мотивам I/O 2015

Reading time4 min
Views19K
В данной статье я хочу поделиться с сообществом тремя мыслями по мотивам Google I/O 2015, которые, на мой взгляд, могут быть очень полезными для всех любителей Android в этом году.

image

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

40+ полезных инструментов для разработчика приложений под Android

Reading time6 min
Views55K
Для выхода на мобильный рынок не нужно тратить тысячи долларов и месяцы работы. Для создания приложения для собственного бизнеса, продукта или услуги вам нужно лишь знать Java и найти подходящие инструменты. Сейчас таких инструментов уже тысячи. Мы попытались составить из них набор, необходимый для разработки, тестирования, монетизации, анализа и улучшения приложений.

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

41. JSONView
jsonview.com

image

Расширение для Firefox, которое позволяет просматривать JSON в браузере. Документ выглядит отформатированным, есть подсветка и можно сворачивать и раскрывать объекты и массивы.

40. Android GUI Set
www.bypeople.com/free-photoshop-android-interface-gui

image

Набор интерфейсов, в который входят и файлы для фотошопа. Главное меню, клавиатура, панель статуса, браузер, слайдер, список контактов, и т.д. и т.п.
Читать дальше →

Топ-10 data mining-алгоритмов простым языком

Reading time24 min
Views129K


Примечание переводчика: Мы довольно часто пишем об алгоритмической торговле (вот, например, список литературы по этой теме и соответствующие аналитические материалы) и API для создания торговых роботов, сегодня же речь пойдет непосредственно об алгоритмах, которые можно использовать для анализа различных данных (в том числе на финансовом рынке). Материал является адаптированным переводом статьи американского раработчика и аналитика Рэя Ли.

Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.

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

7 правил создания красивых интерфейсов

Reading time8 min
Views182K


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Именно поэтому мы решили её перевести. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Вступление


Сначала о главном. Это руководство не для всех. Это руководство прежде всего для:
  • разработчиков, которые хотят уметь делать хорошие интерфейсы для себя, если вдруг прижмёт;
  • UX-дизайнеров, которые знают, что хороший UX-дизайн продаётся лучше в красивой UI-упаковке.

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

А пока давайте я расскажу, что вы найдёте в этой статье.

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

Биолюминесценция в действии: пещерный червяк из Новой Зеландии превращает пещеры в восьмое чудо света

Reading time1 min
Views18K


Люминесцируют многие живые организмы на Земле — от простейших до насекомых и рыб. Для человека люминесценция живых организмов интересна как с научной точки зрения, так и с точки зрения чисто художественной: кого не восхищают светящиеся волны ночного прибоя? В Google можно найти много фотографий живых организмов, способных светиться, но я предлагаю обратить внимание на один интересный вид — Arachnocampa luminosa.

Это червь, который живет в пещерах Новой Зеландии, и освещает своды пещеры, из-за чего природное образование становится похожим на дом какого-то инопланетянина. Фотограф из Оклэнда по имени Джозеф Майкл решил запечатлеть красоты пещер, где поселился этот червяк.
Читать дальше →

Проект «Око» ч.6

Reading time10 min
Views21K


А вот немного запоздалая шестая часть «Ока».

Для тех, кто не понимает, что тут происходит:

Часть 1
Часть 2
Часть 3
Часть 4
Часть 5


Текст, как всегда, под катом.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity