Pull to refresh
16
0
Сергей Тарасевич @NOSTRA

User

Send message

Moxy — реализация MVP под Android с щепоткой магии

Reading time16 min
Views146K

Что такое MVP


MVP – это способ разделения ответственности в коде приложения. Model предоставляет данные для Presenter. View выполняет две функции: реагирует на команды от пользователя(или от элементов UI), передавая эти события в Presenter и изменяет gui по требованию Presenter. Presenter выступает как связующее звено между View и Model. Presenter получает события из View, обрабатывает их(используя или не используя Model), и командует View о том, как она должна себя изменить.

У такого подхода к разделению ответственности есть ряд плюсов:
  1. Сильно упрощается написание тестов к коду
  2. Легко менять какую-то часть, не ломая при этом другую
  3. Код разбивается на мелкие кусочки, за счёт чего он становится более понятным и читабельным

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

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments46

Справочник по синхронизаторам java.util.concurrent.*

Reading time14 min
Views268K
Целью данной публикации не является полный анализ синхронизаторов из пакета java.util.concurrent. Пишу её, прежде всего, как справочник, который облегчит вхождение в тему и покажет возможности практического применения классов для синхронизации потоков (далее поток = thread).

В java.util.concurrent много различных классов, которые по функционалу можно поделить на группы: Concurrent Collections, Executors, Atomics и т.д. Одной из этих групп будет Synchronizers (синхронизаторы).



Синхронизаторы – вспомогательные утилиты для синхронизации потоков, которые дают возможность разработчику регулировать и/или ограничивать работу потоков и предоставляют более высокий уровень абстракции, чем основные примитивы языка (мониторы).
Читать дальше
Total votes 45: ↑41 and ↓4+37
Comments15

Сбербанк делится опытом создания приложения в Material Design: стили и темы

Reading time20 min
Views52K
Привет, Хабрахабр! Не так давно мы подводили итоги конкурса по Material Design, и в комментариях нас просили показать реально популярные и красивые Material-приложения. Что же, встречайте: «Сбербанк Онлайн» в новом, современном интерфейсе. Про процесс создания приложения интереснее узнать от самих создателей.

Мы передаём слово команде разработчиков Android-приложения Сбербанка, чтобы вы услышали об опыте создания такой сложной штуки, как UI мобильного банк-клиента, из первых уст. Большую часть поста написал freeuser, так что спасибо говорите ему. ;)
Читать дальше →
Total votes 39: ↑31 and ↓8+23
Comments57

Публикация Android библиотеки в jCenter

Reading time8 min
Views19K


В жизни каждого андроид разработчика настаёт момент, когда количество самописных утилит и хелперов, качующих из проекта в проект, переваливает за десяток. В этом случае хорошей практикой будет оформление подобных хелперов в виде самостоятельных «модулей» в терминах Android Studio. Еще лучше, если Вы собираетесь поделиться Вашими наработками с комьюнити, снабдив исходный код подходящей лицензией. Но просто залить исходники на GitHub в этом случае будет недостаточно – хочется, чтобы любой желающий мог подключить библиотеку с помощью однострочной Gradle зависимости, например такой:

dependencies {
   compile 'com.github.romangromov:simpleprefs:0.0.8'
}

О том, как этого добиться и пойдет речь в данной статье.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments5

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

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


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

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

Чеклист при подготовке презентации

Reading time3 min
Views7.1K
В последнее время я наблюдал несколько десятков презентаций, которые начинались вот так:

— Мы делаем систему управления электронным обучением…

— Мы провели исследование поведения посетителей на нашем сайте…

— Наша компания была основана более ста лет назад…

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

— Мы предлагаем SAAS-решение…

— Наши технологии…

И мое любимое:

— Начну рассказ с того, кто мы такие…

Почему все так уверены, что именно это в первую очередь интересует слушателей? Единственное что выступающий гарантированно получит в таком выступлении — это претензии к себе лично и своей компании.

Я видел как один из директоров Microsoft схлопотал громкое улюлюканье, а представитель Ростелекома — едкий троллинг из зала только потому, что выступили по этому шаблону.

Почему каждый раз это происходит?

Читать дальше →
Total votes 75: ↑68 and ↓7+61
Comments36

Спать мало, но правильно?

Reading time7 min
Views897K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →
Total votes 713: ↑670 and ↓43+627
Comments420

Создание приложения для Windows Phone 7 от начала до конца. Часть 1

Reading time4 min
Views41K
Эта статья и прилагаемое к ней приложение-пример поможет вам начать создавать полноценные приложения для Windows Phone 7. Вы узнаете об общих вопросах разработки на примере создания простого приложения для отслеживания количества топлива, потребляемого вашим автомобилем. В этой статье описываются вещи, которые вы должны знать, прежде чем приступить к созданию приложений для Windows Phone.

Вы также узнаете, как выполнять следующие задачи (ниже указаны ссылки на другие части):
Читать дальше →
Total votes 64: ↑46 and ↓18+28
Comments8

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

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

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

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

Психологическая деформация программистов. Взгляд с обеих сторон баррикад

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

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

И что же них такого деформированного?
Total votes 461: ↑436 and ↓25+411
Comments558

Настройка IDEA для чистокодеров

Reading time4 min
Views286K
Я люблю две вещи: Intellij IDEA и чистый код (Clean Code).
IDEA создана для чистого кода. Многие настройки по умолчанию уже стимулируют вас писать как надо.


Но она всё ещё не идеальна.
Когда я устанавливаю новую копию IDEA, я пробегаю по настройкам и выставляю свои любимые галочки.
Хочу ими с вами поделиться в надежде, что когда-нибудь и они станут стандартом.

Мои любимые настройки IDEA с картинками
Total votes 103: ↑76 and ↓27+49
Comments60

Подготовка к экзамену Oracle Java SE 7 Programmer II (1Z0-804)

Reading time14 min
Views80K

Приветствую уважаемых хабражителей и Java-программистов!
Cтатья посвящена подготовке к сдаче экзамена Oracle Java SE7 Professional с кодовым номером 1Z0-804. Про это на Хабре уже было написано множество постов (например здесь, здесь, тут, здесь, здесь, тут, тут, и вот тут), поэтому постараюсь не повторяться и дополнить заметками о том что наиболее часто встречалось, важными нюансами, которые на мой взгляд были пропущены или недостаточно хорошо освещены в указанных статьях, и вообще в общедоступной литературе (сразу отмечу, что материал не претендует на полноту, здесь я лишь старался обозначить каверзные вопросы с экзамена и лаконично изложить некоторые сложные вещи). Так же поделюсь своими соображениями насчет того, по каким материалам лучше готовиться. С первого раза экзамен сдать не получилось, поэтому начал сохранять для себя различные заметки, где записывал всё что мне казалось сложным или трудно-запоминаемым. Которыми теперь и решил с вами поделится. Заранее прошу проявить понимание, если вы вдруг заметите ошибку, недочёт или очепятку — пишите в комментарии.

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments23

Как я не спал год или создание социального Android приложения

Reading time8 min
Views35K
Доброго времени суток, уважаемые хабражители. Я работаю в большой IT компании Android-разработчиком.

Все началось примерно год назад. Тогда, я решил начать свой первый проект. Идея приложения пришла мне практически сразу. Ее первоначальная версия звучала примерно так — «Я хочу, чтобы каждый мог узнать независимое мнение людей всего мира, по интересующему вопросу».

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

В статье присутствуют цены на те или иные услуги сайтов с которыми мне удалось связаться.
Читать дальше →
Total votes 119: ↑114 and ↓5+109
Comments30

Антон Кекс: Как нам спасти Java?

Reading time2 min
Views36K
Здравствуй, %USERNAME%!

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

Читать дальше →
Total votes 39: ↑26 and ↓13+13
Comments60

Темы оформления. С блэк-джеком и WeakReference

Reading time10 min
Views15K
Как-то раз передо мной встала задача сделать в приложении на Android поддержку тем оформления. Что хотелось получить:

  1. Возможность переключить оформление — изменить некоторые цвета и графику
  2. Смена должна происходить “на лету”, для пользователя должно измениться только оформление, все остальное (содержание полей ввода, позиция элементов в списке и т.п.) меняться не должно
  3. В перспективе хотелось бы, чтобы тема могла изменяться и без участия пользователя, например по времени суток
  4. Не хотелось бы в значительной степени изменять уже существующий код или разметку. В идеале хотелось бы просто как-то пометить элементы в разметке
  5. Было бы здорово уметь подгружать новые темы без обновления приложения.


О том, чего удалось добиться и как это было реализовано — под катом.



Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments11

Инструменты студии мобильной разработки

Reading time4 min
Views38K


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

В нашей компании используется много подобных сервисов и инструментов, поэтому я решил рассказать вам кратко о лучших из них. О базовых вещах на подобии Basecamp, GitHub и т.п. речи не будет, т.к. это не сугубо специфические вещи для мобильной разработки.

Пройдемся по дизайну, серверным решениям, тестированию и аналитике.
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments22

Java собеседование. Коллекции

Reading time10 min
Views890K
С недавнего времени у меня появилась настойчивая мысль, что профессиональное развитие сильно замедлилось и это хочется как-то исправить. Да, читаю книги, слушаю курсы, но в то же время приходит и понимание того, что возможно пришло время сменить работу, здесь вроде как все изучено, плавно уходим в рутину. Данная мысль сподвигла меня на рассылку своего резюме в несколько компаний — лидеров рынка. После прохождения собеседования в 3 из них, я решил, как водится внести свои 5 копеек в освещение обширной темы собеседования, а именно технических вопросов по Java коллекциям, с которыми приходится сталкиваться. Да, знаю, читатель скажет: «коллекции — избитая тема, сколько можно», но часть из приведенных ниже вопросов, я задавал своим знакомым разработчикам, которые занимают именно позиции разработчиков («крепких середнячков», по меркам недалекой от Москвы глубинки, которые уверенно справляются со своей работой на практике, а вот в теории скажем так есть пробелы, потому, что работа не требует решения каких-то нетривиальных задач, да и потому что не всем это интересно — изучать как внутри работает структура данных), вызывало растерянность. Думаю, что рассмотренный материал будет не очень интересен разработчикам выше уровня Junior (я попрошу их комментировать, дополнять и критиковать изложенный здесь материал), а вот Junior`ы уверен, найдут в этой статье интересное для себя.
Читать дальше →
Total votes 97: ↑86 and ↓11+75
Comments306

Java сертификация. Подготовка к SCJP

Reading time5 min
Views70K
В этом месяце я сдавал экзамен SCJP. В этом топике я расскажу о подготовке и экзамене.
В основном для тех, кто собирается сдавать и кому нужно больше информации об этом.

Уточнение


Так как Sun'a больше нет, то и экзамена SCJP тоже нет. Теперь он значится так:
1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam.
прочитать об экзамене и посмотреть задачи
Total votes 89: ↑84 and ↓5+79
Comments43

Реализуем RESTful Web Service на java

Reading time8 min
Views185K
Добрый день всем хаброжителям!

Поводом к написанию статьи послужило, то что к моему большому удивлению на хабре я не нашёл статьи о реализации RESTful Web Service на Java, может, конечно, плохо искал. Да написано про RESTful web services очень много, но как то вот так, чтобы простенько с примерами кода, рабочий сервис, не так уж и легко найти и не только на хабре…

Вообще с REST я познакомился совсем недавно, не больше месяца назад. Так что буду очень благодарен за советы, поправки и критику!

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

По моему первому впечатлению: действительно вещь очень удобная, а главное очень простая, ещё и если использовать JSON, а не XML, ну по крайней мере мне так показалось после опыта работы с SOAP и WSDL. Ну, да об этом я думаю и так все знают, кто хоть немного работал с веб сервисами.

Так что, кто заинтересовался реализацией, прошу под кат
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments40

Правильный Singleton в Java

Reading time4 min
Views423K
Уверен, каждый из читателей, знает что такое шаблон проектирования “Singleton”, но не каждый знает как его программировать эффективно и правильно. Данная статья является попыткой агрегирования существующих знаний по этому вопросу.

Кроме того, можно рассматривать статью как продолжение замечательного исследования, публиковавшегося на Хабрахабре ранее.
Читать дальше →
Total votes 67: ↑53 and ↓14+39
Comments84

Information

Rating
Does not participate
Location
Гродно, Гродненская обл., Беларусь
Date of birth
Registered
Activity