MVC, MVP, MVI, MVVM and VIPER Design Patterns
Статья про всем известные design patterns (MVC, MVP, MVI, MVVM, VIPER), с объяснением базовых штук типа "архитектура", "для чего нужны паттерны" и т.д. и кратким разбором по каждому.
Читать (En)
Статья про всем известные design patterns (MVC, MVP, MVI, MVVM, VIPER), с объяснением базовых штук типа "архитектура", "для чего нужны паттерны" и т.д. и кратким разбором по каждому.
Читать (En)
👍28
Clean Architecture: Android App
Похоже намечается архитектурная неделя 😁, сбился с счету, ну пусть будет тысячная статья про организацию Clean Architecture.
Пример кода на гитхабе: Clean Architecture
Читать (En)
Похоже намечается архитектурная неделя 😁, сбился с счету, ну пусть будет тысячная статья про организацию Clean Architecture.
Пример кода на гитхабе: Clean Architecture
Читать (En)
🔥12👍5👎2
Android Architecture Blueprints v2
Продолжаем тему архитектуры.
👉 Репозиторий с примерами различных архитектур и паттернов под Android.
👉 Тут статейка по миграции Blueprints to Jetpack Compose.
👉 Ну и на всякий случай Guide to app architecture
Продолжаем тему архитектуры.
👉 Репозиторий с примерами различных архитектур и паттернов под Android.
👉 Тут статейка по миграции Blueprints to Jetpack Compose.
👉 Ну и на всякий случай Guide to app architecture
🔥8👍2
Kotlin Tips: Operators and Nullable Values
YouTube
Operator Functions With Nullable Values | Kotlin Tips 2023
In Kotlin, you can override operators like addition and subtraction for your classes and supply your own logic. But what if you want to allow null values, both on their left and right sides?
In this episode of Kotlin Tips, Sebastian (https://twitter.com/sebi_io)…
In this episode of Kotlin Tips, Sebastian (https://twitter.com/sebi_io)…
Forwarded from Записки разработчицы (Anna Zharkova)
Подготовила, надеюсь, интересный кейс для SwiftHero. Осталось только залить на гитхаб.
Разобрала до кишок работу с ServerDrivenUI для SwiftUI:
https://www.youtube.com/watch?v=XS6iH8ElD4o
Торопитесь, пока трансляция жива
Разобрала до кишок работу с ServerDrivenUI для SwiftUI:
https://www.youtube.com/watch?v=XS6iH8ElD4o
Торопитесь, пока трансляция жива
YouTube
Swift Heroes: The Extra. "ServerDriven SwiftUI. Managing declarative UI"
Swift Heroes: The Extra. "ServerDriven SwiftUI. Managing declarative UI" with Anna Zharkova, Lead Mobile Developer, Usetech Company
ServerDriven UI is an interesting approach to deal and manage UI and app settings remotely and flexible. It suits to create…
ServerDriven UI is an interesting approach to deal and manage UI and app settings remotely and flexible. It suits to create…
👍11
Интеграция Huawei Mobile Services (HMS)
Собрал несколько полезных статей/видосов по интеграции Huawei Mobile Services. В текущей, непонятной ситуации, может быть особо актуально.
Статьи
👉 Huawei Mobile Services и AppGallery: подробная инструкция для начинающих
👉 Интеграция Huawei Mobile Services со второй попытки
👉 Выходим на рынок Huawei, или Как мы адаптировали приложение для работы с HMS
👉 Как мы интегрировали Huawei Mobile Services в два этапа
Видосы
👉 Интеграция Huawei Mobile Services (HMS) со второй попытки
👉 Интеграция Huawei Mobile Services (HMS)
👉 Huawei Mobile Services
Официальная документация
👉 HMS Core
👉 Documents and Guides
Собрал несколько полезных статей/видосов по интеграции Huawei Mobile Services. В текущей, непонятной ситуации, может быть особо актуально.
Статьи
👉 Huawei Mobile Services и AppGallery: подробная инструкция для начинающих
👉 Интеграция Huawei Mobile Services со второй попытки
👉 Выходим на рынок Huawei, или Как мы адаптировали приложение для работы с HMS
👉 Как мы интегрировали Huawei Mobile Services в два этапа
Видосы
👉 Интеграция Huawei Mobile Services (HMS) со второй попытки
👉 Интеграция Huawei Mobile Services (HMS)
👉 Huawei Mobile Services
Официальная документация
👉 HMS Core
👉 Documents and Guides
🔥8👍4🤮3
Modeling Retrofit Responses With Sealed Classes and Coroutines
Пример того, как можно организовать обработку ответов от API с помощью sealed классов/интерфейсов и корутин. (Retrofit + Sealed classes/interfaces + Coroutines)
Читать (En)
Пример того, как можно организовать обработку ответов от API с помощью sealed классов/интерфейсов и корутин. (Retrofit + Sealed classes/interfaces + Coroutines)
Читать (En)
👍20🤮2
How ViewModels survive configuration changes
А вы знаете как в андроиде вьюмодельки переживают изменение конфигурации?
Если нет – вот статейка, в которой на примере Activity разобрали исходники из sdk, все достаточно просто. У Activity есть 2 метода, через которые и происходит вся работа.
👉 onRetainNonConfigurationInstance()
👉 getLastNonConfigurationInstance()
Читать (En)
А вы знаете как в андроиде вьюмодельки переживают изменение конфигурации?
Если нет – вот статейка, в которой на примере Activity разобрали исходники из sdk, все достаточно просто. У Activity есть 2 метода, через которые и происходит вся работа.
👉 onRetainNonConfigurationInstance()
👉 getLastNonConfigurationInstance()
Читать (En)
👍22
SwiftUI vs Jetpack Compose by an Android Engineer
Каким-то чудом забыл запостить интересную статью, в которой сравниваются 2 достаточно актуальных фреймворка Jetpack Compose и SwiftUI. Вот, исправляю ситуацию)
Читать (En)
Каким-то чудом забыл запостить интересную статью, в которой сравниваются 2 достаточно актуальных фреймворка Jetpack Compose и SwiftUI. Вот, исправляю ситуацию)
Читать (En)
👍15
Отменяем операции правильно на примере корутин
Еще одна статья про работу с корутинами, в частности про то, как отменять корутины.
Вопрос на засыпку. В статье приводится пример с отменой Thread. Так вот, знаете ли вы как можно остановить/отменить тред?
P.S. как-нибудь выделю время и сделаю подборку по многопоточке.
Читать (Ru)
Еще одна статья про работу с корутинами, в частности про то, как отменять корутины.
Вопрос на засыпку. В статье приводится пример с отменой Thread. Так вот, знаете ли вы как можно остановить/отменить тред?
P.S. как-нибудь выделю время и сделаю подборку по многопоточке.
Читать (Ru)
👍28
Clean Code — A practical approach
Советы с примерами по написанию чистого кода. По сути, все эти советы/рекомендации сводятся к довольно простым штукам (нейминг, короткие функции с минимальным количеством аргументов, комментарии в нужных местах и т.д.). Но как показывает практика, многие пренебрегают и такими, казалось бы базовыми вещами.
Еще в статье затрагивается такая интересная тема, как рефакторинг, полезно будет почитать начинающим.
Читать (En)
Советы с примерами по написанию чистого кода. По сути, все эти советы/рекомендации сводятся к довольно простым штукам (нейминг, короткие функции с минимальным количеством аргументов, комментарии в нужных местах и т.д.). Но как показывает практика, многие пренебрегают и такими, казалось бы базовыми вещами.
Еще в статье затрагивается такая интересная тема, как рефакторинг, полезно будет почитать начинающим.
Читать (En)
👍7🔥6
Дайджест недели
Решил запостить большой и мощный 💪 2-ух недельный дайджест сегодня, т.к. впереди майские праздники, хочется отдохнуть.
Из интересных новостей. Вышла первая бета Android 13, подробности тут. За 2021 Google заблокировала более 1 миллиона приложений, нарушающих политику. Apple снова начала удалять приложения из App Store, которые давно не обновлялись – на решение вопроса с обновлением, разработчикам дают 30 дней, в противном случае будут удалять.
Всех с наступающими праздниками!!! Увидимся на следующей неделе)
Android 🤖
• Clean Architecture: Android App
• Android Architecture Blueprints v2
• Kotlin Tips: Operators and Nullable Values
• Интеграция Huawei Mobile Services (HMS)
• Modeling Retrofit Responses With Sealed Classes and Coroutines
• How ViewModels survive configuration changes
• Отменяем операции правильно на примере корутин
• Keep Rules in the Age of Kotlin
• Нативные автотесты Android: Наш путь
• Slack-Gradle-Plugin
• Gradle for Beginners (Build Types, Product Flavors, Build Variants, Source Sets)
• Kotlin Sequences: Getting Started
• Object equality in Java and Kotlin
• Twitter going all in on Jetpack Compose for feature development: greater productivity, less bugs
• Measure and improve performance with Macrobenchmark
• To Compose, or Not to Compose, That is the Question
• Exploring Google Map Compose Library For Android
• Kotlin Coroutine (High-quality Course)
• Android code style using Spotless and Ktlint
• How to Format All Possible Errors From API Calls in Android With Clean Architecture
iOS 🍏
• Обзор решений для навигации в iOS
• Swift Heroes: The Extra. "ServerDriven SwiftUI. Managing declarative UI"
• Type placeholders in Swift
• The Golden Rules of weak self
• Transitions in SwiftUI
• Exploring SwiftUI Sample Apps
• [boringssl] Failed to log metrics
• SwiftUI Case Study: Data modelling of Brotherhood Alchemist
• Downloading and Caching images in SwiftUI
• The S in SOLID - Swift Edition
• Unit Testing and UI Testing in Swift
• Using new Swift Async Algorithms package to close the gap on Combine
• Building an Accessible Custom Tab Bar
• How to Use Generics in Swift
• Core Image Tutorial: Getting Started
• Use Dependency Injection to Unit Test a ViewModel in Swift
• Localization in iOS App using MapKit and CoreLocation
• Write Cleaner Swift Using MVVM With Property Wrappers
• Простой способ обнаружить retain cycle в UIViewController
• Top 7 Subtle Swift Features
Кроссплатформа / Разработка 💻
• MVC, MVP, MVI, MVVM and VIPER Design Patterns
• SwiftUI vs Jetpack Compose by an Android Engineer
• Clean Code — A practical approach
• Как мы в QIWI внедряли Kotlin Multiplatform Mobile Часть 2: Смотрим шире
• Стелем мягкую соломку на жёсткий Flutter: как подготовиться к первому проекту, чтобы не провалить его
• Better API calls in Flutter
• Kotlin Multiplatform Mobile — sharing the UI State management
• Как работает Backend-Driven UI на мобильном клиенте
• Practical Guide: Flutter + Firebase + FlutterFire CLI + CI (Codemagic)
• Top Flutter & Dart packages in 2022
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
Решил запостить большой и мощный 💪 2-ух недельный дайджест сегодня, т.к. впереди майские праздники, хочется отдохнуть.
Из интересных новостей. Вышла первая бета Android 13, подробности тут. За 2021 Google заблокировала более 1 миллиона приложений, нарушающих политику. Apple снова начала удалять приложения из App Store, которые давно не обновлялись – на решение вопроса с обновлением, разработчикам дают 30 дней, в противном случае будут удалять.
Всех с наступающими праздниками!!! Увидимся на следующей неделе)
Android 🤖
• Clean Architecture: Android App
• Android Architecture Blueprints v2
• Kotlin Tips: Operators and Nullable Values
• Интеграция Huawei Mobile Services (HMS)
• Modeling Retrofit Responses With Sealed Classes and Coroutines
• How ViewModels survive configuration changes
• Отменяем операции правильно на примере корутин
• Keep Rules in the Age of Kotlin
• Нативные автотесты Android: Наш путь
• Slack-Gradle-Plugin
• Gradle for Beginners (Build Types, Product Flavors, Build Variants, Source Sets)
• Kotlin Sequences: Getting Started
• Object equality in Java and Kotlin
• Twitter going all in on Jetpack Compose for feature development: greater productivity, less bugs
• Measure and improve performance with Macrobenchmark
• To Compose, or Not to Compose, That is the Question
• Exploring Google Map Compose Library For Android
• Kotlin Coroutine (High-quality Course)
• Android code style using Spotless and Ktlint
• How to Format All Possible Errors From API Calls in Android With Clean Architecture
iOS 🍏
• Обзор решений для навигации в iOS
• Swift Heroes: The Extra. "ServerDriven SwiftUI. Managing declarative UI"
• Type placeholders in Swift
• The Golden Rules of weak self
• Transitions in SwiftUI
• Exploring SwiftUI Sample Apps
• [boringssl] Failed to log metrics
• SwiftUI Case Study: Data modelling of Brotherhood Alchemist
• Downloading and Caching images in SwiftUI
• The S in SOLID - Swift Edition
• Unit Testing and UI Testing in Swift
• Using new Swift Async Algorithms package to close the gap on Combine
• Building an Accessible Custom Tab Bar
• How to Use Generics in Swift
• Core Image Tutorial: Getting Started
• Use Dependency Injection to Unit Test a ViewModel in Swift
• Localization in iOS App using MapKit and CoreLocation
• Write Cleaner Swift Using MVVM With Property Wrappers
• Простой способ обнаружить retain cycle в UIViewController
• Top 7 Subtle Swift Features
Кроссплатформа / Разработка 💻
• MVC, MVP, MVI, MVVM and VIPER Design Patterns
• SwiftUI vs Jetpack Compose by an Android Engineer
• Clean Code — A practical approach
• Как мы в QIWI внедряли Kotlin Multiplatform Mobile Часть 2: Смотрим шире
• Стелем мягкую соломку на жёсткий Flutter: как подготовиться к первому проекту, чтобы не провалить его
• Better API calls in Flutter
• Kotlin Multiplatform Mobile — sharing the UI State management
• Как работает Backend-Driven UI на мобильном клиенте
• Practical Guide: Flutter + Firebase + FlutterFire CLI + CI (Codemagic)
• Top Flutter & Dart packages in 2022
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
🔥8👍2👏2
Dependency Inversion Principle: How Google Developers write code
Простой и понятный пример Dependency Inversion Principle.
DIP соответствует D в SOLID и гласит: Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
Несколько полезных ссылок про SOLID
👉 The S in SOLID - Swift Edition
👉 SOLID Principles: The Kotlin Way
👉 S.O.L.I.D Principles in Android Development
👉 Тысячная статья про принципы SOLID
👉 SOLID Principles with Swift
Читать (En)
Простой и понятный пример Dependency Inversion Principle.
DIP соответствует D в SOLID и гласит: Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
Несколько полезных ссылок про SOLID
👉 The S in SOLID - Swift Edition
👉 SOLID Principles: The Kotlin Way
👉 S.O.L.I.D Principles in Android Development
👉 Тысячная статья про принципы SOLID
👉 SOLID Principles with Swift
Читать (En)
👍11🔥4
Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
Статья про реализацию Feature Flags/Feature Toggle от QIWI.
Если вдруг кто не знает, через фича-флаги можно удаленно включать/отключать нужный функционал, проводить а/б тесты, ну и делать другие прикольные вещи.
Библиотечка от QIWI тут: FeatureToggle
Читать (Ru)
Статья про реализацию Feature Flags/Feature Toggle от QIWI.
Если вдруг кто не знает, через фича-флаги можно удаленно включать/отключать нужный функционал, проводить а/б тесты, ну и делать другие прикольные вещи.
Библиотечка от QIWI тут: FeatureToggle
Читать (Ru)
👍12
Несколько важных Google-новостей
👉 Google запускает бесплатный курс Android Basics with Compose
👉 Опубликовали программу Google I/O
👉 Вышло первое developer preview of Privacy Sandbox on Android
В сообществе поговаривают, что в РФ начали отваливаться сервисы Firebase, а конкретно Firebase App Distribution и Firebase Cloud Message. Более детальной инфы пока нет.
Из соседнего чата: "Firebase is available in most countries and regions. However, Firebase restricts access to some of its business services in certain countries or regions. At this time, distribution of pre-release app versions via Firebase App Distribution is restricted in Russia”.
👉 Google запускает бесплатный курс Android Basics with Compose
👉 Опубликовали программу Google I/O
👉 Вышло первое developer preview of Privacy Sandbox on Android
В сообществе поговаривают, что в РФ начали отваливаться сервисы Firebase, а конкретно Firebase App Distribution и Firebase Cloud Message. Более детальной инфы пока нет.
Из соседнего чата: "Firebase is available in most countries and regions. However, Firebase restricts access to some of its business services in certain countries or regions. At this time, distribution of pre-release app versions via Firebase App Distribution is restricted in Russia”.
Google Play запретил разработчикам загружать и обновлять платные приложения в России
С 5 мая загрузка и обновление уже существующих платных приложений в Google Play запрещены в России. Для бесплатных приложений изменений нет.
С 5 мая загрузка и обновление уже существующих платных приложений в Google Play запрещены в России. Для бесплатных приложений изменений нет.
👍48💩36👎8😱7🤔5🥰3🤬3🤮3❤1🔥1👏1
Дайджест недели
По новостям: Google запускает курс по Compose, опубликовали программу предстоящей Google I/O, вышло первое developer preview of Privacy Sandbox on Android. Теперь по новости про блокировку загружать и обновлять платные приложения в России. В некоторых чатиках пишут, что запретили не разрабам загружать и обновлять, а пользователям скачивать и обновлять. Перечитал еще несколько раз все пункты, формулировки на самом деле странные, что в RU, что в EN версиях. Но есть все таки один пункт, в котором прописано следующее.
Can I publish new apps or update existing apps during this pause?
You can still publish new free apps, and update existing free apps. Updates to paid apps are blocked for compliance reasons.
Android 🤖
• Dependency Inversion Principle: How Google Developers write code
• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
• Важные Google-новости
• Google Play запретил разработчикам загружать и обновлять платные приложения в России
• Learn Dagger 2 to Hilt for Android Easily in under 10 Minutes
• Jetpack Compose Dropdown
• S.O.L.I.D Principles (Examples in Kotlin)
• Kotlin-inline, crossline, noinline function and reified: Everything you need to know(Android) — Part 1
• 7 things to keep in mind while building jetpack composable’s.
• Architecture MAD Skills series wrap up
• Топ вопросов работодателю от Android-разработчика
• Isolate Koin Within an Android Module
• Kotlin, обрабатываем исключения в корутинах правильно
• The curious case of crashing Workers
• Material Components Android 1.6.0 Released
• Конвергенция в многомодульном приложении
• Passive Views: keep your UI code simple and stupid
• CI-CD: Firebase App Distribution with Fastlane on Android
• Creating reliable tests for Android notifications
iOS 🍏
• I replaced my native iOS app with a cross platform web app and no-one noticed
• Measuring app performance in Swift
• Types of memory in swift
• Improve Performance in Your iOS Applications — Part 1
• Swift 5.7: Unwrapping Optionals Gets an Improvement
• Clarifying criteria & new timing extension for App Store Improvements process
• Тест-ревью: как прошли два года написания unit-тестов
• Is It Possible to Have a Half-modal View in SwiftUI?
• Swift visitor design pattern
• Two Ways to Unit Test Notification Center in Swift
• Send Events from SwiftUI to UIKit and Vice Versa
• AsyncThrowingStream and AsyncStream explained with code examples
• AttributedString’s Codable format and what it has to do with Unicode
• SwiftUI Supporting External Screens
• Flow Navigation With SwiftUI (Revisited)
• Делаем патч для Pods библиотеки
• Как нативно визуализировать голос в iOS
• 6 Tips to improve Coding of Swift
• Building iOS apps faster using Bazel
Кроссплатформа / Разработка 💻
• Destructuring Declarations | Kotlin Tips
• Kotlin 1.7.0-Beta Released
• Flutter for Apple TV
• KSP and Plugins. Optimizing Kotlin Multiplatform common code with Anna Zharkova
• React Native 0.68 и «новая архитектура»
• Как использовать Kotlin Multiplatform ViewModel в SwiftUI и Jetpack Compose
• Does Flutter boost developer productivity?
• Different Approach to Create Mapper using Kotlin Delegated Properties
← Previous | Next →
Публикация на Habr: Дайджест недели (мобильная разработка)
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
По новостям: Google запускает курс по Compose, опубликовали программу предстоящей Google I/O, вышло первое developer preview of Privacy Sandbox on Android. Теперь по новости про блокировку загружать и обновлять платные приложения в России. В некоторых чатиках пишут, что запретили не разрабам загружать и обновлять, а пользователям скачивать и обновлять. Перечитал еще несколько раз все пункты, формулировки на самом деле странные, что в RU, что в EN версиях. Но есть все таки один пункт, в котором прописано следующее.
Can I publish new apps or update existing apps during this pause?
You can still publish new free apps, and update existing free apps. Updates to paid apps are blocked for compliance reasons.
Android 🤖
• Dependency Inversion Principle: How Google Developers write code
• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
• Важные Google-новости
• Google Play запретил разработчикам загружать и обновлять платные приложения в России
• Learn Dagger 2 to Hilt for Android Easily in under 10 Minutes
• Jetpack Compose Dropdown
• S.O.L.I.D Principles (Examples in Kotlin)
• Kotlin-inline, crossline, noinline function and reified: Everything you need to know(Android) — Part 1
• 7 things to keep in mind while building jetpack composable’s.
• Architecture MAD Skills series wrap up
• Топ вопросов работодателю от Android-разработчика
• Isolate Koin Within an Android Module
• Kotlin, обрабатываем исключения в корутинах правильно
• The curious case of crashing Workers
• Material Components Android 1.6.0 Released
• Конвергенция в многомодульном приложении
• Passive Views: keep your UI code simple and stupid
• CI-CD: Firebase App Distribution with Fastlane on Android
• Creating reliable tests for Android notifications
iOS 🍏
• I replaced my native iOS app with a cross platform web app and no-one noticed
• Measuring app performance in Swift
• Types of memory in swift
• Improve Performance in Your iOS Applications — Part 1
• Swift 5.7: Unwrapping Optionals Gets an Improvement
• Clarifying criteria & new timing extension for App Store Improvements process
• Тест-ревью: как прошли два года написания unit-тестов
• Is It Possible to Have a Half-modal View in SwiftUI?
• Swift visitor design pattern
• Two Ways to Unit Test Notification Center in Swift
• Send Events from SwiftUI to UIKit and Vice Versa
• AsyncThrowingStream and AsyncStream explained with code examples
• AttributedString’s Codable format and what it has to do with Unicode
• SwiftUI Supporting External Screens
• Flow Navigation With SwiftUI (Revisited)
• Делаем патч для Pods библиотеки
• Как нативно визуализировать голос в iOS
• 6 Tips to improve Coding of Swift
• Building iOS apps faster using Bazel
Кроссплатформа / Разработка 💻
• Destructuring Declarations | Kotlin Tips
• Kotlin 1.7.0-Beta Released
• Flutter for Apple TV
• KSP and Plugins. Optimizing Kotlin Multiplatform common code with Anna Zharkova
• React Native 0.68 и «новая архитектура»
• Как использовать Kotlin Multiplatform ViewModel в SwiftUI и Jetpack Compose
• Does Flutter boost developer productivity?
• Different Approach to Create Mapper using Kotlin Delegated Properties
← Previous | Next →
Публикация на Habr: Дайджест недели (мобильная разработка)
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍9🔥2👏1
Android Lint. Подборка
Изучая тему с линтерами, немного поресерчил и наткнулся на плагин Spotless, который хочу потестить. Spotless работает на основе ktlint, позволяет проверять форматирование, форматировать код и поддерживает множество языков, подрубается достаточно просто – тут простейший гайд как подключить.
Еще есть вот такой репозиторий Awesome Android Lint, в котором собраны различные статьи, анализаторы, плагины, включая Ktlint, Detekt, так же есть правила от Google, Uber, Slack.
👉 Spotless
👉 Awesome Android Lint
👉 Ktlint
👉 Detekt
P.S. Кстати, сделал отдельный канал, куда буду складывать различные библиотеки и инструменты – @mobile_dev_tools
Изучая тему с линтерами, немного поресерчил и наткнулся на плагин Spotless, который хочу потестить. Spotless работает на основе ktlint, позволяет проверять форматирование, форматировать код и поддерживает множество языков, подрубается достаточно просто – тут простейший гайд как подключить.
Еще есть вот такой репозиторий Awesome Android Lint, в котором собраны различные статьи, анализаторы, плагины, включая Ktlint, Detekt, так же есть правила от Google, Uber, Slack.
👉 Spotless
👉 Awesome Android Lint
👉 Ktlint
👉 Detekt
P.S. Кстати, сделал отдельный канал, куда буду складывать различные библиотеки и инструменты – @mobile_dev_tools
👍12🔥3
Write Beautiful Code With Swift Result Builder
Полезная статейка про то, как внедрить DSL, писать красивые и чистые конструкции на Swift, с помощью Result Builder.
Читать (En)
Полезная статейка про то, как внедрить DSL, писать красивые и чистые конструкции на Swift, с помощью Result Builder.
Читать (En)
👍3🔥1
Письмо счастья: как мы разделили наши сборки для AppGallery и Google Play
Полезная статья от HH про то, как вынести вендорозависимый код (Google services, HMS) в отдельные модули и разделить сборки для AppGallery и Google Play через Product flavors.
А так же напоминаю, вот тут целая подборка материалов по интеграции HMS.
Читать (Ru)
Полезная статья от HH про то, как вынести вендорозависимый код (Google services, HMS) в отдельные модули и разделить сборки для AppGallery и Google Play через Product flavors.
А так же напоминаю, вот тут целая подборка материалов по интеграции HMS.
Читать (Ru)
👍10
Google Play SDK Index
Google представили прикольную штуку Google Play SDK Index – некий новый общедоступный портал, на котором собраны более 100 наиболее широко используемых коммерческих SDK с подробной инфой о каждом из них.
Посмотреть доступные sdk можно тут: Google Play SDK Index
Google представили прикольную штуку Google Play SDK Index – некий новый общедоступный портал, на котором собраны более 100 наиболее широко используемых коммерческих SDK с подробной инфой о каждом из них.
Посмотреть доступные sdk можно тут: Google Play SDK Index
👍11🤔1