fa
Feedback
Android разработка

Android разработка

رفتن به کانال در Telegram

все о Android разработке @itchannels_telegram - 🔥 лучшие it каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books

نمایش بیشتر
4 895
مشترکین
-224 ساعت
-147 روز
-3030 روز
آرشیو پست ها
🚀 Spring Boot трюк, который спасает продакшен Если ваш сервис обращается к внешним API — рано или поздно они начнут падать,
🚀 Spring Boot трюк, который спасает продакшен Если ваш сервис обращается к внешним API — рано или поздно они начнут падать, тормозить или отдавать ошибки. Вместо ручной логики повторов используйте @Retryable. Что это даёт: - Автоматические повторные запросы при ошибках - Настраиваемое количество попыток - Exponential backoff (увеличение задержки между попытками) - Fallback-логика через @Recover, если всё окончательно сломалось Когда это нужно: - Платёжные шлюзы - Внешние API - Микросервисы - Любые нестабильные сети Главная идея: Не падай из-за временных ошибок - попробуй ещё раз. Такая мелочь может значительно повысить стабильность системы без сложного кода.

🚀 Spring Boot: когда использовать static-классы, а когда Bean Частая ошибка в Spring - использовать static-утилиты там, где
🚀 Spring Boot: когда использовать static-классы, а когда Bean Частая ошибка в Spring - использовать static-утилиты там, где нужен управляемый компонент. Правило простое Используйте static-классы только если: - они не хранят состояние - у них нет зависимостей - не требуется mock в тестах - не нужен AOP (логирование, транзакции и т.д.) Во всех остальных случаях — лучше Spring Bean. Почему это важно Пример с static-кэшем:

public class CacheUtils {
    private static Map<String, String> cache = new HashMap<>();
}
Такой кэш: • общий для всех потоков • может случайно изменяться • сложно контролировать и тестировать нет управления жизненным циклом Правильный подход — Bean со scope: @Component @Scope("request") public class CacheService { private Map<String, String> cache = new HashMap<>(); } Теперь: Spring управляет жизненным циклом можно задать scope (request, session, singleton) легко тестировать и мокать можно добавить AOP Главная мысль Static — только для чистых функций. Состояние и логика — пусть управляет Spring. Spring лучше всего работает, когда управляет stateful-объектами.

🚀 CLI для управления iOS и Android устройствами agent-device — это инструмент командной строки для управления мобильными устройствами, позволяющий AI-агентам взаимодействовать с приложениями на iOS и Android. Проект находится на ранней стадии разработки и открыт для вкладов. 🚀 Основные моменты: - Поддержка iOS (симулятор) и Android (эмулятор). - Основные команды: открытие приложений, взаимодействие с элементами интерфейса. - Минимальные зависимости и работа напрямую с Node.js. - Возможность создания и управления сессиями. 📌 GitHub: https://github.com/callstackincubator/agent-device #typescript

⚡️Spring Boot: отправка email за 5 минут Если нужно быстро добавить отправку писем в Java-приложение — используйте spring-boo
⚡️Spring Boot: отправка email за 5 минут Если нужно быстро добавить отправку писем в Java-приложение — используйте spring-boot-starter-mail. Он уже содержит всю необходимую конфигурацию и зависимости, поэтому не нужно вручную настраивать SMTP-клиенты. Что нужно сделать: 1. Добавить зависимость

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
Настроить SMTP (например, Gmail)

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your_email@gmail.com
spring.mail.password=your_app_password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
Отправить письмо через JavaMailSender

@Autowired
private JavaMailSender mailSender;

public void sendEmail(String to, String subject, String text) {
    SimpleMailMessage message = new SimpleMailMessage();
    message.setTo(to);
    message.setSubject(subject);
    message.setText(text);
    message.setFrom("your_email@gmail.com");

    mailSender.send(message);
}
Когда это полезно: • регистрация пользователей • подтверждение email • уведомления • отчёты и алерты Главный плюс - минимум кода и быстрая интеграция. Spring Boot берёт всю сложность настройки на себя.

💡 Java-совет: WeakHashMap для кэша без утечек памяти Если ты используешь HashMap как кэш - будь осторожен. Пока карта жива,
💡 Java-совет: WeakHashMap для кэша без утечек памяти Если ты используешь HashMap как кэш - будь осторожен. Пока карта жива, ключи и значения не будут удалены GC, даже если они больше нигде не используются. WeakHashMap решает эту проблему: • Ключи хранятся через weak reference • Если на ключ нет сильных ссылок в коде - GC может его удалить • Запись автоматически исчезает из мапы • Отлично подходит для кэшей, метаданных, listener-ов Пример идеи: • Положил объект в WeakHashMap • Убрал на него все обычные ссылки • GC очистил объект → запись исчезла сама Когда использовать: • Кэш, который не должен раздувать память • Вспомогательные данные, завязанные на жизненный цикл объекта • Framework-код, плагины, reflection-кэши Когда не стоит: • Если ключи должны жить строго контролируемо • Если логика зависит от стабильного наличия записи Коротко: HashMap - контроль у тебя WeakHashMap — контроль у GC 🧹 Полезный инструмент, если понимаешь его семантику.

🚀 LiteRT - универсальная основа для AI прямо на устройстве Google представил LiteRT — новый универсальный фреймворк для on-d
🚀 LiteRT - универсальная основа для AI прямо на устройстве Google представил LiteRT — новый универсальный фреймворк для on-device AI, который развивается из TensorFlow Lite и становится базой для высокопроизводительного ML и генеративного AI на устройствах. 🔥 Что важно ⚡ До 1.4× быстрее GPU-ускорение LiteRT показывает прирост производительности на GPU по сравнению с TensorFlow Lite, снижая задержку и улучшая отклик моделей. 🌐 Кроссплатформенность Работает на Android, iOS, macOS, Windows, Linux и Web. Использует OpenCL, OpenGL, Metal и WebGPU через новый движок. 🤖 Поддержка NPU Добавлено ускорение на нейропроцессорах с единым API, что упрощает разработку под разные чипы и повышает скорость инференса. ⚙️ Модели из PyTorch и JAX Есть удобная конвертация моделей, что упрощает перенос современных AI-моделей на устройство. 📦 Open-source Фреймворк открыт и подходит для продакшена — можно строить реальные on-device AI-приложения. LiteRT позволяет запускать современные AI и GenAI модели прямо на устройстве — быстрее, с меньшей задержкой и лучшей приватностью, без постоянной зависимости от облака. https://developers.googleblog.com/litert-the-universal-framework-for-on-device-ai/

💡 Java совет: избегай шаринга данных между потоками Одна из главных причин багов в многопоточке - общий изменяемый state (sh
💡 Java совет: избегай шаринга данных между потоками Одна из главных причин багов в многопоточке - общий изменяемый state (shared mutable state). Чем больше потоков трогают одни и те же объекты - тем выше шанс словить race condition, deadlock или “плавающие” ошибки. Что делать правильно: ✅ 1) Используй immutable-объекты Если объект нельзя изменить - потокам нечего “делить”, и синхронизация почти не нужна. В Java это удобно делать через record, final поля и неизменяемые коллекции. ✅ 2) Общайся через сообщения, а не через общую память Вместо того чтобы менять общий объект - передавай события через очередь: - BlockingQueue - ConcurrentLinkedQueue - Actor-style подход Это снижает связанность и делает поведение системы предсказуемым. Простой принцип: Не “разделяй память”, а “разделяй сообщения”. #Java #SoftwareDevelopment

🚀 Spring Boot: настрой graceful shutdown с таймаутом Когда сервис перезапускается (deploy / autoscaling / rolling update), б
🚀 Spring Boot: настрой graceful shutdown с таймаутом Когда сервис перезапускается (deploy / autoscaling / rolling update), без graceful shutdown часть HTTP-запросов может: - оборваться на полпути - вернуть 5xx - прервать фоновые потоки слишком рано В Spring Boot это решается одной настройкой - задаёшь таймаут на “мягкое” завершение: ✅ сервер перестанет принимать новые запросы ✅ но даст текущим запросам и бинам закончить работу ✅ и только потом завершится Пример: server: shutdown: graceful spring: lifecycle: timeout-per-shutdown-phase: 20s Идеально для продакшена, особенно если у тебя: - Kubernetes rolling update - долгие запросы - async обработчики / очереди - фоновые задачи

🖥Awesome-Android-Reverse-Engineering Подборка лучших материалов и инструментов для реверс-инжиниринга Android. Что есть: - 📚 обучение: курсы, видео, книги - 🛠 инструменты: статический и динамический анализ - 🔎 декомпиляторы: JADX, Apktool, dex2jar - 🧪 CTF/CrackMe для практики - 📘 статьи и ресурсы по безопасности Зачем: — всё в одном месте — удобно для обучения и аудита безопасности — хорошая база для практики Полезный старт для разработчиков и security-инженеров. 📌 GitHub: https://github.com/user1342/Awesome-Android-Reverse-Engineering

⚡️ Docker-Android - запуск Android-эмулятора в Docker-контейнере Минимальный и настраиваемый Docker-образ с Android-эмуляторо
⚡️ Docker-Android - запуск Android-эмулятора в Docker-контейнере Минимальный и настраиваемый Docker-образ с Android-эмулятором, который запускается в контейнере как сервис. Он особенно полезен для автоматизации, CI/CD и тестирования мобильных приложений, когда нужен работающий эмулятор в изолированной среде без физического устройства. Это Docker-образ на базе лёгкого Linux, со встроенным Android-эмулятором, поддержкой аппаратной виртуализации (KVM) и Java Runtime. Внутри контейнер поднимает эмулятор, ADB-сервер и инструменты виртуализации. Работа происходит в headless-режиме, то есть без графического интерфейса — удобно для серверов и CI. Основные возможности: • минималистичный образ с Android-эмулятором и ADB • поддержка KVM и аппаратного ускорения • выбор версии Android и типа образа • проброс портов для ADB • работа без GUI • возможность подключать инструменты удалённого управления экраном Плюсы: ✔ изолированная, воспроизводимая среда ✔ не нужен GUI ✔ удобно для автоматизации тестов ✔ поддержка аппаратного ускорения docker-android — это удобный способ запускать Android-эмулятор как сервис внутри контейнера. Он упрощает автоматизацию тестирования и делает окружение предсказуемым и повторяемым. https://github.com/HQarroum/docker-android

Руководство по языку Kotlin 📚 Read
Руководство по языку Kotlin 📚 Read

photo content

Локализация в Jetpack Compose Локализация относится к изменению текста приложения, форматов валют и других визуальных элемент
Локализация в Jetpack Compose Локализация относится к изменению текста приложения, форматов валют и других визуальных элементов для соответствия локали пользователя на основе его региональных предпочтений. С введением языковых предпочтений для каждого приложения (Per-app Language Preference) в Android 13 (API уровня 33) управление языками, специфичными для приложений, стало намного проще. https://blog.kotlin-academy.com/localization-in-jetpack-compose-71b7f7233243 #Android

Repost from Mobile VK Hub
Конец года, и снова заканчиваются все подписки 😱 Узнали? Согласны? Не беда — мы как раз разыгрываем промокоды на год от Облака Mail и VK Музыки! Условия участия простые: 🔹 подпишитесь на наш канал @mobilehubvk 🔹нажмите кнопку «Участвовать» 🔹 дождитесь 30 декабря — в этом посте мы выберем случайным образом 6 победителей Информацию об организаторе, правилах и призах ищите по ссылке. Удачи!

🤖 Автоматизация Android с AI: Roubao Roubao — это открытый AI помощник для автоматизации задач на Android без необходимости
🤖 Автоматизация Android с AI: Roubao Roubao — это открытый AI помощник для автоматизации задач на Android без необходимости подключения к компьютеру. Он использует визуальные языковые модели и работает на нативном Kotlin, позволяя пользователям легко выполнять команды с помощью естественного языка. 🚀 Основные моменты: - Полностью открытый проект без необходимости в компьютере - Интуитивно понятный интерфейс с поддержкой нескольких языков - Поддержка различных AI моделей и API - Высокая безопасность с шифрованием ключей - Возможность работы в режиме Root для расширенных функций 📌 GitHub: https://github.com/Turbo1123/roubao #kotlin

❤️❤️❤️❤️❤️❤️❤️❤️ Когда гирлянды за монитором, а в терминале — Git Quest 💻 Атмосфера Нового года по-айтишному — это не только
❤️❤️❤️❤️❤️❤️❤️❤️ Когда гирлянды за монитором, а в терминале — Git Quest 💻 Атмосфера Нового года по-айтишному — это не только кофе и деплой под бой курантов. Это Новогодний Git Quest от SourceCraft! 🤩 Новогодние задания для тех, кто хочет узнать больше о Git. 🤩 Пасхалки и секретные ветки. 🤩 Соревновательная часть с рейтингом. 🤩 Дополнительные очки за скорость. С 10 по 30 декабря открываются новые задания каждые два дня — не пропусти! Загляни на сайт, попробуй тренировочное задание и добавь немного Git-магии в свой декабрь.

🚀 AI Agents for Android Apps Библиотека для автоматизации работы с нативными Android-приложениями. Идеально подходит для моб
🚀 AI Agents for Android Apps Библиотека для автоматизации работы с нативными Android-приложениями. Идеально подходит для мобильных рабочих процессов в логистике, экономике на заказ и других отраслях, где ноутбук неуместен. Позволяет значительно ускорить выполнение задач и сократить затраты. 🚀 Основные моменты: - Автоматизация процессов на Android-устройствах - Снижение затрат на 95% по сравнению с традиционными методами - Поддержка различных мобильных приложений - Быстрая реакция — менее 1 секунды на действие - Идеально для логистики и мобильного обслуживания 📌 GitHub: https://github.com/actionstatelabs/android-action-kernel

✔️ OpenAI создала Android-версию Sora за 28 дней. В ноябре 2025 года OpenAI выпустила приложение Sora для Android, пройдя путь от прототипа до глобального релиза всего за 1 месяц. Над проектом работали 4 инженера и ранняя версия GPT-5.1-Codex. Результаты эксперимента показали новый стандарт эффективности: 85% кода было сгенерировано ИИ, при этом стабильность версии держалась на уровне 99,9%. В первые сутки Sora для Android возглавило чарты Play Store, а пользователи создали более миллиона видео. В OpenAI отмечают, что ИИ-ассистенты берут на себя рутину, однако архитектурное проектирование и контроль качества по-прежнему требуют участия людей. openai.com

ColorTokensKit — мощная система цветовых маркеров Собственная цветовая система Swift обеспечивает только базовую функциональн
ColorTokensKit — мощная система цветовых маркеров Собственная цветовая система Swift обеспечивает только базовую функциональность для представления цвета. Собственные цвета ограничены RGB и HSL, которые не обеспечивают единообразия восприятия. Это может привести к непоследовательному цветовому восприятию на разных устройствах и в разных средах. Кроме того, собственные цвета изначально не поддерживают доступные коэффициенты контрастности, темный режим или темы, что затрудняет поддержание целостной системы дизайна. ColorTokensKit устраняет эти ограничения, используя цветовую систему LCH, которая обеспечивает более интуитивный и гибкий подход к управлению цветом. ColorTokensKit — мощная система цветовых маркеров для платформ Apple. ColorTokensKit расширяет возможности Swift, предлагая эргономичный доступ к цветовой системе LCH (Lightness, Chroma, Hue) и тысячам доступных цветов. Фичи: Простой в использовании API цветовых маркеров Предопределенные цветовые палитры LCH Встроенная поддержка доступных коэффициентов контрастности Встроенная поддержка темного режима Встроенная тематика для всех приложений Легкое преобразование между пространствами RGB/HSL/LCH/LAB/XYZ Отсутствие зависимостей https://github.com/metasidd/ColorTokensKit-Swift #Android

🔥 Новый курс на Stepik: Linux - апгрейд твоих скиллов до уровня инженера Хватит быть “кликавшим по GUI”. Пора понимать систе
🔥 Новый курс на Stepik: Linux - апгрейд твоих скиллов до уровня инженера Хватит быть “кликавшим по GUI”. Пора понимать систему изнутри. Что освоишь: • Bash, grep, sed, awk - инструменты взрослых админов • Процессы, сеть, права, логирование и починка поломок • SSH, firewall, systemd, cron, автозапуск сервисов После курса: Linux перестаёт быть загадкой - ты будешь работать с ним уверенно. 30% скидка на 48 часов 👉 Начни учиться на Stepik.