Pull to refresh
13
0
Илья Павловский @TranE91

Android Software Engineer

Send message

MDM в Android: плюсы, минусы, подводные камни

Reading time15 min
Views10K

Как только у сотрудника какой-либо компании появляется необходимость выполнять задачи на мобильных устройствах (пусть даже элементарно читать рабочую почту) и, соответственно, получать с них доступ к данным компании, появляются риски. Мобильные устройства (как и все эндпоинты) подвержены ряду уязвимостей — приложения, установленные не через официальные магазины, могут оказаться вредоносными; подключение к незащищенной Wi-Fi-сети может привести к утечке данных; устройство может быть утеряно или украдено… Отсюда возникают самые популярные сценарии управления устройствами — удаленное стирание данных, ограничение на источники установки приложений, требования к используемым сетям, запрет копирования конфиденциальных данных (например, на внешний носитель) и другие.

Тут-то и появляется необходимость в MDM, или Mobile Device Management, — наборе сервисов для защиты мобильных устройств сотрудников компании.

Меня зовут Мария Глущенко (@mglushchenko), я —— Android-разработчик. В этой статье расскажу, какие режимы доступны для ОС Android и как реализовывать их функционал, в чем преимущества и недостатки этих решений и как мы их используем в мобильной команде «Лаборатории Касперского».

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

Избавляемся от мусора в Java

Reading time6 min
Views64K

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

Кто занимается этой очисткой? Как и когда очищается память? Как выглядит структура памяти? Давайте разберем с этим подробнее.

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments0

Грамотное составление и продвижение вашего резюме

Reading time9 min
Views22K
image

Для многих процесс составления резюме муторный и затягивается. Казалось бы, состряпать 1 – 2 листа своей карьеры (если есть что туда вписать) – лёгкое дело. Но это, зачастую, заблуждение.

Данная статья-гайд будет универсальной и больше направлена на не ИТ-специалистов. Я прекрасно понимаю, что львиную долю хабра составляют именно разработчики (очень хочу в это верить), но явно есть и люди других специальностей. Уделим время всем, никого не обидим.

В статье я расскажу о наблюдениях из личной практики (опыт работы в сфере HR более 15 лет, начиная от рекрутёра до HR в Parallels), все тонкости составления, продвижения вашего резюме. Обсудим взгляд с двух сторон – работодатель/соискатель. Разберём на молекулярном уровне все основные моменты.

Лайфхаки для разработчиков вынесу отдельным разделом, ибо там своя специфика.
Читать дальше →
Total votes 88: ↑80 and ↓8+72
Comments30

Как понять, что перед вами плохой разработчик

Reading time12 min
Views178K

Мало просто сменить свою сферу работы на IT, желательно еще и стать хорошим разработчиком. Бывший тимлид и консультант Александр Усков рассказывает, как понять, что перед вами плохой разработчик и что с ним вообще можно делать

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

Читать далее
Total votes 301: ↑197 and ↓104+93
Comments402

Год в Польше по PBH

Reading time20 min
Views84K

Всем привет, меня зовут Илья и я хочу поделиться своим опытом релокейта из Беларуси в Польшу.

С середины 2020 года Польша открыла возможность получения визы для сотрудников и предпринимателей в сфере IT по специальной программе PBH. В период европейского локдауна, это был один из немногих прозрачных способов получения шенген визы. Мне повезло, и моя компания предложила релокацию для желающих этого сотрудников. Как итог, в декабре 2020 года я начал путь в новой стране. В статье я постараюсь ответить на вопросы как для потенциальных релокантов, так и для тех, кто уже начал свой путь в стране.

Dalej
Total votes 57: ↑51 and ↓6+45
Comments71

Garbage Collection наглядно

Reading time10 min
Views284K
В последнее время я работаю с клиентами над вопросами настроек JVM. Смахивает ситуация на то, что далеко не все из разработчиков и администраторов знают о том, как работает garbage collection и о том, как JVM использует память. Поэтому я решил дать вводную в эту тему с наглядным примером. Пост не претендует на то, чтобы покрыть весь объем знаний о garbage collection или настройке JVM (он огромен), ну и, в конце концов, об этом много чего хорошего написано уже в Сети.
Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments49

Стоп рефакторинг. Kotlin. Android

Reading time17 min
Views9.5K

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

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

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments6

Navigation Component-дзюцу, vol. 1 — BottomNavigationView

Reading time11 min
Views17K


Два года назад на Google I/O Android-разработчикам представили новое решение для навигации в приложениях — библиотеку Jetpack Navigation Component. Про маленькие приложения уже было сказано достаточно, а вот о том, с какими проблемами можно столкнуться при переводе большого приложения на Navigation Component, информации практически нет.


В этой и следующих двух статьях я расскажу о кейсах, с которыми может встретиться разработчик, желающий опробовать Navigation Component в большом Android-приложении.

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

Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации

Reading time17 min
Views24K

Оптимизация сборки — вишенка на торте мобильного приложения. К счастью, существуют инструменты, проверенные временем и заслужившие доверие сообщества. К сожалению, ее не всегда воспринимают всерьез и не уделяют ей должного внимания. Почему в оптимизации должны быть заинтересованы все? Как выжать максимум из мобильного приложения? Как работают инструменты, которыми мы привыкли пользоваться в паре строк? И что нам продают под словом «обфускация»?

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

Разрушаем мифы о производительности Android

Reading time9 min
Views7.9K

За прошедшие годы возникло немало мифов о производительности Android. Хотя некоторые мифы могут показаться занятными или забавными, пойти по ложному следу при создании эффективных приложений для Android — полная противоположность веселья.

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

Читать далее
Total votes 21: ↑18 and ↓3+15
Comments5

Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android

Reading time10 min
Views7.2K
Полнотекстовый поиск необходим в приложениях для того, чтобы быстро находить совпадения в большом объеме данных. Такая возможность удобна, например, для поиска товаров, фильмов, рецептов, научных статей, а также фрагментов текста в электронных книгах. Хотя зачастую поиск реализуют на сервере, иногда бывает необходимо работать в оффлайне, повысить отзывчивость мобильного приложения, избежав задержек при взаимодействии с сервером. В таких случаях используют полнотекстовый поиск — Full-Text Search.

В этой статье рассмотрим особенности полнотекстового поиска в Android с использованием FTS3, FTS4 и FTS5. Статья будет наиболее полезна для читателей, знакомых с Android и SQLite.

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

Анимация в Android: плавные переходы фрагментов внутри Bottom Sheet

Reading time19 min
Views17K
Написано огромное количество документации и статей о важной визуальной составляющей приложений — анимации. Несмотря на это мы смогли вляпаться в проблемы столкнулись с загвоздками при её реализации.

Данная статья о проблеме и анализе вариантов её решения. Я не дам вам серебряную пулю против всех монстров, но покажу, как можно изучить конкретного, чтобы создать пулю специально для него. Разберу это на примере того, как мы подружили анимацию смены фрагментов с Bottom Sheet.


Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments17

GitHub Flow

Reading time4 min
Views101K

Увидев в очередной раз базворд GitFlow я психанул и решил перевести описание более простой и менее проблемной схемы работы с ветками под названием GitHub Flow. Именно её имеет смысл использовать по умолчанию, переходя к какой-то другой лишь в случае непреодолимых обстоятельств.


Создайте ветвь



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

Читать дальше →
Total votes 48: ↑32 and ↓16+16
Comments23

Управление жестами: обработка конфликтов жестов. Часть 3

Reading time9 min
Views2.6K
Перевод статьи подготовлен в преддверии старта продвинутого и базового курсов по Android-разработке.




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

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

Что мы понимаем под конфликтами жестов? Давайте рассмотрим это на примере. Допустим, у нас есть музыкальный проигрыватель, который позволяет пользователю проматывать текущую песню, перетаскивая SeekBar.


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

Монорепозитории: пожалуйста, не надо (часть 2)

Reading time10 min
Views19K
Всем привет!

Итак, новая порция обещанного холивара про монорепозитории. В первой части мы обсуждали перевод статьи уважаемого инженера из Lyft (и ранее Twitter) о том, какие есть недостатки у монорепозиториев и почему они нивелируют почти все достоинства этого подхода. Лично я во многом согласен с доводами, приведенными в оригинальной статье. Но, как и обещал, чтобы поставить точку в этом обсуждении, я бы хотел озвучить еще несколько моментов, на мой взгляд даже более важных и более практических.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments101

Машинное обучение на Android

Reading time4 min
Views11K
Привет, Хабр! Представляю вашему внимаю перевод статьи из журнала APC.

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

Однако недавно в Google Play появилось новое бесплатное приложение под названием «DataLearner», с помощью которого можно добывать данные. Оно не требует внешних ресурсов и доступа с полномочиями суперпользователя.

Вычислительные ресурсы смартфонов


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

У компьютерного обучения есть свои уровни сложности. Если представить, что такая недавно появившаяся техника глубокого обучения, как свёрточная нейросеть (CNN) – это автомобиль с высокой удельной мощностью, то другие техники, например, дерево поиска решений и многие прочие «лесные» методы обучения – это горячие «хэтчбеки». Они показывают отличные результаты, быстры и легки даже при ограниченных вычислительных возможностях CPU.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments4

Как происходит рендеринг экрана сообщений ВКонтакте

Reading time14 min
Views18K
Что делает ВКонтакте, чтобы уменьшить лаги отрисовки? Как отобразить очень большое сообщение и не убить UiThread? Как уменьшить задержки при скролле в RecyclerView?



Мой опыт основан на работе отрисовки экрана сообщений в Android-приложении VK, в котором необходимо показывать огромное количество информации с минимумом тормозов на UI.

Я программирую под Android уже почти десять лет, ранее занимался фрилансом для PHP/Node.js. Сейчас — старший Android-разработчик ВКонтакте.

Под катом — видео и расшифровка моего доклада с конференции Mobius 2019 Moscow.
Total votes 46: ↑45 and ↓1+44
Comments16

Сборка Android-приложения. Задачка со звёздочкой

Reading time12 min
Views18K


Привет, Хабр! Летом я выступал на Summer Droid Meetup с докладом про сборку Android-приложения. Видеоверсию можно найти здесь: habr.com/ru/company/funcorp/blog/462825. А для тех, кто больше любит читать, я как раз и написал эту статью.

Речь пойдёт о том, что же это такое — Android-приложение. Мы соберём разными способами Hello, world!: начнём с консоли и посмотрим, что вообще происходит под капотом систем сборки, потом вернёмся немного в прошлое, вспомним про Maven и изучим современные решения Bazel и Buck. И, наконец, всё это сравним.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments16

Переключение языка в Android-приложении

Reading time6 min
Views23K

Иллюстрация для статьи


Есть простой способ реализовать переключение языка в Single-Activity приложении. Стек экранов при этом подходе не сбрасывается, пользователь остается там, где переключил язык. Когда пользователь переходит на предыдущие экраны, они сразу отображаются переведенными. А результат локализации чисел, денежных сумм и процентов может удивить дизайнеров.

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

Tasks и Back Stack в Android

Reading time5 min
Views81K
Привет. Из названия темы вы могли заметить, что речь пойдет о том, как устроены Tasks и Back Stack в Android. Эта статья будет являться свободным переводом официального источника. Тема больше ориентирована на новичков, но я думаю, что и опытный разработчик сможет узнать что-то новое, т.к. тема специфична и не часто приходится кастомизировать поведение наших Activity.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments12

Information

Rating
Does not participate
Location
Warszawa, Mazowieckie, Польша
Date of birth
Registered
Activity