Ну что вы знаете про качество кода!!!
Я просто не мог с вами не поделиться этим чудом из реального проекта. К слову, это писал человек, который позиционирует себя ближе к сеньор.
Нейминг второго метода я конечно же изменил, но параметры оставил 😂, ну и в методе сообственно куча проверок по всем этим параметрам.
P.S. забирайте екстеншн, полюбому пригодится =))
Я просто не мог с вами не поделиться этим чудом из реального проекта. К слову, это писал человек, который позиционирует себя ближе к сеньор.
Нейминг второго метода я конечно же изменил, но параметры оставил 😂, ну и в методе сообственно куча проверок по всем этим параметрам.
P.S. забирайте екстеншн, полюбому пригодится =))
🤡29😁16🔥5😱3👎2😈1
Миграция приложения на Jetpack Compose
Статья про миграцию приложения на Jetpack Compose. Подводные камни, возможности и стратегии миграции UI, архитектуры и дизайн-системы.
👉 Зачем мигрировать на Compose
👉 Рекомендации до миграции
👉 Частичная миграция UI: интеграция Compose во View
👉 Частичная миграция UI: интеграция View в Compose
👉 Чем хороша полная миграция на Compose
👉 Полная миграция UI
👉 Миграция дизайн-системы
Читать (Ru)
Статья про миграцию приложения на Jetpack Compose. Подводные камни, возможности и стратегии миграции UI, архитектуры и дизайн-системы.
👉 Зачем мигрировать на Compose
👉 Рекомендации до миграции
👉 Частичная миграция UI: интеграция Compose во View
👉 Частичная миграция UI: интеграция View в Compose
👉 Чем хороша полная миграция на Compose
👉 Полная миграция UI
👉 Миграция дизайн-системы
Читать (Ru)
🔥7👍4❤1
Unleashing Creativity with Custom Modifiers in Android Jetpack Compose
Статья про кастомные модификаторы Jetpack Compose.
Как, зачем и почему + несколько примеров, которые могут пригодиться в реальных проектах.
👉 Understanding Custom Modifiers
👉 Creating Custom Modifiers
👉 Real World Examples and Use Cases
Читать (En)
Статья про кастомные модификаторы Jetpack Compose.
Как, зачем и почему + несколько примеров, которые могут пригодиться в реальных проектах.
👉 Understanding Custom Modifiers
👉 Creating Custom Modifiers
👉 Real World Examples and Use Cases
Читать (En)
🔥14❤3👍3👎1
Ускоряем сборку за счёт миграции с kapt на ksp
Команда hh делится опытом миграции с kapt на ksp.
👉 Немного теории
👉 Почему мы решили попробовать перейти на ksp
👉 Исследование перехода на ksp
👉 Последовательная реализация перехода
👉 Пишем свой ksp-процессор (на примере библиотеки для обработки аннотаций)
👉 Результаты
Читать (En)
Команда hh делится опытом миграции с kapt на ksp.
👉 Немного теории
👉 Почему мы решили попробовать перейти на ksp
👉 Исследование перехода на ksp
👉 Последовательная реализация перехода
👉 Пишем свой ksp-процессор (на примере библиотеки для обработки аннотаций)
👉 Результаты
Читать (En)
🔥10❤3👍1
Add Shake Animations to your Composable
Пример реализации простой анимации встряхивания в Jetpack Compose, с помощью кастомоного модификатора.
Перевод от AppTractor → Добавляем анимации встряхивания в Composable
Читать (En)
Пример реализации простой анимации встряхивания в Jetpack Compose, с помощью кастомоного модификатора.
Перевод от AppTractor → Добавляем анимации встряхивания в Composable
Читать (En)
🔥6👍3❤1
Clean Architecture for Android Sample Project
Еще один проект в копилку для изучения. Проект – реализация чистой архитектуры от автора книги «Clean Architecture for Android».
👉 Feature separation
👉 Layer separation(UI, Presentation, Domain, Data, Data Source)
👉 Dummy analytics
👉 Navigation
👉 Animations
👉 Unit tests
👉 End-to-end tests
👉 Demonstrates use of Jetpack Compose
👉 Demonstrates use of Coroutines including Flow
👉 Demonstrates MVVM
👉 Code quality checks using ktlint
👉 Code quality checks using detekt
Код на GitHub → CleanArchitectureForAndroid
Еще один проект в копилку для изучения. Проект – реализация чистой архитектуры от автора книги «Clean Architecture for Android».
👉 Feature separation
👉 Layer separation(UI, Presentation, Domain, Data, Data Source)
👉 Dummy analytics
👉 Navigation
👉 Animations
👉 Unit tests
👉 End-to-end tests
👉 Demonstrates use of Jetpack Compose
👉 Demonstrates use of Coroutines including Flow
👉 Demonstrates MVVM
👉 Code quality checks using ktlint
👉 Code quality checks using detekt
Код на GitHub → CleanArchitectureForAndroid
👍14🔥4❤1💩1
Jetpack Compose: Mastering States
Простая статья с наглядными примерами про стейты в Compose, а именно про политики, с помощью которых можно поменять дефолтное поведение сравнения объектов для рекомпозиции.
👉 structuralEqualityPolicy()
👉 neverEqualPolicy()
👉 referentialEqualityPolicy()
Читать (En)
Простая статья с наглядными примерами про стейты в Compose, а именно про политики, с помощью которых можно поменять дефолтное поведение сравнения объектов для рекомпозиции.
👉 structuralEqualityPolicy()
👉 neverEqualPolicy()
👉 referentialEqualityPolicy()
Читать (En)
👍11❤3🔥3
Best practices for error handling in Kotlin
Статья с обзором различных способов обработки ошибок в Kotlin.
👉 Exceptions in Coroutines
👉 Uses of Sealed Classes for Error Handling
👉 Functional Error Handling
👉 Uncaught Exception Handlers
👉 Handling Network Errors with Retrofit
👉 Graceful Error Handling with Coroutines
👉 Error Handling with RXJava
Читать (En)
Статья с обзором различных способов обработки ошибок в Kotlin.
👉 Exceptions in Coroutines
👉 Uses of Sealed Classes for Error Handling
👉 Functional Error Handling
👉 Uncaught Exception Handlers
👉 Handling Network Errors with Retrofit
👉 Graceful Error Handling with Coroutines
👉 Error Handling with RXJava
Читать (En)
❤12👍2👎2🔥2
Что посмотреть на выходных.
Накопилась очередная пачка различных видосов – туториалы, доклады с конференций и т.д.
Android
• Top App Bar (Toolbar) - UX With Material3
• Navigation Rail - UX With Material3
• Navigation Drawer - UX With Material3
• Bottom App Bars - UX With Material3
• Selection UI Components (Checkboxes, Switches, Radio Buttons) - UX With Material3
• Live Edit for Jetpack Compose
• Ускоряем сборку за счёт миграции с kapt на ksp
• Универсальные пуши для Android. FCM, HMS и RuStore в одном месте
• Упрощаем и укрощаем UI для Android с помощью аннотаций
• Mock Junior Android Developer Interview
• Как узнать кто вызывал функцию? StackTrace стек вызовов в Kotlin & Java
• Аналитика многомодульных проектов
• Архитектура сложных клиентских приложений
• Как избежать хаоса: навигация как отдельный логический уровень
iOS
• Как жить с двумя провайдерами карт в крупном проекте
• Swift-уроки: ElasticAnimation / Эластичная анимация
• Декларативная навигация в iOS-приложении
• Кто ты, SwiftData
• GC, ARC, RAM. Часть 3. iOS
• iOS 17 Data Flow with Observation Framework
• Xcode Structured Logging
• Accessibility in Swift: Dynamic Colors
• SwiftUI: Placing Tab Bar Over Sheet’s | Apple Map’s Bottom Sheet
• Animated Custom Button - Keyframes API
• See How To Store An Image In SwiftData
• SwiftUI Dynamic Sheet Height - iOS 17
• I converted a Core Data to SwiftData
Накопилась очередная пачка различных видосов – туториалы, доклады с конференций и т.д.
Android
• Top App Bar (Toolbar) - UX With Material3
• Navigation Rail - UX With Material3
• Navigation Drawer - UX With Material3
• Bottom App Bars - UX With Material3
• Selection UI Components (Checkboxes, Switches, Radio Buttons) - UX With Material3
• Live Edit for Jetpack Compose
• Ускоряем сборку за счёт миграции с kapt на ksp
• Универсальные пуши для Android. FCM, HMS и RuStore в одном месте
• Упрощаем и укрощаем UI для Android с помощью аннотаций
• Mock Junior Android Developer Interview
• Как узнать кто вызывал функцию? StackTrace стек вызовов в Kotlin & Java
• Аналитика многомодульных проектов
• Архитектура сложных клиентских приложений
• Как избежать хаоса: навигация как отдельный логический уровень
iOS
• Как жить с двумя провайдерами карт в крупном проекте
• Swift-уроки: ElasticAnimation / Эластичная анимация
• Декларативная навигация в iOS-приложении
• Кто ты, SwiftData
• GC, ARC, RAM. Часть 3. iOS
• iOS 17 Data Flow with Observation Framework
• Xcode Structured Logging
• Accessibility in Swift: Dynamic Colors
• SwiftUI: Placing Tab Bar Over Sheet’s | Apple Map’s Bottom Sheet
• Animated Custom Button - Keyframes API
• See How To Store An Image In SwiftData
• SwiftUI Dynamic Sheet Height - iOS 17
• I converted a Core Data to SwiftData
🔥8👍4❤1
Kotlin’s Supercharged Flow API — Combining and Merging Flows for Reactive Programming
Статья с разбором и примерами работы функций сombine, merge, zip для работы с несколькими flow.
Читать (En)
Статья с разбором и примерами работы функций сombine, merge, zip для работы с несколькими flow.
Читать (En)
👍8🔥4❤1
The Art of Small Animations in Android with Jetpack Compose
Статья с примерами простых анимаций на Jetpack Compose, которые могу придать интерактива и освеживать ваш UI.
Читать (En)
Статья с примерами простых анимаций на Jetpack Compose, которые могу придать интерактива и освеживать ваш UI.
Читать (En)
👍9🔥3❤1
Основы алгоритмов
Если пропустили, тут Академия Яндекса выпустила Хенбук – цифровой учебник, который содержит теорию и практические задания с автопроверкой.
С помощью этого хендбука вы научитесь проектировать, оптимизировать, комбинировать и отлаживать алгоритмы — причём без привязки к какому-либо языку программирования.
👉 Введение
👉 Алгоритмы и сложность
👉 Техники проектирования алгоритмов
👉 Решение практических задач по программированию
👉 Разминка. Последовательные алгоритмы
👉 Жадные алгоритмы
👉 Разделяй и властвуй
👉 Динамическое программирование
👉 Основные структуры данных
👉 Графы
Читать (Ru)
Если пропустили, тут Академия Яндекса выпустила Хенбук – цифровой учебник, который содержит теорию и практические задания с автопроверкой.
С помощью этого хендбука вы научитесь проектировать, оптимизировать, комбинировать и отлаживать алгоритмы — причём без привязки к какому-либо языку программирования.
👉 Введение
👉 Алгоритмы и сложность
👉 Техники проектирования алгоритмов
👉 Решение практических задач по программированию
👉 Разминка. Последовательные алгоритмы
👉 Жадные алгоритмы
👉 Разделяй и властвуй
👉 Динамическое программирование
👉 Основные структуры данных
👉 Графы
Читать (Ru)
👍24🔥5💩5❤1😁1
Фундаментальное руководство по пакетам в Java
Подробная, базовая статья по пакетам в Java. Может быть полезно начинающим.
👉 Что такое пакет
👉 Примеры пакетов
👉 Назначение пакетов
👉 Правила создания пакетов
👉 Импорт классов
👉 Компиляция и запуск
👉 Возможные ошибки и их решение
Читать (Ru)
Подробная, базовая статья по пакетам в Java. Может быть полезно начинающим.
👉 Что такое пакет
👉 Примеры пакетов
👉 Назначение пакетов
👉 Правила создания пакетов
👉 Импорт классов
👉 Компиляция и запуск
👉 Возможные ошибки и их решение
Читать (Ru)
🤔5🤮3👍2🔥2
Solving the mystery of recompositions in Compose’s LazyList
Еще одна статья про множественные рекомпозиции в Compose, связанные с модификатором
Читать (En)
Еще одна статья про множественные рекомпозиции в Compose, связанные с модификатором
Modifier.clickable, а именно в способе добавления/передачи модификатора в Composable.Читать (En)
🔥8👍3🤔2
Новый взгляд на аналитику ошибок в production, или работающая альтернатива Crashlytics
А вот это уже интересно. Ребята из OK.Tech запилили Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях. Полноценный аналог Crashlytics.
Решение собирает данные о крешах и зависаниях приложений, помогает находить утечки памяти в приложении и на диске. Более того, Tracer умеет профилировать приложения в продакшене для поиска критических мест в производительности.
Модули Трейсера
👉 Crash и ANR
👉 Memory Leaks aka Heap Dumps
👉 Disk Usage
👉 Systrace Profiler
👉 Sampling Profiler
Документация тут.
Выглядит интересно, нужно будет затестить.
Читать (Ru)
А вот это уже интересно. Ребята из OK.Tech запилили Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях. Полноценный аналог Crashlytics.
Решение собирает данные о крешах и зависаниях приложений, помогает находить утечки памяти в приложении и на диске. Более того, Tracer умеет профилировать приложения в продакшене для поиска критических мест в производительности.
Модули Трейсера
👉 Crash и ANR
👉 Memory Leaks aka Heap Dumps
👉 Disk Usage
👉 Systrace Profiler
👉 Sampling Profiler
Документация тут.
Выглядит интересно, нужно будет затестить.
Читать (Ru)
🔥7👍2👏1
Screen Transition Animations with Jetpack Navigation
Простой пример добавления транзишн аниимации в Jetpack Compose / Navigation.
Читать (En)
Простой пример добавления транзишн аниимации в Jetpack Compose / Navigation.
Читать (En)
👍5🔥3❤1👎1
Animated Circular Progress Indicator using Jetpack Compose
Еще одна статья с примером реализации анимированного, кругового прогресса на Jetpack Compose.
Читать (En)
Еще одна статья с примером реализации анимированного, кругового прогресса на Jetpack Compose.
Читать (En)
🔥6👍3🤔2
Используем UI-тесты для поиска утечек
Статья от Циан про организацию поиска утечек памяти в приложении с помощью UI-тестов.
Читать (Ru)
Статья от Циан про организацию поиска утечек памяти в приложении с помощью UI-тестов.
Читать (Ru)
👍9🔥5🤔1
А/Б эксперименты в AppMetrica
В AppMetrica новая фича – А/Б эксперименты, с помощью которых можно проводить тестирование гипотез и определять влияние на показатели продукта (ARPU, Retention, Time Spent) 👍
👉 Тестирование гипотез
👉 Внедрение изменений сразу из интерфейса
👉 Конфигурация флагов
👉 Сложные тесты
Читать (Ru)
В AppMetrica новая фича – А/Б эксперименты, с помощью которых можно проводить тестирование гипотез и определять влияние на показатели продукта (ARPU, Retention, Time Spent) 👍
👉 Тестирование гипотез
👉 Внедрение изменений сразу из интерфейса
👉 Конфигурация флагов
👉 Сложные тесты
Читать (Ru)
👏6🤡4👍2🔥1🤯1
Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
Команда Иви делится опытом использования Compose для ТВ, некоторыми особенностями и трудностями, с которыми столкнулись.
👉 Развитие Android TV и общая архитектура
👉 Создание UI для TV: выбор между Leanback и Jetpack Compose
👉 Недостатки Jetpack Compose для Android TV и несоответствие ожиданиям
👉 Мощь фреймворка Jetpack Compose
👉 Производительность и оптимизации
Читать (Ru)
Команда Иви делится опытом использования Compose для ТВ, некоторыми особенностями и трудностями, с которыми столкнулись.
👉 Развитие Android TV и общая архитектура
👉 Создание UI для TV: выбор между Leanback и Jetpack Compose
👉 Недостатки Jetpack Compose для Android TV и несоответствие ожиданиям
👉 Мощь фреймворка Jetpack Compose
👉 Производительность и оптимизации
Читать (Ru)
🔥11👍5🤮3❤1👎1👏1💩1