Дайджест недели
Наткнулся на интересное исследование от Sensor Tower, которое показало, что в слово «метавселенная» в своё название или описании, добавили уже более 500 мобильных приложений. Как отметили аналитики, если в октябре, до объявления Meta, только 11 приложений заявили о причастности к созданию своих метавселенных, то уже в ноябре их число возросло до 29. В дальнейшем тренд продолжился — в декабре это слово добавили 30 приложений, а в январе — ещё 27. Исследование тут и статья на хабре.
А еще, kotlin synthetic плагин будет удален в конце этого года, с выходом Kotlin 1.8. Если еще не мигрировали, пора это сделать, гайд по миграции тут.
Android
• Android 13 deep dive: Every change, thoroughly documented
• Avoid Memory Leak Recommendations For Android Application
• Jetpack DataStore series
• Clean architecture in Android
• Implement Themed Icons (Android 13)
• Deep dive into Android build process
• JNI, часть 3: производительность Java/JNI/NDK
• Andromeda – open-source design language system implemented in Jetpack Compose
• Kotlin Coroutines Flow in a nutshell
• ComposeAnimations
• Write better tests with the new testing guidance
• Discontinuing Kotlin synthetics for views
• Android Worldwide January 2022
iOS
• Error Handling with Combine and SwiftUI
• Swift Concurrency (async/await)
• The Complete Guide to Concurrency and Multithreading in iOS
• Swift TableManager
• Adapter pattern in practice by swift
• Погружение в Combine: последовательные и объединяющие операторы для улучшения процесса разработки iOS приложений
• Why do we ever need to inherit from NSObject?
• A simple Coordinator Pattern for iOS App
• Mockable Networking layer in iOS
• Модуляризация доменного слоя в UDF. Часть II
• Modifier Monday: .trim(from:to:)
• Deep linking and URL scheme in iOS
• CocoaHeads Февраль 2022
Кроссплатформа / Разработка
• Исследование Appodeal Mobile In-App Ad Monetization Performance Index за 2021 год
• Custom shaped AppBar as seen in the “Bunny Search” app | Flutter
• Integration Testing in Flutter: Getting Started
• Dart, Flutter и кроссплатформа: небольшой разбор на практике
• Flutter App Architecture: The Domain Model
• Создаем и тестируем свой plugin для Gradle 7.0+
• Koin 3.2 Beta & Roadmap for 2022
• Developing Kotlin Multiplatform Mobile Apps using VIPER Architecture
• KDoctor – command-line tool that helps to set up the environment for KMM
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
Наткнулся на интересное исследование от Sensor Tower, которое показало, что в слово «метавселенная» в своё название или описании, добавили уже более 500 мобильных приложений. Как отметили аналитики, если в октябре, до объявления Meta, только 11 приложений заявили о причастности к созданию своих метавселенных, то уже в ноябре их число возросло до 29. В дальнейшем тренд продолжился — в декабре это слово добавили 30 приложений, а в январе — ещё 27. Исследование тут и статья на хабре.
А еще, kotlin synthetic плагин будет удален в конце этого года, с выходом Kotlin 1.8. Если еще не мигрировали, пора это сделать, гайд по миграции тут.
Android
• Android 13 deep dive: Every change, thoroughly documented
• Avoid Memory Leak Recommendations For Android Application
• Jetpack DataStore series
• Clean architecture in Android
• Implement Themed Icons (Android 13)
• Deep dive into Android build process
• JNI, часть 3: производительность Java/JNI/NDK
• Andromeda – open-source design language system implemented in Jetpack Compose
• Kotlin Coroutines Flow in a nutshell
• ComposeAnimations
• Write better tests with the new testing guidance
• Discontinuing Kotlin synthetics for views
• Android Worldwide January 2022
iOS
• Error Handling with Combine and SwiftUI
• Swift Concurrency (async/await)
• The Complete Guide to Concurrency and Multithreading in iOS
• Swift TableManager
• Adapter pattern in practice by swift
• Погружение в Combine: последовательные и объединяющие операторы для улучшения процесса разработки iOS приложений
• Why do we ever need to inherit from NSObject?
• A simple Coordinator Pattern for iOS App
• Mockable Networking layer in iOS
• Модуляризация доменного слоя в UDF. Часть II
• Modifier Monday: .trim(from:to:)
• Deep linking and URL scheme in iOS
• CocoaHeads Февраль 2022
Кроссплатформа / Разработка
• Исследование Appodeal Mobile In-App Ad Monetization Performance Index за 2021 год
• Custom shaped AppBar as seen in the “Bunny Search” app | Flutter
• Integration Testing in Flutter: Getting Started
• Dart, Flutter и кроссплатформа: небольшой разбор на практике
• Flutter App Architecture: The Domain Model
• Создаем и тестируем свой plugin для Gradle 7.0+
• Koin 3.2 Beta & Roadmap for 2022
• Developing Kotlin Multiplatform Mobile Apps using VIPER Architecture
• KDoctor – command-line tool that helps to set up the environment for KMM
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍11🔥3
Mobile System Design Interviews Series
Серия достаточно крутых статей по System Design Interviews. В избранное ✅
👉 Simple Framework For Mobile System Design Interviews
👉 Additional Topics For Mobile System Design Interviews
👉 File Downloader Library
👉 Caching Library
👉 Image Library
👉 Chat Application
👉 Common Interview Mistakes
И для тех, кто пропустил, еще одна статейка : System Design Interview For Mobile Engineers
Серия достаточно крутых статей по System Design Interviews. В избранное ✅
👉 Simple Framework For Mobile System Design Interviews
👉 Additional Topics For Mobile System Design Interviews
👉 File Downloader Library
👉 Caching Library
👉 Image Library
👉 Chat Application
👉 Common Interview Mistakes
И для тех, кто пропустил, еще одна статейка : System Design Interview For Mobile Engineers
🔥11👍3
Kotlin Flow: The easy way to deal with local and remote data
Пример использования Kotlin Flow для работы с local и remote данными.
Читать (En)
Пример использования Kotlin Flow для работы с local и remote данными.
Читать (En)
👍9🔥5
Преобразование локализованных файлов iOS для проекта Android
Если вдруг вам нужно конвертнуть iOS-ские локализованные файлы в Android XML, можно посмотреть вот эту статью, в которой это делается через регулярку в IDE.
Оригинал статьи тут: Converting Localized iOS Files For Android Project
Читать (Ru)
Если вдруг вам нужно конвертнуть iOS-ские локализованные файлы в Android XML, можно посмотреть вот эту статью, в которой это делается через регулярку в IDE.
Оригинал статьи тут: Converting Localized iOS Files For Android Project
Читать (Ru)
👍4
Improving UI State management by using a Finite State Machine and MVI architecture
Интересная статья про то, как можно улучшить управление состоянием UI между View и ViewModel, с помощью State Machine + MVI.
Читать (En)
Интересная статья про то, как можно улучшить управление состоянием UI между View и ViewModel, с помощью State Machine + MVI.
Читать (En)
👍4🔥2
Set up an Android CI using GitHub Actions
Про настройку CI для Android через Github Actions можно почитать в этой статье.
А если у вас GitLab, подборка статей тут: Настройка GitLab CI/CD
Читать (En)
Про настройку CI для Android через Github Actions можно почитать в этой статье.
А если у вас GitLab, подборка статей тут: Настройка GitLab CI/CD
Читать (En)
👍5👎2🔥1
Дайджест недели
По новостям и сами, без меня всё знаете, ситуация мягко говоря не очень. Постить политические новости, да и в целом, высказываться на тему политики на канале не буду. Поэтому друзья, давайте постараемся отвлечься, выдохнуть и почитаем что-нибудь интересное, полезное по нашей профессиональной сфере.
В ближайшее время, ежедневных постов на канале возможно будет чуть меньше, но дайджесты по графику – каждое воскресенье в 10:00 по мск. Дальше по ситуации, всем добра ❤️
Android
• Kotlin Flow: The easy way to deal with local and remote data
• Преобразование локализованных файлов iOS для проекта Android
• Improving UI State management by using a Finite State Machine and MVI architecture
• Set up an Android CI using GitHub Actions
• Single contract for android and design teams
• Как применять Branch by Abstraction в проекте на примере Android-разработки
• Android 13 and Text Rendering Algorithms
• Android’s IME Actions: Don’t ignore them.
• MVVM Unit testing on Android
• Android Nightmares | Base classes
• Lottie Android 5.0
• AvatarView for Android: Take Your Profile Images to the Next Level
iOS
• Combining protocols in Swift
• Native Network Monitoring In Swift
• Debugging SwiftUI views: what caused that change?
• A take on iOS Developer Interviews
• Redux-like state container in SwiftUI. Swift concurrency model.
• Home Screen Quick Actions for iOS: Getting Started
• SwiftUI Search: Getting Started
• Как UIView мешал слоям анимироваться
• How ranges work in Swift
• 3 surprises when using Markdown in SwiftUI
• How MVVM devs get MVVM wrong in SwiftUI: From view model to state
Кроссплатформа / Разработка
• Mobile System Design Interviews Series
• Brand New Kotlin Multiplatform Podcast: ATOM
• Все что хотели знать, но боялись спросить про Compose Multiplatform
• A complete guide to Flutter architecture
• Why Flutter is the most popular cross-platform mobile SDK
• Как написать «Пятнашки» на Flutter
• Смотрим исходники Flutter
• Что скрывают популярные курсы? Насколько полезно онлайн образование
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
По новостям и сами, без меня всё знаете, ситуация мягко говоря не очень. Постить политические новости, да и в целом, высказываться на тему политики на канале не буду. Поэтому друзья, давайте постараемся отвлечься, выдохнуть и почитаем что-нибудь интересное, полезное по нашей профессиональной сфере.
В ближайшее время, ежедневных постов на канале возможно будет чуть меньше, но дайджесты по графику – каждое воскресенье в 10:00 по мск. Дальше по ситуации, всем добра ❤️
Android
• Kotlin Flow: The easy way to deal with local and remote data
• Преобразование локализованных файлов iOS для проекта Android
• Improving UI State management by using a Finite State Machine and MVI architecture
• Set up an Android CI using GitHub Actions
• Single contract for android and design teams
• Как применять Branch by Abstraction в проекте на примере Android-разработки
• Android 13 and Text Rendering Algorithms
• Android’s IME Actions: Don’t ignore them.
• MVVM Unit testing on Android
• Android Nightmares | Base classes
• Lottie Android 5.0
• AvatarView for Android: Take Your Profile Images to the Next Level
iOS
• Combining protocols in Swift
• Native Network Monitoring In Swift
• Debugging SwiftUI views: what caused that change?
• A take on iOS Developer Interviews
• Redux-like state container in SwiftUI. Swift concurrency model.
• Home Screen Quick Actions for iOS: Getting Started
• SwiftUI Search: Getting Started
• Как UIView мешал слоям анимироваться
• How ranges work in Swift
• 3 surprises when using Markdown in SwiftUI
• How MVVM devs get MVVM wrong in SwiftUI: From view model to state
Кроссплатформа / Разработка
• Mobile System Design Interviews Series
• Brand New Kotlin Multiplatform Podcast: ATOM
• Все что хотели знать, но боялись спросить про Compose Multiplatform
• A complete guide to Flutter architecture
• Why Flutter is the most popular cross-platform mobile SDK
• Как написать «Пятнашки» на Flutter
• Смотрим исходники Flutter
• Что скрывают популярные курсы? Насколько полезно онлайн образование
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍15❤8
Не стоит бояться теней
Наверное каждый Android-разработчик сталкивался с проблемой кастомных параметров и настроек для тенюшек, потому что нативные средства из sdk ограничены в кастоматизации.
Вот полезная статейка, в которой рассматриваются возможные варианты, сделать нормальные тени для вьюшек с необходимыми настройками.
Код можно посмотреть тут: AndroidShadows
Читать (Ru)
Наверное каждый Android-разработчик сталкивался с проблемой кастомных параметров и настроек для тенюшек, потому что нативные средства из sdk ограничены в кастоматизации.
Вот полезная статейка, в которой рассматриваются возможные варианты, сделать нормальные тени для вьюшек с необходимыми настройками.
Код можно посмотреть тут: AndroidShadows
Читать (Ru)
👍16💩2🔥1
Дайджест недели
Дайджест сегодня выходит с большим опозданием, но все же выходит. Решил опубликовать тихим постом, без уведомления. Комменты отключил до стабилизации ситуации.
Android
• Exception Handling & Observability of Android
• Погружаемся в работу со скроллом в Jetpack Compose
• Complete guide to Rich Text in Jetpack Compose
• Imitating Kotlin With Java Optional
• Android Studio. Kotlin. Кастомный навигатор нижнего меню. Keep state navigator
• Material You: раскладываем по полочкам обновление дизайн-системы Material
• Single Activity с Navigation Component. Или как я мучался с графами. Boilerplate ч. 1
• Распознавание достопримечательностей с помощью машинного обучения
• Introducing Checks: simplifying privacy for app developers
• С нуля в Android разработку. История одного джуна.
• 1 min guide to learn android development best practices in 2022
iOS
• Customizing the appearance of UINavigationBar
• Customizing the UIKit status bar style
• Debugging your app’s launch screen
• Controller, но не Massive: реализуем список карточек для iOS 13+ и 11+ с учетом практик чистого кода
• Модуляризация DI в проекте с UDF-архитектурой
• MVVM in iOS Application
• SwiftUI — Complex navigation made easier with UIPilot
• Implementing iOS Collection View with Efficient Rendering Mechanism
• Using Maps and Location Data in Your SwiftUI (+Realm) App
• From Hex to Color and Back in SwiftUI
• Async/Await: Generic Network Layer With Swift 5.5
• Working with Xcode configuration files
Кроссплатформа / Разработка
• Annotations for Koin
• Structured concurrency explained - Part 1: Introduction
• DropdownButton (Виджет недели) | Flutter
• Автоматизированное тестирование на Flutter: нативные тесты или кроссплатформенные решения
• Working with REST APIs — Flutter
• Flutter games with Bloc and Flame
• Compose Code Editor
• How to build and deploy React Native applications with Fastlane
• Обеспечение качества мобильной разработки в hh.ru
• Flutter: Мощь DI и Injectable
• Flutter: простыми словами про асинхронность и параллельность
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
Дайджест сегодня выходит с большим опозданием, но все же выходит. Решил опубликовать тихим постом, без уведомления. Комменты отключил до стабилизации ситуации.
Android
• Exception Handling & Observability of Android
• Погружаемся в работу со скроллом в Jetpack Compose
• Complete guide to Rich Text in Jetpack Compose
• Imitating Kotlin With Java Optional
• Android Studio. Kotlin. Кастомный навигатор нижнего меню. Keep state navigator
• Material You: раскладываем по полочкам обновление дизайн-системы Material
• Single Activity с Navigation Component. Или как я мучался с графами. Boilerplate ч. 1
• Распознавание достопримечательностей с помощью машинного обучения
• Introducing Checks: simplifying privacy for app developers
• С нуля в Android разработку. История одного джуна.
• 1 min guide to learn android development best practices in 2022
iOS
• Customizing the appearance of UINavigationBar
• Customizing the UIKit status bar style
• Debugging your app’s launch screen
• Controller, но не Massive: реализуем список карточек для iOS 13+ и 11+ с учетом практик чистого кода
• Модуляризация DI в проекте с UDF-архитектурой
• MVVM in iOS Application
• SwiftUI — Complex navigation made easier with UIPilot
• Implementing iOS Collection View with Efficient Rendering Mechanism
• Using Maps and Location Data in Your SwiftUI (+Realm) App
• From Hex to Color and Back in SwiftUI
• Async/Await: Generic Network Layer With Swift 5.5
• Working with Xcode configuration files
Кроссплатформа / Разработка
• Annotations for Koin
• Structured concurrency explained - Part 1: Introduction
• DropdownButton (Виджет недели) | Flutter
• Автоматизированное тестирование на Flutter: нативные тесты или кроссплатформенные решения
• Working with REST APIs — Flutter
• Flutter games with Bloc and Flame
• Compose Code Editor
• How to build and deploy React Native applications with Fastlane
• Обеспечение качества мобильной разработки в hh.ru
• Flutter: Мощь DI и Injectable
• Flutter: простыми словами про асинхронность и параллельность
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍17❤2😱1
Подборка статей на тему тестов в iOS
👉 Раннер Emcee. Всем айосерам по тестовой ферме
👉 Swift: Tracking memory leaks in tests
👉 Тесты в iOS: хороший, плохой, …
👉 Writing testable code when using SwiftUI
Серии статей от Vivid Money👇
Ускоряем прохождение iOS UI-тестов
👉 Запуск тестов без сборки проекта
👉 Распараллеливание тестов
Погружение в автотестирование на iOS
👉 Внедряем Snapshot testing в UI-тесты iOS
👉 Как работать с accessibilityidentifier объектов
👉 Как взаимодействовать с ui-элементами iOS
👉 Приложения в тестах
👉 Жизненный цикл iOS приложения во время прогона тестов
👉 Ожидания в XCUITest
👉 Раннер Emcee. Всем айосерам по тестовой ферме
👉 Swift: Tracking memory leaks in tests
👉 Тесты в iOS: хороший, плохой, …
👉 Writing testable code when using SwiftUI
Серии статей от Vivid Money👇
Ускоряем прохождение iOS UI-тестов
👉 Запуск тестов без сборки проекта
👉 Распараллеливание тестов
Погружение в автотестирование на iOS
👉 Внедряем Snapshot testing в UI-тесты iOS
👉 Как работать с accessibilityidentifier объектов
👉 Как взаимодействовать с ui-элементами iOS
👉 Приложения в тестах
👉 Жизненный цикл iOS приложения во время прогона тестов
👉 Ожидания в XCUITest
👍8🔥3💩1
Dagger + Anvil: Learning to Love Dependency Injection on Android
Пример использования связки Dagger + Anvil.
Если кто не знает, Anvil – Kotlin compiler плагин, упрощающий внедрение зависимостей с помощью Dagger, за счет автоматического мержа модулей и компонентов.
Читать (En)
Пример использования связки Dagger + Anvil.
Если кто не знает, Anvil – Kotlin compiler плагин, упрощающий внедрение зависимостей с помощью Dagger, за счет автоматического мержа модулей и компонентов.
Читать (En)
👍12💩3
Clean StateFlow Transformations in Kotlin
Статья, про преобразования StateFlow, аналогично тому, как это сделано в LiveData через Transformations.
Читать (En)
Статья, про преобразования StateFlow, аналогично тому, как это сделано в LiveData через Transformations.
Читать (En)
👍5👎1
Дайджест недели
Сегодня дайджест снова с большим опозданием, ссорян, сбился график. Продолжается поток, не особо хороших новостей, постараюсь коротко обозначить наиболее важные. Apple Pay, Google Pay, Samsung Pay – всё, карты Visa, MC в РФ не работают, Google Play приостанавливает прием платежей в РФ, FB, Twitter и Instagram тоже всё, заблочили. JetBrains приостанавливает разработку в РФ (интересно, это как то коснется Android Studio), продажи в РФ и РБ. Так же, очень много IT-компаний, либо приостанавливают, либо уходят с Российского рынка, вот тут можно посмотреть большой список.
Android
• Dagger + Anvil: Learning to Love Dependency Injection on Android
• Clean StateFlow Transformations in Kotlin
• Reducing mammoth gradle caches
• Measuring Time and Duration in Kotlin
• Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым
• Curved Corner BottomSheet using Canvas and XML
• Recycler View and View level caching
• Sample Android project: MVVM Clean Architecture with Coroutines + Tips
• Android — Send live audio stream from client to server using WebSocket and OkHttp client
• Understanding Android Application Sandbox
• Configuring Scheduled Notifications in Android
• Retrofit — Effective error handling with Kotlin Coroutine and Result API
iOS
• Подборка статей на тему тестов в iOS
• What’s new in Swift 5.6?
• Equality
• Why Apple’s New M1 Chips Are Essential for Rapid iOS Development
• Лайфхаки по многомодульности в iOS
• Functional core Imperative shell in Swift
• State restoration in SwiftUI
• Create a Simple and Maintainable iOS Network Layer With Async/Await
• Жизненный цикл UIViewController
• SceneKit Within SwiftUI
Кроссплатформа / Разработка
• Lambdas and Function References | Kotlin
• Measuring Time and Duration in Kotlin
• Top 12 Flutter Development Tools
• Smile Detection with Flutter and Google ML Kit. A Simplified Introduction to Image Processing
• What’s New in Flutter 2.10
• Introducing the Realm Flutter SDK
• Debugging layout issues using the Widget Inspector | Flutter
• How to use Alchemist for Flutter golden tests
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
Сегодня дайджест снова с большим опозданием, ссорян, сбился график. Продолжается поток, не особо хороших новостей, постараюсь коротко обозначить наиболее важные. Apple Pay, Google Pay, Samsung Pay – всё, карты Visa, MC в РФ не работают, Google Play приостанавливает прием платежей в РФ, FB, Twitter и Instagram тоже всё, заблочили. JetBrains приостанавливает разработку в РФ (интересно, это как то коснется Android Studio), продажи в РФ и РБ. Так же, очень много IT-компаний, либо приостанавливают, либо уходят с Российского рынка, вот тут можно посмотреть большой список.
Android
• Dagger + Anvil: Learning to Love Dependency Injection on Android
• Clean StateFlow Transformations in Kotlin
• Reducing mammoth gradle caches
• Measuring Time and Duration in Kotlin
• Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым
• Curved Corner BottomSheet using Canvas and XML
• Recycler View and View level caching
• Sample Android project: MVVM Clean Architecture with Coroutines + Tips
• Android — Send live audio stream from client to server using WebSocket and OkHttp client
• Understanding Android Application Sandbox
• Configuring Scheduled Notifications in Android
• Retrofit — Effective error handling with Kotlin Coroutine and Result API
iOS
• Подборка статей на тему тестов в iOS
• What’s new in Swift 5.6?
• Equality
• Why Apple’s New M1 Chips Are Essential for Rapid iOS Development
• Лайфхаки по многомодульности в iOS
• Functional core Imperative shell in Swift
• State restoration in SwiftUI
• Create a Simple and Maintainable iOS Network Layer With Async/Await
• Жизненный цикл UIViewController
• SceneKit Within SwiftUI
Кроссплатформа / Разработка
• Lambdas and Function References | Kotlin
• Measuring Time and Duration in Kotlin
• Top 12 Flutter Development Tools
• Smile Detection with Flutter and Google ML Kit. A Simplified Introduction to Image Processing
• What’s New in Flutter 2.10
• Introducing the Realm Flutter SDK
• Debugging layout issues using the Widget Inspector | Flutter
• How to use Alchemist for Flutter golden tests
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍14🔥5💩2😢1
Гайд по архитектуре приложений для Android
В декабре Гугул обновил рекомендации к построению архитектуры. Вот на хабре появился и перевод этих рекомендаций.
👉 Обзор
👉 Слой UI
👉 События UI
👉 Доменный слой
👉 Слой данных
В декабре Гугул обновил рекомендации к построению архитектуры. Вот на хабре появился и перевод этих рекомендаций.
👉 Обзор
👉 Слой UI
👉 События UI
👉 Доменный слой
👉 Слой данных
👍19🔥4
Jetpack Compose под капотом: Рекомпозиция и Стабильные типы
В статье рассматриваются основные принципы рекомпозиции в Jetpack Compose и тонкости ее работы.
Под рекомпозицией подразумевается процесс обновления графа. При этом обновляется только та часть графа, состояние которой изменилось.
И еще одна статья от автора – "5 практических советов по оптимизации UI на Jetpack Compose"
В статье рассматриваются основные принципы рекомпозиции в Jetpack Compose и тонкости ее работы.
Под рекомпозицией подразумевается процесс обновления графа. При этом обновляется только та часть графа, состояние которой изменилось.
И еще одна статья от автора – "5 практических советов по оптимизации UI на Jetpack Compose"
👍14🔥4🤔1
Reducing Gradle boilerplate in multi-module Android projects
Пример сокращения boilerplate кода Gradle в многомодульных проектах Android.
P.S. Как могли заметить, в воскресенье не вышел дайджест, есть некоторые трудности со временем. Надеюсь со следующей недели стабилизирую график 💪
Пример сокращения boilerplate кода Gradle в многомодульных проектах Android.
P.S. Как могли заметить, в воскресенье не вышел дайджест, есть некоторые трудности со временем. Надеюсь со следующей недели стабилизирую график 💪
👍13
Clean Architecture in SwiftUI 5.5
Еща одна актуальная и наглядная статейка про чистую архитектуру.
Структура и слои
👉 Core
👉 Data
👉 Domain
👉 Presentation
Читать (En)
Еща одна актуальная и наглядная статейка про чистую архитектуру.
Структура и слои
👉 Core
👉 Data
👉 Domain
👉 Presentation
Читать (En)
👍8
Step by Step Guide to Download Files With WorkManager
А вот неплохой гайд по загрузке файлов через WorkManager (CoroutineWorker) + для UI в статье используется Jetpack Compose.
Читать (En)
А вот неплохой гайд по загрузке файлов через WorkManager (CoroutineWorker) + для UI в статье используется Jetpack Compose.
Читать (En)
🔥16👍4
OAuth в мобильных приложениях
Достаточно полезная и подробная статья про то, какими способами можно реализовать OAuth в мобилках. В статье показан пример на Android, но основная логика применима и к iOS. В целом ничего нового, но для тех, кто не работал с OAuth, будет в самый раз.
Библиотеки из статьи: AppAuth-Android и AppAuth-iOS
Читать (Ru)
Достаточно полезная и подробная статья про то, какими способами можно реализовать OAuth в мобилках. В статье показан пример на Android, но основная логика применима и к iOS. В целом ничего нового, но для тех, кто не работал с OAuth, будет в самый раз.
Библиотеки из статьи: AppAuth-Android и AppAuth-iOS
Читать (Ru)
👍7🔥5👎1