Почему разработка ПО больше не радует?
Раньше разработчик чувствовал себя мастером: сидел над кодом часами, искал в нем проблемные места, испытывал драйв от решения запутанной задачи. Теперь все решают два-три промпта. Где же в этой схеме место разработчику и источник его радости?
Как создать 3D-границу в Jetpack Compose
Воспользуйтесь руководством по созданию модификатора 3D-границ и панели поиска с использованием этого модификатора. Вы научитесь рисовать тени и блики для получения эффекта выпуклости, а также узнаете, как написать TextField с индивидуальным стилем.
C++: полное руководство по кортежам
Изучим реальные применения кортежей на практике и расширенные операции. Обозначим типичные проблемы и их решения.
C++: полное руководство по explicit
Изучим нюансы этого ключевого слова, реальный сценарий использования. Проиллюстрируем примерами, дадим рекомендации.
Apache Spark — типичные ошибки и их устранение
Рассмотрим, как устраняются эти ошибки, выполняются оптимизации для совершенствования производительности и использования памяти приложений Spark. Проиллюстрируем примерами, дадим рекомендации.
Пример сквозного ELT-процесса для хранилища данных с Postgres
Поэтапно сделаем витрину данных со всеми аспектами, разложим все по полочкам. Рассмотрим разные сценарии ее построения.
Как создать форму текстового фона в Jetpack Compose
Красивое оформление повышает привлекательность текста для пользователей. Сегодня расскажем, как с помощью Jetpack Compose "одеть" текст в фоновую форму.
Глубокое погружение в режим Copy-on-Write в pandas. Часть 3
Внедрение процесса Copy-on-Write (CoW) является серьезным изменением, которое способно оказать определенное влияние на код pandas. В этой части мы изучим способы адаптации кода, чтобы избежать ошибок при включенном по умолчанию CoW.
Настройка приложения Go с проблемами сборки мусора
Как, выделяя больше памяти, сократить общее время сборки мусора и использования процессора? Расскажем, что получилось в настройке производительности.
Создание Copilot для визуального распознавания в Azure
Хотите создать чат-бота для обобщения и релевантного поиска видеоконтента в Azure? Ознакомьтесь с примером разработки и использования цифрового помощника Copilot. Он поможет быстро находить как ключевые моменты видеоролика, так и заданные фрагменты.
Дорожная карта iOS для разработчиков Android: основы
Хотите стать универсальным разработчиком, знающим особенности программирования как для Android, так и для iOS? Этот гайд расскажет о различиях и сходствах работы с этими двумя платформами.
Ваш ИИ не глуп — у него просто нет обвязки
Принято считать ошибающийся ИИ недостаточно умным. На самом деле моделям чаще всего не хватает не ума, а обвязки — четкой инструкции из нескольких простых правил. Узнайте, как написать такую инструкцию, чтобы превратить хаотичное поведение агента на базе ИИ в надежную работу с файлами, тестами и средой.
Как создать атомарный загрузчик в Jetpack Compose
Jetpack Compose предлагает эффективные инструменты для разработки визуально привлекательной плавной загрузки. Предлагаем руководство по созданию 3D-анимации атомарного загрузчика, которая впечатлит самых претенциозных пользователей современных приложений.
Запись логов в Golang
Чем отличаются диагностические сообщения модуля log от функций fmt: Print, Panic, Fatal? Разберем настройку формата логов.
Эффективная стратегия тестирования Android-проектов. Часть 1
В этой части описан и обоснован сбалансированный подход к комплексному тестированию Android-приложений, включающий автоматизированные (модульные, интеграционные, сквозные, интерфейсные) и ручные тесты. Такая эффективная стратегия позволяет минимизировать время и усилия, получив максимальную отдачу.
Как создать анимированный переключатель тем в Jetpack Compose
Сколько пользователей, столько и предпочтений. Темы - не исключение. Кому-то больше нравится темное оформление, кому-то - светлое. Сегодня посмотрим, как разработать оригинальный переключатель тем с помощью Jetpack Compose.
C++: полное руководство по операторам Switch со строками
Разберем эффективные альтернативы строковым переключениям. Проиллюстрируем практическими примерами, дадим рекомендации и поможем с выбором оптимального подхода.
Второй шанс разработки программного обеспечения
Говорят, что ИИ сделал разработку ПО менее стабильной, менее безопасной. В этом есть доля правды, как и в том, что ИИ переосмыслил каждую нашу ошибку и каждую удачу за последние 50 лет. А что, если именно в этом и кроется второй шанс разработки ПО?
Обучение LLM (и не только) на Go. С Python в люльке
Автор показывает, как реализовать шаблон развертывания приложений Sidecar на примере шаблонного кода Python из туториалов, который не сильно затруднит Go-разработчиков, когда понадобится обучать собственные, настраиваемые модели ML. Материал построен от простого к сложному: в конце умозрительный, но работающий пример кода с задержкой между запросом и ответом намного короче, чем 0,35 мс.
Стоит ли заниматься iOS-разработкой в 2026 году?
SwiftUI стал стандартом, Apple Intelligence встроена в каждое приложение, а интерфейсы требуют "жидкой" логики вместо статичных экранов. Платформа платит щедро, но оставляет за бортом тех, кто не меняется. Стоит ли игра свеч? Да, но только если вы готовы учиться быстрее, чем выходят новые версии Xcode.
Как сделать собственный Git с нуля на Go
Реализуем основную функциональность: hash-object, cat-file, init. Разберемся, как здесь управляются объекты и имитируется поведение команд в коде, а затем протестируем.
Оптимальные инструменты Firebase для мобильного приложения
Как упрощается процесс разработки с готовыми решениями аутентификации, уведомлений, баз данных реального времени? Изучим реализацию важного функционала: FCM, Remote Config, расширений, распространения приложений, устранения сбоев, мониторинга производительности.
14 вопросов по валидациям на Ruby on Rails
Шпаргалка для собеседования по важной теме Ruby. Некоторые ответы снабжены примерами кода.
C++: полное руководство по вставке в векторах
Изучим нюансы векторной вставки, ее влияние на производительность. Проиллюстрируем примерами, обозначим типичные проблемы, дадим рекомендации.
Почему ИИ не может предсказывать будущее
Большие языковые модели блестяще угадывают следующее слово в предложении. Но могут ли они предсказывать будущее человечества? Способны ли они предвидеть случайные смысловые сдвиги в человеческом языке, рождающиеся из нашего телесного опыта взаимодействия с миром? Предлагаем поразмышлять над этими глубоко человеческими вопросами.
Девять вопросов на собеседованиях для разработчиков Android
Подробно разберем intent, жизненный цикл activity, сравним Serializable и Parcelable. А еще классы данных, расширения, корутины и потоки, рекомпозицию, поднятие состояния, побочные эффекты.
C++: полное руководство по функциям Floor и Ceil
Изучим эффективное применение этих функций в реальных сценариях, проиллюстрируем примерами. Обозначим типичные проблемы и их решения.
C++: полное руководство по параметризованным классам
Изучим особенности создания и реального применения этих классов. Проиллюстрируем практическими реализациями и примерами.
Как украсть API-ключи ChatGPT
А вы знаете, где нужно хранить API-ключи ChatGPT, чтобы спать спокойно? Известно ли вам, как злоумышленники могут обойти популярные техники безопасности и получить доступ к вашим API-ключам? Чтобы этого не случилось, ознакомьтесь с основными правилами безопасности фронтенда.
Почему борьба GitHub с тостовыми уведомлениями — плохая новость для специалистов по доступности
Решение GitHub полностью отказаться от тостовых уведомлений в своих продуктах, мотивированное заботой о доступности, вызвало бурную дискуссию в сообществе. Но является ли запрет действительно решением проблемы?
Как поразить интервьюеров умением инспектировать App Bundle
Хотите произвести неизгладимое впечатление при собеседовании на новую должность? Воспользуйтесь приведенными ниже советами по получению и инспектированию App Bundle.
Компонентный подход: реализация экранов с помощью библиотеки Decompose. Часть 2
В этой части рассмотрим с позиций компонентного подхода реализацию сложных экранов с использованием библиотеки Decompose. Используя описанные методы, вы сможете управлять экранами любой сложности.
TrendNow: создание новостного Android-приложения с помощью Jetpack Compose. Часть 1
Это 1-я часть серии статей, посвященных современной Android-разработке на примере создания новостного агрегатора "TrendNow" с помощью Jetpack Compose. В 1-й части предлагается подробное руководство по созданию базовой функциональности новостного приложения.
Apple убивает Swift
В отличие от современных языков Python, Rust и Kotlin, великий Swift оказался задушен управлением корпораций. Поразмышляем о том, как диктаторское управление убивает наследие Латтнера и можно ли считать безнадежной текущую ситуацию с языком Swift.
5 функций Expo, которые сэкономили мне недели разработки
Хотите сократить время разработки React Native-приложения? Эти пять функций Expo (включая облачные сборки и мгновенное тестирование на реальном устройстве) позволят вам забыть о многих проблемах и сосредоточиться на совершенствовании продукта.
Прекратите копировать логику сборки — используйте Gradle Convention Plugins
Хватит тратить время на синхронизацию десятков модулей вручную — откройте для себя мощь Gradle Convention Plugins. Этот инструмент позволит вам забыть о дублировании кода, централизовать настройки, ускорить сборку и сделать поддержку крупного проекта по-настоящему управляемой.
is-A против has-A
Сравним эти две концепции: когда, зачем, где и как применяются. Изучим нюансы и проблемы, проиллюстрируем кодом.
Чему вас может научить запуск приложения в продакшен
Написать код приложения — полдела. Настоящее испытание для разработчика начинается в тот момент, когда продукт попадает в руки реальных пользователей. Сегодня вы узнаете, чему меня научил первый запуск приложения в продакшен и почему этот опыт важнее любого туториала.
6 рекомендаций по запуску современной кодовой базы Android с нуля
Шесть тем в фокусе: внедрение зависимостей, чистая архитектура, Jetpack Compose, Kotlin, конвейеры сборки, безопасность. Расскажем обо всем, что важно, дополнив фрагментами кода и пояснениями.
Миф о «простом» приложении
Простые приложения — это не "быстро и дешево". Это самый дорогой и сложный продукт, за кажущейся легкостью которого прячутся тысячи решений, куча выброшенных функций и месяцы работы, чтобы все работало незаметно для вас.
Всплывающие подсказки (Tooltips) в Compose Material 3
Всплывающие подсказки (Tooltips) — незаменимый элемент, который помогает пользователям разобраться в интерфейсе. С Compose Material 3 больше не нужны сторонние библиотеки — вся мощь для создания и кастомизации подсказок уже встроена. В этой статье разберем, как работать с простыми и расширенными подсказками в стабильной версии 1.3.2, а также изучим новые возможности альфа-версии 1.4.0.
Повышение безопасности Angular-приложения путем интеграции OCR и биометрии
Хотите защитить пользователей своих приложений от мошеннических действий? Сделайте это с помощью автоматического извлечения данных путем OCR и биометрических технологий. Предлагаем подробное руководство по интеграции OCR с биометрическими решениями.
Анализ тональности в 3 шага: использование quick_sentiments в Python
Устали от бесконечной предварительной обработки текста и сложных пайплайнов машинного обучения? Теперь у вас будет возможность получать готовые прогнозы тональности всего в три шага — без головной боли с настройкой моделей и очисткой данных. Откройте для себя quick_sentiments: пакет, который превращает трудоемкие задачи в минутные операции.
React Native или Swift: может ли JavaScript превзойти нативный iOS?
В 2026 году этот вопрос звучит острее, чем когда-либо: может ли JavaScript-фреймворк реально бросить вызов нативному Apple? Предлагаемое исследование разложит по полочкам ключевые факторы, чтобы вы приняли решение, основанное не на хайпе, а на технических и бизнес-потребностях вашего проекта.
5 малоизвестных компонентов Compose
Jetpack Compose Material 3 скрывает целый арсенал малоизвестных, но крайне полезных компонентов. Они помогают решать специфические UI-задачи быстрее и создавать более продуманный пользовательский опыт. В этой статье рассмотрим пять таких "скрытых жемчужин".
Сервис балансировки нагрузки на ПИД-регуляторах — умозрительный пример
Автор материала рассказывает о ПИД-регуляторе, показывает умозрительный пример с управлением скоростью автомобиля, а затем реализует симуляцию балансировщика нагрузки на Python. Удивительно, но тот же метод для балансировки нагрузки применили в Uber. Подробности читайте по ссылке ниже.
Неужели ИИ подвел нас к порогу «дивного нового мира» Хаксли?
Общество, управляемое с помощью машин, в конечном итоге лишится свободы. Об этом предупреждал Олдос Хаксли в своей антиутопии "О дивный новый мир". Подумаем, насколько в эпоху ИИ сбылись пророческие предсказания Хаксли и не пора ли к ним прислушаться, чтобы избежать полного порабощения.
C++: полное руководство по memset
Разберем сценарии применения, проиллюстрируем практическими примерами. Обозначим типичные проблемы и их решения, дадим рекомендации.
Осваиваем ViewThatFits. Часть 2
Изучим сложные механизмы макета, попробуем раскрыть его логику и потенциал. Детально проанализируем идеальные размеры и адаптивность ViewThatFits, покажем его роль в различных сценариях применения.
C++: полное руководство по Mutable
Разберем преимущества этого инструмента, типичные сценарии и потенциальные ошибки. Проиллюстрируем практическими примерами, дадим рекомендации.
10 практик Spring Boot, которые мгновенно повысят ваш уровень в бэкенд-разработке
Spring Boot упрощает разработку на Java. Но освоения этого фреймворка недостаточно для того, чтобы избежать хаоса в проекте. Изучите 10 лучших практик использования Spring Boot для создания масштабируемых, чистых и готовых к эксплуатации бэкенд-приложений.
Как решить реальную задачу при помощи структурированной конкурентности и виртуальных потоков Java 21
Любую сложную задачу можно разбить на простые. Особенно просто и естественно это делается в одном потоке выполнения кода. Но что делать в многопоточной среде, где отношения между конкурентно выполняемыми задачами хранит только ваша голова? Java 21 разгружает вашу голову идеей структурированной конкурентности. JDK позволяет явно выделить подзадачи (подстеки), чтобы затем получить общий итог работы подзадач. Смотрим, как это делается, на примере реальной задачи.
Я создал на Go инструмент для Kubernetes с открытым исходным кодом
Kubernetes-инструмент в 2026 году? Серьезно? Да, потому что «kubectl get all» до сих пор не возвращает все ресурсы. Узнайте, как за один уикенд создать на Go утилиту, которая за 7 секунд показывает, что заброшено, что зависло, а что можно безопасно удалить.
C++: подробное руководство по выводу массива
Разберем преимущества разных подходов и реальные сценарии. Проиллюстрируем практическими примерами, поможем определиться с выбором.
Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50...
Хотите, чтобы ваше Android-приложение стало легче, быстрее и современнее? Откажитесь от старых форматов JPEG/PNG и переходите на HEIF и AVIF, чтобы сохранять те же изображения, только размером в 2 раза меньше и без потери качества. Они обеспечат вам молниеносную загрузку изображений и разгрузку памяти на 50 %.
C++: полное руководство по бинарной сортировке
Изучим реализацию и эффективное применение бинарной сортировки, проиллюстрируем примерами. Сравним по производительности с другими алгоритмами, дадим рекомендации.
Операторы Ruby: звездочка * и двойная звездочка **
Изучим эти мощные инструменты, их принцип работы. Рассмотрим, как аргументы передаются в методы, собираются в массив и хеш, каковы особенности присвоения значений.
Разработка игр для малышей: больше пользы, меньше разочарования
Когда настольная детская игра превращается из развлечения в объект статистического исследования, открывается удивительная математика детского счастья. Узнайте о том, как гениальный дизайн игр для малышей балансирует на тонкой грани между радостью победы и азартом борьбы.
C++: полное руководство по unique_ptr
Изучим реальные применения unique_ptr на практике. Обозначим типичные проблемы и их решения, а также преимущества unique_ptr в производительности.
Бесконечное количество репозиториев Git на Cloudflare Worker с быстрым развертыванием
Авторы Gitlip рассказывают о своем продукте — инструменте совместной разработки в эпоху искусственного интеллекта. Это комплексное сочетание контроля версий на основе Git, совместного написания кода и развертывания в один клик. Цель — упростить практическое применение современных моделей искусственного интеллекта.
Утраченное искусство красоты кода
В эпоху ИИ-генерации мы все реже задумываемся о том, что код может быть не просто функциональным, а по-настоящему красивым. Но было время, когда элегантность алгоритмов восхищала, как поэзия, а программисты оставляли в строках частицу своего мышления. Что происходит с искусством кода, когда его создание переходит к машинам?
Реверсинг плагина компилятора Compose: перехват фронтенда
Как плагином компилятора нарушаются правила Kotlin? Изучим архитектуру, FIR-фронтенд компилятора. Заглянем внутрь и попробуем сориентироваться: что и где перехватывается при прохождении этапов компилятора Kotlin?
C++: подробное руководство по cортированным векторам
Разберем основные операции, выполняемые с сортированными векторами, и реальные сценарии. Сравним по эффективности эти векторы с несортированными.
Ruby on Rails 7: важные рекомендации для высококачественного кода
Используйте Hotwire для современного фронтенда, оптимизируйте запросы к базе данных, повышайте качество кода инструментами вроде RuboCop - и ваши проекты Rails 7 будут выгодно отличаться. Так создаются высокопроизводительные, сопровождаемые, масштабируемые приложения.
Что мы теряем, когда экономим творческие усилия
Искусственный интеллект создает идеальные изображения собак за секунды, но мы почему-то до сих пор помним уродливых щенков, нарисованных в детстве на старом софте. Не обесценивает ли упрощение творческого процесса его результат? Ответ на этот вопрос заставит вас пересмотреть свое отношение к творчеству и технологиям.
Рекомпозиция в Jetpack Compose и View-рендеринг на основе XML: в чем разница?
Переход от традиционного View-рендеринга на основе XML к рекомпозиции в Jetpack Compose может оказаться непростым. Но преимущества Compose с точки зрения производительности, удобства разработки и обслуживания оправдывают затраченные усилия.
Почему стоит использовать Ruby on Rails
Краткий обзор Ruby. Чем объясняется его эффективность? Разберем преимущества этого языка.
C++: полное руководство по обработке файлов с fstream
Разберем основные файловые операции, проиллюстрируем практическими примерами. Обозначим типичные сценарии, дадим рекомендации.
Кодифицируйте схемы архитектуры AWS уже сегодня
Разберем преимущества этой альтернативы интерфейсам drag-and-drop. Создадим простую схему бессерверной архитектуры.
Язык выражений Spring для создания простого движка правил
Научимся определять и оценивать бизнес-правила записей в базе данных. Настроим проект, проиллюстрируем примерами.
Rust замедлил разработку, но инцидентов в продакшене стало на 44% меньше
Хотите спокойно спать по ночам? Перепишите ключевые сервисы на Rust. Замедление разработки на 18% может окупиться сокращением инцидентов в продакшен-среде до 44%. Узнайте, почему достижение структурной устойчивости за счет скорости итераций — лучшая инвестиция в надежность проекта.
C++: полное руководство по «приведению вверх»
Изучим нюансы приведения вверх, проиллюстрировав их практическими примерами и реальными сценариями. Разберем неявное и явное приведения, полиморфизм, конструкторы и деструкторы, множественное наследование, dynamic_cast.
fastquadtree: Как я использовал Rust, чтобы сделать максимально быстрое квадродерево на Python
Как увеличить производительность муравьиного симулятора в 10 раз, а потом создать самое быстрое квадродерево на Python? История библиотеки fastquadtree — от решения конкретной задачи до высокопроизводительного open-source инструмента.
Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование
Эта часть посвящена основным элементам модульного тестирования при подготовке Android-проектов, а также различным типам тестовых дублеров. Вы узнаете, что именно надо тестировать при Android-разработке и получите рекомендации по написанию удобных в обслуживании и эффективных тестов.
Роль Gradle в Android-проектах
Gradle — мощное средство сборки в современной Android-разработке. Понимание его работы критически важно для разработчика: от корректной настройки зависимостей до оптимизации процесса сборки. В этой статье мы подробно разберем архитектуру Gradle, его жизненный цикл и ключевые компоненты, чтобы помочь вам освоить этот важный инструмент.
Реализация бесконечной прокрутки списка новостей в приложении TrendNow. Часть 4
Реализация бесконечной прокрутки в Lazy Column Jetpack Compose - новый шаг в создании новостного приложения TrendNow. Она позволит без проблем загружать больше трендовых новостей по мере того, как пользователь прокручивает список.
Ruby on Rails — пишите тесты, как профессионал
Узнаем на простых и эффективных примерах, как пишутся оптимизированные, быстрые и точные тесты. Хорошие тесты против плохих: как сокращается дублирование, поддерживается четкая структурированность, соблюдается принцип DRY.
Ruby может быть лучше Python для абсолютных новичков
Когда дело доходит до обучения новичков программированию, часто доминируют два языка — это Ruby и Python. Оба являются интерпретируемыми языками высокого уровня, известные своей относительно легкостью изучения и большим поддерживающим сообществом. Однако если углубиться в нюансы обучения, то можно обнаружить несколько причин, по которым Ruby может предложить новичкам явные преимущества перед Python.
Ruby: рефакторинг без лишних сложностей
С чего начать и как избежать ловушки усложнения? Дадим рекомендации с небольшим примером.
C++: полное руководство по динамическим массивам
Изучим практическое применение этих массивов, оптимизацию их производительности. Проиллюстрируем примерами и реальным сценарием использования.
Реализация тематических фильтров новостей в приложении TrendNow. Часть 3
Эта часть посвящена реализации тематического фильтра трендовых новостей в агрегаторе. Вы узнаете, как добиться отображения трендовых новостей на основе выбранной пользователем темы, сохранять выбранную тему в локальном хранилище с помощью DataStore и оптимизировать рекомпозиции.
[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel
Чем @AppStorage отличается от @State и как решается потенциальная проблема @AppStorage с самим SwiftUI? Применим подход со ViewModel.
C++: подробное руководство по размерам векторов
Разберем простые и продвинутые методы получения размера вектора, нюансы производительности. Рассмотрим типичные ошибки и реальные сценарии.
Ускорение бэкенд-сервиса на Rust с помощью крейта esox_objectpool
Хватит перераспределять ресурсы. Каждый раз, когда ваше Rust-приложение создает новое соединение с базой данных или выделяет большой буфер, оно крадет драгоценные микросекунды у ваших пользователей. Использование крейта esox_objectpool превратит эти ресурсоемкие объекты в многоразовые, мгновенно готовые к работе — и ваш бэкенд будет летать, а не тормозить.
5 функций-расширений в арсенале каждого разработчика Jetpack Compose
Изучим пять функций из асенала разработчика Jetpack Compose и столько же для работы с системой представлений. Проиллюстрируем примерами.
Аттестации: новое поколение подписей в PyPI
Представляем читателям обзор аттестаций PyPI в цифрах и диаграммах с конкретным примером и, конечно же, кодом. В материале также рассказывается о том, кому и зачем понадобится механизм. Особое внимание авторы уделяют происхождению пакета, которое позволяет отследить процесс появления пакета вплоть до конкретного устройства.
Как создать Open Source библиотеку Android
Пошагово пройдем процесс проектирования. Спланируем надежную стратегию согласно жизненным циклам проекта ПО с открытым исходным кодом - от проектирования до выпуска.
Найти все на C++: практическое руководство
Изучим, как на C++ реализуется и применяется функциональность find_all. Проиллюстрируем примерами, обозначим типичные проблемы, дадим рекомендации.
Реализация кэширования новостных тем в приложении TrendNow. Часть 5
В этой части вы узнаете о том, как эффективно реализовать кэширование новостных тем на стороне клиента с использованием базы данных Room. Это может быть полезно для снижения ограничения скорости API, уменьшения нагрузки на сервер, повышения эффективности приложения.
Пайплайн рендеринга во Flutter: фаза сборки
Фаза сборки имеет решающее значение в процессе рендеринга во Flutter. Прислушайтесь к рекомендациям по оптимизации этой фазы, чтобы создавать высокопроизводительные и визуально привлекательные веб-приложения с бесшовным пользовательским опытом.
Kotlin: изолированные классы и интерфейс
Хотите писать Kotlin-код, который компилятор проверяет за вас? Все дело в грамотном использовании изолированных классов и интерфейсов. Узнайте, как выбирать между ними для создания идеальной — гибкой, удобочитаемой и типобезопасной — архитектуры.
Отходим от монолита: освоение модульной навигации в Android (Kotlin и компонент Jetpack Navigation)
Основной граф навигации слишком запутан? Пора переходить к модульной навигации. Разберем, как развязать модули и ускорить разработку.
Добавление новостных тем в приложение TrendNow. Часть 2
2-я часть посвящена добавлению в новостное приложение раздела тем с реализацией горизонтальной прокрутки в LazyColumn. Вы узнаете, зачем стоит создать еще одну ViewModel и как добавить раздел/элемент в LazyColumn Jetpack Compose, чтобы избежать ненужных рекомпозиций.
C++: полное руководство по циклам while
Разберем сценарии применения, проиллюстрируем практическими примерами, дадим рекомендации. Когда предпочтительнее цикл do-while?
За пределами GeometryReader: создание улучшенных модификаторов SwiftUI с помощью onGeometryChange
Откажитесь от GeometryReader, который нарушает верстку — используйте onGeometryChange для точного отслеживания геометрии без изменения иерархии представлений. Этот элегантный подход сделает ваш код чище, макеты — более предсказуемыми, а разработку — приятнее.
Ruby: unless против if
Разберем невидимые отличия и нюансы. В конце - небольшая шпаргалка по применению if и unless.
Кэширование трендовых новостей в приложении TrendNow с помощью OkHttp Cache. Часть 6
В этой части вы узнаете о решении проблемы ограничения скорости API в TrendNow путем реализации OkHttp Cache для кэширования трендовых новостей на стороне клиента. Это решение, хотя и не устраняет полностью проблему, помогает минимизировать ограничение скорости API.
Под капотом модификатора suspend
Корутины Kotlin предоставили Android разработчикам модификатор suspend. Изучив его, вы поймете, почему функция suspend не возвращает ничего до тех пор, пока не будет завершена...
Генерация ответа, дополненная результатами поиска (RAG): от теории к реализации на LangChain
Ознакомьтесь с процессом выполнения простого RAG-пайплайна. Вы сможете изучить его пошагово — от теории, изложенной в оригинальной научной статье, до практической реализации на Python с помощью OpenAI, Weaviate и LangChain.
Превращаем субъективные понятия в объективные метрики: простая методика
Хотите создать модель на основе источника истинных данных? Привлеките к решению этой задачи нескольких экспертов компании. Только согласовав различные точки зрения, можно выработать объективную метрику.
8 инструментов для предпринимателей, похожих на ChatGPT
ChatGPT - не единственный на рынке инструмент искусственного интеллекта. Рассмотрим 8 альтернатив, которые также могут пригодиться.
Из криптовалюты в криптоактив: как биткойн потерял свое изначальное предназначение
22 мая 2010 года один из первых майнеров по имени Ласло Ханец купил, возможно, самую дорогую в истории человечества пиццу: он заплатил 10 000...

















































































![[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel [SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel](https://nuancesprog.ru/wp-content/uploads/2025/02/SwiftUI-pattern-218x150.png)



















