Pull to refresh
1
0
Сергей Лебедев @Lebedevsd

Android Software Developer

Send message

Многомодульность в Android с точки зрения архитектуры. От А до Я

Reading time20 min
Views62K
Всем привет!

Не так давно мы с вами осознали, что мобильное приложение — это не просто тонкий клиент, а это действительно большое количество самой разной логики, которое нуждается в упорядочивании. Именно поэтому мы прониклись идеями Clean architecture, прочувствовали, что такое DI, научились использовать Dagger 2, и теперь с закрытыми глазами способны разбить любую фичу на слои.

Но мир не стоит на месте, и с решением старых проблем приходят новые. И имя этой новой проблемы — мономодульность. Обычно об этой проблеме узнаешь, когда время сборки улетает в космос. Именно так и начинаются многие доклады про переход на многомодульность (раз, два).
Но почему-то все при этом как-то забывают, что мономодульность сильно бьет не только по времени сборки, но и по вашей архитектуре. Вот ответьте на вопросы. На сколько у вас AppComponent большой? Не встречаете ли вы периодически в коде, что фича А зачем-то дергает репозиторий фичи Б, хотя вроде такого быть не должно, ну или оно должно быть как-то более верхнеуровнево? Вообще у фичи есть какой-то контракт? А как вы организовываете общение между фичами? Есть какие-то правила?
Вы чувствуете, что мы решили проблему со слоями, то есть вертикально все вроде хорошо, но вот горизонтально что-то идет не так? И просто разбиением на пакеты и контролем на ревью не решить проблему.

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

В своей статье я хочу вам рассказать, как дошел до многомодульности именно с архитектурной точки зрения. Какие проблемы меня беспокоили, и как я их старался поэтапно решать. А в конце вас ждет алгоритм перехода с мономодульности на многомодульность без слез и боли.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments18

Синдром самозванца

Reading time19 min
Views80K

«Как часто вы ощущаете синдром самозванца?
Ежедневно / Каждую неделю / Раз в месяц / Никогда»

В апреле 2016 года Джессика Баркер провела в Твиттере опрос на тему, часто ли специалисты по информационной безопасности сталкиваются с «синдромом самозванца». Результаты этого опроса легли в основу доклада Джессики на SteelCon 2016.

Вряд ли один этот твит можно квалифицировать как полноценное исследование, однако в качестве беглого анализа он сгодится. Так вот, опрос показал, что 84% безопасников ощущают данный синдром не реже раза в месяц. Одно это позволяет классифицировать его как одну из наиболее актуальных психологических проблем, с которыми можно столкнуться в IT.

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

Попробуем разобраться в проблематике под катом.
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments75

Усатый стрелок с полигональным пузом. Часть вторая

Reading time16 min
Views7.3K


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


А теперь, когда опубликована вторая часть, материала достаточно и для третьей части! :)

Сегодня в программе: смесь визуала и архитектуры проекта. Но сначала, ещё парочка деталей про тени.
Итак, поехали!

Total votes 31: ↑31 and ↓0+31
Comments7

Как я потратил 1000 часов на изучение английского языка в 2016 году

Reading time21 min
Views174K


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

Учась в бакалавриате, я смог развить словарный запас до 10 000 и прорвать барьер чтения художественной литературы. Но понимание разговорной речи на слух — задача куда более трудная. Я долгое время считал её нерешаемой, не верил в успех.

Эта статья — о том, как невозможное было сделано возможным, как в самом сердце магистратуры я проломил неприступную цитадель аудирования. Это бремя выпало на 2016 год. Я перепробовал множество различных учебных методик и расскажу вам о них во всех подробностях, по каким материалам я занимался и какие выводы делал. Эта статья — огромный склад опыта, и я надеюсь, что он будет вам полезен.
Читать дальше →
Total votes 57: ↑44 and ↓13+31
Comments135

«Во все тяжкие» или суровые реальности инди разработки Dark Forester

Reading time11 min
Views34K
image

Я хочу сразу сказать, что в первой части будет мало о самой разработке, а больше именно истории, трудности, социальные аспекты, проблемы с которыми может столкнутся инди разработчик, а также я не могу не упомянуть Москву, покер и спорт — без которых эта история не была бы полной. Итак, прежде, чем я начну с легенды, для того чтобы немного заинтересовать читателя, за время разработки с 2013 года по 2015 год я потолстел на 22кг и превратился из спортивного парня в человека, который с трудом узнавал себя в зеркале, я выпивал в год около тысячи банок ред булла, все началось с одной-двух, сейчас уже бывает редко, чтобы я пил меньше трех. Я спал по пять, а то и четыре часа. В течении двух лет я вставал в будние дни в пять утра и ехал на работу в другой город на электричке, чтобы вечером оставалось время поработать над игрой. Я по глупости отказался от предложения в 250.000 евро на разработку игры. Вероятно итогом такой жизни стало тяжелое воспаление легких, суд с бывшим работодателем, а также серьезные проблемы со спиной из-за постоянно сидячего образа жизни. Ах ну и если этого мало, то я бросил университет и сам уволился с работы!

Что ж поехали…
Читать дальше →
Total votes 82: ↑79 and ↓3+76
Comments92

5 UI фишек для современного Андроид приложения. Код, идеи и живой пример

Reading time5 min
Views22K
image

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

Статья не ставит своей целью научить проектировать пользовательский интерфейс или объяснить сокровенный смысл Material дизайна, но надеюсь, приведенные примеры смогут вдохновить Ввас на эксперименты с дизайном ваших приложений.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments15

5 книг для лета, которые советует прочитать Билл Гейтс

Reading time3 min
Views44K
image

Билл Гейтс один из немногих по-настоящему известных в индустрии людей, который регулярно озвучивает свой список книг для чтения. Ему вторит молодой коллега — Марк Цукерберг — специально создавший в Facebook отдельное сообщество A Year of the Book, в котором сообща выбирают самую значимую книгу года. Также в интернете можно встретить и другие подборки литературы, которые тот или иной заметный в своей сфере человек считает важными, но, судя по всему, только от Билла Гейтса можно получить настоящую "обратную связь" и узнать, что предпочитает читать самый богатый человек на Земле. У бывшего главы Microsoft для этой цели есть личный блог, где он и описывает свои впечатления от новинок.


Эта публикация — вторая в серии. Ранее можно было узнать о тех шести книгах, которые Гейтс рекомендовал в 2015 году.

Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments14

Управление глобальными хоткеями в OS X

Reading time2 min
Views7K
the night i lost control

В один прекрасный день, я пришел к необходимости назначать действия на глобальные шорткаты. Встроенный в систему способ (через создание сервиса в Automator) не подошел. У него куча ограничений — так, например, если у приложения нет системного меню или по какой-то причине недоступно конкретно меню с сервисами, то хоткей работать не будет. Вообще.

Полез искать 3rd-party решения. Их, конечно же, существует немало, но вот незадача — они либо кривые, либо перегружены ненужным (для меня) функционалом, либо стоят каких-то невозможных денег (в качестве самого яркого примера, вот тут у нас менеджер хоткеев за 60 баксов), либо все это в различных комбинациях.

Так как я большой любитель собственных велосипедов, вопрос что со всем этим делать решился достаточно быстро — писать свое. Открытое, бесплатное, без ненужных свистоперделок.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments30

Кюветы Android, Часть 3: SDK и RxJava (Финал)

Reading time18 min
Views20K
Android SDK и «внезапности» — почти близнецы. Вы можете наизусть знать development.android.com, но при этом продолжать рвать на себе волосы при попытке сделать что-то покруче, чем форма-кнопка-прогрессбар.
Это заключительная, третья, часть из серии статей о Кюветах Android'а. На деле конечно их должно было быть десятка два, но я слишком скромный. На этот раз я наконец дорасказываю о неприятностях в SDK, с которыми мне довелось столкнуться, а так же затрону популярную нынче технологию ReactiveX.
В общем, Android SDK, RxJava, Кюветы — поехали!
image
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments17

Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)

Reading time16 min
Views91K
То, о чем я попытаюсь сейчас рассказать, выглядит как настоящая магия.

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

Итак, магия:


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

Читать дальше →
Total votes 83: ↑82 and ↓1+81
Comments64

Астротрекер: мой опыт

Reading time5 min
Views31K
Дабы совместить два своих любимых хобби: фотографию и астрономию, решил попробовать себя в астрофотографии. Уж очень глубокое впечатление на меня оказывают фотографии Млечного Пути с огромными россыпями звезд. Тем более что каждое лето бываю на Кавказе, а небо там идеально подходит для наблюдений. Для качественной съемки звездного неба не обойтись без астротрекера. Для чего он нужен не вижу необходимости повторять, т.к. здесь уже было несколько статей на эту тему. Поэтому просто хотел бы поделиться своим опытом создания данного устройства, его настройки и использования. Саму конструкцию я почерпнул из данной статьи, немного упростил её, и оснастил собственными доработками. Подробности под катом.


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

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

26 советов начинающим стартаперам от опытного предпринимателя

Reading time11 min
Views94K
*Эта статья впервые была опубликована в журнале Forbes от 27 Июня 2014 года. На Хабре публикуется её полная версия.

Вот уже 9 лет я занимаюсь интернет-бизнесом и за это время успел создать и вывести на прибыльность 5 собственных стартапов. Кроме того, один из основных моих бизнесов – это заказная веб-разработка, куда часто приходят клиенты, которые хотят разработать свой интернет-стартап и поэтому я все 9 лет каждый день сталкиваюсь с разными проектами, многие из которых являются стартапами в полном смысле этого слова.
Читать дальше →
Total votes 71: ↑56 and ↓15+41
Comments54

Теория потока: как создать игру, которую полюбят все

Reading time7 min
Views81K
Всем привет.

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

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


Читать дальше →
Total votes 60: ↑51 and ↓9+42
Comments23

10 языков, на которые стоит перевести вашу мобильную игру

Reading time3 min
Views36K
Каждый третий заказчик, приходящий к нам в Alconost за локализацией, задает один и тот же вопрос: “а на какие еще языки посоветуете сделать перевод моей игры/приложения/сайта?”.

Чтобы ответить на этот вопрос хотя бы для разработчиков мобильных игр, мы изучили объемы продаж мобильных игр в Google Play и App Store в разных странах. Результат нас так удивил, что вместо обычной статьи мы захотели сделать видеоролик:



Чуть больше информации про топ-10 языков для локализации мобильных игр — под катом.
Читать дальше →
Total votes 37: ↑29 and ↓8+21
Comments16

Семейный бизнес в сфере IT. Время зарабатывать деньги

Reading time8 min
Views88K


Предисловие


В конце 2012 года от нас ушел менеджер по продажам. В январе 2013 уволился программист, в марте ― верстальщик. Казалось, что все рушится. Но как же так? Ведь мы только-только создали команду и наладили работу. Сложившаяся ситуация удручала…

Я могла бы обманывать себя и обвинять наших бывших коллег в безответственности и неблагодарности. Но, давайте посмотрим правде в глаза: если менее, чем за полгода уволились трое из четырех сотрудников, проблема явно в компании и ее руководителях.
Читать дальше →
Total votes 115: ↑104 and ↓11+93
Comments58

Локализация приложений для китайского рынка

Reading time5 min
Views41K
Собственно, ни для кого не секрет, что рынок КНР (а еще и Гонконга и Тайваня) — мечта для любого игропроизводителя. Учитывая азарт китайцев, их внушаемость и распространенность мобильных телефонов среди населения (а также количество абонентов), удачный вход на китайский рынок может принести огромную прибыль.

В этой публикации я постараюсь описать весь этот трудоемкий путь, а так же основные подводные камни, могущие встретиться на этом пути. Добро пожаловать под кат.


Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments29

Android L, Nexus 5, Google Search и все-все-все

Reading time11 min
Views104K
Привет, Хабр! Пока любители фруктовых девайсов меряются лопатами и отсутсвующими/запаздывающими фичами, а Siri до сих пор не умеет говорить по-русски, мы можем насладиться прогрессом другой ОС и её сервисов. Под катом можно узнать, что отличает внешне Android L от 4.4.4, каких ресурсов он требует для работы, чего нам ждать от девайсов, которые получат апдейт. Ну и ещё немного расскажу о голосовом поиске, который не так давно получил несколько весомых обновлений, но они прошли как-то мимо Хабра. Все трюки в этом посте выполенны профессиональными смартфонами, повторяйте дома на свой страх и риск.



Читать дальше →
Total votes 83: ↑68 and ↓15+53
Comments89

Как мы А/Б тесты проводим

Reading time3 min
Views27K
В последнее время на Хабре появляется все больше постов о целесообразности проведения А/Б тестирований (об их пользе, увеличении конверсий). Если внимательно следовать инструкциям — получается очень интересная вещь: незначительное изменение интерфейса и логики вывода информации может привести к значительному изменению конверсии, если перемножить все цифры конверсий под подобным катом — то можем получить рост и в 2 раза.

Уже представляю себе десятки, а то и сотни вебмастером и менеджеров, которые проверяют с помощью А/Б тестов каждое изменение своего проекта, заказывают аудит в usability-лабораториях и ждут роста конверсий в пресловутые 2 раза. Что происходит на самом деле — давайте разберемся…
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments59

Как улучшить свой стиль программирования?

Reading time6 min
Views139K

Исповедь 1


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

Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
Читать дальше →
Total votes 235: ↑202 and ↓33+169
Comments248
1

Information

Rating
Does not participate
Location
Düsseldorf, Nordrhein-Westfalen, Германия
Registered
Activity