Работа с UI-автотестами под Android: от запрета мерджа к особенностям запуска
Ребята из OK рассказывают о своём подходе к работе с UI-автотестами в Android.
👉 Как устроен запрет мерджа
👉 Как смогли стабилизировать тесты
👉 Как настроили параметризацию запуска
Читать (Ru)
Ребята из OK рассказывают о своём подходе к работе с UI-автотестами в Android.
👉 Как устроен запрет мерджа
👉 Как смогли стабилизировать тесты
👉 Как настроили параметризацию запуска
Читать (Ru)
Forwarded from Swift Tips
SwiftUI Field Guide
Каким-то чудом я пропустил достаточно крутой сервис – SwiftUI Field Guide, где чуваки на интерактивных примерах объясняют как работает верстка в SwiftUI. Можно менять параметры, двигать ползунки при этом виден код и сразу показывается как меняется верстка 🔥
Сайт активно дополняется. Вот список того, что уже есть👇
Introduction
• View Trees
• Debugging
Modifiers
• Aspect Ratio
• Padding
• Offset
• Fixed Frames
• Flexible Frames
• Overlay
Views
• Image
• Shape
Containers
• HStack
• VStack
• Scroll View
• Layout
Concepts
• Alignment
• Ideal Size
• Safe Area
Однозначно в избранное ✅
Сайт → Swiftuifieldguide
Каким-то чудом я пропустил достаточно крутой сервис – SwiftUI Field Guide, где чуваки на интерактивных примерах объясняют как работает верстка в SwiftUI. Можно менять параметры, двигать ползунки при этом виден код и сразу показывается как меняется верстка 🔥
Сайт активно дополняется. Вот список того, что уже есть👇
Introduction
• View Trees
• Debugging
Modifiers
• Aspect Ratio
• Padding
• Offset
• Fixed Frames
• Flexible Frames
• Overlay
Views
• Image
• Shape
Containers
• HStack
• VStack
• Scroll View
• Layout
Concepts
• Alignment
• Ideal Size
• Safe Area
Однозначно в избранное ✅
Сайт → Swiftuifieldguide
Глобальные события в мобильном приложении
Достаточно объемная статья с разбором и примерами глобальных событий в мобильном приложении. Для чего они могут понадобиться, какие проблемы решают и какие создают и как реализовать их наилучшим способом.
Читать (Ru)
Достаточно объемная статья с разбором и примерами глобальных событий в мобильном приложении. Для чего они могут понадобиться, какие проблемы решают и какие создают и как реализовать их наилучшим способом.
Читать (Ru)
Подборка бесплатных книг
Забирайте репозиторий с огромным количеством бесплатных книг по разным технологиям на разных языках, в том числе и на русском.
Имейте в виду, репозиторий достаточно старый, вероятно что-то может быть
GitHub → Free Programming Books
Забирайте репозиторий с огромным количеством бесплатных книг по разным технологиям на разных языках, в том числе и на русском.
Имейте в виду, репозиторий достаточно старый, вероятно что-то может быть
deprecated
GitHub → Free Programming Books
Perk up your understanding of generics
Подробный иллюстрированный гайд по дженерикам.
👉 Introduction to Generic Types
👉 Type Parameter Constraints
👉 Generics in Practice
👉 Generics in the Standard Library
👉 Trade-Offs of Generics
Читать (En)
Подробный иллюстрированный гайд по дженерикам.
👉 Introduction to Generic Types
👉 Type Parameter Constraints
👉 Generics in Practice
👉 Generics in the Standard Library
👉 Trade-Offs of Generics
Читать (En)
Как протестировать Android-приложение, которому требуются разрешения
Подробный туториал по написанию UI-тестов на Kaspresso для приложений, которым требуются разрешения.
Читать (Ru)
Подробный туториал по написанию UI-тестов на Kaspresso для приложений, которым требуются разрешения.
Читать (Ru)
Игра в безопасность Android-приложений
Большая и полезная статья, в которой рассматриваются различные процессы взлома Android-приложений(отслеживание http/https трафика, ресурсы, AndroidManifest, обфускация/деобфускация, C++) и возможные варианты защиты.
Читать (Ru)
Большая и полезная статья, в которой рассматриваются различные процессы взлома Android-приложений(отслеживание http/https трафика, ресурсы, AndroidManifest, обфускация/деобфускация, C++) и возможные варианты защиты.
Читать (Ru)
Кодогенерация токенов дизайн-системы для Android по Figma API
Большая статья про то, как поддерживать дизайн-систему в консистентном состоянии с помощью автоматизации и интеграции Figma → Android.
👉 Почему решили идти в историю с автоматизацией
👉 Research и первая попытка
👉 Data-слой
👉 Генерация цветов
👉 Генерация типографики
👉 Генерация изображений
👉 Работа с устаревшими (или deprecated) токенами
👉 Остальные токены
👉 Генерация XML для Android View System
👉 Схема генерации. Итоговый проект
👉 Итоги
👉 Полезные ссылки
Читать (Ru)
Большая статья про то, как поддерживать дизайн-систему в консистентном состоянии с помощью автоматизации и интеграции Figma → Android.
👉 Почему решили идти в историю с автоматизацией
👉 Research и первая попытка
👉 Data-слой
👉 Генерация цветов
👉 Генерация типографики
👉 Генерация изображений
👉 Работа с устаревшими (или deprecated) токенами
👉 Остальные токены
👉 Генерация XML для Android View System
👉 Схема генерации. Итоговый проект
👉 Итоги
👉 Полезные ссылки
Читать (Ru)
Конструкторы-самозванцы в Kotlin
Интересная статья про некоторые особенности в Kotlin, связанные с вызовами конструкторов классов и функциями, которые имеют аналогичный синтаксис.
Читать (Ru)
Интересная статья про некоторые особенности в Kotlin, связанные с вызовами конструкторов классов и функциями, которые имеют аналогичный синтаксис.
Читать (Ru)
“Лента” в Yandex Mobile Ads SDK 7
В седьмую версию SDK добавили новый рекламный формат, который способен вместить десятки рекламных объявлений в один блок. “Лента” подойдет для утилит, новостей, классифайдов и других приложений с возможностью пролистывания. Пока инструмент доступен в бета-режиме для Android-приложений.
А в этой короткой статье есть описание всех остальных обновлений. Для iOS тоже есть интересные фичи.
Читать (Ru)
В седьмую версию SDK добавили новый рекламный формат, который способен вместить десятки рекламных объявлений в один блок. “Лента” подойдет для утилит, новостей, классифайдов и других приложений с возможностью пролистывания. Пока инструмент доступен в бета-режиме для Android-приложений.
А в этой короткой статье есть описание всех остальных обновлений. Для iOS тоже есть интересные фичи.
Читать (Ru)
Mastering Android ViewModels: Essential Dos and Don’ts Part 2
Вторая часть из цикла Mastering Android ViewModels. Эта часть про возможные проблемы при использовании мутабельных состояний в качестве контрактов.
👉 Нарушение инкапсуляции
👉 Риски целостности данных
👉 Повышенная сложность
👉 Проблемы параллелизма
👉 Проблемы тестирования
👉 Архитектурная ясность
👉 Отсутствие контроля над подписчиками
Читать (En)
Вторая часть из цикла Mastering Android ViewModels. Эта часть про возможные проблемы при использовании мутабельных состояний в качестве контрактов.
👉 Нарушение инкапсуляции
👉 Риски целостности данных
👉 Повышенная сложность
👉 Проблемы параллелизма
👉 Проблемы тестирования
👉 Архитектурная ясность
👉 Отсутствие контроля над подписчиками
Читать (En)
Capturing composable to a bitmap without losing a state
Обзор библиотеки Capturable для захвата UI Composable и генерации Bitmap без потери качества.
Библиотека на GitHub → Capturable
Читать (En)
Обзор библиотеки Capturable для захвата UI Composable и генерации Bitmap без потери качества.
Библиотека на GitHub → Capturable
Читать (En)
Что делать, если кандидат оказался сеньором или психом: советы на случай форс-мажоров
Ещё одна статья о проведении собеседований, а именно про то, какие качества важны для технического интервьюера, как давать эффективную обратную связь и вести себя при форс-мажорах на собеседовании.
Читать (Ru)
Ещё одна статья о проведении собеседований, а именно про то, какие качества важны для технического интервьюера, как давать эффективную обратную связь и вести себя при форс-мажорах на собеседовании.
Читать (Ru)
Dependency Injection in Compose
Статья с рекомендациями по использованию Hilt в Compose. Как предоставляются и определяются зависимости, чем отличается от привычного подхода на Fragment/Activity и т.д.
👉 Scoping dependencies
👉 What’s different in Compose
👉 Use ViewModel and Compose Navigation
👉 Use an enclosing class with constructor injection
👉 Avoid storing dependencies in CompositionLocal
👉 Use Entry Points
👉 Use a custom dependency Component
Читать (En)
Статья с рекомендациями по использованию Hilt в Compose. Как предоставляются и определяются зависимости, чем отличается от привычного подхода на Fragment/Activity и т.д.
👉 Scoping dependencies
👉 What’s different in Compose
👉 Use ViewModel and Compose Navigation
👉 Use an enclosing class with constructor injection
👉 Avoid storing dependencies in CompositionLocal
👉 Use Entry Points
👉 Use a custom dependency Component
Читать (En)
Forwarded from Swift Tips
Popular git config options
Самые популярные настройки Git config.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Читать (En)
Самые популярные настройки Git config.
•
pull.ff only or pull.rebase true
•
merge.conflictstyle zdiff3
•
rebase.autosquash true
•
rebase.autostash true
•
push.default simple, push.default current
• init.defaultBranch main
•
commit.verbose true
•
rerere.enabled true
•
help.autocorrect 10
•
core.pager delta
•
diff.algorithm histogram
•
core.excludesfile ~/.gitignore
•
includeIf: separate git configs for personal and work
•
fsckobjects: avoid data corruption
•
submodule stuff
Читать (En)
Kotlin Learning Guide
Jetbrains подготовила большой гайд с демо и курсами по изучению Kotlin для всех уровней 👍
👉 Introduction to Kotlin
👉 Kotlin Onboarding
👉 Kotlin Koans
👉 AtomicKotlin
👉 Kotlin Core
👉 Coroutines and Channels
👉 Introduction to IDE Code Refactoring in Kotlin
👉 Algorithmic Challenges in Kotlin
👉 Kotlin Developer
👉 Introduction to Ktor
👉 Kotlin Backend Developer (Spring Boot)
👉 Introduction to Android With Kotlin
👉 Android Developer With Kotlin
Будет полезно как новичкам, так и разработчикам с опытом.
Читать (En)
Jetbrains подготовила большой гайд с демо и курсами по изучению Kotlin для всех уровней 👍
👉 Introduction to Kotlin
👉 Kotlin Onboarding
👉 Kotlin Koans
👉 AtomicKotlin
👉 Kotlin Core
👉 Coroutines and Channels
👉 Introduction to IDE Code Refactoring in Kotlin
👉 Algorithmic Challenges in Kotlin
👉 Kotlin Developer
👉 Introduction to Ktor
👉 Kotlin Backend Developer (Spring Boot)
👉 Introduction to Android With Kotlin
👉 Android Developer With Kotlin
Будет полезно как новичкам, так и разработчикам с опытом.
Читать (En)
Swift Cheatsheet for Android/Kotlin Developers
Относительно большая статья с сравнением Swift и Kotlin: синтаксис, основы и некоторые распространённые шаблоны.
👉 Basics (Variables, Optionals/Nullability, Functions, etc)
👉 Structures and Classes
👉 Optional Binding
👉 Enums
👉 Dictionary / Map
👉 Extensions
👉 Protocols
Читать (En)
Относительно большая статья с сравнением Swift и Kotlin: синтаксис, основы и некоторые распространённые шаблоны.
👉 Basics (Variables, Optionals/Nullability, Functions, etc)
👉 Structures and Classes
👉 Optional Binding
👉 Enums
👉 Dictionary / Map
👉 Extensions
👉 Protocols
Читать (En)
Что посмотреть на выходных. Подборка полезностей 👇
Накопилась очередная порция интересных и полезных видосов.
Лекции Young&&Yandex
• Android - Вводная про платформу
• Android - Погружение в JVM
• Android - View в Android
• Android - Продвинутый UI
• Android - Архитектура
• Android - Корутины
• Android - Потоки и асинхронность
• Android - Инструменты разработки
• Android - Jetpack compose
• Network в Android
• Gradle и система сборки Android
• iOS - Вводная про платформу
• iOS - Advanced Swift programming
• iOS - Persistence
• iOS - Архитектура
• iOS - Concurrency
• iOS - Слой представления UIView
• iOS - Слой вью-контроллеров UIViewController
• iOS - SwiftUI
• Алгоритмы - теория и практика
Mobius
• Android – Как мы создавали дизайн-систему на Jetpack Compose
• DION – Интеграция MediaPipe в Android-приложение видеоконференцсвязи
• BDUI – удовольствие или боль
• BDUI на 100%: управляем шиммерами с бэкенда
• Убиваем Lottie? Тащим Rive?
• Cracking the Mobile Interview
• iOS — Навигация в SwiftUI
• Как Compose Multiplatform for iOS может убить Flutter?
• Рецепт приготовления кроссплатформенного мобильного видеоредактора
• Жизнь инди в Google Play
• Tracer — альтернатива Crashlytics. Другой взгляд на аналитику ошибок в приложениях
Накопилась очередная порция интересных и полезных видосов.
Лекции Young&&Yandex
• Android - Вводная про платформу
• Android - Погружение в JVM
• Android - View в Android
• Android - Продвинутый UI
• Android - Архитектура
• Android - Корутины
• Android - Потоки и асинхронность
• Android - Инструменты разработки
• Android - Jetpack compose
• Network в Android
• Gradle и система сборки Android
• iOS - Вводная про платформу
• iOS - Advanced Swift programming
• iOS - Persistence
• iOS - Архитектура
• iOS - Concurrency
• iOS - Слой представления UIView
• iOS - Слой вью-контроллеров UIViewController
• iOS - SwiftUI
• Алгоритмы - теория и практика
Mobius
• Android – Как мы создавали дизайн-систему на Jetpack Compose
• DION – Интеграция MediaPipe в Android-приложение видеоконференцсвязи
• BDUI – удовольствие или боль
• BDUI на 100%: управляем шиммерами с бэкенда
• Убиваем Lottie? Тащим Rive?
• Cracking the Mobile Interview
• iOS — Навигация в SwiftUI
• Как Compose Multiplatform for iOS может убить Flutter?
• Рецепт приготовления кроссплатформенного мобильного видеоредактора
• Жизнь инди в Google Play
• Tracer — альтернатива Crashlytics. Другой взгляд на аналитику ошибок в приложениях
How to safely update state in your Kotlin apps
Статья про управление и безопасное обновление состояния.
👉 What is a state? What is a state transaction?
👉 Making State Reactive
👉 Unifying States
👉 Making State Consistent with State Families
👉 Making State Updates Parallel
👉 Serializable State Transactions
Читать (En)
Статья про управление и безопасное обновление состояния.
👉 What is a state? What is a state transaction?
👉 Making State Reactive
👉 Unifying States
👉 Making State Consistent with State Families
👉 Making State Updates Parallel
👉 Serializable State Transactions
Читать (En)