Android Broadcast
14.1K subscribers
3.47K photos
316 videos
11 files
5.78K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Java

«Вышла Java 16» - одна из самых непопулярных статей в мире Android разработки, который уже массово переехал на Kotlin. В новой версии Java догоняет по фичам Kotlin, а также представляет уникальную - Паттерн-матчинг для оператора instanceof (JEP 375). Обо всех обновлениях читайте в статье
#Concurrency #Java

Что такое ExecutorService?

Android разработке не стоит забыть про Java API, как оно работает и что применять. В статье разбирается ExecutorService, который позволяет управлять пулами потоков и получать результат асинхронной операции.
#java

Основы Java Bytecode

Хоть Android разработчики и пишут на Kotlin, под капотом всё равно остаётся JVM bytecode, поэтому его знания поможет вам лучше понять работу кода и то, что Kotlin выдаёт на выходе
#java

Вышла Java 17. Но какая разница Android разработчикам?
#java #collections

How HashMap works in Java

Как минимум будет полезно освежить в памяти или для подготовки к интервью понять внутреннее устройство самой популярной реализации Map в Java

Сорян за источник - в нём авторы совсем не знают меры с количеством рекламы
#java

Вышла Java 18

Вышла и вышла. Читать узнавать особо бесполезно. Полугодовой конвейер, который нагоняет Kotlin, но экспериментирует с Pattern Matching
#java

Хоть в прикладной Android разработке Java осталось мало, но у нас под капотом. Поздравить с ДР стоит - Java 27 лет
#java

Получение generic-типа в runtime

В Java Generic стираются в Runtime, но порой к ним нужен доступ. В статье автор рассказывает как через рефлексию можно достать необходимую информацию
Глубокое погружение в Java Memory Model

Если вы столкнулись с таким вопросом на собеседование, то вам будет полезно почитать. Если нет - вооружитесь знаниями заранее. Из статьи вы узнаете про:
👉 Java Memory Model (JMM)
👉 Memory Ordering
👉 Sequential Consistency
👉 Happens-before

Материал большой, но позволит вам разобраться

#concurrency #java
Вышла Java 19

👉 Паттерн-матчинг для switch (все еще превью)
👉 Паттерны записей (превью)
👉 Виртуальные потоки (или легковесный поток, схоже с корутинами). Конечно же тоже превью фичи
👉 Structured Concurrency (в инкубаторе, это даже раньше чем превью)

Kotlin и современные подходы драйвят Java, но вот Pattern Matching то что хотело бы увидеть в Kotlin

#java
Вышла Java 20
👉 Data Records (Превью)
👉 Паттерн-матчинг для switch (Превью)
👉 Виртуальные потоки они же Project Loom (Превью) - аналог Kotlin корутин
👉 Scoped Values (Инкубатор) - позволяет обмениваться иммутабельными данными без их передачи через аргументы методов
👉 Structured Concurrency (Инкубатор) - объединение несколько задач в разных потоках в единую работу
👉 Foreign Function & Memory API (Превью)
👉 Vector API (Инкубатор)

#java
В Android Studio Flamingo и Android 14 (API level 34) появилась возможность использовать Java Records (появились в Java 16) - аналог data классов из Kotlin. Конечно же R8/D8 поддерживают Desugaring этой фичи для предыдущих версий Android, но вот кейсы с рефлексией будут доступны только на Android 14 и выше

Подробности тут

#androidstudio #java
Разница между загрузкой и инициализацией классов в Java на любопытном примере (9 мин)

Хоть вам Java уже и не нужна, вы ведь на ней не пишите, но знать работы JVM виртуальной машины все также нужно. В статье показывается разница между загрузкой класса и его инициализацией.

В статье узнаете причины таких ошибок как NoClassDefFoundError и ClassNotFoundException

#java
Вышла Java 21
👉 Стабильный Pattern Matching для switch
👉 Record Pattern
👉 String Templates
👉 Безымянные переменные
👉 Можно запускать программы с методами main(), которые не являются public static и у которых нет параметра String[] args
👉 Project Loom - виртуальные потоки (стабильные)
👉 Превью Structured Concurrency

В Java все больше и больше становится Kotlin, хотя вот pattern matching - это то что хотелось бы увидеть в Kotlin

#java
Интересное применение Java Dynamic Proxy для загрузок конфигураций модулей: Подробности в статье

#java
Вышел Gradle 8.8:
👉 Поддержка Java 22
👉 Конфигурация JVM демона Gradle через toolchain
👉 Скорость работы больших проектов в IDE увеличена (наблюдали ускорение на 12% с проекте с 15 000 Gradle тасков)
👉 Version Catalog позволяет объявлять плагины без версий
👉 Новые методы-callback жизненного цикла GradleLifecycle
👉 Изолированные проекты через Project.getIsolated() - доступ только к свойствам проекта что не задевают другие проекты. В будущем позволит значительно ускорить параллельную сборку

#gradle
JSpecify — стандартизация Java-аннотаций для статического анализа кода и взаимодействия между языками JVM.

Если вы знакомы с Java или изучали исходный код, то одним из решений проблемы null является использование аннотаций nullability. Однако реализаций таких аннотаций много: JetBrains, Android Jetpack, Spring, Uber и другие создали свои версии.

Решений очень много, и возникла проблема выбора и поддержки. Хотелось бы иметь стандарт в Java, но договориться не удалось.

Консорциум компаний и команд из Google, JetBrains, Meta, Kotlin, Android, Spring, PMD, Sonar, EISOP и других объединился и создал единый стандарт, который обязуются поддерживать в своих решениях.

JSpecify 1.0 сосредоточен на nullability и содержит четыре аннотации: @NonNull, @Nullable, @NullMarked, @NullUnmarked.

Интеграция уже началась в библиотеки Jetpack Android и Kotlin.

#java
Вышел Dagger 2.56

В новой версии Dagger нет новых фичей, а вот то что может сломать код есть
👉 В рамках поддержки Jakarta: удалили старый способ создания Factory (возможно, отвалится код под старые версии Dagger) и больше нельзя использоваться dagger.internal.Provider
👉 В Kotlin исходниках при использовании для multibinding теперь НАДО использовать Set/MAP из kotlin.collections, а не версии из java.util
🛠 Исправили немного багов

#di #java
🦢 Swift от Apple будет иметь интероп с Java

Язык от Apple развивается с поддержкой других платформ. Можно попробовать ранний прототип интерорпа в обе стороны для работы с Java.

Язык постепенно ступает на территорию Kotlin. Про аналог мультиплафтормы конечно не говорится пока, но чем чёрт не щутит

#swift #java
Please open Telegram to view this post
VIEW IN TELEGRAM