Новый урок по Compose
Небольшой урок в завершение темы Stability. Выясняем, что означает restartable, и разбираемся, какие изменения несет нам Strong Skipping Mode, который будет включен по умолчанию, начиная с Kotlin 2.0.20.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Небольшой урок в завершение темы Stability. Выясняем, что означает restartable, и разбираемся, какие изменения несет нам Strong Skipping Mode, который будет включен по умолчанию, начиная с Kotlin 2.0.20.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Вторая часть статьи про начальную загрузку данных в ViewModel. Отвечает на самые распространенные вопросы, возникшие после первой части.
1. What if you want to pass arguments when loading initial data
2. What if you want to refresh?
3. Why are ViewModel.init side-effects potentially problematic?
4. How to prevent re-emitting flow from WhileSubscribed(5_000)
#android #viewmodel #architecture #bestpractice
https://proandroiddev.com/loading-initial-data-part-2-clear-all-your-doubts-0f621bfd06a0
1. What if you want to pass arguments when loading initial data
2. What if you want to refresh?
3. Why are ViewModel.init side-effects potentially problematic?
4. How to prevent re-emitting flow from WhileSubscribed(5_000)
#android #viewmodel #architecture #bestpractice
https://proandroiddev.com/loading-initial-data-part-2-clear-all-your-doubts-0f621bfd06a0
Medium
Click Me Load More Initial Data on Android Part 2: Clear All Your Doubts
When a user enters a screen, the default data should be fetched by triggering the business logic, whether from the network or local…
Manuel Vivo рассказывает основы построения UI слоя приложения
#android #architecture #ui
https://www.droidcon.com/2023/11/15/peeling-back-the-layers-unmasking-the-ui-nknown/
#android #architecture #ui
https://www.droidcon.com/2023/11/15/peeling-back-the-layers-unmasking-the-ui-nknown/
droidcon
Peeling Back the Layers: Unmasking the UI-nknown!
How much do you know about the UI layer and its best practices? What's the preferred way to produce UiState? How to consume it? Should you use MVVM or MVI?
В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а.
#android #java
https://habr.com/ru/companies/ruvds/articles/838330/
#android #java
https://habr.com/ru/companies/ruvds/articles/838330/
Хабр
Интересные приёмы, взятые из исходников Android
Интересные приёмы, взятые из исходников Android В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании...
Краткий обзор Jetpack Media3 Transformer API, которое позволяет обрабатывать изображения, аудио и видео.
#android #media
https://www.youtube.com/watch?v=7vmiYP4vNUE
#android #media
https://www.youtube.com/watch?v=7vmiYP4vNUE
YouTube
Complement your media editing pipeline with Jetpack Media3
In this video, Developer Relations Engineer Nevin Mital will start with a quick overview of Jetpack Media3, then we’ll dive specifically into the APIs offered by Transformer, and lastly, Nevin will describe how you could incrementally start including Transformer…
image4.gif
24.9 MB
В Pixel Tablet emulator на Android 15 был добавлен режим Desktop Windowing. Приложения на экране теперь можно перемещать как окна на десктопе.
#android #emulator #screen
https://android-developers.googleblog.com/2024/09/developer-preview-desktop-windowing-on-android-tablets.html
#android #emulator #screen
https://android-developers.googleblog.com/2024/09/developer-preview-desktop-windowing-on-android-tablets.html
Всем привет!
На связи команда RuStore.
Каждый день мы стараемся делать RuStore ещё удобнее и будем благодарны за вашу помощь. Примите участие в исследовании о работе магазинов приложений, заполнив небольшой опрос.
Это займёт не более 5 минут и поможет нам стать лучше.
Пройти опрос
На связи команда RuStore.
Каждый день мы стараемся делать RuStore ещё удобнее и будем благодарны за вашу помощь. Примите участие в исследовании о работе магазинов приложений, заполнив небольшой опрос.
Это займёт не более 5 минут и поможет нам стать лучше.
Пройти опрос
Если вы уже определенное время занимаетесь разработкой Android, вы, вероятно, слышали о UseCases. Их часто представляют как Святой Грааль Clean architecture. UseCases призваны отделить бизнес-логику от Presentation и Data слоев, сделав ваш код более модульным, переиспользуемым и тестируемым. Но вот в чем загвоздка: UseCases не всегда являются серебряной пулей. На самом деле, слепое их применение может привести к раздутому коду и ненужной сложности, чего как раз и пытается избежать Clean Architecture. В этой статье мы развенчаем миф о UseCases и обсудим, когда они необходимы, а когда - просто пустая трата времени. Если вы разработчик Android и задаетесь вопросом, приносите ли вы больше вреда, чем пользы, следуя этому шаблону, эта статья для вас.
#android #usecase #bestpractice #architecture
https://habr.com/ru/articles/845604/
#android #usecase #bestpractice #architecture
https://habr.com/ru/articles/845604/
Хабр
Проблема UseCase-ов: что нужно знать разработчикам Android
Введение Если вы уже определенное время занимаетесь разработкой Android, вы, вероятно, слышали о UseCases. Их часто представляют как Святой Грааль Clean architecture. UseCases призваны отделить...
Новый урок по Compose.
Краткий обзор основных инструментов для работы с Compose: Preview, Live Edit, Layout Inspector, Debug, Trace.
Тема простая, материала по ней много, поэтому я не стал много расписывать.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Краткий обзор основных инструментов для работы с Compose: Preview, Live Edit, Layout Inspector, Debug, Trace.
Тема простая, материала по ней много, поэтому я не стал много расписывать.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Вышла новая версия Ktor, альтернативы OkHttp от Jetbrains
Что нового в версии 3:
- Migrating to kotlinx-io
- Support for server-sent events
- Serving static resources from ZIP archives
- Support for CSRF
#kotlin #network #ktor
https://blog.jetbrains.com/kotlin/2024/10/ktor-3-0/
Что нового в версии 3:
- Migrating to kotlinx-io
- Support for server-sent events
- Serving static resources from ZIP archives
- Support for CSRF
#kotlin #network #ktor
https://blog.jetbrains.com/kotlin/2024/10/ktor-3-0/
The JetBrains Blog
Ktor 3.0 Is Now Available With New Features and Improved Performance | The Kotlin Blog
Ktor 3.0 is faster, better integrated with Kotlin tools, and offers more options for client-server apps. Find more details in the blog post.
Разбор live-coding задачки, где надо подгружать (из URL) и отображать картинку. Стэк: View + корутины.
#android #coroutines #interview
https://proandroiddev.com/facing-a-multithreading-tech-interview-08927e4d2855
#android #coroutines #interview
https://proandroiddev.com/facing-a-multithreading-tech-interview-08927e4d2855
Medium
Facing a Multithreading Tech Interview
Lessons from a Live Coding Session
Room (абстракция над SQLite) — одна из основных технологий, используемая почти во всех Android-приложениях для кэширования данных, оффлайновости, как cross-process хранилище данных и тому подобное. При этом скорость работы приложения обычно напрямую зависит от скорости работы с БД, особенно если речь идет о холодном старте, когда все данные хранятся в кэше (в БД).
Встает вопрос: “А не является ли сама работа с БД узким местом скорости старта приложения?” В Wildberries это особенно актуально, так как приложение построено на парадигме offline-first, когда почти вся информация кэшируется в БД, чтобы приложение работало даже с медленным интернетом или без него. Для ответа на этот вопрос в статье разберем рантайм реализацию автоматического трекинга скорости выполнения запросов и транзакций в Room Database на основе Java Dynamic Proxy.
#android #room #database #tracking #measure #performance
https://habr.com/ru/companies/wildberries/articles/849068/
Встает вопрос: “А не является ли сама работа с БД узким местом скорости старта приложения?” В Wildberries это особенно актуально, так как приложение построено на парадигме offline-first, когда почти вся информация кэшируется в БД, чтобы приложение работало даже с медленным интернетом или без него. Для ответа на этот вопрос в статье разберем рантайм реализацию автоматического трекинга скорости выполнения запросов и транзакций в Room Database на основе Java Dynamic Proxy.
#android #room #database #tracking #measure #performance
https://habr.com/ru/companies/wildberries/articles/849068/
Хабр
Автотрекинг производительности Room Database
Room (абстракция над SQLite) — одна из основных технологий, используемая почти во всех Android-приложениях для кэширования данных, оффлайновости, как cross-process хранилище данных и тому...
Что нового в Kotlin 2.1.0-Beta2
- IDE support
- Support for requiring opt-in to extend APIs
- Preview of the new language features
- New Gradle DSL for compiler options in multiplatform projects is stable
- Improved overload resolution for functions with generic types
- Improved K2 kapt implementation
- Update LLVM version to 16.0.0 for Kotlin/Native
- Kotlin/Wasm
- Gradle improvements
- Compose compiler updates
https://kotlinlang.org/docs/whatsnew-eap.html
- IDE support
- Support for requiring opt-in to extend APIs
- Preview of the new language features
- New Gradle DSL for compiler options in multiplatform projects is stable
- Improved overload resolution for functions with generic types
- Improved K2 kapt implementation
- Update LLVM version to 16.0.0 for Kotlin/Native
- Kotlin/Wasm
- Gradle improvements
- Compose compiler updates
https://kotlinlang.org/docs/whatsnew-eap.html
Kotlin Help
What's new in Kotlin 2.2.0-RC3 | Kotlin
Сегодня мы подробно разберём, как интегрировать механизм Dynamic Feature Delivery в современную архитектуру Android‑приложения с использованием корутин, а также протестируем загрузку и установку динамического модуля, использующего Flutter.
#android #architecture #dfd
https://habr.com/ru/companies/yandex/articles/845344/
#android #architecture #dfd
https://habr.com/ru/companies/yandex/articles/845344/
Хабр
Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery
Размер приложения часто играет важную роль в восприятии его пользователями и принятии ими решения о скачивании. Исследования показывают, что чем меньше размер APK, тем выше вероятность...
Меня зовут Воронская Дарья, я работаю в Android Core команде eXpress и занимаюсь оптимизацией работы приложения. Я расскажу про подходы, которые мы использовали, чтобы довести скорость отправки и рендера сообщения до того самого идеального результата.
В этой статье речь пойдет только о работе с локальной базой данных. Оптимизация БД — лишь часть большой работы, мы расскажем про наши решения по оптимизации presentation слоя в других статьях.
Наш стек: Kotlin, Room, Coroutines, WebSocket, OkHttp.
#android #database #performance
https://habr.com/ru/companies/express/articles/852268/
В этой статье речь пойдет только о работе с локальной базой данных. Оптимизация БД — лишь часть большой работы, мы расскажем про наши решения по оптимизации presentation слоя в других статьях.
Наш стек: Kotlin, Room, Coroutines, WebSocket, OkHttp.
#android #database #performance
https://habr.com/ru/companies/express/articles/852268/
Хабр
Как в eXpress достигали мгновенного рендера отправки сообщения: оптимизация локальной базы данных
Откройте eXpress и отправьте в чат простое "Привет". Обратите внимание на то, сколько времени прошло между тем, как вы нажали на кнопку "отправить", и тем, как сообщение появилось в чате. Для...
Базовая статья о векторных иконках. Рассказывает, что означает набор символов типа "M3,5 L27,5 L16,23 Z".
#android #graphics #icon #vector
https://medium.com/@charles-raj/creating-custom-vector-icons-in-android-studio-a-step-by-step-guide-b4239d406b63
#android #graphics #icon #vector
https://medium.com/@charles-raj/creating-custom-vector-icons-in-android-studio-a-step-by-step-guide-b4239d406b63
Medium
Creating Custom Vector Icons in Android Studio: A Step-by-Step Guide
Hello Buddy’s, In this blog, we’ll dive into creating custom vector icons in Android Studio, a process that can give your app a unique…
Выпуск подкаста Android Developers Backstage про разработку UI/UX части Android Studio.
Intro
Android Dev UX team
What kind of libraries and languages are used to build Android studio?
Swing
Reactive and declarative programming models
SKIA for Kotlin
Jetpack Compose widgets
Jewel
Text rendering across platforms
Differences in behaviors
Support for markdown files
What is markdown?
Swing and html
Selection handling in StudioBot
Boosting productivity with Compose
Standalone vs plugin artifacts
The difference between Jewel & Swing
HTML vs Markdown
Markdeep
Jewel's Markdown API
Where to find Jewel?
Sebastiano’s podcast - Code with the Italians
Final thoughts
#androidstudio
https://www.youtube.com/watch?v=HmjKmoct3Ws
Intro
Android Dev UX team
What kind of libraries and languages are used to build Android studio?
Swing
Reactive and declarative programming models
SKIA for Kotlin
Jetpack Compose widgets
Jewel
Text rendering across platforms
Differences in behaviors
Support for markdown files
What is markdown?
Swing and html
Selection handling in StudioBot
Boosting productivity with Compose
Standalone vs plugin artifacts
The difference between Jewel & Swing
HTML vs Markdown
Markdeep
Jewel's Markdown API
Where to find Jewel?
Sebastiano’s podcast - Code with the Italians
Final thoughts
#androidstudio
https://www.youtube.com/watch?v=HmjKmoct3Ws
YouTube
Studio Jewelry - Android Developers Backstage
Link to podcast → https://goo.gle/3YAzC4c
In this episode Chet, Romain and Tor chat with Sebastiano about how the Android Studio team builds UIs. We talk about how Compose for Desktop is used in parts of Android Studio and how the Compose Markdown renderer…
In this episode Chet, Romain and Tor chat with Sebastiano about how the Android Studio team builds UIs. We talk about how Compose for Desktop is used in parts of Android Studio and how the Compose Markdown renderer…
Dos and Don’ts для ViewModel, часть 5:
- Avoid hardcoding Coroutine Dispatchers.
- Unit test your ViewModels.
- Avoid exposing suspended functions.
#kotlin #android #viewmodel #bestpractise
https://proandroiddev.com/mastering-android-viewmodels-essential-dos-and-donts-part-5-%EF%B8%8F5%EF%B8%8F%E2%83%A3-14d04ec2426a
- Avoid hardcoding Coroutine Dispatchers.
- Unit test your ViewModels.
- Avoid exposing suspended functions.
#kotlin #android #viewmodel #bestpractise
https://proandroiddev.com/mastering-android-viewmodels-essential-dos-and-donts-part-5-%EF%B8%8F5%EF%B8%8F%E2%83%A3-14d04ec2426a
Medium
Mastering Android ViewModels: Essential Dos and Don’ts Part 5 🛠️5️⃣
keep these in mind for better code quality when doing ViewModels!
Media is too big
VIEW IN TELEGRAM
Тестируйте мобильные приложения без эмуляторов и телефонов
Для тестирования мобильных приложений раньше нужно было покупать разные модели смартфонов, обслуживать устройства, передавать их между сотрудниками и все это без возможности провести параллельное тестирование.
Сейчас возможно приблизиться к клиентскому опыту, проводить параллельные тесты на разных устройствах, проверять производительность, нажатия и UI. И все это благодаря мобильной ферме от Selectel. Физические устройства покупать не нужно — они доступны к аренде удаленно.
Вы можете получить доступ бесплатно. Для этого запросите демо продукта и убедитесь в удобстве мобильной фермы на собственном опыте.
Преимущества мобильной фермы Selectel:
● Простор для тестирования как на популярных, так и на редких моделях телефонов — 100+ моделей смартфонов с разными параметрами (Android версии, процессоры, диагонали и т.д.)
● Доступность — легкая аренда и управление устройствами без ограничений по времени сессий через my.selectel
● Удаленная работа на устройствах из любой точки мира
● Удобство — настройки сохраняются, пока устройство закреплено за вами вне зависимости от количества тестов и длины сессии.
● Безопасность — информация о ваших сессиях автоматически удаляется после завершения аренды
Оставляйте запрос на демо продукта: https://slc.tl/r5y83
Реклама АО «Селектел». ИНН: 7810962785 Erid: 2VtzqvfZ8rg
Для тестирования мобильных приложений раньше нужно было покупать разные модели смартфонов, обслуживать устройства, передавать их между сотрудниками и все это без возможности провести параллельное тестирование.
Сейчас возможно приблизиться к клиентскому опыту, проводить параллельные тесты на разных устройствах, проверять производительность, нажатия и UI. И все это благодаря мобильной ферме от Selectel. Физические устройства покупать не нужно — они доступны к аренде удаленно.
Вы можете получить доступ бесплатно. Для этого запросите демо продукта и убедитесь в удобстве мобильной фермы на собственном опыте.
Преимущества мобильной фермы Selectel:
● Простор для тестирования как на популярных, так и на редких моделях телефонов — 100+ моделей смартфонов с разными параметрами (Android версии, процессоры, диагонали и т.д.)
● Доступность — легкая аренда и управление устройствами без ограничений по времени сессий через my.selectel
● Удаленная работа на устройствах из любой точки мира
● Удобство — настройки сохраняются, пока устройство закреплено за вами вне зависимости от количества тестов и длины сессии.
● Безопасность — информация о ваших сессиях автоматически удаляется после завершения аренды
Оставляйте запрос на демо продукта: https://slc.tl/r5y83
Реклама АО «Селектел». ИНН: 7810962785 Erid: 2VtzqvfZ8rg
Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде.
#solid #pattern
https://habr.com/ru/articles/849350/
#solid #pattern
https://habr.com/ru/articles/849350/
Хабр
Принципы SOLID на примерах из жизни и разработки
Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде. Итак, SOLID - это 5 принципов,...