ANDROID SCHOOL.RU - Android на практике @android_school_ru Channel on Telegram

ANDROID SCHOOL.RU - Android на практике

@android_school_ru


Делюсь опытом, пишу статьи по Android. Пошаговые инструкции с примерами, помогут разработать готовое приложение.
📌Интенсив с код-ревью https://clck.ru/38cFGx
📌Туториалы https://androidschool.ru/
📌YouTube https://www.youtube.com/@AndroidHeroes

ANDROID SCHOOL.RU - Android на практике (Russian)

Добро пожаловать в мир Android разработки с каналом ANDROID SCHOOL.RU! Этот канал - настоящая школа для всех, кто хочет погрузиться в создание приложений для платформы Android. Кто мы такие? Мы - сообщество Android разработчиков, готовых делиться своим опытом и знаниями с вами. На канале android_school_ru вы найдете множество полезных статей, пошаговых инструкций с примерами, которые помогут вам разработать своё собственное готовое приложение. Что мы предлагаем? На ANDROID SCHOOL.RU вы сможете пройти интенсив с код-ревью, который поможет вам улучшить свои навыки и получить обратную связь от профессионалов. Кроме того, вы найдете множество туториалов на нашем сайте androidschool.ru, где сможете углубить свои знания. И не забудьте заглянуть на наш YouTube канал AndroidHeroes, там вы также найдете много интересного и полезного контента. Присоединяйтесь к нам, чтобы стать опытным Android разработчиком и обрести новые знания и навыки. С ANDROID SCHOOL.RU создавайте лучшие приложения для мобильных устройств и воплощайте в жизнь свои творческие идеи!

ANDROID SCHOOL.RU - Android на практике

31 Dec, 16:25


🎄Всех с наступающим дорогие подписчики, спасибо, что подписаны. Хотел кратко подвести итоги работы над блогом и интенсивами. Важная вершина достигнутая в этом году - это проведение интенсивов для сотрудников крупных компаний с целью повышения скилов. Одной из таких компаний, которая попросила обучить их сотрудников был Яндекс. Это было супер волнительно, но в итоге, все получилось как задумано, обучение прошло гладко. Когда тебе доверяют такие компании как Яндекс, считаю что это уже показатель.

Еще был запрос переобучить отдел разработчиков С++ на современный Android стек. Помимо этого провел 2 интенсива весенний и осенний. Осенний был супер - ребята очень крутые. И это все вместе c менторством, участием в конференциях в качестве спикера и основной работой.

В следующем году постараюсь создавать больше контента, как тут в телеграмме так и на YouTube/Rutube. Ну и канал пробил отметку в 1000 подписчиков, всем спасибо! С наступающим вас 2025 годом! Желаю вам карьерного роста и исполнения заветных желаний.

ANDROID SCHOOL.RU - Android на практике

26 Nov, 18:44


История одного бага или не все буферы одинаково полезны.

Сегодня расскажу вам интересную историю, которая произошла при рефакторинге одного из проектов. В коде одного из интеракторов начал падать SQL-запрос SQLiteException: too many SQL variables.

Долго искали ошибку, и подозрение упало на недавно переписанную логику с RxJava на Kotlin Flow. Сравните 2 цепочки:

Цепочка на Kotlin Flow

var ids = listOf(1,2,3,4,5,6,7,8,9,10)
flowOf(ids)
.buffer(BUFFER_SIZE)


Цепочка на RxJava

var ids = listOf(1,2,3,4,5,6,7,8,9,10)
Observable.fromIterable(ids)
.buffer(BUFFER_SIZE)


Может показаться, что они выглядят одинаково, однако это заблуждение. Более подробно о том, как работает оператор buffer() в Kotlin Flow с диаграммами и код-сниппетами я рассказал в посте , ну а для самых нетерпеливых, проблема была в операторе buffer(). Оператор buffer() в Kotlin Flow позволяет нам запускать коллектор на другой корутине. И это позволяет нам выполнять параллельно работу коллектора и эмиттера. В отличие от оператора Observable.buffer(), marble-диаграмма которого показана в посте.

ANDROID SCHOOL.RU - Android на практике

18 Sep, 10:50


​​Dependency Injection c использованием Dagger Component Dependencies в многомодульных проектах

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

📚 В этой статье сделал обзор наиболее популярных подходов построения многомодульной архитектуры, а также написал туториал по разбиению монолитного Android-проекта на многомодульный c использованием Dagger Component Dependencies

https://androidschool.ru/2024/09/18/dagger-component-dependencies-with-multi-module/

ANDROID SCHOOL.RU - Android на практике

17 Jun, 12:04


​​Итоги весеннего интенсива по архитектуре Android-приложений.

Закончился весенний интенсив по разработке Android. Несмотря на то, что у участников уже был неплохой опыт работы (у некоторых даже в топовых ИТ-компаниях) все участники отметили, что интенсив был очень полезен.

📌Например, у кого-то был крупный проект, в котором большая часть компонентов написана - и стали забываться какие-то низкоуровневые вещи и нужно было заполнить пробелы. А у кого-то наоборот: было много мелких проектов, но хотелось структурировать знания и изучить различные подходы и архитектуры. А кому-то требовалось Mock-интервью перед очередным карьерным взлётом.

💬Всех поставленных целей участники достигли, что и подтверждают приведенные отзывы.

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

ANDROID SCHOOL.RU - Android на практике

14 Jun, 11:20


​​Что находится под капотом музыкального плеера?

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

📌 Как создать аудиоплеер. Часть 1. Что под капотом
📌 Часть 2. Использование ExoPlayer
📌 Часть 3. Настройка приложения с аудиоплеером и обработка звука

ANDROID SCHOOL.RU - Android на практике

13 Jun, 14:44


​​Итоги программы GSA, получилось ли обучить студентов и впечатления о Дублине и офисе Google.

После тренинга одним из условий было организовать программу обучения студентов Android-разработке в своем университете. Таким образом, впервые преподавать Android-разработку я начал еще 10 лет назад. Google в свою очередь прислали мерч и обучающие материалы, помню как курьер привез мне огромную коробку с брендированными майками, блокнотами и ручками. В итоге я провел двухмесячную программу и обучил азам Android-разработки более 100 студентов своего университета. На тот момент у меня уже был опыт коммерческой разработки, так что рассказать основы не составило труда.

💻 В итоге около 10 человек разработали свои первые приложения и опубликовали их в Google Play, несколько из них устроились мобильными разработчиками (один из них сейчас уже лид мобильной разработки в компании куда он приходил джуном).

📌 Так что программа GSA была очень полезна как для меня и моего развития, так и для еще 100 студентов моего университета, а некоторые из них буквально изменили жизнь после обучения. Кроме того, мне удалось побывать в офисе Google, пообщаться с гуглерами и оценить Дублин, пообщаться с теми, кто уже давно там живет и работает.

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

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

👨‍💻 Большое количество ИТ-компаний. Ирландия считается европейской кремниевой долиной. В Дублине так и называется район Silicon Docks - район, где находятся офисы знаменитых ИТ-компаний.

🏔️Красивая природа, мягкий климат (хотя часто довольно ветрено и дождливо) и хорошая экология. Снега зимой почти нет. Зима мягкая, лето прохладное. Вокруг со всех сторон море и свежий воздух.

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

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

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

P.S.Судя по количеству реакций, посты такого рода тоже заходят, как и технические темы. Продолжать писать еще что-то подобное или вам все же технический контент больше нравится?

ANDROID SCHOOL.RU - Android на практике

10 Jun, 11:34


​​Приглашение в офис Google в Дублине

Несколько недель спустя, я получил ответ от Google. Ниже часть письма от куратора программы GSA:

Thanks for having submitted your Application and for the precious time you dedicated to it.
We reviewed your Application and we are very proud to give you our WELCOME ON BOARD!
From today you are not just a Student but you are a Google Student Ambassador!

Ура! Теперь я стал Google Student Ambassador и лечу на тренинг в Google! Оставалось оформить билеты и визу. По условиям программы Google оплачивал билеты, проживание и затраты на визу. Спустя несколько недель подготовки я вместе с другими участниками прилетели в Дублин для тренинга и участия в программе Google Student Ambassador. За короткий срок нам предстояло познакомиться с культурой компании, перенять опыт проведения публичных выступлений у сертифицированных коучей, освоить основы лидерства, и самое важное: погрузиться в стек технологий Google, изучить передовой опыт разработки мобильных приложений и сдать экзамен по технологиям, чтобы быть готовым развивать и обучать студентов в своем университете.

 Программа была очень насыщенная: о новых фишках Android нам рассказывали буквально те люди, которые разрабатывают Android OS. О лидерстве рассказывали сертифицированные коучи и эксперты по выступлениям. Но круче всего было то, что в перерывах постоянно была возможность общаться с другими участниками GSA и работниками Google. Участники были как из РФ так и со всей Европы. Это был крутой опыт - так как все участники были разные и имели разный бэкграунд на тот момент. Понятно, что даже за такой короткий срок весь объем материала усвоить нереально. Поэтому, помимо офлайн части тренинга, была и онлайн часть: был выдан доступ в личный кабинет образовательной платформы, где нужно было освоить необходимые темы и сдать экзамен.

🏛️ Кроме тренингов, мы успели познакомиться и с Дублином. В один из дней у нас была запланирована экскурсия по самым интересным местам. Одним из них был кампус Тринити колледжа - старейшего и очень престижного учебного заведения Ирландии.

🍺 Как я уже говорил, помимо тренингов было очень много живого общения с крутыми экспертами. По пятницам, в офисе Google устраивались неформальные вечеринки, где были и участники GSA. Там я попробовал Guinness и был несколько шокирован, что вот так можно просто на работе в офисе в неформальной обстановке общаться с коллегами.

Я познакомился в том числе с гуглерами и имел возможность задать различные вопросы. Одной из тем, которая меня интересовала на тот момент - это процесс собеседований в Google. Это сейчас можно чуть ли не в личку в телеграм написать кому-то из BigTech и попросить зарефералить или узнать про процесс в той или иной компании.

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

🔑 Именно в тот момент, я понял как важно чтобы был наставник - человек, который уже прошел путь, который вам только предстоит и может поделиться опытом, ответить на интересующие вопросы и помочь в развитии карьеры. Когда рядом есть человек, который уже собрал все грабли и точно знает как лучше - то развитие происходит с космической скоростью. Если до участия в GSA я просто разрабатывал приложения под Android потому что мне это нравилось, то после общения с таким количеством экспертов у меня появился четкий план развития hard-скилов для Android-разработчика, так и soft-скилов для будущей карьеры.

В следующем посте (последнем по этой теме) расскажу какие были итоги программы GSA и свои впечатления о Дублине и офисе Google.

ANDROID SCHOOL.RU - Android на практике

06 Jun, 17:33


​​Как я попал в Google и начал свой путь в мобильной разработке

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

Попасть в Google на старте своей карьеры - звучит как мечта. Но именно так примерно 10 лет назад я серьезно начал заниматься Android-разработкой и стал ментором, когда это еще не было мэйнстримом.

В 2014 году я второй раз активно занялся разработкой под Android. Первая попытка была где-то в 2010 году - но тогда даже не было Android Studio, а Android Development Tools плагин для Eclipse ужасно тормозил. Кроме того многие компании не воспринимали всерьез нативную мобильную разработку и просто адаптировали веб-приложения под мобильный интерфейс. Поэтому после разочарования работы с Eclipse я ушел в бэкенд-разработку под .Net на C#. Visual Studio тогда мне казалась просто великолепной, это был лучший инструмент и конечно же по сравнению с плагином под Eclipse для Android не оставлял никаких сомнений в выбранном пути.

Однако примерно в 2014 году уже появилась Android Studio и мне стало интересно разобраться и написать приложение или игру для своего смартфона. В это же время Google активно старался развивать экосистему для Android, а именно проводились различные конкурсы для мобильных разработчиков. Логика простая: чем больше будет приложений в Google Play, тем больше пользователей будут выбирать Android - смартфоны и тем больше заработает Google. Пустая железка без приложений никому не интересна - нужны приложения. А чтобы приложения появились, нужны разработчики.

👨‍💻Так, в один прекрасный момент, я увидел анонс Всероссийского конкурса разработки мобильных приложений Russia Android Challenge при поддержке Google. Недолго думая - я сразу же отправил заявку. До победы мне не хватило совсем немного. Участников было несколько сотен, я был в первой десятке, но призовое место занять не удалось. Однако я получил бесценный опыт, научился решать задачи в сжатые сроки и узнал много нового в процессе подготовки. Результатом был сертификат участника, который я гордо повесил на стену. Как оказалось, это было только начало.

✉️ Email. Спустя некоторое время на мой почтовый ящик пришло письмо от организаторов конкурса мобильной разработки. Оказалось, среди тех, кто показал хорошие результаты, организатор конкурса Google искал участников для программы Google Student Ambassador

GSA (Google Student Ambassador) - программа для студентов, нацеленная на развитие сообщества разработчиков, использующих продукты Google. Таким образом, участник GSA - это ментор, связующее звено между сообществом разработчиков в университете и компании Google. В задачи GSA входило обучение студентов продуктам Google (то есть разработка под Android), проведение митапов по Android-разработке. Но самое крутое было то, что отобранные участники программы GSA, перед тем как стать менторами, должны были пройти очный 4-дневный тренинг по Android-разработке и лидерству в офисе Google в Дублине и сдать экзамен. В то время у меня уже был опыт разработки, так что я незамедлительно решил попробовать.

📝 Отбор. Для того, чтобы пройти отбор, необходимо было составить CV, написать мотивационное письмо на английском языке, рассказать о своих проектах и опубликованных приложениях, а также снять видеоролик о себе и указать, почему именно я лучше всего подхожу на эту роль. Самое сложно было записать видеоролик. Помню, как весь день потратил, записывая миллион дублей и выбирая красивый фон. Отправив все необходимые документы я стал ждать с замиранием сердца скорейшего ответа от Google.

Продолжение в следующем посте.

ANDROID SCHOOL.RU - Android на практике

21 May, 13:10


Стагнация ИТ, layoffs и новые тренды

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

В одном из подкастов, рассуждали о том, что в РФ из-за санкций и невозможности использовать современные технологии (например ChatGPT, Google Gemini итд) отрасль ИТ будет стагнировать, задач интересных будет меньше и так далее и тому подобное.

И буквально через минуту после этого подкаста, мне в лесу, звонит голосовой помощник из магазина по доставке еды, который предупреждает о том, что курьер задерживается. Вот такая стагнация ИТ и каменный век. Где еще вы могли бы представить такую ситуацию? Ну может быть еще где-нибудь в кремниевой долине. Кто знаком с развитием ИТ-услуг в Европе, там все очень печально, вот финтех только-только начинает немного развиваться благодаря необанкам. Конечно, это очень холиварная тема, но факты остаются фактами: несмотря на удаления мобильных приложений из сторов, мобильных разработчиков не то что не увольняют, а постоянно нанимают. Только мой отдел мобильной разработки вырос в 7 раз за последний год, в то время как зарубежные BigTech сокращают пачками инженеров. На мой взгляд, у нас возможен сценарий развития технологий как в Китае. Китай очень продвинутая страна, я работал в Alibaba и это был бесценный опыт. Касательно рынка труда в ИТ, удивительно, но вакансий огромное количество, по сравнению с глобальными ИТ-компаниями. Не верите? Можно почитать тред на Reddit от европейских коллег.

Тут важно отметить, что у меня нет розовых очков и я не говорю что все классно. Но и что очень уж плохо и скоро мы будем программировать на счетах сказать нельзя. Истина, как обычно, где-то посередине. Главная мысль в том, что если вы развиваетесь, следите за трендами, готовитесь к собеседованиям (с ментором или самостоятельно) то у вас скорее всего все будет хорошо - главное не останавливаться и быть готовым учиться новому.

ANDROID SCHOOL.RU - Android на практике

15 Apr, 20:03


​​Архитектура и процессы стримингового музыкального сервиса.
Выступил на конференции Стачки 2024 в Ульяновске, поделюсь тут ключевыми идеями своего доклада по теме архитектуры и работы платформы. Итак, ключевые идеи:

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

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

—Все что может быть автоматизировано, должно быть автоматизировано. У нас этим занимается платформа: начиная от смены статусов для pull-requests, заканчивая скриншот—тестами. Также мы используем ktLint, Detekt с набором кастомных правил, которые бьют по рукам, в случае несоблюдения код—стайла или принятых в команде соглашений.

—Сложно улучшить что—то, если у вас нет метрик. Метрики для платформенной команды —это как система навигации для судна. Без метрик, ваш проект утонет. Следите за crash—free, performance, скоростью загрузки данных, количеством тестов.

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

ANDROID SCHOOL.RU - Android на практике

15 Apr, 20:03


ANDROID SCHOOL.RU - Android на практике pinned «​​‼️Куда вы попали Всем привет! Меня зовут Михаил Валуйский, я автор технического блога AndroidSchool.ru и этого канала для Android-разработчиков о мобильной разработке и карьере разработчика. Здесь нет бездумных репостов, а только мои собственные статьи,…»

ANDROID SCHOOL.RU - Android на практике

20 Mar, 13:08


​​Как расти мобильному разработчику если все задачи кажутся знакомыми и одинаковыми? Заняться производительностью и инфраструктурой!

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

В апреле буду на «Стачке» выступать в секции «TeamLead»рассказывать о нашей команде в Звуке где работаю над музыкальным стриминговым сервисом. «Стачка» — крупнейшая региональная IT-конференция России с 6 направлениями и более 200 докладов от лучших спикеров IT-индустрии.

В докладе поделюсь своим опытом и результатами, расскажу:

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

📌 Проблемы которые возникли при масштабировании команды

📌 Чем занимаются платформенные команды, примеры задач

📌 Зоны ответственности платформенных команд

📌 Как подготовить проект к связке продукты + платформа

📌 Что мы сделали в первую очередь

📌 Работа с техдолгом и roadmap платформенной команды

📌 Особенности найма и работы в платформенной команде.

Будет интересно опытным мобильным разработчикам, тимлидам, тем кто интересуется работой в больших командах. Кстати, организаторы поделились промокодом на скидку 10% stachka_friends, кому актуально, залетайте

ANDROID SCHOOL.RU - Android на практике

28 Feb, 13:36


Нет дэдлайна - нет результата.

Новый год уже давно наступил, через пару дней весна, а еще через 93 дня наступит лето.

В этом году я стал чуть больше обращать внимание на планирование года, но без фанатизма, аффирмаций и прочего. Поставил цели как для профессионального развития, так и личного. И сейчас будет “лайфхак” как заставлять двигаться по чуть-чуть к вашим целям.

Наверняка у каждого были какие-то планы на этот год: выбить повышение на работе, научиться играть на гитаре, заняться спортом. Так и у меня одна из целей читать минимум 3 книги в месяц, итого около 36 книг в год. В приложении Литреса есть классная штука - читательский билет. Вы можете взять электронную книгу только на 2 недели, потом доступ к ней закончится. Я специально не покупаю полную подписку, потому что для меня это очень классный стимул успеть прочитать книгу за 2 недели.

Все очень не любят дэдлайны. Но если подумать, то ничего так не мотивирует как наличие точной даты к которой нужно успеть сделать намеченное. У меня есть участник менторства который освоил разработку во время сокращения, с ипотекой и беременной женой. Железная мотивация успеть устроиться за 9 месяцев и переехать в новое жилье.

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

📌 Во время Performance Review можно обсудить с тимлидом ИПР (индивидуальный план развития) в котором наметить изучение новой библиотеки, языка программирования, чтения книги по рефакторингу. Когда вы обсудите такой план с тимлидом, то назад пути уже не будет, зато появится мотивация успеть в срок.

📌 Записаться на хакатон, в котором попробуете сделать проект с нуля за 48 часов используя абсолютно новый стек.

📌 Вписаться в Leetcode challenge

📌 Найти ментора, который будет проверять задания и ставить ограниченные временные рамки.

📌 Записаться на собеседование в BigTech и потом стараться к нему подготовиться. Тут правда важно сказать, что в случае неуспеха повторная попытка будет только через полгода.

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

ANDROID SCHOOL.RU - Android на практике

13 Feb, 11:51


​​‼️Куда вы попали Всем привет! Меня зовут Михаил Валуйский, я автор технического блога
AndroidSchool.ru и этого канала для Android-разработчиков о мобильной разработке и карьере разработчика. Здесь нет бездумных репостов, а только мои собственные статьи, переводы и туториалы. Либо классные материалы, которые мне самому понравились. Все туториалы снабжены пошаговыми инструкциями с примерами, помогут разработать готовое приложение. В статьях я делюсь как интересными результатами и примерами из работы, так и привожу карьерные лайфхаки.

📚 Полезные материалы:

Туториалы с разработкой демо-проекта:

Программирование на RxJava 3.0 для Android
Использование MockWebServer при разработке и тестировании Android-приложений
Тестирование Android Architecture Components
WorkManager для управления фоновыми задачами
Распознавание образов на базе Android ML Kit и CameraX
Разработка приложения Фитнес-календарь на базе Alarm Manager
Остальные туториалы тут

📝 Статьи:

Отличия Sequence API vs Collection
Как подготовиться к собеседованию по System Design мобильному разработчику
Шаблонный метод на примере формирования списков в Android
Принципы построения многомодульных Android-приложений
Остальные статьи тут и на Xабре

📹 Канал на Youtube:

Недавно завёл канал на YouTube
Иногда выступаю на митапах и конференциях

🎓 Интенсивы и менторинг

🔷 Интенсив для мидлов с наставником и код-ревью
🔷 Интенсив Основы Android-разработки
🔷 Если вы ищете ментора

…………………..

ℹ️ Обо мне:

Михаил Валуйский LinkedIn

Team Lead платформенной команды в стриминговом музыкальном сервисе Звук.
10+ лет в коммерческой разработке, занимаюсь Android-разработкой, разрабатывая эффективные и масштабируемые приложения.
В 2018 году в качестве техлида разработки, выстроил архитектуру и запустил с нуля основное приложение Билайн(>10 млн. установок) Имеет самую высокую оценку в Google Play среди телекомов 4.7. Сейчас развиваю музыкальный сервис Звук
До этого работал в компании Lazada (> 100 млн. инсталлов) в штаб-квартире Alibaba (Ханчжоу, Китай) в команде поиска. Работал в Rambler&Co.

ANDROID SCHOOL.RU - Android на практике

09 Feb, 09:59


​​⚙️5 инструментов для мониторинга Android-приложений в проде
Если бы программисты были врачами, им бы говорили «У меня болит нога», а они отвечали «Ну не знаю, у меня такая же нога, а ничего не болит»

Разработать приложение это всего лишь половина дела. Вторая часть это релиз и последующая поддержка. И тут многие разработчики наивно полагают, что если с приложением будет что-то не так, то пользователи обратятся в поддержку и расскажут о своей проблеме. Так не работает. Пользователь просто удалит ваше приложение и уйдет к конкурентам.

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

В этом посте кратко расскажу основные инструменты которые могу пригодится.

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

Firebase Crashlytics - инструмент похожий на Sentry, позволяет получить детальную информацию об ошибках, имеет фильтры по девайсам и можно размечать ошибки различными тегами.

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

Android Vitals - является инициативой Google, нацеленной на повышение производительности и стабильности Android-устройств. Когда пользователь, разрешивший сбор данных, запускает ваше приложение, его Android-устройство регистрирует различные метрики, включая данные о стабильности приложения, времени его запуска, использовании батареи, времени рендеринга и отказах в разрешениях. Эти данные Google потом использует для продвижения приложения в Google Play, если ваше приложение постоянно где-то в 100-ых позициях, подумайте над улучшением метрик (батарея, размер приложения, кол-во ANR)

Redash и Grafana - аналитические инструменты для обработки большого массива данных и его визуализации. Если вы используете свои инструменты для отслеживания работы приложения, то вам все равно нужно как-то интерпретировать и анализировать собранную информацию. Эти инструменты вам помогут построить графики и вывести результаты.

Часть этих инструментов мы рассмотрим на занятии “Мониторинг приложения в проде и CI/CD” в рамках интенсива

ANDROID SCHOOL.RU - Android на практике

07 Feb, 06:00


Наглядные примеры работы Kotlin Flow операторов

Кто работал с RxJava, возможно, помнит интерактивные Marble-диаграммы, для более наглядного понимания работы операторов.
Было бы круто что-то похожее увидеть и для Kotlin Flow для наглядности работы.

Нашел классную статью с крутыми анимациями с пиксельной графикой, которые автор создал для объяснения работы популярных операторов в Kotlin Flow. Ощущается, как будто играешь в какую-то игру на Nintendo.

ANDROID SCHOOL.RU - Android на практике

01 Feb, 09:39


📚 Диаграмма по System Design для мобильного разработчика

В последнее время даже в РФ в БигТехе, часто вместо однообразных вопросов, типа перечислите все методы класса object, добавляют секцию по System Design. Как его пройти и на чем нужно сконцентрироваться именно мобильному разработчку я писал в блоге

А в этом посте хотел поделиться классной диаграммой, наглядно описывающей каждый шаг.

ANDROID SCHOOL.RU - Android на практике

31 Jan, 13:59


💬 Как AI Copilot поможет вам быть эффективнее

Недавно, с ребятами из интенсива разбирали карьерные лайфхаки и вопросы. Был интересный вопрос про сопроводительное письмо: насколько подробно его писать и где взять столько времени на это. В РФ на мой взгляд такие письма менее популярны, но в целом если вы его напишите - то покажете свою заинтересованность и мотивацию.

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

Для написания качественного письма нужно потратить 30-50 минут, особенно если не на родном языке. И тут хочу рассказать вам про использование встроенного генеративного AI, который поможет вам сэкономить время.

Есть такой почтовый клиент Canary Mail. И одна из его фишек - это AI который помогает вам писать письма. Просто составляете запрос как для ChatGPT и вуаля - сопроводительное письмо в компанию мечты готово. Работает бесплатно и без VPN.

ANDROID SCHOOL.RU - Android на практике

29 Jan, 09:53


📹 Как сохранить список объектов в ORM Room?

В моем текущем проекте у нас огромная БД с большим количеством разных таблиц и связей между ними. Ну оно и понятно: офлайн-режим для музыкального плеера является одним из важнейших требований. Ну и чтобы человек мог придти на проект и сразу не испугался работы с БД на собеседованиях есть отдельная секция по такого рода вопросам. И порой разработчики не понимают как работать с базой, как настроить связи и вообще предлагают все сохранять в виде json-строки. Поэтому записал видео для YouTube на тему построения связей в Room, и обновил проект на GitHub по теме relations.

https://youtu.be/CzgdEw2MuUw