Detekt: как статический анализ помогает улучшить код автотестов
Статья от Яндекса про то, как можно повысить качество кода автотестов с помощью статического анализа (Detekt).
👉 Коробочные правила
👉 Примеры наших правил
👉 Как написать своё правило
👉 Способы игнорирования нарушений
👉 Отчётность
Набор правил от Яндекса на GitHub → Detekt rules for UI-tests
Читать (Ru)
Статья от Яндекса про то, как можно повысить качество кода автотестов с помощью статического анализа (Detekt).
👉 Коробочные правила
👉 Примеры наших правил
👉 Как написать своё правило
👉 Способы игнорирования нарушений
👉 Отчётность
Набор правил от Яндекса на GitHub → Detekt rules for UI-tests
Читать (Ru)
👍8🔥3👏2
Списки с душой и стилем: Ваш путь к Jetpack Compose
Статья с обзором и примерами использования списков в Jetpack Compose.
👉 Использование списков в Compose(LazyColumn, LazyRow, Column и Row)
👉 Оптимизация производительности списков
👉 Анимации в списках
Может быть полезно начинающим.
Читать (Ru)
Статья с обзором и примерами использования списков в Jetpack Compose.
👉 Использование списков в Compose(LazyColumn, LazyRow, Column и Row)
👉 Оптимизация производительности списков
👉 Анимации в списках
Может быть полезно начинающим.
Читать (Ru)
👍17❤4🔥3👌1
Animating Inside and Outside the Box with Jetpack Compose
Большая и полезная статья с примерами различных анимаций в Jetpack Compose.
👉 Custom Animation Handlers
👉 Choreographing Complex Animations
👉 Physics-based Animations for Realism
👉 Gesture-based Animations
👉 State-driven Animation Patterns
👉 Morphing Shapes
👉 Snowfall effect
Читать (En)
Большая и полезная статья с примерами различных анимаций в Jetpack Compose.
👉 Custom Animation Handlers
👉 Choreographing Complex Animations
👉 Physics-based Animations for Realism
👉 Gesture-based Animations
👉 State-driven Animation Patterns
👉 Morphing Shapes
👉 Snowfall effect
Читать (En)
👍12🔥2❤1👌1
Forwarded from Swift Tips
Mastering in SwiftUI
Большая и полезная статья с примерами кода, в которой рассматриваются важные моменты, которые помогут вам повысить производительность и эффективность разработки.
• Which architecture is better: Redux or MVVM?
• Use
• Create
• Breaking down the content of the body into smaller to minimize the compilation time
• Prefer
• Declare Observable objects at a specific place to avoid unnecessary UI update
• Find which data change is causing a SwiftUI view to update
• Use LazyHStack and LazyVStack if you have a long list
• Is there anything similar to viewDidLoad()?
• Use UIKit components directly in SwiftUI
• Conditional modifier
• Avoid using .padding and .frame together
• Use GeometryReader wisely
• Use AnyView occasionally
• Must use ID with Foreach and List
• Prefer using Text over Label
• Use Group to return multiple view instances
• Use .fixedSize() to specify that the frame doesn’t change
Перевод от AppTractor → Мастерство работы в SwiftUI
Читать (En)
Большая и полезная статья с примерами кода, в которой рассматриваются важные моменты, которые помогут вам повысить производительность и эффективность разработки.
• Which architecture is better: Redux or MVVM?
• Use
@StateObject and @ObservableObject• Create
@Published variable with care• Breaking down the content of the body into smaller to minimize the compilation time
• Prefer
@State for the animations instead of @Published• Declare Observable objects at a specific place to avoid unnecessary UI update
• Find which data change is causing a SwiftUI view to update
• Use LazyHStack and LazyVStack if you have a long list
• Is there anything similar to viewDidLoad()?
• Use UIKit components directly in SwiftUI
• Conditional modifier
• Avoid using .padding and .frame together
• Use GeometryReader wisely
• Use AnyView occasionally
• Must use ID with Foreach and List
• Prefer using Text over Label
• Use Group to return multiple view instances
• Use .fixedSize() to specify that the frame doesn’t change
Перевод от AppTractor → Мастерство работы в SwiftUI
Читать (En)
🔥2❤1👍1
Android Kotlin Coroutines interview questions
Большой список из 100 вопросов по корутинам, которые спрашивают на собесах.
Читать (En)
Большой список из 100 вопросов по корутинам, которые спрашивают на собесах.
Читать (En)
🔥32❤5👍3
С Наступающим Новым Годом!!! 🎄🥳 🎉
Предпоследний пост в этом году.
Ну что ребята, вот и подходит к концу 2023 год. По традиции, каждому из вас выражаю огромную благодарность за то, что остаётесь со мной, читаете канал, оставляете реакции, репостите, тем самым мотивируя постить интересные и полезные материалы.
В Новом Году начинающим желаю найти работу, джунам и мидлам прокачаться минимум на уровень выше, сеньорам толковых джунов 😉 и всем чистого кода, проектов без багов, профессионального развития и крепкого здоровья. Ну а я в новом году постараюсь вас радовать качественным контентом.
Канал в этом году не особо вырос, но остальную статистику держим на уровне 🔥. В новом году подумаю над вариантами масштабирования.
С Наступающим Новым Годом, друзья!!!🥂
Предпоследний пост в этом году.
Ну что ребята, вот и подходит к концу 2023 год. По традиции, каждому из вас выражаю огромную благодарность за то, что остаётесь со мной, читаете канал, оставляете реакции, репостите, тем самым мотивируя постить интересные и полезные материалы.
В Новом Году начинающим желаю найти работу, джунам и мидлам прокачаться минимум на уровень выше, сеньорам толковых джунов 😉 и всем чистого кода, проектов без багов, профессионального развития и крепкого здоровья. Ну а я в новом году постараюсь вас радовать качественным контентом.
Канал в этом году не особо вырос, но остальную статистику держим на уровне 🔥. В новом году подумаю над вариантами масштабирования.
С Наступающим Новым Годом, друзья!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉18❤10👍4🍾3
Новогодний Дайджест 🎅
Итак ребята, если вдруг вам нечем будет заняться в новогодние праздники, специально для вас собрал наиболее популярные посты в структурированном виде за весь год 😱, точно найдете для себя что-то полезное 😉
Android🖥
• 7 Jetpack Compose Projects to Become a Better Android Developer
• 10 Open-Source Projects That’ll Make You Excited About Using Jetpack Compose
• Jetpack Compose Samples
• Jetpack Compose Codelabs
• Android Basics with Compose
• Осознанная оптимизация Compose
• Best Practices for Compose Navigation in Multi-Module Project
• Migrating to Jetpack Compose — an interop love story
• Performance with Jetpack Compose
• Jetpack Compose: Mastering States
• Реализуем современный UI на Jetpack Compose
• Android Kotlin Coroutines interview questions
• Работа с асинхронными операциями с помощью Kotlin Coroutines
• Coroutines Guide
• Kotlin Coroutines Recipes
• Kotlin Coroutines Best practices
• Kotlin Coroutines Tutorial for Android: Getting Started
• От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin.
• Learn Kotlin Flow by real examples for Android
• Kotlin. Коллекции
• Серия статей – Kotlin под капотом
• Mastering Kotlin : A Comprehensive Guide
• Вопросы и ответы для собеседования по Kotlin
• Inline, noinline, crossinline, reified in kotlin with examples
• Best practices for error handling in Kotlin
• Kotlin Performance Tuning: 20 Best Practices You Should Know
• Kotlin: взгляд изнутри — преимущества, недостатки и особенности
• Teach Computer Science with Kotlin
• Архитектура Android. Понятно и подробно
• Guide to Good Android App Architetture
• Clean Android multi-module offline-first scalable app in 2022
• Clean Architecture for Android Sample Project
• Modern Android Development in 2023
• Multi-Module Architecture in Android
• The "Real" Modularization in Android
• How to architect Android apps
• Crash Course on the Android UI Layer
• Android-разработка для новичков: 20+ полезных ресурсов
• Android Developer Roadmap 2023
• Deep Dive Into Android Memory
• Где и как можно ускорить приложение на Android
• Эффективное и комплексное устранение утечек памяти в Android
• How ViewModel works under the hood
• Best Practises In ViewModel
• Communicating with fragments
• Многопоточность в мобильной разработке
• Gradle Cache: Your build’s best friend
• Shielding Your App: Implementing Best Practices for Android Security
• Reverse Engineering and Analyzing Android Apps
• Обзор актуальных инструментов шифрования в Android
• Ускоряем поиск по коду в Android Studio
• Список фишек Android Studio для ускорения разработки
• Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
iOS💸
• In-App Purchases in iOS
• Swift iOS interview questions and answers
• 7 iOS Projects to Become a Better iOS Developer
• Разбираем ошибки начинающих iOS-разработчиков
• Как не потерять голову (и память) при поиске утечек в iOS
• Building Large-Scale Apps with SwiftUI: A Guide to Modular Architecture
• Swift async/await. Чем он лучше GCD?
• Как стать iOS-разработчиком?
• Многопоточность в iOS-разработке
• Awesome iOS Dev Tools
• Полезные iOS-инструменты для дебаггинга
• iOS Developer Roadmap 2023
• Расширенное управление памятью с помощью Unsafe Swift
• 10 quick tips to increase your iOS code quality
• 10 tips to increase your iOS code quality – Part 2
• Server-Driven UI using SwiftUI
• Книги по Swift и iOS-разработке для начинающих специалистов и профессионалов
• Ускоряем прохождение iOS UI-тестов
• Mastering in SwiftUI
• Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи
Common 🛠
• Основы алгоритмов
• Git Cheat Sheet
• Книга – Чистый код: создание, анализ и рефакторинг.
• Чистый код
• System Design Interview
• Clean Code — A practical approach
• Cracking the Mobile System Design Interview (iOS & Android)
• Делай нейминг как сеньор
• Mobile Applications Data Security
Что посмотреть📹
• Часть 1
• Часть 2
• Часть 3
Еще раз с наступающим друзья, увидимся в январе 😉
Итак ребята, если вдруг вам нечем будет заняться в новогодние праздники, специально для вас собрал наиболее популярные посты в структурированном виде за весь год 😱, точно найдете для себя что-то полезное 😉
Android
• 7 Jetpack Compose Projects to Become a Better Android Developer
• 10 Open-Source Projects That’ll Make You Excited About Using Jetpack Compose
• Jetpack Compose Samples
• Jetpack Compose Codelabs
• Android Basics with Compose
• Осознанная оптимизация Compose
• Best Practices for Compose Navigation in Multi-Module Project
• Migrating to Jetpack Compose — an interop love story
• Performance with Jetpack Compose
• Jetpack Compose: Mastering States
• Реализуем современный UI на Jetpack Compose
• Android Kotlin Coroutines interview questions
• Работа с асинхронными операциями с помощью Kotlin Coroutines
• Coroutines Guide
• Kotlin Coroutines Recipes
• Kotlin Coroutines Best practices
• Kotlin Coroutines Tutorial for Android: Getting Started
• От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin.
• Learn Kotlin Flow by real examples for Android
• Kotlin. Коллекции
• Серия статей – Kotlin под капотом
• Mastering Kotlin : A Comprehensive Guide
• Вопросы и ответы для собеседования по Kotlin
• Inline, noinline, crossinline, reified in kotlin with examples
• Best practices for error handling in Kotlin
• Kotlin Performance Tuning: 20 Best Practices You Should Know
• Kotlin: взгляд изнутри — преимущества, недостатки и особенности
• Teach Computer Science with Kotlin
• Архитектура Android. Понятно и подробно
• Guide to Good Android App Architetture
• Clean Android multi-module offline-first scalable app in 2022
• Clean Architecture for Android Sample Project
• Modern Android Development in 2023
• Multi-Module Architecture in Android
• The "Real" Modularization in Android
• How to architect Android apps
• Crash Course on the Android UI Layer
• Android-разработка для новичков: 20+ полезных ресурсов
• Android Developer Roadmap 2023
• Deep Dive Into Android Memory
• Где и как можно ускорить приложение на Android
• Эффективное и комплексное устранение утечек памяти в Android
• How ViewModel works under the hood
• Best Practises In ViewModel
• Communicating with fragments
• Многопоточность в мобильной разработке
• Gradle Cache: Your build’s best friend
• Shielding Your App: Implementing Best Practices for Android Security
• Reverse Engineering and Analyzing Android Apps
• Обзор актуальных инструментов шифрования в Android
• Ускоряем поиск по коду в Android Studio
• Список фишек Android Studio для ускорения разработки
• Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
iOS
• In-App Purchases in iOS
• Swift iOS interview questions and answers
• 7 iOS Projects to Become a Better iOS Developer
• Разбираем ошибки начинающих iOS-разработчиков
• Как не потерять голову (и память) при поиске утечек в iOS
• Building Large-Scale Apps with SwiftUI: A Guide to Modular Architecture
• Swift async/await. Чем он лучше GCD?
• Как стать iOS-разработчиком?
• Многопоточность в iOS-разработке
• Awesome iOS Dev Tools
• Полезные iOS-инструменты для дебаггинга
• iOS Developer Roadmap 2023
• Расширенное управление памятью с помощью Unsafe Swift
• 10 quick tips to increase your iOS code quality
• 10 tips to increase your iOS code quality – Part 2
• Server-Driven UI using SwiftUI
• Книги по Swift и iOS-разработке для начинающих специалистов и профессионалов
• Ускоряем прохождение iOS UI-тестов
• Mastering in SwiftUI
• Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи
Common 🛠
• Основы алгоритмов
• Git Cheat Sheet
• Книга – Чистый код: создание, анализ и рефакторинг.
• Чистый код
• System Design Interview
• Clean Code — A practical approach
• Cracking the Mobile System Design Interview (iOS & Android)
• Делай нейминг как сеньор
• Mobile Applications Data Security
Что посмотреть
• Часть 1
• Часть 2
• Часть 3
Еще раз с наступающим друзья, увидимся в январе 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27❤8🎄4🔥3☃2
Пример исследовательского реверс-инжиниринга приложения Zone Launcher
Подробный гайд как можно заполучить полную версию приложения без покупки через реверс-инжиниринг.
👉 Объединение split-apk в один apk
👉 Декомпиляция кода apk
👉 Разархивировние apk и изменение android-байткода (smali) функций
👉 Сборка измененного байткода
👉 Ужатие и подписание нового apk своей подписью
В статье рассматривается совсем примитивный пример приложения с переключением флага версии и кажется, что в более серъезных приложениях, будет гораздо сложнее такое провернуть.
А валидацию версии лучше делать двойную и на клиенте и на бэке, это конечно не 100% гарантия, но значительно может усложнить задачу взлома.
Читать (Ru)
Подробный гайд как можно заполучить полную версию приложения без покупки через реверс-инжиниринг.
👉 Объединение split-apk в один apk
👉 Декомпиляция кода apk
👉 Разархивировние apk и изменение android-байткода (smali) функций
👉 Сборка измененного байткода
👉 Ужатие и подписание нового apk своей подписью
В статье рассматривается совсем примитивный пример приложения с переключением флага версии и кажется, что в более серъезных приложениях, будет гораздо сложнее такое провернуть.
А валидацию версии лучше делать двойную и на клиенте и на бэке, это конечно не 100% гарантия, но значительно может усложнить задачу взлома.
Читать (Ru)
👍6🔥6🤔1😍1
My Top 10 Clean Code Tips for Kotlin Mobile in 2024
10 советов для написания более чистого кода.
👉 Organize project files
👉 One, Two… Refactor!
👉 Avoid Deep Nesting: Confronting the Arrowhead Anti-Pattern
👉 Document your code
👉 Limit Global State and Singletons
👉 Avoid complex oneliners
👉 Use names for values instead of
👉 Avoid hack-like or genius code
👉 Avoid IfNeeded and Maybe functions
👉 Sleep well
Читать (En)
10 советов для написания более чистого кода.
👉 Organize project files
👉 One, Two… Refactor!
👉 Avoid Deep Nesting: Confronting the Arrowhead Anti-Pattern
👉 Document your code
👉 Limit Global State and Singletons
👉 Avoid complex oneliners
👉 Use names for values instead of
it👉 Avoid hack-like or genius code
👉 Avoid IfNeeded and Maybe functions
👉 Sleep well
Читать (En)
👍12🔥5👎3❤1🤔1
Разбираемся, почему Google Play Protect посчитал 2ГИС вредоносным ПО
Все же видели некоторое время назад, что Android пользователи начали получать от Google Play уведомления о том, что 2ГИС вредоносное приложение и его нужно удалить?
Так вот, Google Play Protect ошибочно посчитал 2ГИС вредоносным приложением, а ребята из 2ГИС разобрали ситуацию публично на хабре, с предположениями почему так произошло, с техническими нюансами, ответами на вопросы и деталями, для чего используются различные пермишены в приложении.
Читать (Ru)
Все же видели некоторое время назад, что Android пользователи начали получать от Google Play уведомления о том, что 2ГИС вредоносное приложение и его нужно удалить?
Так вот, Google Play Protect ошибочно посчитал 2ГИС вредоносным приложением, а ребята из 2ГИС разобрали ситуацию публично на хабре, с предположениями почему так произошло, с техническими нюансами, ответами на вопросы и деталями, для чего используются различные пермишены в приложении.
Читать (Ru)
👍8🤔3🗿2👎1🔥1
Как вкатиться в безопасность android приложений в 2024
Тут Артём Кулаков систематизировал инфу для начинающих, на тему безопасности и анализа Android приложений. Если хотите залететь в мобильный инфобез, обязательно почитайте.
👉 Особенности предметной области
👉 Что почитать на тему безопасности и анализа
👉 Базовые инструменты
👉 Как выглядит процесс анализа приложения
👉 Прочие обучающие материалы
Читать (Ru)
Тут Артём Кулаков систематизировал инфу для начинающих, на тему безопасности и анализа Android приложений. Если хотите залететь в мобильный инфобез, обязательно почитайте.
👉 Особенности предметной области
👉 Что почитать на тему безопасности и анализа
👉 Базовые инструменты
👉 Как выглядит процесс анализа приложения
👉 Прочие обучающие материалы
Читать (Ru)
🔥9❤4👍1
Создание и использование BOM в Gradle
В статье рассказывается про то, как можно организовать BOM (bill of materials) для управления версиями зависимостей + рассматриваются более сложные кейсы создания и использования BOM в Gradle-проектах.
👉 Зачем вообще нужен BOM?
👉 Как выглядит BOM?
👉 Когда создавать свой BOM?
👉 Что такое Rich Model и Gradle Module Metadata?
👉 Как несколько BOM сочетаются друг с другом?
👉 Управление версиями Gradle-плагинов через BOM
Читать (Ru)
В статье рассказывается про то, как можно организовать BOM (bill of materials) для управления версиями зависимостей + рассматриваются более сложные кейсы создания и использования BOM в Gradle-проектах.
👉 Зачем вообще нужен BOM?
👉 Как выглядит BOM?
👉 Когда создавать свой BOM?
👉 Что такое Rich Model и Gradle Module Metadata?
👉 Как несколько BOM сочетаются друг с другом?
👉 Управление версиями Gradle-плагинов через BOM
Читать (Ru)
🔥6👍4🤔1
Полезные материалы для начинающих Android разработчиков
Подборка полезных материалов для начинающих, с базовыми рекомендациями по обучению, книгами и статьями на различные темы.
Читать (Ru)
Подборка полезных материалов для начинающих, с базовыми рекомендациями по обучению, книгами и статьями на различные темы.
Читать (Ru)
🔥9❤4👍1
Forwarded from Swift Tips
Разборы важных новинок для iOS-разработки с WWDC 2023
Разборы новинок для iOS-разработки с WWDC 2023 от ребят из KTS.
👉 Mergeable libraries
👉 Что нового в Xcode
👉 Push Notifications. Что менялось в последние годы?
👉 Live Activities
👉 Что нового в UIKit
👉 Что нового в Swift 5.9
👉 Swift Macros
👉 SwiftData
Читать (Ru)
Разборы новинок для iOS-разработки с WWDC 2023 от ребят из KTS.
👉 Mergeable libraries
👉 Что нового в Xcode
👉 Push Notifications. Что менялось в последние годы?
👉 Live Activities
👉 Что нового в UIKit
👉 Что нового в Swift 5.9
👉 Swift Macros
👉 SwiftData
Читать (Ru)
👍7🔥3🤔1👨💻1
Как снять логи при краше мобильного приложения?
Не уверен, что вам, как разработчикам будет полезно, но всё же – подробный гайд как снимать логи крешей приложений разными способами в iOS/Android.
Если ваши QA не умеют этого делать, можно переслать им статью 😉
Читать (Ru)
Не уверен, что вам, как разработчикам будет полезно, но всё же – подробный гайд как снимать логи крешей приложений разными способами в iOS/Android.
Если ваши QA не умеют этого делать, можно переслать им статью 😉
Читать (Ru)
👍11👎4🔥2❤1👏1
Coroutine patterns in Android, and why they work
Статья с примерами базовых сoroutine шаблонов и пояснениями, почему они работают.
👉 The suspending function
👉 Calling a suspending function from the main thread
👉 Switching contexts
👉 Running coroutines in a scope
👉 Multiple operations in a suspend function
👉 Infinite loops (apparently)
Читать (En)
Статья с примерами базовых сoroutine шаблонов и пояснениями, почему они работают.
👉 The suspending function
👉 Calling a suspending function from the main thread
👉 Switching contexts
👉 Running coroutines in a scope
👉 Multiple operations in a suspend function
👉 Infinite loops (apparently)
Читать (En)
👍16❤3🔥3🤡3
This media is not supported in your browser
VIEW IN TELEGRAM
Level Up Your Daily Coding: Unveiling Four Lesser-Known Tools in Android Studio
4 малоизвестных фичи Android Studio, которые могут упростить разработку.
👉 Live Templates
👉 Analyze Data Flow
👉 Refactoring Tools
👉 Postfix Completion
Читать (En)
4 малоизвестных фичи Android Studio, которые могут упростить разработку.
👉 Live Templates
👉 Analyze Data Flow
👉 Refactoring Tools
👉 Postfix Completion
Читать (En)
👍11❤1👎1🔥1
Просто об архитектуре в Android
Еще одна статья про архитектуру в Android, в частности про Clean Architecture (слои, мапперы, юзкейсы и вот это вот всё).
👉 Почему именно Clean Architecture
👉 Основополагающие принципы
👉 Best Practices из опыта
Читать (Ru)
Еще одна статья про архитектуру в Android, в частности про Clean Architecture (слои, мапперы, юзкейсы и вот это вот всё).
👉 Почему именно Clean Architecture
👉 Основополагающие принципы
👉 Best Practices из опыта
Читать (Ru)
👍19👎8❤7🤮4💩4🔥2
Forwarded from Swift Tips
Полезные материалы для начинающих iOS разработчиков
Подборка полезных материалов для начинающих, с базовыми рекомендациями по обучению, книгами и статьями на различные темы.
Читать (Ru)
Подборка полезных материалов для начинающих, с базовыми рекомендациями по обучению, книгами и статьями на различные темы.
Читать (Ru)
👍6❤2🔥2
Structured Concurrency for Coroutines: Unraveling the Fundamentals
Статья с основами по Structured Concurrency в корутинах.
👉 CoroutineScope
👉 CoroutineContext
👉 Job
👉 Cancellation Mechanism in Coroutines
Читать (En)
Статья с основами по Structured Concurrency в корутинах.
👉 CoroutineScope
👉 CoroutineContext
👉 Job
👉 Cancellation Mechanism in Coroutines
Читать (En)
🔥11👍6🤔2