NetMock: простой подход к тестированию HTTP-запросов в Java, Android и Kotlin Multiplatform
Познакомимся с библиотекой NetMock, которая упрощает имитацию запросов и ответов в тестовых средах. Рассмотрим ее преимущества и сравним с другими аналогами.
Создание анимированной кнопки-счетчика в Jetpack Compose
Предлагаем пошаговое руководство по созданию в Jetpack Compose анимированной кнопки-счетчика для небольшого приложения. Это не только полезный навык, но и довольно увлекательное занятие.
Kotlin: вложенный и внутренний классы
Чем отличаются вложенные классы от внутренних? Как в Kotlin одни классы объявляются внутри других?
Почему стоит упрощать проекты МО
Аргументируем, почему не стоит тратить время и силы на сложную модель МО, а лучше в интересах бизнес-клиентов заняться созданием работоспособного MVP.
Работа с графиками в SwiftUI: руководство для начинающих
Хотите, чтобы визуальный контент приложения был представлен в виде функциональных графиков? Воспользуйтесь руководством по работе со Swift Charts. Оно поможет освоить процесс создания и настройки диаграмм с возможностями модифицирования, комбинирования и интерактивности.
Борьба с веб-скрейперами с помощью Rust
Боты, использующие инструменты веб-скрейпинга, могут быть использованы злоумышленниками в самых неприглядных целях. Можно ли им противостоять? Да! Сегодня рассмотрим мощный инструмент для борьбы с такими непрошенными гостями, построенный на Rust.
Мой первый опыт работы с языком Gleam
Gleam - надежный инструмент в мире функционального программирования. Проведем объективное исследование возможностей этого языка и выделим его сильные стороны.
Развертывание Gradio на AWS: краткое руководство для начинающих
Предлагаем пошаговое руководство по развертыванию базового приложения Gradio с помощью Amazon Web Services (AWS). Предварительный опыт работы с AWS не требуется, поскольку каждый шаг будет сопровождаться детальными инструкциями.
Что важнее — промпт-дизайн или промпт-инжиниринг?
В сфере языковых моделей разграничивают такие аспекты, как “промпт-дизайн” и “промпт-инжиниринг”. Первый относят к искусству, второй — к науке. Какой же из них важнее? Ответ на этот вопрос определит как настоящее, так и будущее человекоориентированного ИИ.
Создание среды AWS Boto3 на Python с Docker Compose
Развернем всего из одного файла среду Boto3 с изолированными контейнерами разработки и продакшена. Рассмотрим типичные команды Dockerfile для сборки образов, организуем и автоматизируем ее с помощью Docker Compose.
Map-ориентированное программирование в Java
Map-ориентированное программирование в Java может быть насколько удобным, настолько и беспорядочным. Предлагаем задуматься над соотношением затрат и выгод от использования Map в качестве универсального возвращаемого типа.
DALL·E 3 — генератор изображений для продуктовых дизайнеров
Знакомьтесь с продвинутой третьей версией DALL·E 3 - генератора изображений с ИИ от OpenAI. Вы узнаете не только о поразительных возможностях нового инструмента, но и о главной его фишке - внедрении в ChatGPT для уточнения промптов.
Механика разрешения имен и связывания на C++
Разберемся с разрешением символов, типами связывания и распространенными проблемами: ошибками повторных определений, неразрешенных символов, нарушений правила одного определения. Узнаем, как предотвращаются конфликты именования.
Как писать безопасный код на Go
Что значит помнить о безопасности при написании кода Go? Ответить в одной, короткой статье кажется невозможным. По этой причине сузим его до нескольких конкретных практик. При постоянном применении они приведут к написанию надежного, безопасного и производительного кода. Как быть в курсе новостей о безопасности Go? Как поддерживать код Go в актуальном состоянии? Как тестировать код, уделяя особое внимание безопасности и надежности? Что такое CVE и где можно узнать о самых распространенных уязвимостях ПО?
Flash 2.0 — полная победа Google над DeepSeek и OpenAI
Оцените невероятные возможности Flash 2.0 - новой модели от Google - в сравнении с DeepSeek R1 и GPT o3-mini. Предлагаем результаты тестирования этих моделей по точности и скорости при решении сложных задач рассуждения, а также данные по стоимости каждой из них.
Использование стека навигации SwiftUI для идеального поведения TabView
Объясним на примерах, как с помощью перечислений enum и стека навигации NavigationStack SwiftUI обеспечить ожидаемое поведение TabView.
Освоение функциональных возможностей Kotlin
Ознакомьтесь с основными функциями Kotlin. Их эффективное использование позволит создавать более упорядоченный, чистый, удобочитаемый и многократно используемый код.
Kotlin: модификаторы видимости
В чем отличие модификаторов в Kotlin и на Java? Разберем особенности их использования с переменными видимости.
Я бросил изучать Python и стал лучшим разработчиком
Хотите попасть в 1 % лучших Python-разработчиков? Возможно, вам нужно просто перестать стремиться объять необъятное и сосредоточиться на главном? А может, вместо поиска последних трендов в области Python, стоит перейти к решению реальных задач?
Реализация функции Pull-to-refresh с помощью Compose Material 3
Pull-to-refresh ("потяни, чтобы обновить") - удобная функция, которая позволяет пользователям приложений обновлять контент с помощью простых жестов. Опишем реализацию этой возможности посредством новейшей версии библиотеки Compose Material 3.
Удаленная отладка контейнеризованного Java-приложения с IntelliJ IDEA
Как быть, если в локальных сеансах отладки проблема не воссоздается? Пошагово пройдем процесс настройки и запуска отладчика.
Cosmo Route — молниеносный маршрутизатор с открытым исходным кодом и поддержкой Federation V1/V2
Elastic-лицензия Apollo Router мешает внедрению? Хотите работать еще быстрее? Для подобных случаев идеально подойдет Cosmo Router - быстрый маршрутизатор с открытым исходным кодом, совместимый с Federation V1/V2.
Создание кастомизированного кругового загрузчика в Jetpack Compose: изучение Android Canvas и анимации
Простое руководство поможет вам создать в Jetpack Compose кастомизированный круговой загрузчик. Вы также узнаете, как добиться переключения между тремя типами круговой анимации, манипулируя основным и дополнительным цветами.
Как создать анимацию колебания с помощью UIKit
А почему бы не "оживить" компоненты в приложениях iOS с помощью интересной анимации? Для этого воспользуемся практическими рекомендациями автора - и дело готово!
7 признаков того, что вы стали продвинутым пользователем Sklearn
Мечтаете присоединиться к клубу опытных пользователей Sklearn - настоящих мастеров машинного обучения? А может, вы уже состоите в нем, не подозревая об этом? Давайте проверим!
Проектирование и развертывание Python-приложения для машинного обучения. Часть 2
Не нужно быть Атлантом, чтобы перенести модель в облако. Нужно лишь усвоить ключевые концепции проектирования Python-приложения для машинного обучения. Предлагаем рассмотреть их на высоком и низком уровнях, чтобы принять оптимальные решения для сбалансирования нагрузки и устранения узких мест при развертывании.
С этим инструментом код чище в 10 000 раз
Это цифровая Фрекен Бок, которая просматривает кодовую базу, находит надоедливые print и удаляет их быстрее, чем вы произнесете слово «рефакторинг». Разберем основной функционал, нюансы конфигурационного файла.
C++: полное руководство по push_back
Изучим нюансы этой операции - от базового применения до продвинутых техник и реальных сценариев. Как при этом управляется память и оптимизируется производительность?
Моделирование лесных пожаров
Моделирование природных явлений - процесс непростой, но увлекательный. Он позволяет выявить закономерности, на которые затем можно ориентироваться в условиях реального мира. Сегодня поговорим о том, как создать модель лесных пожаров с помощью numpy и matplotlib и какие при этом факторы стоит учитывать.
Проекты Go: создаем собственное канареечное развертывание
Каким образом перенаправляется трафик? Разберем различные подходы к развертыванию с примерами кода.
Что такое «мьютекс» и как им предотвращаются состояния гонки?
Покажем, как просто на Go реализуется мьютекс без состояния гонки и с корректной синхронизацией. Напишем пример с легкими, параллельно выполняемыми потоками-горутинами.
Работа с панелью индикаторов. Руководство программиста Python.Часть 2
Часть 1, Часть 2
Это вторая статья из нашей серии об использовании Python-фреймворка Dash от Plotly в качестве основной платформы для работы с панелью индикаторов....
Отладка зависимостей в Gradle
Узнайте, как с помощью dependencyInsight отлаживать версии транзитивных зависимостей в Android-приложении. Переопределение транзитивных версий зависимостей позволит избежать конфликта версий, ведущим к сбоям работы приложений.
C++: руководство по сортировке строк
Изучим разные приемы сортировки, сравним их эффективность. Дадим рекомендации по производительности, поможем выбрать оптимальный метод.
Многопоточность на Rust: ускоряем приложения, делаем их эффективнее
Продемонстрируем мощный подход к выполнению операций в многосхемных базах данных и к параллельной обработке данных. Из строгой системы типов Rust, асинхронных возможностей и потоковой модели создадим надежное приложение.
C++: подробное руководство по is_open()
Рассмотрим типичные сценарии применения этой функции, разберем нюансы и ошибки. Проиллюстрируем примерами и дадим рекомендации по производительности.
Глубокое погружение в режим Copy-on-Write в pandas. Часть 1
Хотите разобраться в том, как новый режим Copy-on-Write (копирование при записи) изменил поведение pandas? Тогда углубимся в механизм Copy-on-Write и остановимся на некоторых фактах, которые полезно знать каждому пользователю pandas.
Как создать импульсный эффект в Jetpack Compose
Хотите впечатлить своих пользователей импульсным эффектом? Воспользуйтесь простым руководством по его созданию и использованию. В нем вы найдете примеры реализации этой анимации применительно к кнопке: по умолчанию, с градиентом, с настройкой цвета и формы, опционально.
Простая и эффективная утилита сжатия данных кодами Хаффмана на Haskell
Автор материала объясняет, как устроено кодирование Хаффмана, затем пишет простую и понятную реализацию на Haskell и оборачивает ее в интерфейс командной строки, а еще делится ссылкой на отчет профайлера, который показывает, что программа расходует один и тот же (константный, постоянный) объём памяти вне зависимости от размера входных данных.
Псевдоним типа в Swift
Рассмотрим практические применения typealias: упрощение сигнатур и типов функций, кортежи, рефакторинг и миграции, ограничения, замыкания, словари, протоколы. Изучим на примерах, как создаются четкие, лаконичные, гибкие структуры кода, благодаря чему в Swift совершенствуется процесс разработки, упрощаются сложные типы, повышается удобство восприятия кода.
Как объединить мобильные сервисы Google и Huawei в одной кодовой базе
Хотите работать с мобильными сервисами Google и Huawei в одной кодовой базе? Это руководство позволит без особых усилий объединить сервисы Google и Huawei в приложении и выборочно их использовать по мере необходимости.
382 часа на изучение Rust и блестящая обезьянка
Как создать игровой движок для физически корректного рендеринга? Впечатления о разных аспектах языка от инженера-программиста Unity, сравнение Rust и C#.
Jetpack Compose: настройка Retrofit и Ktor с помощью Dagger Hilt для внедрения зависимостей
Предлагаем исчерпывающее руководство по сетевой интеграции в Jetpack Compose. Вы сможете создать простое приложение для отображения списка с помощью Retrofit или Ktor, выбрав тот фреймворк, который соответствует вашим потребностям.
Преобразуем проект в мультиплатформенный с Kotlin Multiplatform: зачем, когда и как
Как сделать разработку эффективнее, не переписывая приложения? Расскажем о преимуществах и универсальной стратегии плавного перехода, при котором сохраняется надежность цифрового продукта.
Синхронизация данных в реальном времени между MongoDB и Elasticsearch на Golang
Сделаем мощную событийно-ориентированную службу синхронизации на Golang. Поэтапно настроим, оптимизируем производительность и протестируем.
Подробно об акторах в Swift
Чем акторы похожи на очереди и как ими решаются типичные проблемы параллелизма? Разберем на примерах эффективное применение акторов, опишем правила взаимодействия с ними.
Слияние больших языковых моделей с помощью mergekit
Слияние — инновационный способ создания передовых языковых моделей. В сегодняшнем гайде рассмотрим слияние с помощью библиотеки mergekit, подробно опишем, как работают механизмы SLERP, TIES, DARE и passthrough, а также приведем примеры конфигураций.
Конкурентность на Go: горутины и каналы для масштабируемых приложений
Рассмотрим две ключевые концепции, их применение в реальном примере. Дадим рекомендации по конкурентному выполнению.
Шпаргалка Swift для разработчиков Android/Kotlin
Рассмотрим концепции Swift, обнаруживаемые при просмотре кода iOS, сравним их реализацию в Kotlin. Изучим, как здесь реализуется функционал опциональных привязок, словарей, расширений, структур, протоколов, анализируется код, просматриваются или пишутся технические спецификации/предложения.
ViewModel. События как состояние — это антипаттерн
Трижды разоблачим антипаттерн одноразовых событий и сравним аргументацию для осознанного выбора из имеющихся подходов. В чем суть проектного решения команды Kotlin - «гарантии быстрой отмены»?
От кода до APK: полный разбор задач Android-сборки
Процесс Android-сборки - от проверки конфигурации до упаковки APK - может включать более 40 задач. Понимание этих задач, назначения и значимости каждой из них, поможет выявить проблемы на ранней стадии, сократить время сборки и получить полный контроль над рабочим процессом.
GoFr и Gin: сравнительное исследование
Напишем REST API с базой данных MySQL на своенравном GoFr и платформе для веб-приложений Gin. Сопоставим функционал этих двух фреймворков, его влияние на продуктивность разработчиков и пригодные для продакшена приложения.
Вопросы для собеседования iOS — Swift. Часть 2
Продолжаем разбирать вопросы. Рассмотрим конкретные и абстрактные типы, псевдоним типа, обработку исключений и спецификаторы доступа.
Работа с панелью индикаторов. Руководство программиста Python. Часть 3
Часть 1, Часть 2, Часть 3
В этой серии статей в качестве основной платформы для Dashboarding используется Dash от Plotly.
Прежде чем перейти к этой статье,...
Создание API в R при помощи Plumber
Что это за инструмент - Plumber - и как с его помощью можно легко вывести собственное приложение R в продакшен-среду? Ответ на примере создания простого API.
C++: подробное руководство по массивам
Разберем основные концепции, в том числе продвинутые. Проиллюстрируем примерами с решениями, поможем подготовиться к собеседованию.
Создание лаконичных модульных тестов во Flutter
Модульное тестирование - важная часть разработки ПО, особенно когда код обслуживают десятки тысяч человек. Предлагаем простой гайд по написанию четкого и лаконичного кода модульного теста для проверки класса User.
Отладка API Java Message Service с использованием Lightrun
Узнаем, как работает Java Message Service (JMS) и как инструмент под названием Lighrun помогает в отладке, если с пересылкой сообщений что-то идет не так.
Продвинутый поиск Meilisearch для приложения Golang
Применим упрощенный подход интеграции Meilisearch с Golang: обойдя процессы создания БД и вставки данных, получим данные напрямую из внешних источников и вставим их в Meilisearch. Реализуем функционал поиска, создав индексы, вставив в них данные, настроив поисковый запрос для функции поиска.
Рецензирование кода Flutter: лучшие практики
Рецензирование кода делает его чистым, эффективным и легко сопровождаемым, способным выдержать испытание временем. Поговорим о том, какие изменения необходимы при этом, а какие не имеют смысла.
Как развернуть 2-уровневую архитектуру с AWS и Terraform Cloud
Создадим конфигурационные файлы, развернем инфраструктуру с подробным разбором кода и протестируем все созданные ресурсы.
Создание кастомного балансировщика нагрузки на Go для gRPC с приоритизацией адресов
Друзья, рады поделиться с вами оригинальной статьёй, написанной владельцем нашего канала специально для Хабра.
В этом материале подробно рассматривается процесс разработки собственного балансировщика нагрузки на языке Go для gRPC, с акцентом на приоритизацию адресов. Статья охватывает постановку задачи, анализ стандартных решений и их недостатков, а также пошаговую реализацию кастомного балансировщика с примерами кода.
Если вы интересуетесь высоконагруженными системами, балансировкой нагрузки и gRPC, эта статья будет вам полезна.
Зачем изучать Linux?
Сегодня многие домашние пользователи и компании переходят на Linux. И это не единственная причина, почему вам стоит присоединиться к их числу. Даже если вы поклонник Windows, изучение Linux - просто необходимость для разработчика ПО.
Как подключить визуальный отладчик к задачам МО в Kubernetes
С ростом размеров и сложности моделей МО все более востребованными становятся облачные ресурсы для их обучения. В связи с этим особую актуальность приобретает вопрос отладки. В статье рассмотрим способ подключения визуального отладчика VSCode к удаленной среде глубокого обучения, что позволит оптимизировать и повысить эффективность отладки.
Как уменьшить объем шаблонного кода в тестах Kotlin
Узнаем один отличный прием Kotlin! Он позволяет оптимизировать тесты и сделать их понятными и удобными в сопровождении.
Развертывание безопасных Java-приложений на AWS EKS с GitLab CI/CD, Maven, Trivy и SonarQube
Настроим приложение, пройдем модульное тестирование, сканирование безопасности, анализ качества кода, сборку и контейнеризацию. Упростим сложные развертывания, а инструменты и процессы интегрируем в единый автоматизированный рабочий поток.
Написание кода как создание бестселлера
Можно ли сказать, что код пишется по тем же законам, что и проза? В чем сходство между программистом и писателем? Какую услугу им обоим может оказать генеративный ИИ? Поразмышляйте над этими вопросами, чтобы писать код, напоминающий бестселлер.
В чём разница между [0] * 3 и [0, 0, 0] в Python? Только...
Сегодня погружаемся в подробности реализации байт-кода Python на C++, чтобы выяснить, чем отличаются три на первый взгляд одинаковых на первый взгляд списка Python. Вам не придётся продираться сквозь стены сложного кода C++, суть будет понятна даже новичку.
LOESS в Rust
Пришло время перенести LOESS-код из Python на Rust? Предлагаем описание процесса переноса с оптимальными решениями при переписывании кода. Вы будете впечатлены возросшей производительностью переписанного кода!
Защита бэкенда на Go: шифрование, предотвращение уязвимостей и не только
Обсудим, как обезопасить бэкенд от SQL-инъекции, межсайтовых скриптинга и подделки запросов, настроить безопасные заголовки и логирование. Дадим рекомендации, проиллюстрируем фрагментами кода.
Как мобильному разработчику всегда быть в курсе последних событий в своей сфере
Эти 10 стратегий помогут разработчику мобильных приложений оставаться в курсе последних новостей, тенденций, инструментов и технологий. Подобная осведомленность - ключ не только к профессиональному росту, но и к инновационным решениям, отвечающим потребностям современных пользователей.
Обработка ошибок на Rust: безопасный и чистый код без unwrap
Почему unwrap рискован на продакшене? Рассмотрим альтернативы - unwrap_or и unwrap_or_else, оператор ?, выражения match и while let.
17 полезных скриптов автоматизации на Python. Часть 1
Эти скрипты значительно повысят вашу продуктивность и производительность. Они оптимизируют решение многих повседневных задач, включая сбор изображений, анализ качества кода, создание искусственных данных, мониторинг системных ресурсов, обработку email-рассылок, резюмирование статей, корректуру текстов.
18 полезных скриптов автоматизации на Python. Часть 2
Эти скрипты значительно повысят вашу продуктивность и производительность. Они оптимизируют решение многих повседневных задач, включая сбор новостей, управление рабочим временем, организацию файлов, преобразование текстов, подсчет слов, создание голосовых заметок.
3 эффективные новинки Swift с WWDC 2022
Познакомимся с интересными приемами Swift 5.7, которые значительно оптимизируют процесс написания кода.
Шаблон «Стратегия» на Go
Изучим нюансы шаблона: когда, зачем, как и где применяется. Поэтапно отследим его реализацию, проиллюстрируем кодом.
Пакет Lambda-слоев AWS для Python
Lambda-слои AWS упрощают управление функцией и ее обновление, позволяют уменьшить размер пакета развертывания и облегчают обмен кодом между командами. Узнайте о том, как заархивировать пакет Lambda-слоя и загрузить его в AWS.
Комментарии к коду: почему больше не всегда значит лучше
Многие программисты злоупотребляют комментариями, что приводит к неправильному пониманию назначения и логики кода. Рассмотрим случаи, когда комментарии необходимы, а когда от них лучше воздержаться.
Улучшение воспроизведения видео с помощью ExoPlayer
Видеоконтент все чаще интегрируется в мобильные приложения, и от его качества во многом зависит пользовательский опыт. В этой статье разберем практические советы о том, как улучшить воспроизведение видео и эффективно использовать ExoPlayer в приложении для Android.
Новые способы оптимизации стабильности в Jetpack Compose
C выпуском Compose 1.5.4 появился новый режим работы - Strong Skipping. Он позволяет сделать большее количество классов стабильными без дополнительного кода. Предлагаем на конкретных примерах кода разобраться, насколько это удобно и эффективно.
Интуиция как ключ к успешному собеседованию по написанию кода
Для большинства будущих программистов техническое собеседование - пугающее испытание. Эти 5 шагов на пути к развитию интуиции при подготовке к собеседованию помогут не только избежать стресса, но и впечатлить интервьюеров.
Реализация масштабируемого и гибкого пользовательского экрана с несколькими переключателями на Swift
Посмотрим, как обрабатывать переключение между разными опциями в меню: пройдем путь от сравнительно простого решения к более универсальному и поддерживаемому, через рефакторинг.
Конкурентность и синхронизация на Go: горутины, мьютексы и WaitGroup
Разберем нюансы конкурентности и реальные применения. Дадим рекомендации по избежанию типичных ошибок.
C++: практическое руководство по множественным конструкторам
Изучим важные концепции - от простой перегрузки до сложных списков инициализаторов и делегирования конструкторов. Проиллюстрируем примерами, разберем нюансы и типичные ошибки.
Секреты в Android. Часть 2
В этой части рассмотрим процесс получения секретов из удаленного хранилища (сервера) с помощью сервисов Firebase Remote Config, API Play Integrity и Firebase App Check. Такой подход значительно повысит безопасность приложений, и злоумышленникам будет сложнее получить секреты.
Осваиваем ViewThatFits. Часть 1
Рассмотрим критерии оценки и логику представления нового адаптивного контейнера макетов. Как выбирается отображаемое представление? Разберем концепцию «идеального размера».
Результаты опроса разработчиков Angular в 2023 году
Ознакомьтесь с инициативами сообщества Angular, высказанными в опросе 2023 года. Многие из них были учтены в дорожной карте Angular на 2024 год, нацеленной на улучшение опыта разработчиков и повышение производительности фреймворка.
Глубокое погружение в режим Copy-on-Write в pandas. Часть 2
В первой части мы рассказывали о том, как работает механизм Copy-on-Write. Там указывались области, в которых копии внедряются в рабочий процесс. Во второй части сосредоточимся на оптимизациях, которые позволят избежать замедления среднестатистического рабочего процесса.
Презентации в терминале
Забудьте о постоянных переключениях контекста, из-за которых убивается демонстрационный процесс. Создавайте терминальные презентации.
Секреты в Android. Часть 1
Обращение с секретными данными в мире Android требует определенной осторожности. В 1-й части цикла поговорим о том, как усложнить злоумышленникам доступ к секретам с помощью статических полей и NDK.
iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 1
Добавим тесты в имеющийся проект, создадим новый и основательно все настроим. Распишем тестовый сценарий.
Почему все говорят о Zig?
Рассмотрим функционал этого языка системного программирования с точки зрения разработчика из управляемых языков. Сравним с ними Zig и разберемся, в чем его уникальные преимущества.
Ознакомление с функциями высшего порядка в Kotlin
Узнайте, что такое функции высшего порядка, в чем их ценность и в каких сценариях они могут использоваться. Взяв на вооружение эту мощную фичу Kotlin-программирования, вы будете создавать гибкий, выразительный, удобочитаемый и многократно используемый код.
Миграция UI-ориентированной библиотеки Android на Compose Multiplatform (Android/iOS)
Написать кроссплатформенный пользовательский интерфейс на Kotlin - уже не проблема. Теперь Android-разработчики могут создавать iOS-приложения на Kotlin с минимальными дополнительными усилиями. Убедитесь в этом на примере успешной миграции Android-библиотеки на Compose Multiplatform.
Kotlin Multiplatform: как усовершенствовать процесс разработки iOS
Изучим стратегии и нюансы применения KMP в ключевых областях - архитектуре проекта, внедрении зависимостей, Kotlin-Swift совместимости. Рассмотрим, как в командах решаются типичные проблемы.
Swift: ссылочные типы и циклы сохранения, weak и unowned
Разберем один из 10 технических вопросов недавнего собеседования по Swift и Objective C. На примере покажем, почему для предотвращения цикла сохранения применяется слабая ссылка weak, а не бесхозная unowned.
Как предотвратить утечки памяти в Android-приложении
В этом руководстве изложены эффективные стратегии обнаружения, предотвращения и устранения последствий утечек памяти. Вовремя выявляя и эффективно устраняя проблемы с утечками памяти, вы обеспечите оптимальную производительность и стабильность Android-приложений.
C++: руководство по vector.erase
Разберем две разновидности метода и нюансы производительности. Рассмотрим типичные ошибки и реальные применения.
Адаптируем Android-приложение к большим размерам экрана с помощью классов window-size
"Большой экран" становится популярным и быстрорастущим сегментом устройств Android. Самое время научиться оптимизировать приложение для любого размера экрана. Узнайте о классах window-size, рассмотрите сценарии их использовании в разных типах макетов навигации и закрепите материал с помощью реальной демонстрации.
Реализуем функцию управления взглядом с помощью SwiftUI, ARKit и SceneKit
Предлагаем изучить опыт создания на SwiftUI hands-free приложения с применением ARKit и SceneKit. Для лучшего понимания возвращаемых значений будет использован также фреймворк SwiftUI Charts.
Создай и играй: код для игры “Змейка” с кнопками управления в SwiftUI
Вспомним классическую игру "Змейка" и создадим для нее код в SwiftUI. Задача сложная, но интересная.
10 рекомендаций по защите баз данных
Мы полагаемся на данные не только в принятии решений, но также и при ведении бизнеса в целом. Их потеря может привести к серьезным финансовым...
3 интерактивных инструмента для управления командами в Linux
Эти инструменты позволят находить и отфильтровывать нужные команды, добавлять их в избранное для мгновенного выполнения и предоставят множество других полезных возможностей.
Сначала графдизайн создать, потом код написать
Рассмотрим важность создания графического дизайна приложения до написания кода и нарисуем диаграмму последовательности с помощью пакета pgf-umlsd.
Повышение безопасности Angular-приложения путем интеграции OCR и биометрии
Хотите защитить пользователей своих приложений от мошеннических действий? Сделайте это с помощью автоматического извлечения данных путем OCR и биометрических технологий. Предлагаем подробное руководство по интеграции OCR с биометрическими решениями.



































































![В чём разница между [0] * 3 и [0, 0, 0] в Python? Только сеньоры знают правильный ответ В чём разница между [0] * 3 и [0, 0, 0] в Python? Только сеньоры знают правильный ответ](https://nuancesprog.ru/wp-content/uploads/2024/12/Python-pattern-4-218x150.png)




































