Эффективная стратегия тестирования Android-проектов. Часть 1

Эффективная стратегия тестирования Android-проектов. Часть 1

В этой части описан и обоснован сбалансированный подход к комплексному тестированию Android-приложений, включающий автоматизированные (модульные, интеграционные, сквозные, интерфейсные) и ручные тесты. Такая эффективная стратегия позволяет минимизировать время и усилия, получив максимальную отдачу.
Как создать анимированный переключатель тем в Jetpack Compose

Как создать анимированный переключатель тем в Jetpack Compose

Сколько пользователей, столько и предпочтений. Темы - не исключение. Кому-то больше нравится темное оформление, кому-то - светлое. Сегодня посмотрим, как разработать оригинальный переключатель тем с помощью Jetpack Compose.
Как я использую Claude Code в 2026 году и почему ему все еще нужен родитель

Как я использую Claude Code в 2026 году и почему ему все еще нужен...

Ознакомьтесь с авторской методологией, основанной на принципе "ускорение через Claude, контроль через Codex". Четкое разделение ролей между генератором кода и его критическим рецензентом позволит вам достигать высокой скорости разработки, не поступаясь ее надежностью.
10 проверенных правил написания Python-кода продакшен-класса

10 проверенных правил написания Python-кода продакшен-класса

В продакшен-среде красивый код из учебников "ломается" первым. Возьмите на вооружение 10 правил написания Python-кода, выведенные не в теории, а на практике — через ночные аварии и годы поддержки живых систем. Эти правила сделают ваш код не умным, а надежным, понятным и готовым к любым неожиданностям.
Оптимальные инструменты Firebase для мобильного приложения

Оптимальные инструменты Firebase для мобильного приложения

Как упрощается процесс разработки с готовыми решениями аутентификации, уведомлений, баз данных реального времени? Изучим реализацию важного функционала: FCM, Remote Config, расширений, распространения приложений, устранения сбоев, мониторинга производительности.
C++: полное руководство по операторам Switch со строками

C++: полное руководство по операторам Switch со строками

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

Как сделать собственный Git с нуля на Go

Реализуем основную функциональность: hash-object, cat-file, init. Разберемся, как здесь управляются объекты и имитируется поведение команд в коде, а затем протестируем.
Девять вопросов на собеседованиях для разработчиков Android

Девять вопросов на собеседованиях для разработчиков Android

Подробно разберем intent, жизненный цикл activity, сравним Serializable и Parcelable. А еще классы данных, расширения, корутины и потоки, рекомпозицию, поднятие состояния, побочные эффекты.
14 вопросов по валидациям на Ruby on Rails

14 вопросов по валидациям на Ruby on Rails

Шпаргалка для собеседования по важной теме Ruby. Некоторые ответы снабжены примерами кода.
Почему борьба GitHub с тостовыми уведомлениями — плохая новость для специалистов по доступности

Почему борьба GitHub с тостовыми уведомлениями — плохая новость для специалистов по доступности

Решение GitHub полностью отказаться от тостовых уведомлений в своих продуктах, мотивированное заботой о доступности, вызвало бурную дискуссию в сообществе. Но является ли запрет действительно решением проблемы?
Как поразить интервьюеров умением инспектировать App Bundle

Как поразить интервьюеров умением инспектировать App Bundle

Хотите произвести неизгладимое впечатление при собеседовании на новую должность? Воспользуйтесь приведенными ниже советами по получению и инспектированию App Bundle. 
C++: полное руководство по кортежам

C++: полное руководство по кортежам

Изучим реальные применения кортежей на практике и расширенные операции. Обозначим типичные проблемы и их решения.
C++: полное руководство по explicit

C++: полное руководство по explicit

Изучим нюансы этого ключевого слова, реальный сценарий использования. Проиллюстрируем примерами, дадим рекомендации.
C++: полное руководство по параметризованным классам

C++: полное руководство по параметризованным классам

Изучим особенности создания и реального применения этих классов. Проиллюстрируем практическими реализациями и примерами.
Apple убивает Swift

Apple убивает Swift

В отличие от современных языков Python, Rust и Kotlin, великий Swift оказался задушен управлением корпораций. Поразмышляем о том, как диктаторское управление убивает наследие Латтнера и можно ли считать безнадежной текущую ситуацию с языком Swift.
Обучение LLM (и не только) на Go. С Python в люльке

Обучение LLM (и не только) на Go. С Python в люльке

Автор показывает, как реализовать шаблон развертывания приложений Sidecar на примере шаблонного кода Python из туториалов, который не сильно затруднит Go-разработчиков, когда понадобится обучать собственные, настраиваемые модели ML. Материал построен от простого к сложному: в конце умозрительный, но работающий пример кода с задержкой между запросом и ответом намного короче, чем 0,35 мс.
Возведение числа в квадрат на C++: методы и применение

Возведение числа в квадрат на C++: методы и применение

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

Повышение безопасности Angular-приложения путем интеграции OCR и биометрии 

Хотите защитить пользователей своих приложений от мошеннических действий? Сделайте это с помощью автоматического извлечения данных путем OCR и биометрических технологий. Предлагаем подробное руководство по интеграции OCR с биометрическими решениями.
Компонентный подход: реализация экранов с помощью библиотеки Decompose. Часть 2

Компонентный подход: реализация экранов с помощью библиотеки Decompose. Часть 2

В этой части рассмотрим с позиций компонентного подхода реализацию сложных экранов с использованием библиотеки Decompose. Используя описанные методы, вы сможете управлять экранами любой сложности.
TrendNow: создание новостного Android-приложения с помощью Jetpack Compose. Часть 1

TrendNow: создание новостного Android-приложения с помощью Jetpack Compose. Часть 1

Это 1-я часть серии статей, посвященных современной Android-разработке на примере создания новостного агрегатора "TrendNow" с помощью Jetpack Compose. В 1-й части предлагается подробное руководство по созданию базовой функциональности новостного приложения.
Прекратите копировать логику сборки — используйте Gradle Convention Plugins

Прекратите копировать логику сборки — используйте Gradle Convention Plugins

Хватит тратить время на синхронизацию десятков модулей вручную — откройте для себя мощь Gradle Convention Plugins. Этот инструмент позволит вам забыть о дублировании кода, централизовать настройки, ускорить сборку и сделать поддержку крупного проекта по-настоящему управляемой. 
Почему ИИ не может предсказывать будущее

Почему ИИ не может предсказывать будущее

Большие языковые модели блестяще угадывают следующее слово в предложении. Но могут ли они предсказывать будущее человечества? Способны ли они предвидеть случайные смысловые сдвиги в человеческом языке, рождающиеся из нашего телесного опыта взаимодействия с миром? Предлагаем поразмышлять над этими глубоко человеческими вопросами.
6 рекомендаций по запуску современной кодовой базы Android с нуля

6 рекомендаций по запуску современной кодовой базы Android с нуля

Шесть тем в фокусе: внедрение зависимостей, чистая архитектура, Jetpack Compose, Kotlin, конвейеры сборки, безопасность. Расскажем обо всем, что важно, дополнив фрагментами кода и пояснениями.
Чему вас может научить запуск приложения в продакшен 

Чему вас может научить запуск приложения в продакшен 

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

Анализ тональности в 3 шага: использование quick_sentiments в Python

Устали от бесконечной предварительной обработки текста и сложных пайплайнов машинного обучения? Теперь у вас будет возможность получать готовые прогнозы тональности всего в три шага — без головной боли с настройкой моделей и очисткой данных. Откройте для себя quick_sentiments: пакет, который превращает трудоемкие задачи в минутные операции.
is-A против has-A

is-A против has-A

Сравним эти две концепции: когда, зачем, где и как применяются. Изучим нюансы и проблемы, проиллюстрируем кодом.
Миф о "простом" приложении

Миф о «простом» приложении

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

Как украсть API-ключи ChatGPT

А вы знаете, где нужно хранить API-ключи ChatGPT, чтобы спать спокойно? Известно ли вам, как злоумышленники могут обойти популярные техники безопасности и получить доступ к вашим API-ключам? Чтобы этого не случилось, ознакомьтесь с основными правилами безопасности фронтенда.
5 малоизвестных компонентов Compose

5 малоизвестных компонентов Compose

Jetpack Compose Material 3 скрывает целый арсенал малоизвестных, но крайне полезных компонентов. Они помогают решать специфические UI-задачи быстрее и создавать более продуманный пользовательский опыт. В этой статье рассмотрим пять таких "скрытых жемчужин".
Неужели ИИ подвел нас к порогу "дивного нового мира" Хаксли?

Неужели ИИ подвел нас к порогу «дивного нового мира» Хаксли?

Общество, управляемое с помощью машин, в конечном итоге лишится свободы. Об этом предупреждал Олдос Хаксли в своей антиутопии "О дивный новый мир". Подумаем, насколько в эпоху ИИ сбылись пророческие предсказания Хаксли и не пора ли к ним прислушаться, чтобы избежать полного порабощения. 
Всплывающие подсказки (Tooltips) в Compose Material 3

Всплывающие подсказки (Tooltips) в Compose Material 3

Всплывающие подсказки (Tooltips) — незаменимый элемент, который помогает пользователям разобраться в интерфейсе. С Compose Material 3 больше не нужны сторонние библиотеки — вся мощь для создания и кастомизации подсказок уже встроена. В этой статье разберем, как работать с простыми и расширенными подсказками в стабильной версии 1.3.2, а также изучим новые возможности альфа-версии 1.4.0.
Осваиваем ViewThatFits. Часть 2

Осваиваем ViewThatFits. Часть 2

Изучим сложные механизмы макета, попробуем раскрыть его логику и потенциал. Детально проанализируем идеальные размеры и адаптивность ViewThatFits, покажем его роль в различных сценариях применения.
React Native или Swift: может ли JavaScript превзойти нативный iOS?

React Native или Swift: может ли JavaScript превзойти нативный iOS?

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

5 функций Expo, которые сэкономили мне недели разработки

Хотите сократить время разработки React Native-приложения? Эти пять функций Expo (включая облачные сборки и мгновенное тестирование на реальном устройстве) позволят вам забыть о многих проблемах и сосредоточиться на совершенствовании продукта.
C++: полное руководство по функциям Floor и Ceil

C++: полное руководство по функциям Floor и Ceil

Изучим эффективное применение этих функций в реальных сценариях, проиллюстрируем примерами. Обозначим типичные проблемы и их решения.
Как решить реальную задачу при помощи структурированной конкурентности и виртуальных потоков Java 21

Как решить реальную задачу при помощи структурированной конкурентности и виртуальных потоков Java 21

Любую сложную задачу можно разбить на простые. Особенно просто и естественно это делается в одном потоке выполнения кода. Но что делать в многопоточной среде, где отношения между конкурентно выполняемыми задачами хранит только ваша голова? Java 21 разгружает вашу голову идеей структурированной конкурентности. JDK позволяет явно выделить подзадачи (подстеки), чтобы затем получить общий итог работы подзадач. Смотрим, как это делается, на примере реальной задачи.
Ruby on Rails 7: важные рекомендации для высококачественного кода

Ruby on Rails 7: важные рекомендации для высококачественного кода

Используйте Hotwire для современного фронтенда, оптимизируйте запросы к базе данных, повышайте качество кода инструментами вроде RuboCop - и ваши проекты Rails 7 будут выгодно отличаться. Так создаются высокопроизводительные, сопровождаемые, масштабируемые приложения.
Операторы Ruby: звездочка * и двойная звездочка **

Операторы Ruby: звездочка * и двойная звездочка **

Изучим эти мощные инструменты, их принцип работы. Рассмотрим, как аргументы передаются в методы, собираются в массив и хеш, каковы особенности присвоения значений.
Почему стоит использовать Ruby on Rails

Почему стоит использовать Ruby on Rails

Краткий обзор Ruby. Чем объясняется его эффективность? Разберем преимущества этого языка.
Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50 % места

Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50...

Хотите, чтобы ваше Android-приложение стало легче, быстрее и современнее? Откажитесь от старых форматов JPEG/PNG и переходите на HEIF и AVIF, чтобы сохранять те же изображения, только размером в 2 раза меньше и без потери качества. Они обеспечат вам молниеносную загрузку изображений и разгрузку памяти на 50 %.
Сервис балансировки нагрузки на ПИД-регуляторах — умозрительный пример

Сервис балансировки нагрузки на ПИД-регуляторах — умозрительный пример

Автор материала рассказывает о ПИД-регуляторе, показывает умозрительный пример с управлением скоростью автомобиля, а затем реализует симуляцию балансировщика нагрузки на Python. Удивительно, но тот же метод для балансировки нагрузки применили в Uber. Подробности читайте по ссылке ниже.
Бесконечное количество репозиториев Git на Cloudflare Worker с быстрым развертыванием

Бесконечное количество репозиториев Git на Cloudflare Worker с быстрым развертыванием

Авторы Gitlip рассказывают о своем продукте — инструменте совместной разработки в эпоху искусственного интеллекта. Это комплексное сочетание контроля версий на основе Git, совместного написания кода и развертывания в один клик. Цель — упростить практическое применение современных моделей искусственного интеллекта.
C++: полное руководство по Mutable

C++: полное руководство по Mutable

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

Реверсинг плагина компилятора Compose: перехват фронтенда

Как плагином компилятора нарушаются правила Kotlin? Изучим архитектуру, FIR-фронтенд компилятора. Заглянем внутрь и попробуем сориентироваться: что и где перехватывается при прохождении этапов компилятора Kotlin?
C++: полное руководство по memset

C++: полное руководство по memset

Разберем сценарии применения, проиллюстрируем практическими примерами. Обозначим типичные проблемы и их решения, дадим рекомендации.
C++: подробное руководство по выводу массива

C++: подробное руководство по выводу массива

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

C++: полное руководство по бинарной сортировке

Изучим реализацию и эффективное применение бинарной сортировки, проиллюстрируем примерами. Сравним по производительности с другими алгоритмами, дадим рекомендации.
Рекомпозиция в Jetpack Compose и View-рендеринг на основе XML: в чем разница?

Рекомпозиция в Jetpack Compose и View-рендеринг на основе XML: в чем разница?

Переход от традиционного View-рендеринга на основе XML к рекомпозиции в Jetpack Compose может оказаться непростым. Но преимущества Compose с точки зрения производительности, удобства разработки и обслуживания оправдывают затраченные усилия.
Утраченное искусство красоты кода 

Утраченное искусство красоты кода 

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

Что мы теряем, когда экономим творческие усилия

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

C++: полное руководство по unique_ptr

Изучим реальные применения unique_ptr на практике. Обозначим типичные проблемы и их решения, а также преимущества unique_ptr в производительности.
Разработка игр для малышей: больше пользы, меньше разочарования

Разработка игр для малышей: больше пользы, меньше разочарования

Когда настольная детская игра превращается из развлечения в объект статистического исследования, открывается удивительная математика детского счастья. Узнайте о том, как гениальный дизайн игр для малышей балансирует на тонкой грани между радостью победы и азартом борьбы.
Кодифицируйте схемы архитектуры AWS уже сегодня

Кодифицируйте схемы архитектуры AWS уже сегодня

Разберем преимущества этой альтернативы интерфейсам drag-and-drop. Создадим простую схему бессерверной архитектуры.
C++: полное руководство по «приведению вверх»

C++: полное руководство по «приведению вверх»

Изучим нюансы приведения вверх, проиллюстрировав их практическими примерами и реальными сценариями. Разберем неявное и явное приведения, полиморфизм, конструкторы и деструкторы, множественное наследование, dynamic_cast.
C++: полное руководство по вставке в векторах

C++: полное руководство по вставке в векторах

Изучим нюансы векторной вставки, ее влияние на производительность. Проиллюстрируем примерами, обозначим типичные проблемы, дадим рекомендации.
Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование

Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование

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

Язык выражений Spring для создания простого движка правил

Научимся определять и оценивать бизнес-правила записей в базе данных. Настроим проект, проиллюстрируем примерами.
C++: полное руководство по обработке файлов с fstream

C++: полное руководство по обработке файлов с fstream

Разберем основные файловые операции, проиллюстрируем практическими примерами. Обозначим типичные сценарии, дадим рекомендации.
Роль Gradle в Android-проектах

Роль Gradle в Android-проектах

Gradle — мощное средство сборки в современной Android-разработке. Понимание его работы критически важно для разработчика: от корректной настройки зависимостей до оптимизации процесса сборки. В этой статье мы подробно разберем архитектуру Gradle, его жизненный цикл и ключевые компоненты, чтобы помочь вам освоить этот важный инструмент.
Стоит ли заниматься iOS-разработкой в 2026 году?

Стоит ли заниматься iOS-разработкой в 2026 году?

SwiftUI стал стандартом, Apple Intelligence встроена в каждое приложение, а интерфейсы требуют "жидкой" логики вместо статичных экранов. Платформа платит щедро, но оставляет за бортом тех, кто не меняется. Стоит ли игра свеч? Да, но только если вы готовы учиться быстрее, чем выходят новые версии Xcode.
Ruby может быть лучше Python для абсолютных новичков

Ruby может быть лучше Python для абсолютных новичков

Когда дело доходит до обучения новичков программированию, часто доминируют два языка — это Ruby и Python. Оба являются интерпретируемыми языками высокого уровня, известные своей относительно легкостью изучения и большим поддерживающим сообществом. Однако если углубиться в нюансы обучения, то можно обнаружить несколько причин, по которым Ruby может предложить новичкам явные преимущества перед Python.
fastquadtree: Как я использовал Rust, чтобы сделать максимально быстрое квадродерево на Python

fastquadtree: Как я использовал Rust, чтобы сделать максимально быстрое квадродерево на Python

Как увеличить производительность муравьиного симулятора в 10 раз, а потом создать самое быстрое квадродерево на Python? История библиотеки fastquadtree — от решения конкретной задачи до высокопроизводительного open-source инструмента.
Реализация тематических фильтров новостей в приложении TrendNow. Часть 3

Реализация тематических фильтров новостей в приложении TrendNow. Часть 3

Эта часть посвящена реализации тематического фильтра трендовых новостей в агрегаторе. Вы узнаете, как добиться отображения трендовых новостей на основе выбранной пользователем темы, сохранять выбранную тему в локальном хранилище с помощью DataStore и оптимизировать рекомпозиции.
Ruby on Rails  -  пишите тесты, как профессионал

Ruby on Rails  —  пишите тесты, как профессионал

Узнаем на простых и эффективных примерах, как пишутся оптимизированные, быстрые и точные тесты. Хорошие тесты против плохих: как сокращается дублирование, поддерживается четкая структурированность, соблюдается принцип DRY.
[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

Чем @AppStorage отличается от @State и как решается потенциальная проблема @AppStorage с самим SwiftUI? Применим подход со ViewModel.
Реализация бесконечной прокрутки списка новостей в приложении TrendNow. Часть 4

Реализация бесконечной прокрутки списка новостей в приложении TrendNow. Часть 4

Реализация бесконечной прокрутки в Lazy Column Jetpack Compose - новый шаг в создании новостного приложения TrendNow. Она позволит без проблем загружать больше трендовых новостей по мере того, как пользователь прокручивает список.
Ruby: рефакторинг без лишних сложностей

Ruby: рефакторинг без лишних сложностей

С чего начать и как избежать ловушки усложнения? Дадим рекомендации с небольшим примером.
C++: подробное руководство по размерам векторов

C++: подробное руководство по размерам векторов

Разберем простые и продвинутые методы получения размера вектора, нюансы производительности. Рассмотрим типичные ошибки и реальные сценарии.
C++: полное руководство по динамическим массивам

C++: полное руководство по динамическим массивам

Изучим практическое применение этих массивов, оптимизацию их производительности. Проиллюстрируем примерами и реальным сценарием использования.
C++: подробное руководство по cортированным векторам

C++: подробное руководство по cортированным векторам

Разберем основные операции, выполняемые с сортированными векторами, и реальные сценарии. Сравним по эффективности эти векторы с несортированными.
5 функций-расширений в арсенале каждого разработчика Jetpack Compose

5 функций-расширений в арсенале каждого разработчика Jetpack Compose

Изучим пять функций из асенала разработчика Jetpack Compose и столько же для работы с системой представлений. Проиллюстрируем примерами.
Аттестации: новое поколение подписей в PyPI

Аттестации: новое поколение подписей в PyPI

Представляем читателям обзор аттестаций PyPI в цифрах и диаграммах с конкретным примером и, конечно же, кодом. В материале также рассказывается о том, кому и зачем понадобится механизм. Особое внимание авторы уделяют происхождению пакета, которое позволяет отследить процесс появления пакета вплоть до конкретного устройства.
Как создать Open Source библиотеку Android

Как создать Open Source библиотеку Android

Пошагово пройдем процесс проектирования. Спланируем надежную стратегию согласно жизненным циклам проекта ПО с открытым исходным кодом  -  от проектирования до выпуска.
Найти все на C++: практическое руководство

Найти все на C++: практическое руководство

Изучим, как на C++ реализуется и применяется функциональность find_all. Проиллюстрируем примерами, обозначим типичные проблемы, дадим рекомендации.
Реализация кэширования новостных тем в приложении TrendNow. Часть 5

Реализация кэширования новостных тем в приложении TrendNow. Часть 5

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

Kotlin: изолированные классы и интерфейс

Хотите писать Kotlin-код, который компилятор проверяет за вас? Все дело в грамотном использовании изолированных классов и интерфейсов. Узнайте, как выбирать между ними для создания идеальной — гибкой, удобочитаемой и типобезопасной — архитектуры. 
Добавление новостных тем в приложение TrendNow. Часть 2

Добавление новостных тем в приложение TrendNow. Часть 2

2-я часть посвящена добавлению в новостное приложение раздела тем с реализацией горизонтальной прокрутки в LazyColumn. Вы узнаете, зачем стоит создать еще одну ViewModel и как добавить раздел/элемент в LazyColumn Jetpack Compose, чтобы избежать ненужных рекомпозиций.
Пайплайн рендеринга во Flutter: фаза сборки

Пайплайн рендеринга во Flutter: фаза сборки

Фаза сборки имеет решающее значение в процессе рендеринга во Flutter. Прислушайтесь к рекомендациям по оптимизации этой фазы, чтобы создавать высокопроизводительные и визуально привлекательные веб-приложения с бесшовным пользовательским опытом.
Ruby: unless против if

Ruby: unless против if

Разберем невидимые отличия и нюансы. В конце  -  небольшая шпаргалка по применению if и unless.
Rust замедлил разработку, но инцидентов в продакшене стало на 44% меньше

Rust замедлил разработку, но инцидентов в продакшене стало на 44% меньше

Хотите спокойно спать по ночам? Перепишите ключевые сервисы на Rust. Замедление разработки на 18% может окупиться сокращением инцидентов в продакшен-среде до 44%. Узнайте, почему достижение структурной устойчивости за счет скорости итераций  —  лучшая инвестиция в надежность проекта.
Отходим от монолита: освоение модульной навигации в Android (Kotlin и компонент Jetpack Navigation)

Отходим от монолита: освоение модульной навигации в Android (Kotlin и компонент Jetpack Navigation)

Основной граф навигации слишком запутан? Пора переходить к модульной навигации. Разберем, как развязать модули и ускорить разработку.
C++: полное руководство по циклам while

C++: полное руководство по циклам while

Разберем сценарии применения, проиллюстрируем практическими примерами, дадим рекомендации. Когда предпочтительнее цикл do-while?
За пределами GeometryReader: создание улучшенных модификаторов SwiftUI с помощью onGeometryChange

За пределами GeometryReader: создание улучшенных модификаторов SwiftUI с помощью onGeometryChange

Откажитесь от GeometryReader, который нарушает верстку — используйте onGeometryChange для точного отслеживания геометрии без изменения иерархии представлений. Этот элегантный подход сделает ваш код чище, макеты — более предсказуемыми, а разработку — приятнее.
Кэширование трендовых новостей в приложении TrendNow с помощью OkHttp Cache. Часть 6

Кэширование трендовых новостей в приложении TrendNow с помощью OkHttp Cache. Часть 6

В этой части вы узнаете о решении проблемы ограничения скорости API в TrendNow путем реализации OkHttp Cache для кэширования трендовых новостей на стороне клиента. Это решение, хотя и не устраняет полностью проблему, помогает минимизировать ограничение скорости API.
Data Science

Развёртывание модели машинного обучения в виде REST API

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

10 проверенных правил написания Python-кода продакшен-класса

В продакшен-среде красивый код из учебников "ломается" первым. Возьмите на вооружение 10 правил написания Python-кода, выведенные не в теории, а на практике — через ночные аварии и годы поддержки живых систем. Эти правила сделают ваш код не умным, а надежным, понятным и готовым к любым неожиданностям.
Построение архитектуры данных реального времени с помощью Apache Kafka, Flink и Druid

Построение архитектуры данных реального времени с помощью Apache Kafka, Flink и Druid

Обработка пакетных данных в режиме реального времени - одна из наиболее сложных задач. Каждый этап, от доставки и обработки данных до их анализа, занимает определенное время. К счастью, для устранения этих задержек есть такие инструменты, как Apache Kafka, Flink и Druid.
Education

Два метода безопасного программирования

Мы рассмотрим два очень простых и практичных безопасных метода, которые вы можете начать применять уже сегодня. Если вы профессиональный разработчик, вы наверняка уже их...
Как автоматизировать удаление ненужных файлов с помощью Python

Как автоматизировать удаление ненужных файлов с помощью Python 

Пошаговое руководство по автоматизации удаления ненужных файлов. Поработаем с Python и планировщиком задач cron.