Создание кастомизированного кругового загрузчика в Jetpack Compose: изучение Android Canvas и анимации
Простое руководство поможет вам создать в Jetpack Compose кастомизированный круговой загрузчик. Вы также узнаете, как добиться переключения между тремя типами круговой анимации, манипулируя основным и дополнительным цветами.
Долгожданные инструкции Switch-Case в Python
Python 3.10 обрел немало интересных возможностей, одна из которых привлекла мое внимание в особенности — структурное сопоставление с шаблоном, иначе говоря инструкции switch/case.
Несмотря на...
Cosmo Route — молниеносный маршрутизатор с открытым исходным кодом и поддержкой Federation V1/V2
Elastic-лицензия Apollo Router мешает внедрению? Хотите работать еще быстрее? Для подобных случаев идеально подойдет Cosmo Router - быстрый маршрутизатор с открытым исходным кодом, совместимый с Federation V1/V2.
Как сделать кастомные шорткаты для Siri
Шорткаты в Сири
Это новая эппловская фича для iOS 12. Ее анонсировали во время приветственной речи на WWDC 2018, и вот уже этой осенью ею можно...
Овладей Python, создавая реальные приложения. Часть 1
Создаем интерактивный словарь
В этой серии из 10 статей мы будем использовать Python для написания 10 реальных приложений. И в процессе создания этих приложений мы...
5 функций-расширений в арсенале каждого разработчика Jetpack Compose
Изучим пять функций из асенала разработчика Jetpack Compose и столько же для работы с системой представлений. Проиллюстрируем примерами.
Middleware Django: пользовательское ПО промежуточного слоя
Что такое middleware, как создать пользовательский Django middleware и как проверить стандартные? Всё, что нужно знать о связующем ПО.
Реализация жизненных циклов React с помощью Reason React Hooks
Использование хуков React дает множество полезных преимуществ. Узнаем, что такое жизненные циклы React и рассмотрим реализацию этих циклов с помощью Reason React Hooks.
После выпуска...
7 советов по улучшению анализа данных в Python
#1: Pandas Profiling
Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report():
С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...
Рост производительности машинного обучения с Rust
Сделаем с нуля небольшой ML-фреймворк на Rust для создания нейросетевых моделей. За счет чего скорость обучения здесь в 5,5 раза выше, чем с Python и PyTorch?
Незаслуженно забытый ForkJoinPool
Всем известно о новых функциях, которыми нас порадовал JDK 8, и, вероятно, трудно найти Java-разработчика, который не знает, что такое Java Streams, лямбды или...
Продвинутый Python: оператор dot
Все знают, что оператор dot позволяет реализовать объектно-ориентированную парадигму в Python. Но далеко не все понимают механизм, лежащий в основе оператора dot. У вас есть возможность углубиться в этот вопрос.
Проектирование и развертывание Python-приложения для машинного обучения. Часть 2
Не нужно быть Атлантом, чтобы перенести модель в облако. Нужно лишь усвоить ключевые концепции проектирования Python-приложения для машинного обучения. Предлагаем рассмотреть их на высоком и низком уровнях, чтобы принять оптимальные решения для сбалансирования нагрузки и устранения узких мест при развертывании.
Отходим от монолита: освоение модульной навигации в Android (Kotlin и компонент Jetpack Navigation)
Основной граф навигации слишком запутан? Пора переходить к модульной навигации. Разберем, как развязать модули и ускорить разработку.
Альтернатива Java 8: что умеет VAVR
Обзор на крайне полезную Java-библиотеку: вкратце рассмотрим примеры ее функциональных возможностей и сравним с тем, что предоставляет Java 8 по умолчанию.
Apple убивает Swift
В отличие от современных языков Python, Rust и Kotlin, великий Swift оказался задушен управлением корпораций. Поразмышляем о том, как диктаторское управление убивает наследие Латтнера и можно ли считать безнадежной текущую ситуацию с языком Swift.
Новейшие возможности C# 9
В преддверии релиза .NET 5, объединяющего среды выполнения .NET, Microsoft недавно анонсировали возможности, которые будут включены в C# 9. О выпуске финальной предварительной версии C# было...
Импорт в Python
Импорт в Python. Основы
В Python ключевое слово import применяется для того, чтобы сделать код в одном модуле доступным для работы в другом. Импорт в Python...
Разработка продвинутого GUI на Python
Хотите, чтобы графические интерфейсы ваших приложений выглядели более привлекательно и улучшали взаимодействие пользователя с компьютером? Воспользуйтесь практическим руководством по разработке двух версий продвинутого GUI на Python.
Регулярные выражения для извлечения информации о расходах из текстового файла
Паттерны регулярных выражений (ReGex) выглядят как какая-то ерунда и все же являются мощным инструментом для извлечения информации из текста. Куча, казалось бы, случайных знаков...
Устранение неполадок в Kubernetes - стратегический подход
Работа с Kubernetes может серьезно озадачивать, особенно когда дело доходит до отладки и устранения сбоев. Основная сложность кроется в недостатке подробных сообщений об ошибках...
Python + Selenium: как получить координаты по адресам
Я составил пошаговое описание решения задачи, как работать с Python и Selenium для сбора данных о координатах (широты и долготы) с карт Google, зная...
Постквантовая криптография на Python, C и Linux
Предлагаем руководство для начинающих по постквантовой криптографии - лучшему методу защиты ценных данных от квантовых угроз. Вместо сугубо теоретического анализа, будем опираться на примеры кода на языках Python, C и Linux.
Руководство по созданию интерактивных визуализаций на Python
Хотите научиться создавать эффектные интерактивные визуализации? Сегодня разберем построение графиков и диаграмм, а также развернем контрольную панель на Heroku.
Как написать хороший README: краткий курс
После Hacktoberfest в проектах с открытым исходным кодом появилось много новых правок. Только за октябрь было сделало более 400 000 запросов на включение кода. Это невероятно!
Я...
Вопросы для собеседования iOS — Swift. Часть 1
Рассмотрим самый важный и частый вопрос - шаблон делегирования. А также проверки времени выполнения, соответствие NSObject классу Swift, протоколы.
Зачем нужен AutoGPT
AutoGPT - очередное пополнение в семействе алгоритмов GPT (Generative Pre-trained Transformers), позволяющих на основе алгоритмов ИИ создавать текст, изображения и видео. А что же еще может делать AutoGPT?
Игра на C# меньше 8 Кб
Как уменьшить размер исполняемого файла C#?
Как человеку, выросшему во времена дискет и 56 Кбит модемов, мне всегда нравились небольшие программы. Я мог поместить много небольших...
Python: статические методы, методы класса и экземпляра класса
Согласно модели данных Python, язык предлагает три вида методов: статические, класса и экземпляра класса. Давайте посмотрим, что же происходит за кулисами каждого из видов...
Делегаты в Kotlin для Android
Kotlin действительно красивый язык, в котором есть очень крутые фичи. Из-за них разработка приложений становится веселым и захватывающим опытом. Одна из этих фич — делегированные свойства....
Что такое «мьютекс» и как им предотвращаются состояния гонки?
Покажем, как просто на Go реализуется мьютекс без состояния гонки и с корректной синхронизацией. Напишем пример с легкими, параллельно выполняемыми потоками-горутинами.
Производительность Redis и атомарность в Golang. Возможности конвейеров, транзакций и Lua-скриптов
Попробуем кэшировать блог, сократив время выполнения. Реализуем ограничитель просмотров страницы, исправим командой WATCH невыполнение транзакции. Сравним Lua-скрипты со встроенными командами и транзакциями.
Создание рекомендательного движка статей на основе ИИ/МО
Обучающее руководство по созданию приложения Flask на Python с реализацией рекомендательного движка статей, в основе которого лежит поиск по сходству и алгоритм МО.
Освоение функциональных возможностей Kotlin
Ознакомьтесь с основными функциями Kotlin. Их эффективное использование позволит создавать более упорядоченный, чистый, удобочитаемый и многократно используемый код.
Обработка естественного языка в Python. Основы
Я описал инструменты и методы для новичков, имеющих только общее представление в данной теме. Если вы более опытный практик, вам нужны вторая часть о...
В чём разница между [0] * 3 и [0, 0, 0] в Python? Только...
Сегодня погружаемся в подробности реализации байт-кода Python на C++, чтобы выяснить, чем отличаются три на первый взгляд одинаковых на первый взгляд списка Python. Вам не придётся продираться сквозь стены сложного кода C++, суть будет понятна даже новичку.
C++: полное руководство по операторам Switch со строками
Разберем эффективные альтернативы строковым переключениям. Проиллюстрируем практическими примерами, дадим рекомендации и поможем с выбором оптимального подхода.
Вероятность в Python: перестановки и сочетания
Теория вероятности не сложная, по крайней мере, на уровне, необходимом для начала работы в науке о данных. Возможно, прошло какое-то время с тех пор,...
Реализация конвейера CI/CD «от и до»
Как эффективно автоматизировать интеграцию кода, ускорить разработку и выпуск надежных приложений, оптимизировав процессы? Полностью настроим конвейер с приложением Java, усовершенствовав автоматизацию.
Компонентный подход: преодоление сложности в Android-приложениях. Часть 1
Как Android-разработчик, вы должны иметь четкое представление о компонентном подходе и его преимуществах. Это позволит избежать чрезмерной сложности в приложениях и значительно ускорить рабочие процессы.
Как объединить несколько CSV файлов через 8 строчек кода
Зачем это нужно?
Копипаст вручную — это, может, и не самый плохой вариант для небольшого количества файлов.
Но представьте, что вам нужно объединить 100+ файлов… готовы ли вы сделать...
Реализация ViewPager в Swift 5
Без всякой помощи сторонней библиотеки, опираясь на подробное пошаговое руководство, научимся создавать переключатель страниц в Swift 5. Он будет состоять из представлений со вкладками и страницами.
Заменят ли потоки данных циклы в Java?
Затронем такую тему, как потоки данных в Java. Сравним их показатели производительности с циклами, а также выявим преимущества и ограничения в применении.
Компонентный подход: организация навигации с помощью библиотеки Decompose. Часть 3
Компонентный подход позволяет масштабироваться до больших проектов с десятками или даже сотнями экранов. Узнайте, как с помощью Decompose и Jetpack Compose настроить сложную навигацию в таком приложении, а также как добавить уровни навигации.
Овладей Python, создавая реальные приложения. Часть 3
Создаем блокировщик сайтов в 3 шага
Предыдущие части: Часть 1, Часть 2
Технологии стремительно развиваются, как и мир в целом. Каждый день вы сталкиваетесь с чем-то, о чем раньше...
Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2, Часть 3.
Создание
Обычно мы создаем объекты в одном месте. Это может...
Как использовать перечисления в Golang
Изучим способы создания перечислений с идентификатором iota и структурными тегами. Проверим поведения на тестовых сценариях.
Начало работы с базой данных Room в Android
Хранение данных — один из важнейших аспектов разработки мобильных приложений для Android. Чтобы упростить этот процесс, используйте передовую библиотеку Room. В сегодняшнем гайде пошагово пройдемся по настройке Room и выполнению с ее помощью базовых операций.
Отладка зависимостей в Gradle
Узнайте, как с помощью dependencyInsight отлаживать версии транзитивных зависимостей в Android-приложении. Переопределение транзитивных версий зависимостей позволит избежать конфликта версий, ведущим к сбоям работы приложений.
Хитрости объектно-ориентированного программирования. Часть 2: Закон Деметры
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1
Единственный закон в программировании — это отсутствие законов. А закон Деметры — это, скорее, рекомендации, а...
Веб-API для улучшенного UX
Примечание: некоторые из представленных здесь API все еще находятся в разработке или не поддерживаются в некоторых браузерах. Рекомендуем прочитать полную документацию перед их использованием.
Видимость...
Знакомьтесь, компонент Navigation в Android!
Что такое компонент Navigation?
Всем известно, что навигация между экранами является одним из фундаментальных принципов в приложениях Android. Как правило, мы осуществляем ее при помощи...
Полиморфизм с интерфейсами в Golang
Интерфейсы в Golang работают в совершенно особенной манере в сравнении с интерфейсами на других языках серверного программирования. Прежде чем углубляться в тему, начнём с...
Магия Pry для отладки кода Ruby
Начну с ситуации, знакомой каждому программисту: вы приступаете к выполнению кода и вдруг к вашему полному недоумению получаете сообщение об ошибке, или еще хуже — код...
3 эффективные новинки Swift с WWDC 2022
Познакомимся с интересными приемами Swift 5.7, которые значительно оптимизируют процесс написания кода.
SQL — язык программирования? 10 аргументов “за” и “против”
Некоторые не считают SQL языком программирования, но и не меньше людей имеют противоположное мнение. Рассмотрим аргументы обоих сторон.
Инструменты DevOps: интерфейс Docketeer для Docker Desktop
Обзор Docketeer, удобного графического интерфейса для Docker с проработанными правами доступа и метриками.
Рефакторинг большой раскадровки в несколько меньших
День настал
Я недавно работал над iOS приложением, которое уже находится на рынке. Оно было выпущено прежде, чем Apple запустили новый чудо фреймворк SwiftUI, и...
Шорткаты VS Code, с которыми ввод кода напоминает игру на пианино
Застряли в замкнутом круге "клавитура-мышка", из-за которого устаете и теряете время при написании кода? Представляем вашему вниманию полезные шорткаты VS Code, которые избавят от этих проблем.
8 частых ошибок в Android-разработке
Ошибка № 1: не учитывать, что всё должно быть на своих местах
Экосистема Android стремительно распространяется по всему миру. Вместе с этим растёт и сообщество, состоящее...
Пример сквозного ELT-процесса для хранилища данных с Postgres
Поэтапно сделаем витрину данных со всеми аспектами, разложим все по полочкам. Рассмотрим разные сценарии ее построения.
Java 21: новый подход к созданию строк
Рассмотрим и сравним существующие техники конкатенации и интерполяции строк в Java, обратив особое внимание на новую функциональность Java 21 - шаблоны строк.
Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею
Вы когда-нибудь ныряли в бассейне с цепными пилами на дне? Не удивляйтесь, но что-то похожее можно испытать при первом погружении в Rust. Избежать подобного экстрима поможет ознакомление с опытом человека, решившего использовать Rust без предварительной подготовки.
Построение потоков событий с Rust и Kafka: практическое руководство
Реализуем отправителей и получателей, настроим корректную обработку ошибок, конфигурацию и типы. Обозначим подводные камни, дадим рекомендации.
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 1
Рефлексия и загрузчики классов в Java позволяют решать многие проблемы и создавать гибкие программы. В этой части уделим основное внимание рефлексии - способности работающей программы исследовать себя и внешнее окружение, изменяя свое поведение.
Основы работы с Git
В процессе разработки ПО значимая роль отводится сотрудничеству. В большинстве случаев деятельность разработчика включает работу в команде и совместное использование проекта с другими специалистами....
3 способа мониторинга изменений лог-файлов в Java
Научимся отслеживать изменения файлов тремя разными способами: запланированная задача + File.lastModified, WatchService и Apache Commons-IO.
10 вопросов, которые помогут нанять лучшего Android-разработчика
Мобильные приложения выведут компанию на новый уровень, но для этого нужен хороший Android-разработчик. Предлагаем 10 вопросов для собеседования, которые помогут выбрать квалифицированного специалиста.
Топ-5 трендовых библиотек для Android за 1 квартал 2020 года
Мы находимся почти в конце первого квартала 2020 года и много всего происходит в сообществе Android. Android 11 Developer Preview уже вышел с большим...
Модульное тестирование с помощью JUnit в Android
Тестирование — неотъемлемая часть полноценной разработки программного обеспечения. Сегодня рассмотрим фреймворк JUnit, а также функции и правила, которые помогут провести тесты Android-продукта на достойном уровне.
Java для начинающих: часть 4 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при нулевых знаниях...
Однонаправленный поток данных в пользовательском интерфейсе Android
Вступление
Рассмотренные в этой статье идеи основаны на лучших описаниях особенностей реализации приложений Android, которые были успешно проверены на практике при создании реального приложения для...
Результаты опроса разработчиков Angular в 2023 году
Ознакомьтесь с инициативами сообщества Angular, высказанными в опросе 2023 года. Многие из них были учтены в дорожной карте Angular на 2024 год, нацеленной на улучшение опыта разработчиков и повышение производительности фреймворка.
JSON и Python: есть контакт!
В центре внимания - обработка и создание данных JSON в Python. Раскроем понятие JSON, познакомимся с методами Python для работы со строками/файлами JSON и узнаем, как улучшить читаемость данных JSON.
Владеешь merge - освой и rebase
В центре внимания - две команды Git: merge и rebase. Рассмотрим случаи применения каждой из них, сравним результаты и выявим отличия.
Rust: реализация двоичного дерева
Поскольку Rust приобрел довольно широкую известность и пополнил ряды своих преданных поклонников, я решил отложить в сторону любимый JS и заняться изучением нового языка....
Как создать форму текстового фона в Jetpack Compose
Красивое оформление повышает привлекательность текста для пользователей. Сегодня расскажем, как с помощью Jetpack Compose "одеть" текст в фоновую форму.
Создание интерактивных точечных диаграмм с помощью Python Altair
Рассказываем, как повысить информативность визуализаций данных, создавая интерактивные точечные диаграммы с помощью Python Altair.
Защита секретов в Android: от ключей API до хранения в продакшене
В Android-разработке хранение секретов в коде приложения — прямая угроза безопасности. Ключи API, токены и другие конфиденциальные данные могут быть извлечены из APK-файла. Узнайте, как построить надежную защиту, исходя из того, что клиентское приложение всегда может быть скомпрометировано.
Pydantic — гарантия надежного и безошибочного кода Python
Сравним проверку типов в динамически и статически типизированных языках. Рассмотрим подсказки типов в Python и использование Pydantic для их реализации.
Какую архитектуру выбрать — с единой или множеством Activity?
Обе архитектуры - как с единой, так и со множеством Activity - находят свое место в Android-разработке. Изучаем плюсы и минусы каждого подхода, а также их случаи использования.
Как перевести код R в Python с помощью ChatGPT
Научимся переводить код с языка программирования R на Python и наоборот. Для этой цели воспользуемся возможностями ChatGPT и на примерах рассмотрим принцип действия.
Java-библиотеки, которые повысят вашу производительность
Время - деньги, так что повышая эффективность труда - вы экономите одно и помогаете преумножить второе. Расскажем о нескольких полезных библиотеках, с помощью которых вы сможете избавиться от шаблонного кода и сосредоточиться на разработке бизнес-логики.
Основы Android-разработки в Revolut
Хотите заглянуть за кулисы онлайн-банка Revolut? Сотрудники компании рассказали о том, как устроены ее команды и рабочие процессы.
Python: декоратор @retry
Python часто называют “склеивающим” языком. Для меня этот термин означает, что язык помогает соединять системы и обеспечивает передачу данных из A в B в...
Улучшение Python кода: замените if-elif условие на словарь!
Сегодня вы узнаете про быстрый, элементарный, но оттого не менее полезный совет, крайне редко упоминающийся в статьях о словарях Python.
Если вы уже знакомы с...
Добавление новостных тем в приложение TrendNow. Часть 2
2-я часть посвящена добавлению в новостное приложение раздела тем с реализацией горизонтальной прокрутки в LazyColumn. Вы узнаете, зачем стоит создать еще одну ViewModel и как добавить раздел/элемент в LazyColumn Jetpack Compose, чтобы избежать ненужных рекомпозиций.
Как использовать GitLab в качестве реестра Helm-чартов
Поскольку Helm вошел в число поддерживаемых форматов пакетных менеджеров GitLab, не помешает научиться создавать, упаковывать и публиковать Helm-чарты в реестре пакетов GitLab.
Графовые сверточные сети: введение в GNN
Предлагаем подробное описание механизма работы графового сверточного слоя. Пошаговое руководство по использованию PyTorch Geometric (PyG) позволит на практике применять этот механизм для решения задач классификации узлов.
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 2
В этой части статьи углубимся в механизм загрузки классов. Этот процесс в Java тесно связан с рефлексией, поскольку направлен на внедрение нового поведения в программу во время выполнения.
Отображение превью камеры с помощью PreviewView
Расскажем, почему лучше использовать класс PreviewView для отображения превью в приложениях для камеры на Android.
10 шаблонов поведения для UX-дизайна
При разработке любого продукта важно понимать и учитывать ожидания пользователей. Если создавать продукт в вакууме, не принимая во внимание существующие варианты на рынке или...
Учимся избегать null-значений в современном Java. Часть 2
Предыдущая часть: Часть 1
В предыдущей статье мы разобрали, почему в некоторых случаях null оказывается необходимым злом, а также узнали, что есть правильные и ошибочные...
MVI на Eventbrite
Архитектура MVI обеспечивает приложениям Eventbrite четкое разделение задач, предсказуемый поток данных и централизованное управление состоянием. Изучите подробно эту архитектуру, оцените ее преимущества перед MVVM и узнайте, как имплементировать ее в приложение.
Опыт работы с Golang: путь проб и ошибок
В течение года мы разрабатывали сложную систему, функционирующую в режиме полуреального времени в производственной среде. Было принято решение написать ее на Golang. Поскольку опыт...
Простое руководство по аргументам командной строки Python
Одна из сильнейших сторон Python - способность выполнять любые задачи. Его стандартная библиотека предоставляет достаточно функций для написания множества полезных сценариев и инструментов. А...
Автоматический импорт библиотек в IPython или Jupyter Notebook
Если вы — частый пользователь IPython или Jupyter Notebooks и вам надоело постоянно импортировать одни и те же библиотеки, то попробуйте этот способ:
Перейдите к ~/.ipython/profile_defaultСоздайте папку...
Почему гейм-дизайнеру нужно программирование
Программисту не обязательно быть гейм-дизайнером, но каждый гейм-дизайнер должен быть программистом. Узнайте о том, почему навык написания кода жизненно важен в разработке игр и как им овладеть.
Изучение Blockchain на Python
Неделю назад я поняла, почему испытывала неприязнь к Bitcoin. У меня не было его, и я не понимала как он работает. Я начала изучать...
Когда и зачем использовать оператор := в Python
Совсем недавно Python 3.8 представил оператор присвоения с двоеточием :=, аналогичный оператору присвоения =. Использование этого оператора позволяет ускорить и сократить код.
Эта нотация берёт своё...
Как мне не удалось совладать с устаревшим кодом
Я очень хорошо помню свой первый опыт работы с устаревшим кодом. Я была младшим разработчиком и совершенно не представляла, что делаю.
Само приложение было чем-то...
Интеграция Google Maps в приложение Jetpack Compose
Научимся интегрировать Google Maps в приложение Jetpack Compose с помощью библиотеки Maps Compose. В связи с этим рассмотрим ряд требуемых компонуемых функций и параметров.
Внедрение зависимостей в Android с помощью Koin
Как и Dagger-Hilt, Koin является популярным фреймворком для внедрения зависимостей. Однако пользоваться им гораздо проще. Вы можете убедиться в этом на примере написания простого приложения для получения данных.
Как создать API-шлюз в Rust посредством библиотеки Hyper
Научимся создавать эффективный API-шлюз в Rust, задействуя библиотеку Hyper и YAML-файлы конфигурации. Кроме того, напишем модульные тесты для тестирования логики авторизации и проверим корректную работу API-шлюза.
Как сделать приложение с дополненной реальностью, используя React Native
Введение
Возможно, вас в последнее время тоже, как и меня, заинтересовала постоянно растущая сфера дополненной реальности. В том или ином виде или форме эта технология...



































![В чём разница между [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)




































































