Pull to refresh
5
0
Volodymyr Chernyshov @idg_chernyshov

Android Developer

Send message

Конечные автоматы на страже порядка

Reading time7 min
Views6.2K


При разработке сложных систем часто сталкиваешься с проблемой прозрачности кода, точным описанием бизнес-логики и масштабирования решения. Однажды нам поставили задачу: реализовать функциональность тарифов, в которой много бизнес-логики. При этом сроки были сжаты, да ещё и повышенные финансовые риски. Чтобы решить эту задачу быстро, эффективно и прозрачно, мы решили использовать конечные автоматы (state machine).
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments8

Как сделать цветные тени в Android с градиентом и анимацией

Reading time3 min
Views8.2K

На презентации новых макбуков обратил внимание на картинку процессора: переливающиеся цветные тени на темном фоне. Давайте нарисуем на Android такие-же

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments7

Kotlin FP: моноиды и сортировки

Reading time5 min
Views3.7K
В данной статье мы рассмотрим понятие моноид и узнаем, как он может помочь нам при сортировке данных.

Интересующихся функциональным программированием на Kotlin также приглашаю заглянуть на мой youtube-канал, где я разбираю разные интересные моменты из Kotlin FP.


Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments11

6 ошибок мышления, из-за которых вы остаетесь на нелюбимой работе

Reading time8 min
Views71K

В начале 2020 года специалисты сервиса по поиску работы «Работа.ру» провели социальный опрос и выяснили, что в следующие 12 месяцев 74% россиян хотят заняться вопросом нового трудоустройства. 53% респондентов рассказали, что недовольны текущим уровнем заработной платы. Но почему в итоге ничего не происходит?

Лишь малая часть из тех, кто планирует сменить место работы, в конечном итоге делает это. Оказывается, в большинстве случаев основная причина бездействия — когнитивные ошибки. Мы решили разобраться, что это и из-за каких именно ошибок в мышлении люди отказываются менять карьеру и добиваться новых высот.

Читать далее
Total votes 52: ↑41 and ↓11+30
Comments36

Разработка мобильных приложений на заказ недорого: реальность или иллюзия

Reading time9 min
Views9.8K
Когда вы приходите к решению о создании мобильного приложения, не имея в разработке опыта, неизбежно возникает вопрос найма разработчиков. Сам по себе вопрос не дает ответа, поэтому приходится анализировать плюсы и минусы услуг аутстаффинга или аутсорсинга различных исполнителей. Первый показатель, который приходится учитывать при анализе – цена. Хочется дешевле, но обойдется ли в итоге дешево? Этой статьей мы в Omega-R хотим показать подводные камни, которые могут скрываться за часто встречающимися низкими ценами.


Читать дальше →
Total votes 15: ↑8 and ↓7+1
Comments8

Form design patterns. Обзор книги

Reading time4 min
Views17K
image

Введение от автора обзора


Книга раскрывает, порой не очевидные для дизайнеров и фронтендеров, темы оформления полей, концепции работы с типами данных и юзабилити. Книга будет полезна и новичкам и разбирающимся в теме проектировщикам интерфейсов, т. к. первым даст понимание основ, а вторым пищу для размышлений над, порой спорными, паттернами проектирования. Обзор будет представлен в виде коротких тезисов из книги и краткими комментариями обзорщика.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments36

Шпаргалка по Smali на русском

Reading time13 min
Views34K

Русская шпаргалка по Smali


Приветствую, любители реверс-инжинирить Android. Перед вами шпаргалка по Smali — аналогу ассемблера для Android-приложений.



Изначальный текст на русском взят отсюда. Там текст появился из машинного перевода официальной документации.


В итоге, оформил сухой текст + поправил небольшие опечатки и корявости перевода. По поводу замечаний и предложений можете писать либо мне в ЛС, либо оформлять PR на Gist.

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

Какие вопросы задают Junior iOS разработчику на первых собеседованиях

Reading time5 min
Views48K

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


Здравствуй, Хабр. За недавние 7 месяцев обходил собеседований, где-то больше 20. Все они были на позицию Junior iOS developer. В итоге после многочисленных терзаний и подтягиваний различных нюансов мобильной разработки, мне дали офер в компанию, чему я был безумно рад.

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

Писать я тут буду только для Junior Swift iOS developer позиций. Другие собеседования на тех позицию не проходил.

Я перечислю списком вещи которые с вероятностью 99% вас будут спрашивать, потом я добавлю пару слов о каждом пункте.

Итак, начнем.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments12

Authenticate me. If you can…

Reading time14 min
Views7.1K


I frequently hear questions like "How to implement authentication in an Android app?", "Where to store a PIN?", "Hey man, will I be secure if I implement an authentication feature in such a way?" and a lot of the kind. I got really tired answering these questions so I decided to write all my thoughts about it once to share with all questioners.

Read more →
Total votes 13: ↑10 and ↓3+7
Comments0

Android. Surface

Reading time12 min
Views11K

Дисклеймер


Данная статья предназначена для начинающих андроид разработчиков с небольшим опытом работы с видео и/или камерой, особенно тех кто начал разбирать примеры grafika и кому они показались сложными — здесь будет рассмотрен похожий код с упрощенным описанием основных шагов, проиллюстрированных диаграммами состояний.


Почему в заголовке вынесен класс Surface? В android множество классов имеют в своем названии слово Surface (Surface, SurfaceHolder, SurfaceTexture, SurfaceView, GLSurfaceView) они не связаны общей иерархией тем не менее объединены низкоуровневой логикой работы с вывод изображений. Мне показалось разумным использовать его в названии чтобы подчеркнуть попытку раскрытия работы именно с этой частью SDK.

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

История систем управления версиями

Reading time17 min
Views35K


В этой статье сравним с технической точки зрения самые известные системы управления версиями (в будущем планируем расширить список):

  1. Первое поколение
  2. Второе поколение
  3. Третье поколение
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments25

Дайджест интересных материалов для мобильного разработчика #323 (18 — 24 ноября)

Reading time4 min
Views5.3K
В нашем новом выпуске разработка для Авроры, Дубай Молл в смартфоне, тренды UX-дизайна, инструменты HTML5-разработки, доходы 1% топовых издателей, которые получают 93% денег всего рынка приложений. Интересный дайджест у нас получился!

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

Цепи Маркова для процедурной генерации зданий

Reading time15 min
Views13K
image

Примечание: полный исходный код этого проекта можно найти [здесь]. Так как он является частью более масштабного проекта, я рекомендую смотреть коммит на момент выпуска этой статьи, или файл /source/helpers/arraymath.h, а также /source/world/blueprint.cpp.

В этой статье я хочу подробно рассказать о принципах использования цепей Маркова и статистики для процедурной генерации 3D-зданий и других систем.

Я объясню математические основы работы системы и постараюсь сделать объяснение как можно более общим, чтобы вы могли применять эту концепцию в других ситуациях, например, для генерации 2D-подземелий. Объяснение будет сопровождаться изображениями и исходным кодом.

Этот метод является обобщённым способом процедурной генерации систем, удовлетворяющих определённым требованиям, поэтому я рекомендую дочитать хотя бы до конца первого раздела, чтобы вы могли понять, сможет ли эта методика быть полезной в вашем случае, потому что ниже я объясняю необходимые требования.
Total votes 30: ↑30 and ↓0+30
Comments5

Топ 20 навигационных фич в IntelliJ IDEA. Часть 1

Reading time5 min
Views54K
Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс». И хотя в данном материале речь пойдет преимущественно о Java, материал будет полезен Android-разработчикам




Продолжая серию статей, в которых я освещаю основные фичи IntelliJ IDEA (ранее я писал об основных возможностях дополнения и рефакторинга кода), я хотел бы поговорить о навигации, которая является еще одной возможностью повышения производительности IDE, которая экономит вам много времени, при условии, конечно, что вы используете ее правильно.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments15

Топ 20 навигационных фич в IntelliJ IDEA. Часть 2

Reading time5 min
Views35K
Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс». И хотя в данном материале речь пойдет преимущественно о Java, материал будет полезен Android-разработчикам




Первая часть тут
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments5

Оценка срока проекта. Почему она почти всегда сильно занижена и что с этим делать

Reading time7 min
Views11K
При расчёте срока проекта традиционно мы оцениваем длительность промежуточных шагов, затем их суммируем и прибавляем буфер на всякие случайности. Затем руководство режет нам этот срок вдвое. В рамках данной заметки автора будут интересовать наши расчёты, потому что даже руководитель проектов с большим опытом зачастую понимает, что рассчитанный срок слишком короткий и сильно, иногда в разы, расходится с его личной экспертной оценкой. Да, он поправит оценки сроков проекта и промежуточных шагов до своей экспертной оценки и при истинном мастерстве с некоторыми переработками уложится в срок с точностью до 15%, но осадочек останется.

Данная заметка объясняет причину расхождения экспертной и теоретически рассчитанной оценок. Также рассмотрено, почему “завышенная” экспертная оценка обычно оказывается занижена, если она не делается на основе статистических данных по выполнению аналогичных проектов. Под конец раскрыто как корректно посчитать срок проекта и объяснить ситуацию заинтересованным лицам до начала проекта или в ходе проекта.
Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments12

Я пережила выгорание, или Как остановить хомячка в колесе

Reading time8 min
Views60K
Привет, Хабр. Не так давно я с большим интересом прочла здесь несколько статей со здравыми рекомендациями заботиться о сотрудниках до того, как они «сгорят», перестанут выдавать ожидаемый результат и в конечном итоге приносить пользу компании. И ни одной — с «другой стороны баррикад», то есть от тех, кто действительно выгорел и главное, справился с этим. Я — справилась, получила рекомендации от бывшего работодателя и нашла работу ещё лучше.

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

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

image

Аллегория с хомячком может показаться кому-то обидной, но она наиболее точно отражает всё произошедшее. Сначала хомячок радостно прыгает в колесо, потом от скорости и адреналина кружится голова, а потом в его жизни остаётся только колесо… Собственно, как я слезла с этой карусели, а также честная рефлексия и непрошеные советы, как пережить выгорание — под катом.
Читать дальше →
Total votes 122: ↑110 and ↓12+98
Comments301

Пишем API на Python (с Flask и RapidAPI)

Reading time8 min
Views110K


Если вы читаете эту статью, вероятно, вы уже знакомы с возможностями, которые открываются при использовании API (Application Programming Interface).

Добавив в свое приложение один из многих открытых API, вы можете расширить функциональность этого приложения либо же дополнить его нужными данными. Но что, если вы разработали уникальную функцию, которой хотите поделиться с коммьюнити?
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments7

Уменьшаем время сборки ваших Android-проектов

Reading time6 min
Views10K
Доброе утро! Начинаем понедельник с материала, перевод которого подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс».



Недавно я переносил кодовую базу Android в Kure на AndroidX. Мне показалось, что это прекрасная возможность поработать над скоростью сборки проекта. У Gradle всегда была плохая репутация из-за медлительности и ресурсоемкости, но я был очень удивлен, что незначительные изменения в конфигурации сборки могут так значительно увеличить ее скорость.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments6

TensorFlow для начинающих. Часть 1: общие сведения, установка библиотеки

Reading time4 min
Views61K
TensorFlow — это опенсорсная библиотека, созданная Google, которая используется при разработке систем, использующих технологии машинного обучения. Эта библиотека включает в себя реализацию множества мощных алгоритмов, рассчитанных на решение распространённых задач машинного обучения, среди которых можно отметить распознавание образов и принятие решений.

image

Этот материал посвящён основам TensorFlow и рассчитан на читателей, которые ничего не знают о данной библиотеке.
Читать дальше →
Total votes 41: ↑32 and ↓9+23
Comments16

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity