Forwarded from Swift Tips
Почему MVx архитектуры всегда получаются плохо
Статья с разбором проблем в архитектурных паттернов в MVx.
• Проблема остатка
• Проблема масштабирования
• Проблема разрывов в логике
Читать (Ru)
Статья с разбором проблем в архитектурных паттернов в MVx.
• Проблема остатка
• Проблема масштабирования
• Проблема разрывов в логике
Читать (Ru)
🤔16🤡3👍2👎2🔥1
Вопросы и ответы для собеседования по Kotlin. Часть 3
На хабре вышла 3-я часть из цикла «Вопросы и ответы для собеседования по Kotlin».
Классы и интерфейсы
• Что такое абстрактные классы и интерфейсы?
• Почему классы в Kotlin по умолчанию final?
• Что нужно сделать, чтобы класс можно было наследовать? (open)
• Как можно получить тип класса?
• Что такое enum класс (перечислений)?
• Что такое sealed класс (изолированный)?
• Какая разница между sealed class и enum?
• Что такое inner (внутренние) и nested (вложенные) классы?
• Value (бывшие inline) классы
• Какая польза от typealias? Во что он компилируется?
Коллекции и последовательности (Sequences)
• Какие коллекции есть в Kotlin?
• List
• Set
• Map
• Какая из коллекций не является имплементацией Collection?
• Sequences и их отличия от коллекций
Читать (Ru)
На хабре вышла 3-я часть из цикла «Вопросы и ответы для собеседования по Kotlin».
Классы и интерфейсы
• Что такое абстрактные классы и интерфейсы?
• Почему классы в Kotlin по умолчанию final?
• Что нужно сделать, чтобы класс можно было наследовать? (open)
• Как можно получить тип класса?
• Что такое enum класс (перечислений)?
• Что такое sealed класс (изолированный)?
• Какая разница между sealed class и enum?
• Что такое inner (внутренние) и nested (вложенные) классы?
• Value (бывшие inline) классы
• Какая польза от typealias? Во что он компилируется?
Коллекции и последовательности (Sequences)
• Какие коллекции есть в Kotlin?
• List
• Set
• Map
• Какая из коллекций не является имплементацией Collection?
• Sequences и их отличия от коллекций
Читать (Ru)
🔥15👍10❤4👏1
Автоматизация публикации Android приложений в Google Play и Huawei AppGallery — инструкция от А до Я
Детальный гайд по тому, как автоматизировать процесс релизов Android-приложений в Google Play и Huawei AppStore.
👉 Структура Gradle‑проекта
👉 Android App Bundles (AAB) vs Android Packages (APK)
👉 Генерация номеров версий
👉 Получение ключей доступа от Google Play
👉 Загрузка сборок в Google Play
👉 Управление метаданными Google Play
👉 Получение ключей доступа от Huawei AppGallery
👉 Загрузка сборок и release notes в Huawei AppGallery
👉 Добавление CI/CD
👉 Заключение
Читать (Ru)
Детальный гайд по тому, как автоматизировать процесс релизов Android-приложений в Google Play и Huawei AppStore.
👉 Структура Gradle‑проекта
👉 Android App Bundles (AAB) vs Android Packages (APK)
👉 Генерация номеров версий
👉 Получение ключей доступа от Google Play
👉 Загрузка сборок в Google Play
👉 Управление метаданными Google Play
👉 Получение ключей доступа от Huawei AppGallery
👉 Загрузка сборок и release notes в Huawei AppGallery
👉 Добавление CI/CD
👉 Заключение
Читать (Ru)
🔥15👍7❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Creating Pager Animations in Jetpack Compose
Пример реализации анимированых переходов в Pager Jetpack Compose.
👉 Cube transition
👉 Circle reveal
👉 Movie carousel
Читать (En)
Пример реализации анимированых переходов в Pager Jetpack Compose.
👉 Cube transition
👉 Circle reveal
👉 Movie carousel
Читать (En)
🔥13👍5⚡1👏1
Dispatchers in Kotlin Coroutines
Базовая статья про Dispatchers в корутинах. Что такое диспатчеры и для каких кейсов, какой использовать.
Читать (En)
Базовая статья про Dispatchers в корутинах. Что такое диспатчеры и для каких кейсов, какой использовать.
Читать (En)
👍15❤2👎1🔥1🥰1
Forwarded from Swift Tips
Чистый код
Несколько статей на тему чистого кода, а именно про функции: нейминг, размеры, условия, структура и т.д.
• Часть 1
• Часть 2
Несколько статей на тему чистого кода, а именно про функции: нейминг, размеры, условия, структура и т.д.
• Часть 1
• Часть 2
👍17😁4❤2👎1🔥1💩1
Kotlin Coding Conventions
Рекомендации по стилю кода для проектов, использующих Kotlin.
👉 Настройка стиля в IDE
👉 Организация кода
👉 Правила именования
👉 Форматирование
👉 Комментарии к документации
👉 Избегайте избыточных конструкций
👉 Идиоматическое использование особенностей языка
👉 Конвенция для библиотек
Читать (Ru)
Рекомендации по стилю кода для проектов, использующих Kotlin.
👉 Настройка стиля в IDE
👉 Организация кода
👉 Правила именования
👉 Форматирование
👉 Комментарии к документации
👉 Избегайте избыточных конструкций
👉 Идиоматическое использование особенностей языка
👉 Конвенция для библиотек
Читать (Ru)
👍9🔥3👏2💩2
«Внешняя» навигация в многомодульном проекте на Kotlin
Еще одна статья о том, как организовать навигацию в многомодульном проекте, снизить связность и зависимость модулей между собой, закрыв всё это дело за «чистыми» интерфейсами.
Код на GitHub → Multimodule Navigation Sample
Читать (Ru)
Еще одна статья о том, как организовать навигацию в многомодульном проекте, снизить связность и зависимость модулей между собой, закрыв всё это дело за «чистыми» интерфейсами.
Код на GitHub → Multimodule Navigation Sample
Читать (Ru)
👍19🔥3❤2
Про тестирование мобильных приложений
Серия коротких статей про тестирование мобильных приложений.
👉 Часть 1. Обзор
👉 Часть 2. Unit tests
👉 Часть 3. Cквозное (UI, e2e) тестирование
Серия коротких статей про тестирование мобильных приложений.
👉 Часть 1. Обзор
👉 Часть 2. Unit tests
👉 Часть 3. Cквозное (UI, e2e) тестирование
👍7🔥5🤔1
Google I/O 2023
👉 What’s new in Jetpack Compose
👉 What's new in Jetpack
👉 Second Beta of Android 14
👉 What’s new in Google Play
👉 What’s new in Android Health
👉 Meet Android Studio Bot
👉 Redesigning the Android Studio Logo
👉 Introducing the Watch Face Format for Wear OS
👉 What’s new with Android for Cars
👉 What’s new in Jetpack Compose
👉 What's new in Jetpack
👉 Second Beta of Android 14
👉 What’s new in Google Play
👉 What’s new in Android Health
👉 Meet Android Studio Bot
👉 Redesigning the Android Studio Logo
👉 Introducing the Watch Face Format for Wear OS
👉 What’s new with Android for Cars
❤6👍3🔥3
Google I/O 2023. Что нового в Kotlin для Android?
В догонку к предыдущему посту, краткий обзор от Анны Жарковой про новинки Kotlin для Android, представленные Google.
👉 Kotlin 2.0 и новый компилятор
👉 Kotlin DSL по умолчанию для Gradle builds
👉 Мигрируем с KAPT на KSP
👉 Мультиплатформа
Читать (Ru)
В догонку к предыдущему посту, краткий обзор от Анны Жарковой про новинки Kotlin для Android, представленные Google.
👉 Kotlin 2.0 и новый компилятор
👉 Kotlin DSL по умолчанию для Gradle builds
👉 Мигрируем с KAPT на KSP
👉 Мультиплатформа
Читать (Ru)
🔥13👍4❤1
Gradle Cheat Sheet for Android and KMP Projects – Plugins
Cheat Sheet по Gradle от Touchlab. Как происходит процесс сборки, подключение плагинов, репозитории.
Читать (En)
Cheat Sheet по Gradle от Touchlab. Как происходит процесс сборки, подключение плагинов, репозитории.
Читать (En)
🔥10👍2👏2🥱2
Четыре платформы — один код. Что такое Compose Multiplatform?
Вводная статья с примером, про удобный и мощный инструмент мобильной и десктопной разработки — Compose Multiplatform.
Читать (Ru)
Вводная статья с примером, про удобный и мощный инструмент мобильной и десктопной разработки — Compose Multiplatform.
Читать (Ru)
👍14🔥6❤2
Forwarded from Swift Tips
Как стать iOS-разработчиком?
Достаточно объемная статья про то, что именно нужно изучать, чтоб стать iOS-разработчиком и где искать нужные материалы(язык, платформа, архитектура, алгоритмы, Git и т.д.). А еще, в статье собраны ссылки на различные, полезные источники и сообщества.
Несколько полезных ссылок из статьи
• iOS Developer Roadmap
• How to become an expert in iOS development
• iOS Roadmap for beginners
Читать (Ru)
Достаточно объемная статья про то, что именно нужно изучать, чтоб стать iOS-разработчиком и где искать нужные материалы(язык, платформа, архитектура, алгоритмы, Git и т.д.). А еще, в статье собраны ссылки на различные, полезные источники и сообщества.
Несколько полезных ссылок из статьи
• iOS Developer Roadmap
• How to become an expert in iOS development
• iOS Roadmap for beginners
Читать (Ru)
🔥4👍2❤1
Перформанс 2ГИС для Android
Статья от 2ГИС про то, как они перерабатывали приложение с целью повысить перфоманс(сократить время запуска, ускорить загрузку компонентов и т.д.).
Читать (Ru)
Статья от 2ГИС про то, как они перерабатывали приложение с целью повысить перфоманс(сократить время запуска, ускорить загрузку компонентов и т.д.).
Читать (Ru)
👍7👎6🔥4❤2
Чистый код
Тут вышла 3-я, завершающая часть из цикла «Чистый код», про исключения, классы и всё, что не вошло в прошлые разделы.
Ссылки на все части
• Часть 1
• Часть 2
• Часть 3
Читать (Ru)
Тут вышла 3-я, завершающая часть из цикла «Чистый код», про исключения, классы и всё, что не вошло в прошлые разделы.
Ссылки на все части
• Часть 1
• Часть 2
• Часть 3
Читать (Ru)
❤9👍5🔥1🤔1
10 Open-Source Projects That’ll Make You Excited About Using Jetpack Compose
Ещё одна подборка проектов для изучения, реализованных на Jetpack Compose 🔥
• Klokk
• MovieCompose
• NewtonsTimer
• Flux
• Create-compose-app
• McCompose
• Schedule Calendar
• Wiggles
• Roffu
• ViMusic
Читать (En)
Ещё одна подборка проектов для изучения, реализованных на Jetpack Compose 🔥
• Klokk
• MovieCompose
• NewtonsTimer
• Flux
• Create-compose-app
• McCompose
• Schedule Calendar
• Wiggles
• Roffu
• ViMusic
Читать (En)
👍11❤4🔥4🥰3
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose: Expandable Text
Пример реализации expandable text на Jetpack Compose с кликабельным лейблом «…more» в конце строки.
Читать (Ru)
Пример реализации expandable text на Jetpack Compose с кликабельным лейблом «…more» в конце строки.
Читать (Ru)
👍14🔥3❤1
Get Current User Location in Jetpack Compose Using Clean Architecture
Пример получения местоположения по clean архитектуре, на корутинах и Jetpack Compose.
Читать (En)
Пример получения местоположения по clean архитектуре, на корутинах и Jetpack Compose.
Читать (En)
👍12❤3🔥1
Kotlin Sealed Interfaces: A Deep Dive into a Powerful New Feature
Неплохая статья с примерами по основам и использованию sealed интерфейсов.
👉 Subtypes of Sealed Interfaces
👉 Advanced Techniques and Best Practices
👉 Avoiding Subclassing
👉 Extending Sealed Interfaces
👉 Sealed Classes vs Sealed Interfaces
Читать (En)
Неплохая статья с примерами по основам и использованию sealed интерфейсов.
👉 Subtypes of Sealed Interfaces
👉 Advanced Techniques and Best Practices
👉 Avoiding Subclassing
👉 Extending Sealed Interfaces
👉 Sealed Classes vs Sealed Interfaces
Читать (En)
👍8🤔3👎2🔥2
Что посмотреть на выходных.
Тут выложили доклады с Mobius 2022 Autumn.
Android
• Как пройти архитектурную секцию собеседования
• Навигируемся в Jetpack Compose
• Android Navigation at scale
• Какие параметры компьютера влияют на скорость Gradle-сборки
• Gradle: Incremental compilation 101
• Нужен ли Bazel в Android-разработке?
• The Elm Architecture in Prod
• С чем мы столкнулись при создании российского магазина Android-приложений
• Android Insets и анимация клавиатуры
• GraphQL: как уговорить сервер подстроиться под приложение
• Impact Analysis. Как мы ускоряли юнит-тесты
• Векторные иконки в Android: анатомия, патофизиология, диагностика и хирургия
iOS
• Оптимизация UI с использованием Texture
• Как и зачем дробить iOS-приложение на микрофичи
• Как выстроить DI в многомодульном iOS-приложении при помощи Needle
• TDD + BDD = TBD (Tests, Business, Development). Триада инженерной культуры
• Подписки в iOS: Deep Dive
• Выжимаем максимум из SwiftUI Preview
• Keyboard avoiding in SwiftUI
• Distributed actors и где они обитают
• И ещё чуть-чуть про изображения
• Бот как сердце коммьюнити
• Как Яндекс Go самокаты BLE внедряли
Кроссплатформа
• DivKit — дивная разработка
• Почему KMM — не кроссплатформа?
• Мультиплатформенный Redux и SwiftUI / Jetpack Compose
• Быть или не быть senior'ом
• Как взломать собеседование
• ОС «Аврора» глазами Android- и iOS-разработчика
• Как избежать хаоса: навигация как отдельный логический уровень
• Перестройка: как провести рефакторинг с пользой
• Телефон, NFC и пластиковые карты — романтика!
• Работа с картой в каршеринге
• Как перестать волноваться и начать ревьюить код быстро и эффективно
• Состояние дел в Fuchsia
Тут выложили доклады с Mobius 2022 Autumn.
Android
• Как пройти архитектурную секцию собеседования
• Навигируемся в Jetpack Compose
• Android Navigation at scale
• Какие параметры компьютера влияют на скорость Gradle-сборки
• Gradle: Incremental compilation 101
• Нужен ли Bazel в Android-разработке?
• The Elm Architecture in Prod
• С чем мы столкнулись при создании российского магазина Android-приложений
• Android Insets и анимация клавиатуры
• GraphQL: как уговорить сервер подстроиться под приложение
• Impact Analysis. Как мы ускоряли юнит-тесты
• Векторные иконки в Android: анатомия, патофизиология, диагностика и хирургия
iOS
• Оптимизация UI с использованием Texture
• Как и зачем дробить iOS-приложение на микрофичи
• Как выстроить DI в многомодульном iOS-приложении при помощи Needle
• TDD + BDD = TBD (Tests, Business, Development). Триада инженерной культуры
• Подписки в iOS: Deep Dive
• Выжимаем максимум из SwiftUI Preview
• Keyboard avoiding in SwiftUI
• Distributed actors и где они обитают
• И ещё чуть-чуть про изображения
• Бот как сердце коммьюнити
• Как Яндекс Go самокаты BLE внедряли
Кроссплатформа
• DivKit — дивная разработка
• Почему KMM — не кроссплатформа?
• Мультиплатформенный Redux и SwiftUI / Jetpack Compose
• Быть или не быть senior'ом
• Как взломать собеседование
• ОС «Аврора» глазами Android- и iOS-разработчика
• Как избежать хаоса: навигация как отдельный логический уровень
• Перестройка: как провести рефакторинг с пользой
• Телефон, NFC и пластиковые карты — романтика!
• Работа с картой в каршеринге
• Как перестать волноваться и начать ревьюить код быстро и эффективно
• Состояние дел в Fuchsia
👍12🔥4❤2❤🔥1