Stop passing Context into ViewModels
Пару дней назад постил статью про реализацию сетевого слоя через корутины, где говорил про зависимость контекста.
Так вот, сегодня попалась на глаза статья по смежной теме (Context), а именно про передачу контекста во ViewModel. В статье рассказывается почему так лучше не делать и рассматриваюся базовые варианты решения, типа Resource и Locale.
P.S. Не передавайте контекст туда, где он не нужен :)
Читать (En)
Пару дней назад постил статью про реализацию сетевого слоя через корутины, где говорил про зависимость контекста.
Так вот, сегодня попалась на глаза статья по смежной теме (Context), а именно про передачу контекста во ViewModel. В статье рассказывается почему так лучше не делать и рассматриваюся базовые варианты решения, типа Resource и Locale.
P.S. Не передавайте контекст туда, где он не нужен :)
Читать (En)
👍8🔥7
Customizing AnimatedContent in Jetpack Compose
Несколько примеров плавных переходов в зависимости от стейта через AnimatiedContent (пока что в experimental).
Выглядит неплохо и по коду вроде не особо сложно 👍
Читать (En)
Несколько примеров плавных переходов в зависимости от стейта через AnimatiedContent (пока что в experimental).
Выглядит неплохо и по коду вроде не особо сложно 👍
Читать (En)
👍10🤮3
Compose End to End тестирование. Основы
В официальной документации сказано, что тестирование UI слоя написанного на Compose, отличаются от тестов привычного View на xml.
Связанно это с тем, что в Compose создаётся отдельное семантическое дерево, которое представляет UI, но не является им. Это дерево также используется для обеспечения доступности интерфейса.
Ловите вводную часть, в которой как раз рассказывается про основы и некоторые особенности написания UI тестов под Compose.
Полезные ссылки
👉 Testing your Compose layout
👉 Исходники из статьи
👉 Testing cheat sheet
Читать (Ru)
В официальной документации сказано, что тестирование UI слоя написанного на Compose, отличаются от тестов привычного View на xml.
Связанно это с тем, что в Compose создаётся отдельное семантическое дерево, которое представляет UI, но не является им. Это дерево также используется для обеспечения доступности интерфейса.
Ловите вводную часть, в которой как раз рассказывается про основы и некоторые особенности написания UI тестов под Compose.
Полезные ссылки
👉 Testing your Compose layout
👉 Исходники из статьи
👉 Testing cheat sheet
Читать (Ru)
👍4🔥2
Setup your CI/CD Pipeline with Fastlane and Github actions for Android apps
Гайд по настройке CI/CD с помощью Fastlane и Github actions.
И еще одна статья от автора, про Fastlane → Fastlane: Automate beta deployments and releases for your android apps
Читать (En)
Гайд по настройке CI/CD с помощью Fastlane и Github actions.
И еще одна статья от автора, про Fastlane → Fastlane: Automate beta deployments and releases for your android apps
Читать (En)
👍8
Исследование российских команд iOS разработки, 2022
Тут Егор Толстой стартанул шестой ежегодный опрос про российские команды iOS разработки.
Про что там?
👉 Откуда мобильщики получают знания
👉 Какие команды iOS разработки самые сильные
👉 Сколько айосеров решило уехать, а сколько – остается в России
👉 Кто входит в топ-10 айос разработчиков
👉 В каких компаниях iOS разработчики хотят работать больше всего
Будет круто, если пройдете опрос и пошарите своим коллегам/знакомым!
Тут Егор Толстой стартанул шестой ежегодный опрос про российские команды iOS разработки.
Про что там?
👉 Откуда мобильщики получают знания
👉 Какие команды iOS разработки самые сильные
👉 Сколько айосеров решило уехать, а сколько – остается в России
👉 Кто входит в топ-10 айос разработчиков
👉 В каких компаниях iOS разработчики хотят работать больше всего
Будет круто, если пройдете опрос и пошарите своим коллегам/знакомым!
survey.alchemer.eu
Исследование российских команд iOS разработки, 2022
Исследование российских команд iOS разработки, 2022.
👍8🤮7
Generics in Swift explained with code examples
А вот отличная статейка на тему дженериков в Swift, в которой рассматриваются основные аспекты с примерами кода (что такое generics, как использовать).
Читать (En)
А вот отличная статейка на тему дженериков в Swift, в которой рассматриваются основные аспекты с примерами кода (что такое generics, как использовать).
Читать (En)
🔥6
Performance Considerations for Memory Leaks: An Android Cookbook
Еще одна отличная статья про утечки памяти. Рассматриваются основные причины возникновения утечек и возможные варианы их избежать.
👉 Статические ссылки (
👉 Взаимодействие с UI из компонентов не относящихся к Android, например Presenter или ViewModel
👉 Работа с Bitmap (
👉 Ссылки на UI объекты в бекграунд потоках
👉 Вложенные нестатические классы
Статья по большей части для начинающих, но и для опытных не помешает лишний раз освежить память.
Читать (En)
Еще одна отличная статья про утечки памяти. Рассматриваются основные причины возникновения утечек и возможные варианы их избежать.
👉 Статические ссылки (
Context, Activity, Fragment, View)👉 Взаимодействие с UI из компонентов не относящихся к Android, например Presenter или ViewModel
👉 Работа с Bitmap (
bitmap?.recycle())👉 Ссылки на UI объекты в бекграунд потоках
👉 Вложенные нестатические классы
Статья по большей части для начинающих, но и для опытных не помешает лишний раз освежить память.
Читать (En)
👍11🔥2
Дайджест недели
Наш большой и мощный 2-ух недельный дайджест 💪. За прошедшие две недели было несколько интересных новостей:
1. Apple разрешила использовать сторонние способы оплаты в Южной Корее с комиссией в 26% 😁
2. Google выплатит разработчикам около 90 миллионов долларов по иску монополизации рынка и взимании несправедливой платы в размере 30% за app-purchases и in-app purchases, сделанные через Play Store.
Android 🤖
• Modularising Trendyol Android App for Build Efficiency
• We need to go deeper: диплинки и кодогенерация
• A Solution for Combining Kotlin Suspend Function + Retrofit
• 14 задач по Kotlin lists, которые заставят вас подумать
• 8 anti-patterns in Android codebase and why I hate them
• 5 Useful Kotlin Extensions for Android Developers
• Stop passing Context into ViewModels
• Customizing AnimatedContent in Jetpack Compose
• Compose End to End тестирование. Основы
• Setup your CI/CD Pipeline with Fastlane and Github actions for Android apps
• Performance Considerations for Memory Leaks: An Android Cookbook
• Compose sample app: UI state with Flow, offline first
• Side Effects in Jetpack Compose
• The God-level Kotlin Function
• How OkCredit Android App boosted Network Performance by 30%
• Advance Architecture for Android Project
• Control In-app update in Android
• A better way to pass Data from Api to Composable - Jetpack Compose
• MVI Pattern in Android
• Best Android App Templates and Themes of 2022
• 7 Jetpack Compose Projects to Become a Better Android DeveloperーPart- 3
• Load Fragments in Jetpack Compose: Beyond What Google Taught
• Kotlin DataFrame Preview
• Screen response time. A critical metric for user experience
• How to learn Kotlin with IntelliJ IDEA and Android Studio integrated courses
iOS 🍏
• Исследование российских команд iOS разработки, 2022
• Переход на SwiftUI: внедряем TabView взамен UITabBarController
• Generics in Swift explained with code examples
• ARKit 6. Что нового?
• Decoding Dynamic JSON with Swift Codable
• Implement SwiftUI Navigation With NavigationStack and NavigationSplitView
• Understanding VIPER Architecture
• 7 Useful iOS Libraries You Should Use in Your Next ProjectーPart- 4
• A Complete Guide to iOS App Auto Deployment with CI-CD
• Диспетчеризация в Swift: погружение в теорию и практику
• Приключение на 5 минут: как мы переводили все зависимости на SPM
• Creating Cool UI: iOS Shape Morphing
• Async/await в Swift 5.5: асинхронность «здорового человека»
• Removing Dependencies: One Weird Trick for Increasing Happiness,
• Existential any in Swift explained with code examples
• Multi-platform image resizing
• VIP design pattern (or Clean Swift)
• The power of task view modifier in SwiftUI
• AsyncSequence & AsyncStream Tutorial for iOS
• Async Composable Architecture: The Problem
• Typed Payloads in SwiftUI using NSUserActivity
• Testing Throwing Methods In Swift Actors
Кроссплатформа / Разработка 💻
• Build a Flutter app with Very Good CLI and Supabase
• Getting Started With Staggered Animations in Flutter
• Dart Code v3.44
• Flutter для автомобиля. А почему бы и нет?
• Announcing the Dart Custom Lint package
• Dynamic theme color with Material 3 (You) in Flutter
• Deep Linking in React Native
• Flutter battery app made with Klutter
• How to write Flutter code efficiently
• Flutter 3: What are enums and what is new about it
• Как мы перешли на регулярные релизы мобильного приложения. Часть I
• Improving shared architecture for a Kotlin Multiplatform, Jetpack Compose and SwiftUI app
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Библиотеки и инструменты: @mobile_dev_tools
Подписаться: @mobile_native
Чат: @mobile_native_chat
Наш большой и мощный 2-ух недельный дайджест 💪. За прошедшие две недели было несколько интересных новостей:
1. Apple разрешила использовать сторонние способы оплаты в Южной Корее с комиссией в 26% 😁
2. Google выплатит разработчикам около 90 миллионов долларов по иску монополизации рынка и взимании несправедливой платы в размере 30% за app-purchases и in-app purchases, сделанные через Play Store.
Android 🤖
• Modularising Trendyol Android App for Build Efficiency
• We need to go deeper: диплинки и кодогенерация
• A Solution for Combining Kotlin Suspend Function + Retrofit
• 14 задач по Kotlin lists, которые заставят вас подумать
• 8 anti-patterns in Android codebase and why I hate them
• 5 Useful Kotlin Extensions for Android Developers
• Stop passing Context into ViewModels
• Customizing AnimatedContent in Jetpack Compose
• Compose End to End тестирование. Основы
• Setup your CI/CD Pipeline with Fastlane and Github actions for Android apps
• Performance Considerations for Memory Leaks: An Android Cookbook
• Compose sample app: UI state with Flow, offline first
• Side Effects in Jetpack Compose
• The God-level Kotlin Function
• How OkCredit Android App boosted Network Performance by 30%
• Advance Architecture for Android Project
• Control In-app update in Android
• A better way to pass Data from Api to Composable - Jetpack Compose
• MVI Pattern in Android
• Best Android App Templates and Themes of 2022
• 7 Jetpack Compose Projects to Become a Better Android DeveloperーPart- 3
• Load Fragments in Jetpack Compose: Beyond What Google Taught
• Kotlin DataFrame Preview
• Screen response time. A critical metric for user experience
• How to learn Kotlin with IntelliJ IDEA and Android Studio integrated courses
iOS 🍏
• Исследование российских команд iOS разработки, 2022
• Переход на SwiftUI: внедряем TabView взамен UITabBarController
• Generics in Swift explained with code examples
• ARKit 6. Что нового?
• Decoding Dynamic JSON with Swift Codable
• Implement SwiftUI Navigation With NavigationStack and NavigationSplitView
• Understanding VIPER Architecture
• 7 Useful iOS Libraries You Should Use in Your Next ProjectーPart- 4
• A Complete Guide to iOS App Auto Deployment with CI-CD
• Диспетчеризация в Swift: погружение в теорию и практику
• Приключение на 5 минут: как мы переводили все зависимости на SPM
• Creating Cool UI: iOS Shape Morphing
• Async/await в Swift 5.5: асинхронность «здорового человека»
• Removing Dependencies: One Weird Trick for Increasing Happiness,
• Existential any in Swift explained with code examples
• Multi-platform image resizing
• VIP design pattern (or Clean Swift)
• The power of task view modifier in SwiftUI
• AsyncSequence & AsyncStream Tutorial for iOS
• Async Composable Architecture: The Problem
• Typed Payloads in SwiftUI using NSUserActivity
• Testing Throwing Methods In Swift Actors
Кроссплатформа / Разработка 💻
• Build a Flutter app with Very Good CLI and Supabase
• Getting Started With Staggered Animations in Flutter
• Dart Code v3.44
• Flutter для автомобиля. А почему бы и нет?
• Announcing the Dart Custom Lint package
• Dynamic theme color with Material 3 (You) in Flutter
• Deep Linking in React Native
• Flutter battery app made with Klutter
• How to write Flutter code efficiently
• Flutter 3: What are enums and what is new about it
• Как мы перешли на регулярные релизы мобильного приложения. Часть I
• Improving shared architecture for a Kotlin Multiplatform, Jetpack Compose and SwiftUI app
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Библиотеки и инструменты: @mobile_dev_tools
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍4❤🔥3🔥1
Android In-app update
Круто же, когда приложение может само обновляться и мы, как разработчики может управлять этим процессом. Если вдруг вы не работали с in-app update, вот несколько статей, которые помогут понять основной принцип работы.
В первой статье показан сам принцип работы с in-app update, разные типы обновления с учетом логики приоритетов обновления, а во второй статье пример того, как можно запилить доп. логику для force обновления через firebase remote config.
Полезые ссылки
👉 In-app update
👉 Control In-app update in Android
👉 The easiest way to implement Firebase RemoteConfig in Android
👉 In-app updates docs
Круто же, когда приложение может само обновляться и мы, как разработчики может управлять этим процессом. Если вдруг вы не работали с in-app update, вот несколько статей, которые помогут понять основной принцип работы.
В первой статье показан сам принцип работы с in-app update, разные типы обновления с учетом логики приоритетов обновления, а во второй статье пример того, как можно запилить доп. логику для force обновления через firebase remote config.
Полезые ссылки
👉 In-app update
👉 Control In-app update in Android
👉 The easiest way to implement Firebase RemoteConfig in Android
👉 In-app updates docs
👍24
Navigation in Multi Modular App using DeepLinks
Досаточно удобный и мне кажется масштабируемый подход к навигации в многомодульном проекте через диплинки.
Вообще, диплинки для навигации внутри приложения – тема. Правда для удобства и масштабируемости требуют хорошей архитектуры, т.к. кейсы могут быть довольно разные.
Код из статьи тут: NavigationWithMultiModuleApp
Читать (En)
Досаточно удобный и мне кажется масштабируемый подход к навигации в многомодульном проекте через диплинки.
Вообще, диплинки для навигации внутри приложения – тема. Правда для удобства и масштабируемости требуют хорошей архитектуры, т.к. кейсы могут быть довольно разные.
Код из статьи тут: NavigationWithMultiModuleApp
Читать (En)
👍9🔥1
A Perception of Exception in Kotlin Coroutines
Еще одна статья про исключения в корутинах. Рассматриваются основные вопросы: исключения и отмена в контексте корутин, как прокидываются исключения по иерархии и как обрабатывать исключения.
Читать (En)
Еще одна статья про исключения в корутинах. Рассматриваются основные вопросы: исключения и отмена в контексте корутин, как прокидываются исключения по иерархии и как обрабатывать исключения.
Читать (En)
👍6🔥1👏1
Switching between SwiftUI’s HStack and VStack
Несколько вариантов реализации собственного
Читать (En)
Несколько вариантов реализации собственного
DynamicStack на SwiftUI, который будет автоматически переключаться между HStack и VStack в зависимости от ориентации (portrait, landscape).Читать (En)
👍5
How to make Android Studio look Awesome!
В какой-то момент статья затералясь в избранном и я забыл ее опубликовать. Надо исправить это дело 😉
Если вы, как и я, первым делом после установки студии идете меняеть в ней тему на какую-нибудь Dracula или на свою кастомную – статья вам однозначно зайдет 😎
Кроме тем, в статье так же есть несколько прикольных плагинов типа Atom Material Icons или тот же Rainbow Brackets.
Читать (En)
В какой-то момент статья затералясь в избранном и я забыл ее опубликовать. Надо исправить это дело 😉
Если вы, как и я, первым делом после установки студии идете меняеть в ней тему на какую-нибудь Dracula или на свою кастомную – статья вам однозначно зайдет 😎
Кроме тем, в статье так же есть несколько прикольных плагинов типа Atom Material Icons или тот же Rainbow Brackets.
Читать (En)
👍16👎6
How to Show Library Dependency Tree in Android Studio?
Инструкция по тому, как посмотреть дерево зависимостей, и связи между различными библиотеками.
Иногда бывает очень полезно, хотябы посмотреть и понимать, какие зависимости тянут за собой подключаемые библиотеки.
Читать (En)
Инструкция по тому, как посмотреть дерево зависимостей, и связи между различными библиотеками.
Иногда бывает очень полезно, хотябы посмотреть и понимать, какие зависимости тянут за собой подключаемые библиотеки.
Читать (En)
👍8🔥3
Исследование российских команд Android разработки, 2022
А вот стартанули ежегодный опрос и по Android направлению. Вопросы и темы, аналогичные iOS опросу.
👉 Как Android разработчики получают новые знания
👉 Какие команды Android разработки самые сильные
👉 Сколько человек решило уехать, а сколько – остается в России
👉 Какие книги больше всего рекомендуют прочесть
👉 Сколько мобильщиков работает удаленно, а сколько – в офисе
Результаты опросов в публичном доступе будут +/- через месяц (середина августа). Если вдруг пропустили, опрос по iOS тут.
Пройти опрос →
А вот стартанули ежегодный опрос и по Android направлению. Вопросы и темы, аналогичные iOS опросу.
👉 Как Android разработчики получают новые знания
👉 Какие команды Android разработки самые сильные
👉 Сколько человек решило уехать, а сколько – остается в России
👉 Какие книги больше всего рекомендуют прочесть
👉 Сколько мобильщиков работает удаленно, а сколько – в офисе
Результаты опросов в публичном доступе будут +/- через месяц (середина августа). Если вдруг пропустили, опрос по iOS тут.
Пройти опрос →
survey.alchemer.eu
Исследование российских команд Android разработки, 2022
Исследование российских команд Android разработки, 2022
.
.
👍6👎3
Дайджест недели
Twitter хочет обязать Илона Маска через суд выполнить свои обязательства, то бишь купить Twitter 🤷♂️. Первое заседание должно состоятся завтра (19 июля).
Уже видели, что в Android Studio Electric Eel должна появиться фича, которая позволит просматривать логи из Crashlytics непосредственно в IDE? Выглядит прикольно и должно быть супер удобно 🔥
На этой недели будет проходить несколько онлайн/офлайн ивентов по мобилкам раз (Санкт-Петербург), два (Санкт-Петербург) и три (Ереван).
Android 🤖
• Android In-app update
• Navigation in Multi Modular App using DeepLinks
• A Perception of Exception in Kotlin Coroutines
• Podlodka Android Crew!
• How to make Android Studio look Awesome!
• How to Show Library Dependency Tree in Android Studio?
• Исследование российских команд Android разработки, 2022
• Ускорение сборок flavors и buildTypes малой кровью и кастомным BuildConfig
• (Not so) Gentle introduction to Polymorphic Serialization in Kotlin
• Parallel processing with state management in Lazy Column -Jetpack Compose
• ViewPager in Jetpack Compose with dot indicators (within minutes)
• 2 Ways to Request Permissions in Jetpack Compose
• Fixing Problems of Jetpack Compose Navigation
• Nested Auto Scroll For Section Based Lists With Jetpack Compose
• Performance best practices for Jetpack Compose (GoogleIO 2022 recap)
• 5 Awesome Custom Button Designs made with Jetpack Compose
• Custom Views Library for your Android Project
• Redundant DTO-Domain Mapping in Kotlin Flow
• The Quick Developer’s Guide to Migrating Apps to Android 12
iOS 🍏
• Switching between SwiftUI’s HStack and VStack
• A First Look at SwiftUI NavigationStack, NavigationPath, and “navigationDestination”
• How iOS 16 makes your app launch faster
• Getting UIKit's UICalendarView from iOS 16 fully functioning in a SwiftUI app
• How to add opt-in compiler argument in build.gradle?
• Errors Validation In Swift!
• SwiftUI 4 — Add Scroll Background
• Create custom TextField Styles in SwiftUI
• New in SwiftUI 4 : Range Area Chart
• SwiftUI Preview’s useful features that can improve your productivity 20x times
• When should I use a class vs a struct?
• Architectures comparing for SwiftUI
• Code generation using Swift Package Plugins
• The Facade Design Pattern In Swift
Кроссплатформа / Разработка 💻
• Explore Barcode Scanner In Flutter
• IndexedStack In Flutter
• Implementing Voice Searching In Flutter
• Equatable In Flutter
• My Experience After Using Kotlin Multiplatform in Production Apps for a Year
• Flutter Clean Architecture with Rorty App
• Building our first Kotlin Multiplatform Mobile project
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Библиотеки и инструменты: @mobile_dev_tools
Подписаться: @mobile_native
Чат: @mobile_native_chat
Twitter хочет обязать Илона Маска через суд выполнить свои обязательства, то бишь купить Twitter 🤷♂️. Первое заседание должно состоятся завтра (19 июля).
Уже видели, что в Android Studio Electric Eel должна появиться фича, которая позволит просматривать логи из Crashlytics непосредственно в IDE? Выглядит прикольно и должно быть супер удобно 🔥
На этой недели будет проходить несколько онлайн/офлайн ивентов по мобилкам раз (Санкт-Петербург), два (Санкт-Петербург) и три (Ереван).
Android 🤖
• Android In-app update
• Navigation in Multi Modular App using DeepLinks
• A Perception of Exception in Kotlin Coroutines
• Podlodka Android Crew!
• How to make Android Studio look Awesome!
• How to Show Library Dependency Tree in Android Studio?
• Исследование российских команд Android разработки, 2022
• Ускорение сборок flavors и buildTypes малой кровью и кастомным BuildConfig
• (Not so) Gentle introduction to Polymorphic Serialization in Kotlin
• Parallel processing with state management in Lazy Column -Jetpack Compose
• ViewPager in Jetpack Compose with dot indicators (within minutes)
• 2 Ways to Request Permissions in Jetpack Compose
• Fixing Problems of Jetpack Compose Navigation
• Nested Auto Scroll For Section Based Lists With Jetpack Compose
• Performance best practices for Jetpack Compose (GoogleIO 2022 recap)
• 5 Awesome Custom Button Designs made with Jetpack Compose
• Custom Views Library for your Android Project
• Redundant DTO-Domain Mapping in Kotlin Flow
• The Quick Developer’s Guide to Migrating Apps to Android 12
iOS 🍏
• Switching between SwiftUI’s HStack and VStack
• A First Look at SwiftUI NavigationStack, NavigationPath, and “navigationDestination”
• How iOS 16 makes your app launch faster
• Getting UIKit's UICalendarView from iOS 16 fully functioning in a SwiftUI app
• How to add opt-in compiler argument in build.gradle?
• Errors Validation In Swift!
• SwiftUI 4 — Add Scroll Background
• Create custom TextField Styles in SwiftUI
• New in SwiftUI 4 : Range Area Chart
• SwiftUI Preview’s useful features that can improve your productivity 20x times
• When should I use a class vs a struct?
• Architectures comparing for SwiftUI
• Code generation using Swift Package Plugins
• The Facade Design Pattern In Swift
Кроссплатформа / Разработка 💻
• Explore Barcode Scanner In Flutter
• IndexedStack In Flutter
• Implementing Voice Searching In Flutter
• Equatable In Flutter
• My Experience After Using Kotlin Multiplatform in Production Apps for a Year
• Flutter Clean Architecture with Rorty App
• Building our first Kotlin Multiplatform Mobile project
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Библиотеки и инструменты: @mobile_dev_tools
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍6🔥5
Kotlin Coroutines Tutorial for Android : Advanced
Еще один туториал по корутинам.
👉 Что такое Coroutines
👉 Coroutine Builders
👉 Blocking Builder
👉 CoroutineScope
👉 Canceling a Job
👉 CoroutineDispatchers
👉 Handling Exceptions
И всё это с примерами кода.
Читать (En)
Еще один туториал по корутинам.
👉 Что такое Coroutines
👉 Coroutine Builders
👉 Blocking Builder
👉 CoroutineScope
👉 Canceling a Job
👉 CoroutineDispatchers
👉 Handling Exceptions
И всё это с примерами кода.
Читать (En)
🔥15👍5👏1
Stop Using RecyclerView.Adapter
Короткая статья про то, почему нужно использовать ListAdapter вместо
Для тех, кто не юзал ListAdapter – это по сути тот же самый
Читать (En)
Короткая статья про то, почему нужно использовать ListAdapter вместо
RecyclerView.Adapter.Для тех, кто не юзал ListAdapter – это по сути тот же самый
RecyclerView.Adapter, только с уже имеющимися плюшками в виде DiffUtil. В конструкторе требует DiffCallback, имеет готовые методы submitList(…), ну и считает диффы на бэкграунд потоке через AsyncListDiffer.Читать (En)
👍33🤯9🔥3🤔1
Google разрешит использовать сторонние методы оплаты в приложениях
Google снижает комиссию на 3% (с 15% до 12%) для тех, кто переходит на сторонний биллинг. Только всё это будет работать для неигровых приложений и только для пользователей из Европейской экономической зоны (ЕЭЗ) на основании новых правил.
Читать (Ru)
Google снижает комиссию на 3% (с 15% до 12%) для тех, кто переходит на сторонний биллинг. Только всё это будет работать для неигровых приложений и только для пользователей из Европейской экономической зоны (ЕЭЗ) на основании новых правил.
Читать (Ru)
👍14💩5
30+ SwiftUI Open-Source Projects With Guided Tutorials
Годная подборка, с open-source проектами (более 30) по SwiftUI. Различные графики, анимации, пикерки, вьюверы, виджеты, готовые проекты и прочее. В избранное ✅
Читать (En)
Годная подборка, с open-source проектами (более 30) по SwiftUI. Различные графики, анимации, пикерки, вьюверы, виджеты, готовые проекты и прочее. В избранное ✅
Читать (En)
🔥7👍2
Android Touch System
Серия статей про работу с touch ивентами.
👉 Part 1: Touch Functions and the View Hierarchy
👉 Part 2: Common Touch Event Scenarios
👉 Part 3: MotionEvent Listeners
👉 Part 4: Gesture-Handling Modifiers in Jetpack Compose
👉 Part 5: How Gestures Work in Jetpack Compose
Серия статей про работу с touch ивентами.
👉 Part 1: Touch Functions and the View Hierarchy
👉 Part 2: Common Touch Event Scenarios
👉 Part 3: MotionEvent Listeners
👉 Part 4: Gesture-Handling Modifiers in Jetpack Compose
👉 Part 5: How Gestures Work in Jetpack Compose
👍17