Search
Write a publication
Pull to refresh
2
0
Константин @ConstOrVar

Разработчик мобильных приложений

Send message

Как работать с Custom Layout в Jetpack Compose

Level of difficultyMedium
Reading time21 min
Views6.8K

Всем привет! Я Александр Власюк, старший Android-инженер в Авито, разрабатываю Авито Кошелек и веду телеграм-канал «​​Записки инженера». В этой статье вспоминаем, как лейауты работают в Compose, обсуждаем изменение лейаута отдельного компонента, смотрим, как создавать кастомные Layout и LazyLayout и учимся откладывать композицию. И всё это на примерах, в том числе из дизайн-системы Авито.

Читать далее

Как мы следим за качеством unit-тестов

Level of difficultyEasy
Reading time15 min
Views2.9K

Меня зовут Александр Чекунков, я — Android‑разработчик в СБЕРе. Занимаюсь разработкой CSI‑опросов в мобильном приложении «СберБанк Онлайн».

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

Но для того чтобы получить максимальную пользу от unit‑тестов, важно писать их правильно. В этой статье мы обсудим best practices, применяемые командой СБЕРа для написания тестов, и рассмотрим подходы для повышения их эффективности.

Читать далее

Внедрение кода в Mach-O файл своими руками для iOS

Level of difficultyMedium
Reading time17 min
Views529

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

Читать далее

Пишем стек TCP/IP с нуля: основы TCP и Handshake

Level of difficultyEasy
Reading time9 min
Views12K

Первая часть: Ethernet, ARP, IPv4 и ICMPv4

Пока наш стек TCP/IP пользовательского пространства содержит минимальные реализации Ethernet и IPv4. Настало время заняться пугающим Transmission Control Protocol (TCP).

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

TCP — не особо новый протокол, первая его спецификация вышла в 1974 году2. С тех пор многое поменялось, TCP дополнился множеством расширений и исправлений3.

В этом посте мы изучим базовую теорию TCP, а также рассмотрим заголовок TCP и поговорим об установке соединения (TCP handshaking). Под конец мы продемонстрируем первую функциональность TCP в нашем сетевом стеке.

Читать далее

Перевод OWASP LLM Top 10

Reading time26 min
Views1.9K

Проект OWASP Top 10 for Large Language Model Applications был создан как попытка сообщества выделить и решить проблемы безопасности, характерные для приложений ИИ. С тех пор технологии продолжают распространяться по отраслям и приложениям, а вместе с ними и сопутствующие риски. По мере того как ИИ все глубже внедряется во все сферы деятельности - от взаимодействия с клиентами до внутренних операций, разработчики и специалисты по безопасности обнаруживают новые уязвимости и способы борьбы с ними.

Эта статья - перевод OWASP LLMSVS Top 10, опубликованного в 2025 году.

Читать далее

eBPF вместо всего: почему это новая эра сетей, мониторинга и безопасности?

Reading time9 min
Views14K

Раньше модификация Linux требовала пересборки ядра или использования дополнительных модулей. Но теперь есть eBPF — технология, которая позволяет программировать ядро на лету, не жертвуя стабильностью. Звучит как мечта системного администратора или очередной тренд, который существует только на бумаге, но нет. Обработка миллионов пакетов в секунду, отслеживание уязвимостей в реальном времени и замена традиционных агентов мониторинга чем-то более эффективным — это не будущее. Это настоящее, в котором уже живут, например, CloudFlare и Netflix. Детали под катом.
Читать дальше →

Linux-десктоп своими руками: WiFi-manager

Reading time11 min
Views4.1K

По просьбе некоторых комментаторов "что-то написать самому и выложить на обозрение" - ну вот, написал и выкладываю:

Суть задачи: как, не имея установленного современного Desktop Environment, с Network Manager и systemd, управлять подключением к Wi-Fi сетям без особых проблем?
Усложнение: допустим, у нас к тому же несколько Wi-Fi адаптеров, для одновременного подключения к нескольким сетям.

Легко!
Но для начала - немного о том, "как это работает под капотом" (кому неинтересно - проскакиваем)

Читать далее

Сценарии использования ServerSocket

Level of difficultyMedium
Reading time9 min
Views1.7K

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

Читать далее

Мобильная разработка за неделю #580 (17— 23 марта)

Reading time4 min
Views984
В этой еженедельной подборке оптимизация производительности iOS-приложений и реактивное профилирование Android-приложений, полезные библиотеки для React-приложений 2025 и вопросы о размерах пальцев и кнопочек, последствия «вайб кодинга», соединение точек, многомодульные библиотеки и многое другое. Заходите!

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

Пишем стек TCP/IP с нуля: Ethernet, ARP, IPv4 и ICMPv4

Level of difficultyEasy
Reading time13 min
Views25K

Написание собственного стека TCP/IP поначалу может показаться пугающей задачей. И в самом деле, за свой тридцатилетний срок жизни TCP впитал в себя множество спецификаций. Однако базовая спецификация остаётся относительно компактной1 — из важных частей в ней можно выделить парсинг заголовков TCP, машину состояний, отслеживание перегрузок и вычисление таймаута повторной передачи.

Самые распространённые протоколы слоя 2 и слоя 3, Ethernet и IP, скромны по сравнению с сложностью TCP. В этой серии статей мы реализуем минимальный стек TCP/IP пользовательского пространства для Linux.

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

Читать далее

Codeby.Games. CTF TASK «СМС»/«SMS»

Level of difficultyEasy
Reading time3 min
Views816

Приветствую всех любителей CTF и этичного хакинга на стороне Red Team! В этой статье мы рассмотрим прохождение легкого таска «СМС», разработанного пентестерами из команды Codeby.Games.

Справка: codeby.games — отечественный условно бесплатный веб‑проект, где каждый может попрактиковаться в оттачивании навыков наступательной кибербезопасности. Таски (задания) представлены в широком спектре: начиная от использования методов OSINT и заканчивая компрометацией учебного домена Active Directory. CTF разделяются на три группы — «Легкий», «Средний», «Сложный» в различных категориях. Но подробнее об этом — на официальном сайте проекта.

Итак, приступим. Задание «СМС» находится в категории «Квесты».

Читать далее

Demeter в опенсорсе: реактивное профилирование Android-приложений

Reading time11 min
Views2.8K

Всем привет, меня зовут Вадим Мезенцев, я Android‑разработчик в команде Яндекс Go. Сегодня я хочу рассказать историю о том, как мы искали подход к профилированию нашего приложения, с какими проблемами столкнулись и как в итоге реализовали библиотеку для измерения производительности.

Наша команда часто сталкивалась с проблемами при поиске «узких мест» в производительности приложения. Мы пробовали различные инструменты профилирования, но все они требовали слишком много времени на сбор метрик, анализ и фильтрацию нужных данных. Чтобы решить эту проблему, мы разработали собственное решение, которое сочетает скорость анализа и простоту поиска проблем. Мы создали библиотеку Demeter, которую легко интегрировать в отладочную версию Android‑приложения. Она позволяет получать отчёты о производительности во время использования приложения и переходов между экранами. Такую сборку можно передать команде тестирования, а затем проанализировать отчёты и изучить изменения.

Читать далее

Зачем IT-специалисту профильная онлайн-магистратура от Яндекса?

Level of difficultyEasy
Reading time5 min
Views8.9K

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

Чтобы объединить преимущества онлайн-курсов и высшего образования, эксперты Яндекса и топовых технических вузов — ИТМО, НИЯУ МИФИ и МФТИ — разработали современные программы онлайн-магистратур. Выпускники магистратур получают: диплом о высшем образовании от вуза, диплом о профессиональной переподготовке от Яндекса, студенческие льготы, отсрочку от армии, портфолио проектов, возможность взять образовательный кредит с господдержкой. Обучение длится два года, как в обычной магистратуре.

Читать далее

Безопасность без боли: плагины, которые упрощают жизнь разработчикам

Reading time7 min
Views2.3K

Привет, меня зовут Владислав Феофилактов, я разработчик команды интеграции продукта PT Application Inspector. В этой статье вместе с коллегой Даниилом Бакиным мы расскажем о безопасной разработке приложений, подходе shift left и о том, как сделать жизнь разработчиков и AppSec-специалистов проще, а продукты — более защищенными.

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

Читать далее

Битфлипаем зашифрованный JSON, не зная структуры: разбор демозадачи с T-CTF 2025

Level of difficultyMedium
Reading time19 min
Views9.4K

Проводим третий T-CTF для ИТ-специалистов, которые хорошо разбираются в коде. Соревнования пройдут онлайн и офлайн 19—20 апреля, так что пока есть время подготовиться. В статье расскажем, что нового будет в этом году, и разберем одно демозадание.

Если вы уже ко всему готовы, переходите на страницу мероприятия. Там можно узнать подробности и зарегистрироваться. Новичков в CTF и тех, кто хочет узнать решение интересных задач, приглашаем под кат.

Читать далее

Является ли преждевременная оптимизация корнем всех зол

Level of difficultyEasy
Reading time11 min
Views2.9K

Среди программистов распространена поговорка: «Преждевременная оптимизация — корень всех зол». Откуда она взялась? В каком контексте использовалась? Насколько все еще применима?

Рассмотрим, в чем опасность преждевременной оптимизации. Есть вообще в ней смысл? Мартейн Фаассен разбирает знаменитое высказывание Дональда Кнута. Подробности под катом.
Читать дальше →

Создаём многомодульную библиотеку на Android: как же собрать fat-aar?

Level of difficultyMedium
Reading time19 min
Views2.4K

В Android-разработке могут возникать сценарии, когда нам нужно собрать один aar из нескольких модулей. 

Однажды нам в Сравни потребовалось создать SDK для наших партнёров — на основе уже существующего проекта. Сделать это хотелось без радикальных изменений в проекте и излишнего раскрытия деталей его устройства.

Задача понятная, но нетривиальная в реализации. Google до сих пор не предоставляет полноценного инструмента для создания fat-aar; к opensource-решениям также много вопросов. 

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

О том, как мы к этому подступились и к чему пришли, рассказываем под катом.

Читать далее

Ликбез по разрешениям в Android

Level of difficultyEasy
Reading time24 min
Views7K

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

Читать далее

Зачем разработчики ПО прячут пасхалки в коде

Reading time10 min
Views14K

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

От идеи до результата: как оценить, нужна ли пользователям новая фича (JTBD и TARS)

Level of difficultyMedium
Reading time47 min
Views2.3K

Функциональность продукта – это не просто техническая особенность, а способ донести ценность пользователю, помогая ему выполнять задачи и достигать конкретных целей (Jobs-To-Be-Done). В статье разбираются методы создания, анализа и оптимизации продуктовых фич: приводятся примеры успешных и неудачных решений (Instagram, TikTok, Notion), подробно раскрываются основные метрики оценки эффективности (TARS-фреймворк, когортный анализ, DAU/MAU, Retention, CES).

Читать далее

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity