#Exception
Обработка ошибок в Kotlin/Java: как правильно это делать?
Ошибки - это то с чем мы постоянно сталкиваемся в наших программах. Они возникают по вине программиста либо по причинах среды выполнения: отсутсвие сети, ошибка в данных, отсутствие места на диски и др.
Как с этим бороться? В статье вы найдете различные подходы:
👉 try-catch
👉 Sealed классы для представления успешного результата и ошибок
👉 Функциональный тип программирования
👉 Использовать
👉 Nullable тип из Kotlin
👉 Хардкодное значение как маркер ошибки (например -1 для метода, который возвращает
Обработка ошибок в Kotlin/Java: как правильно это делать?
Ошибки - это то с чем мы постоянно сталкиваемся в наших программах. Они возникают по вине программиста либо по причинах среды выполнения: отсутсвие сети, ошибка в данных, отсутствие места на диски и др.
Как с этим бороться? В статье вы найдете различные подходы:
👉 try-catch
👉 Sealed классы для представления успешного результата и ошибок
👉 Функциональный тип программирования
Either
👉 Использовать
Option
👉 Nullable тип из Kotlin
👉 Хардкодное значение как маркер ошибки (например -1 для метода, который возвращает
int
)Хабр
Обработка ошибок в Kotlin/Java: как правильно это делать?
Источник Обработка ошибок в любой разработке играет важнейшую роль. В программе может пойти не так практически всё: пользователь введёт некорректные данные, или...
#Coroutines #Coroutines
Making Android unidirectional data flow with Kotlin coroutines 🦄
Разбор нового взгляда на архитектура от автора библиотеки Koin. Архитектура строится на основе
Новый взгляд вылился в фреймворк Uniflow, который еще находится в разработке.
Making Android unidirectional data flow with Kotlin coroutines 🦄
Разбор нового взгляда на архитектура от автора библиотеки Koin. Архитектура строится на основе
Architecture Components
и Kotlin Coroutines
и основными компонентами в ней являются ViewModel
, Actions
& States
. Новый взгляд вылился в фреймворк Uniflow, который еще находится в разработке.
Medium
Making Android unidirectional data flow with Kotlin coroutines 🦄
How about structuring development around ViewModel? How can we write it as States and Events? With Kotlin coroutines, Mockk or even Arrow..
#GestureNavigation #Android10
Gesture Navigation: Handling gesture conflicts
Продолжение серии статей о новой системы навигации в Android 10. В новой часте рассматривается как разрешать конфликты, когда ваше приложение должно обрабатывать жесты в зонах, где находится системное управление жестами, например жесты на виджетах внизу экрана.
Gesture Navigation: Handling gesture conflicts
Продолжение серии статей о новой системы навигации в Android 10. В новой часте рассматривается как разрешать конфликты, когда ваше приложение должно обрабатывать жесты в зонах, где находится системное управление жестами, например жесты на виджетах внизу экрана.
Medium
Gesture Navigation: Handling gesture conflicts (III)
This is the third post in our blog post series on we covered how to handle visual overlaps after updating an app to draw ‘edge-to-edge’.
#Performance
Fighting Regressions with Benchmarks in CI
Одна из новинок Android - библиотека Jetpack Benchmark, уже успела дойти до первой беты. Библиотека позволяет вам писать правильные тесты производительности. Библиотека отвечает за "разогрев" устройств для теста, определение проблем конфигурации и замер производительности вашего кода.
В статье рассматривается как команда Jetpack тестируется производительности своих библиотек на CI и определяет регрессии в скорости их работы.
Fighting Regressions with Benchmarks in CI
Одна из новинок Android - библиотека Jetpack Benchmark, уже успела дойти до первой беты. Библиотека позволяет вам писать правильные тесты производительности. Библиотека отвечает за "разогрев" устройств для теста, определение проблем конфигурации и замер производительности вашего кода.
В статье рассматривается как команда Jetpack тестируется производительности своих библиотек на CI и определяет регрессии в скорости их работы.
Medium
Fighting Regressions with Benchmarks in CI
Find out how to use Jetpack Benchmark to catch performance regressions in your Android app before they make their way to users.
#Conference #Minsk #Review #MobileOptimized
Впечатления от Mobile Optimized 2019 - крупнейшей конференции по мобильным технология в Беларуси
Впечатления от Mobile Optimized 2019 - крупнейшей конференции по мобильным технология в Беларуси
Telegraph
Впечатления от Mobile Optimized 2019
Привет! Меня зовут Кирилл Розов и я разработчик с 8 годами опыта разработки в Android. Я возглавляю Android разработку в компании Humans и веду Telegram канала с новостями об Android разработке - Android Broadcast. Хочу поделиться своими впечатлениями от…
Понравилась вам идея с обзором конференции?
Final Results
69%
Да, стоит делать такое в будущем
3%
Да, но больше не стоит
4%
Нет
24%
Не читал
#Kotlin
The problem with extension functions
Что с этой прекрасной возможность языка может быть не так? Как с этим связано Kotlin DSL? В этом разбирается Мартин Москала
The problem with extension functions
Extension функции
- одна из самых популярных и любимых функций разработчиков, использующих Kotlin. Extension функции
позволили решить проблему с расширением API классов, делать его консистентным со сторонни и использовать новые подходы для проектирования API.Что с этой прекрасной возможность языка может быть не так? Как с этим связано Kotlin DSL? В этом разбирается Мартин Москала
Medium
The problem with extension functions
Extension functions are a great feature. Although they started being overused what leads to problems we don’t know how to solve yet.
#новости
По семейным обстоятельствам я беру перерыв на ближайшие 2 недели. Что это значит? Частота новостей будет снижена и новости будут выходить реже.
По семейным обстоятельствам я беру перерыв на ближайшие 2 недели. Что это значит? Частота новостей будет снижена и новости будут выходить реже.
#Automotive
Android Automotive OS updates for developers
Google развивает свою ОС для автомобилей - Android Automotive OS (не путайте с Android Auto).
Отличие этих ОС в том, что Android Automotive встраивается в ваш автомобиль, имеет доступ к датчикам автомобиля и может работать независимо от внешнего устройства. Для работы Android Auto требуется подключение смартфона на Android и она выступает простой медиа системой и имеет доступ только к датчикам телефона.
Google добавили возможность использовать эмулятор Android Automotive OS с магазинон Google Play. Уже сейчас вы можете запросить доступ к консоле Google Play для новой ОС от Google.
Android Automotive OS updates for developers
Google развивает свою ОС для автомобилей - Android Automotive OS (не путайте с Android Auto).
Отличие этих ОС в том, что Android Automotive встраивается в ваш автомобиль, имеет доступ к датчикам автомобиля и может работать независимо от внешнего устройства. Для работы Android Auto требуется подключение смартфона на Android и она выступает простой медиа системой и имеет доступ только к датчикам телефона.
Google добавили возможность использовать эмулятор Android Automotive OS с магазинон Google Play. Уже сейчас вы можете запросить доступ к консоле Google Play для новой ОС от Google.
Android Developers Blog
Android Automotive OS updates for developers
Posted by Madan Ankapura, Product Manager, Android Google’s vision is to bring a safe and seamless connected experience to every car. ...
#Dagger #Multibindings
Dagger 2 Multibindings Illustrated
Dagger 2 имеет множество возможностей, хотя множество разработчиков используют его по простому сценарию: "1 модуль. 1 компонент. @Inject. AppComponent.inject(...)". Но в Dagger есть много интересного функционала. Например, Multibinding, который позволяет вам объединять зависимости одного типа из разных модулей и компонентов в
Когда это может пригодиться? Когда у вас есть обработчики для создания элементов по типу элементов. Это эффективно можно применить для выполнения доставки зависимостей в конструктор
1. Предоставляете способ создания
2. Из Dagger вы можете получить
Код получается гибким и хорошо расширяемым. А значит мы и улучшили нашу архитектуру
В статье вы найдете руководство как использовать эту возможность библиотеки и делать архитектуру ваших приложений более гибкой.
Dagger 2 Multibindings Illustrated
Dagger 2 имеет множество возможностей, хотя множество разработчиков используют его по простому сценарию: "1 модуль. 1 компонент. @Inject. AppComponent.inject(...)". Но в Dagger есть много интересного функционала. Например, Multibinding, который позволяет вам объединять зависимости одного типа из разных модулей и компонентов в
Set
или Map
.Когда это может пригодиться? Когда у вас есть обработчики для создания элементов по типу элементов. Это эффективно можно применить для выполнения доставки зависимостей в конструктор
Fragment
(поддерживается в androidx.fragment 1.1.0):1. Предоставляете способ создания
Fragment
в Dagger модуле2. Из Dagger вы можете получить
Map<Class<Fragment>, Provider<Fragment>>
Код получается гибким и хорошо расширяемым. А значит мы и улучшили нашу архитектуру
В статье вы найдете руководство как использовать эту возможность библиотеки и делать архитектуру ваших приложений более гибкой.
Medium
Dagger 2 Multibindings Illustrated
Dagger 2 has a multibindings capability. It is a powerful feature package dependencies into SET and MAP automatically.
Используете ли вы Dagger 2 Multibinding?
Anonymous Poll
21%
Да
10%
Знаю, но не использую
28%
Не знал/знала что это такое
20%
Нет
21%
Использую другой DI
#FBReader
Пишем читалку электронных книг на Android с помощью FBReader SDK
EPUB, FB2 и MOBI - это самые популярные форматы для распространения электронных книг. Для решения задачи интеграции отображения таких файлов можно воспользоваться FBReader SDK.
Библиотека имеет множество возможностей:
👉 Открытие множество файлов электронных книг
👉 Чтение метаданных из файла книги
👉 Особенности движка FBReader
👉 Возможность менять стиль текста книги и яркость
👉 Выделение текста
👉 Закладки
👉 Поиск по тексту
👉 Оглавление
👉 Дополнительная навигация по тексту
👉 Поддержка сносок и гиперссылок
Библиотека платная. В бесплатном режиме можно отображать только несколько первых страниц. Подробнее о ценах.
Пишем читалку электронных книг на Android с помощью FBReader SDK
EPUB, FB2 и MOBI - это самые популярные форматы для распространения электронных книг. Для решения задачи интеграции отображения таких файлов можно воспользоваться FBReader SDK.
Библиотека имеет множество возможностей:
👉 Открытие множество файлов электронных книг
👉 Чтение метаданных из файла книги
👉 Особенности движка FBReader
👉 Возможность менять стиль текста книги и яркость
👉 Выделение текста
👉 Закладки
👉 Поиск по тексту
👉 Оглавление
👉 Дополнительная навигация по тексту
👉 Поддержка сносок и гиперссылок
Библиотека платная. В бесплатном режиме можно отображать только несколько первых страниц. Подробнее о ценах.
#IntelijIDEA #Gradle #Maven
Introducing Package Search EAP
Каким образом вы ищете библиотеки для решения задач в ваших приложения? Для меня пути 3:
👉 Google (90%)
👉 официальные гайды (5%)
👉 рекомендации от знакомых или из докладов (5%)
Использование поисковиков может порой занять больше времени, чем ожидалось, но и самые простые сценарии поиска занимают время на добавление библиотеки.
Чтобы решить эту проблему JetBrains выпустили плагин для IntelijIDEA - Package Search. Он позволяет находить библиотеки и ключевые ссылки к ним: исходный код, обсуждения на StackOverflow и др.
Также есть функционал для автодополнения при добавление зависимостей в Gradle и Maven, а для любителей Kotlin плагин подскажет какую минимальную версию языка требует библиотека и какие платформы поддерживаются, если библиотека мультиплатформенная.
Уже запланировано множество нового функционала на будущим релизы.
Introducing Package Search EAP
Каким образом вы ищете библиотеки для решения задач в ваших приложения? Для меня пути 3:
👉 Google (90%)
👉 официальные гайды (5%)
👉 рекомендации от знакомых или из докладов (5%)
Использование поисковиков может порой занять больше времени, чем ожидалось, но и самые простые сценарии поиска занимают время на добавление библиотеки.
Чтобы решить эту проблему JetBrains выпустили плагин для IntelijIDEA - Package Search. Он позволяет находить библиотеки и ключевые ссылки к ним: исходный код, обсуждения на StackOverflow и др.
Также есть функционал для автодополнения при добавление зависимостей в Gradle и Maven, а для любителей Kotlin плагин подскажет какую минимальную версию языка требует библиотека и какие платформы поддерживаются, если библиотека мультиплатформенная.
Уже запланировано множество нового функционала на будущим релизы.
JetBrains Marketplace
[DEPRECATED] Package Search - IntelliJ IDEs Plugin | Marketplace
Plugin Deprecation Timeline Version for IntelliJ IDEA 2024.3: is the last functional version of the plugin. There will be no version for IntelliJ IDEA 2025.1 or...
#Security #SharedPreference
Encrypted Preferences in Android
Encrypted Preferences in Android
androidx.security
в активной разработке, частью которая являются возможность использования зашифрованных SharedPreference
. В статье разбирается как работать с EncryptedSharedPreferences
и сравнивается производительность с обычными настройками.Medium
Encrypted Preferences in Android
EncryptedSharedPreferences usage and caveats
#DependencyInjection #Dagger
Вышел Dagger 2.25
Вышла новая версия популярного DI фреймворка. В новой версии не произошло значимых изменений были сделаны следующие улучшения:
👉 Поддержка Kotlin: для модулей, которые являются
👉 Исправление багов
👉 Улучшение производительности
Посмотрел историю последних релизов. Dagger уже давно не показывал новых фич и задумался: "Dagger уже стал идеальным либо иссякли идеи у создателей?"
Вышел Dagger 2.25
Вышла новая версия популярного DI фреймворка. В новой версии не произошло значимых изменений были сделаны следующие улучшения:
👉 Поддержка Kotlin: для модулей, которые являются
object
, больше не надо помечать каждый метод как @JvmStatic
и квалификаторы теперь можно добавлять аннотациями на property👉 Исправление багов
👉 Улучшение производительности
Посмотрел историю последних релизов. Dagger уже давно не показывал новых фич и задумался: "Dagger уже стал идеальным либо иссякли идеи у создателей?"
#AndroidDevSummit #AndroidStudio #MotionLayout #JetpackCompose
Прошел Keynote Android Dev Summit 2019. Быстро пройдемся по анонсам:
👉 Android Studio 4.0 Canary 1
👉 Jetpack Compose можно использовать из Android Studio (AS)
👉 Для Jetpack Compose теперь работает предпросмотр (правда нужно компилить код)
👉 Визуальный редактор для анимаций на основе MotionLayout уже можно использовать из новой AS
👉 Поддержка Gradle Kotlin Script в AS
👉 CameraX уже в Beta
👉 Большой обновление библиотек из Jetpack
👉 Сертификация "Associate Android Developer: Kotlin"
Ставлю что стабильный релиз AS 4.0 будет в апреле-мае следующего года, без стабильного Jetpack Compose
Будет больше новостей в ближайшие дни и обзоры обновлений!
Прошел Keynote Android Dev Summit 2019. Быстро пройдемся по анонсам:
👉 Android Studio 4.0 Canary 1
👉 Jetpack Compose можно использовать из Android Studio (AS)
👉 Для Jetpack Compose теперь работает предпросмотр (правда нужно компилить код)
👉 Визуальный редактор для анимаций на основе MotionLayout уже можно использовать из новой AS
👉 Поддержка Gradle Kotlin Script в AS
👉 CameraX уже в Beta
👉 Большой обновление библиотек из Jetpack
👉 Сертификация "Associate Android Developer: Kotlin"
Ставлю что стабильный релиз AS 4.0 будет в апреле-мае следующего года, без стабильного Jetpack Compose
Будет больше новостей в ближайшие дни и обзоры обновлений!
Android Developers
Android Dev Summit | Android Developers
Android Dev Summit 2022
#AndroidDeveloperChallenge
Android Developer Challenge: helpful innovation, powered by On-Device Machine Learning + you!
Google вновь взывает к разработчикам делится идеями, чтобы компания смогла помочь вам сделать их лучше. Первой темой в которой ищут идеи стало машинное обучение на устройстве.
10 лучших разработчиков получат помощь, экспертизу и обучение, фичиринг на Google Play, билет на Google I/0 2020 и пиар
Android Developer Challenge: helpful innovation, powered by On-Device Machine Learning + you!
Google вновь взывает к разработчикам делится идеями, чтобы компания смогла помочь вам сделать их лучше. Первой темой в которой ищут идеи стало машинное обучение на устройстве.
10 лучших разработчиков получат помощь, экспертизу и обучение, фичиринг на Google Play, билет на Google I/0 2020 и пиар
Android Developers Blog
Android Developer Challenge: helpful innovation, powered by On-Device Machine Learning + you!
News and insights on the Android platform, developer tools, and events.
#DontKillMyApp
Победи проблемы на устройстве каждого производителя с помощью сайта Don't kill my app! Больше подробностей ➡️ здесь
Победи проблемы на устройстве каждого производителя с помощью сайта Don't kill my app! Больше подробностей ➡️ здесь
Telegraph
Don't kill my app!
Представьте ситуацию: вы написали приложение, спустя долгие месяцы, его протестировали, все довольны. Вы заливаете его на Google Play. И тут начинаются сыпаться баги, которые вы не можете понять почему происходят. Виной всему вендоры, которые хотят сделать…