Как стать автором
Обновить
24
4
Абакар Магомедов @Ab0cha

Android TechLead

Отправить сообщение

Корутины с точки зрения компилятора

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров7.1K

Привет! Меня зовут Абакар, я работаю главным техническим лидером разработки в Альфа-Банке.

Сегодня мы поговорим на тему, связанную с корутинами, а именно погрузимся чуть глубже в недра компилятора Kotlin. На данную тему мы с Александром Гиревым готовили доклад на «Мобиус».

В рамках подготовки доклада нам пришлось заглянуть в святая святых для всех «андроидеров», а именно в исходники компилятора Kotlin. Ну что ж, поглядим, что мы там накопали. Поехали!

Читать далее

Хочешь стать техлидом? Возможно, что не стоит

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров11K

Привет! Меня зовут Абакар, я работаю главным техническим лидером разработки в Альфа-Банке.

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

Читать далее

Что я усвоил за время своих выступлений на конференциях

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.4K

Привет! Меня зовут Абакар, я работаю главным техническим лидером разработки в Альфа-Банке. В определённый момент своей карьеры я начал активно участвовать в различных митапах и конференциях. И после того, как я провёл множество докладов, хотел бы поделиться с тобой своим опытом. Расскажу, чем выступления могут помочь в карьере и как начать выступать, если у тебя есть желание.

Читать далее

Самые весёлые TODO из Android-фреймворка

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.7K

Привет, меня зовут Абакар и я работаю главным техлидом Android в Альфа-Банке. Сегодня я расскажу про самые забавные тудухи из AOSP на которые мне приходилось натыкаться во время изучения исходников.

Читать далее

Вредные советы, как приходить с вопросами к техлиду

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.5K

Привет! Меня зовут Абакар, я работаю главным техническим лидером в Альфа-Банке. Ко мне довольно часто приходят разработчики с вопросами, и я решил собрать свой топ-4 вредных советов о том, как не надо приходить с вопросами.

Важный дисклеймер: это вредные советы, и так делать не нужно!

Читать далее

Как заглянуть под капот Composable функции

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров6.4K

Возникал ли у тебя когда-нибудь вопрос о том, как посмотреть, во что Compose Runtime превращает наши Composable-функции, например, когда ты сделал оптимизацию и хочешь понять, что она работает так, как ты ожидаешь? Если да, то ты по адресу. Привет! Меня зовут Абакар, работаю главным техлидом в Альфа-Банке. В статье попробую разобраться, как Composable-функции меняются при компиляции и как работает аннотация @Composable.

Читать далее

Почему умение дебажить — один из самых важных навыков для разработчика

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.8K

Привет! Меня зовут Абакар, и я работаю главным техлидом в Альфа-Банке. Меня часто посещает вопрос: «А какой навык всё-таки самый полезный для разработчика?». Понятное дело, что ответ на этот вопрос обязан быть комплексным, и скилл-сет разраба не должен ограничиваться одним навыком. Но умение дебажить — действительно хороший показатель уровня разработчика. Давай разберем на нескольких примерах, почему я так считаю.

Читать далее

Как я в 22 года получил «лычку» Senior

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров29K

Привет, читатель! Хотел поделиться историей о том, как я пришёл в IT в 18 лет и к 22 годам получил статус Senior в EPAM. Senior — тот самый Священный Грааль, о котором мечтают все новички.

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

Читать далее

API vs ABI: разницу видят не только лишь все

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.7K

Привет, дорогой читатель! Думаю, ты точно знаешь, что такое API и как сделать, чтобы твои изменения были API-совместимыми. На самом деле я сам никогда не задумывался, что существует ABI-совместимость, до момента, пока не столкнулся с разработкой библиотеки.

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

Читать далее

8 вещей, которые я усвоил за 6 лет карьеры разработчика

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров19K

Привет, дружище !) Сегодня хочу с тобой поделиться наиболее запоминающимися уроками, которые я успел усвоить за время моей карьеры. Важный момент, все что будет изложено ниже это мое субъективное мнение и оно может оспариваться в комментах.

Читать далее

Возможна ли жизнь после плеймаркета?

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.4K

Привет, старина! Представь свой обычный рабочий день андроид разработчиком. Ты открываешь почту и видишь сообщение как на картинке. Твои действия?

Читать далее

8 типичных нетипичных советов Android-разработчику перед интервью

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7.4K

Привет, друг! Собеседования в любой сфере вызывают много эмоций, зачастую это эмоции переживания. Но всё может быть по-другому. С моей точки зрения, нужно рассматривать собеседование как приятную беседу, после которой можно получить работу, либо полезный опыт.

У меня богатый опыт собеседований, только в Альфе я успел провести больше 200. Я выделил несколько советов, которых стоит придерживаться кандидатам. Какие-то из советов могут показаться капитанскими :)

Читать далее

Как мы играли в тесты на Groovy и проиграли

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.6K

В начале у меня будет один вопрос к тебе дорогой читатель. Писал ли ты когда-нибудь unit-тесты на Groovy ? Если ты андроид-разработчик, то вероятность этого крайне мала. И я с таким не сталкивался пока не пришел на проект Альфы. Небольшой дисклеймер: если ты до этого никогда не писал unit-тесты, то этот материал может показаться тебе непонятным.

Давай представим, ты приходишь на проект и видишь тест, как на картинке. Что ты будешь делать дальше?

Читать далее

Топ 3 странности андроида с которыми мне приходилось сталкиваться

Время на прочтение2 мин
Количество просмотров6.4K

Топ 3 странности андроида с которыми мне приходилось сталкиваться

Disclaimer: Это мой личный топ и субъективное мнение, материала получилось немного, но я надеюсь он будет интересным для тебя.

Читать далее

Самый запутанный краш в моей жизни

Время на прочтение4 мин
Количество просмотров13K

Я работаю над приложением Альфа Мобайл для физических лиц. Однажды с утра пораньше мне прилетел тикет, в котором была описана проблема с лагающим UI. Этот баг воспроизводился только на 21 api. Собственно как делали наши предки я решил для начала попытаться воспроизвести этот баг. Запускаю я билд и вижу вот такое:

Читать далее

Jetpack Compose оптимизация производительности списка

Время на прочтение2 мин
Количество просмотров5.4K
image

Я в своем время наткнулся на довольно интересное поведение composable функций в списках, тогда мне помогла статья с медиума и чтение книги по compose internals, ссылки на них я приложу в конце статьи. Решил поделиться, возможно кому-то это поможет)

Отображение списков распространенный кейс для большинства приложений и зачастую эти списки динамические, в них меняется контент, позиции элементов и т.д. Есть довольно быстрый способ оптимизировать ваш список в compose.
Но для начала рассмотрим, что такое «место вызова» (call site), composable функции.
Читать дальше →

11 Советов самому себе в джуновское прошлое

Время на прочтение7 мин
Количество просмотров23K

11 Советов самому себе в джуновское прошлое

Читать далее

Как дать максимально хреновую оценку задаче

Время на прочтение4 мин
Количество просмотров8.1K
image

Известно, что практически каждому разработчику доводится давать оценку задач на проектах. Для кого-то это время горя, а для кого-то время радости (таких людей не существует). Рассчитывать количество трудозатрат на задачу не самый тривиальный челлендж, поэтому я решил дать несколько советов, как следует себя вести, когда к вам пришли с просьбой оценить задачу.
Читать дальше →

Как устроен билд APK файла внутри

Время на прочтение6 мин
Количество просмотров31K

Процесс создания APK и компиляции кода


Рассматриваемые темы


  • Архитектура процессоров и необходимость для виртуальной машины
  • Понимание Java виртуальной машины
  • Компиляция исходного кода
  • Виртуальная машина Андроид
  • Процесс компиляции в .dex файл
  • ART против Dalvik
  • Описание каждой части билд процесса
  • Исходный код
  • Файлы ресурсов
  • AIDL файлы
  • Модули библиотек
  • AAR библиотеки
  • JAR библиотеки
  • Android Asset Packaging Tool
  • resources.arsc
  • D8 и R8
  • Dex и Multidex
  • Подписывание APK файла
  • Ссылки

Читать дальше →

Так для чего же нам все таки нужен MVI в мобильной разработке

Время на прочтение6 мин
Количество просмотров7.1K
Много уже сказано про MVI, о том как его правильно прожарить и настроить. Однако не так много времени уделяется тому, насколько этот метод упрощает жизнь в определенных ситуациях, в сравнении с остальными подходами.

Цель этой статьи


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

С какой проблемой можно столкнуться


Мой дорогой друг, давай представим такую ситуацию, у нас имеется интерфейс вью, с которым
предстоит работать:

interface ComplexView { 
   fun showLoading()   
   fun hideLoading()   
   fun showBanner()    
   fun hideBanner()    
   fun dataLoaded(names: List<String>)    
   fun showTakeCreditDialog()
   fun hideTakeCreditDialog()
}
Читать дальше →

Информация

В рейтинге
495-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность