Deep Dive Into Deep Link
Все части из цикла статей про диплинки. Принцип работы, поведение на разных версиях ОС и устройствах, проблемы которые могут возникнуть, обработка scheme приложением и т.д.
👉 Часть 1. Введение и исходная задача
👉 Часть 2. Проблемы: устройство, версия ОС
👉 Часть 3. Оболочка ОС, приложение
👉 Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего
👉 Часть 5. Нюансы: port, mime, path, диспетчеризация, обратная совместимость
Все части из цикла статей про диплинки. Принцип работы, поведение на разных версиях ОС и устройствах, проблемы которые могут возникнуть, обработка scheme приложением и т.д.
👉 Часть 1. Введение и исходная задача
👉 Часть 2. Проблемы: устройство, версия ОС
👉 Часть 3. Оболочка ОС, приложение
👉 Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего
👉 Часть 5. Нюансы: port, mime, path, диспетчеризация, обратная совместимость
🔥15👍3👏2
Собеседование Android system design
Досматриваю собес про Android System Design. Если еще не смотрели, обязательно посмотрите.
Респект Киррилу и ребятам, отдельный рескепт Серёге за очередной крутой собес. Андрей видно парень с опытом, со многими штуками работал и натыкался на различные кейсы – можно хантить 😉. Собес понравился 🔥
Теперь на что стоит обратить внимание.
1. Схема и точка.
Нужно уметь рисовать схемы, если не умеете – учитесь. Возьмите какую-нибудь простую функцию и попробуйте спроектировать в виде схемы с нужными модулями, связями и т.д.. Это не только показывает скилл разработчика, но и помогает при разработке и ускоряет ее. Условно можно представить как инструкцию, по которой вы потом пишите код шаг за шагом.
2. Сбор Требований.
Всегда старайтесь собрать всевозможные требования, задавайте любые вопросы, даже если вам кажется что "тут все понятно и очевидно". Как показывает опыт и практика, часто заказчик/бизнес думает и представляет всё по своему. Важно уточнить все эти моменты до начала реализации и убедиться, что все друг друга поняли.
3. Рассуждения вслух.
Эта тема уже много где затрагивалась. Рассуждайте вслух, это во-первых может вас самих натолкнуть на новые мысли, а во-вторых, при необходимости интервьюер может скорректировал ход ваших мыслей в более верном направлении.
4. Аргументация выбора.
С этим по идее понятно, можете пересмотреть фидбек, там Серёга подробно про это говорит. Нужно уметь аргументировать свой выбор, но для этого вы должны понимать как работает выбранный вами инструмент/архитектура/паттерн, какие плюсы/минусы, для каких кейсов больше подходит и т.д.
Варианты стоп-фраз: "ну так все делают", "это популярный фреймворк", "это крутая библиотека/подход/паттерн", "так google/apple рекомендует делать" 😉
Полезные ссылки/посты
👉 Simple Framework For Mobile System Design Interviews (про который говорили в собесе)
👉 Mobile System Design Interviews Series
👉 System Design Interview For Mobile Engineers
👉 Тред с ресурсами по system design от Евгения Мацюка
Досматриваю собес про Android System Design. Если еще не смотрели, обязательно посмотрите.
Респект Киррилу и ребятам, отдельный рескепт Серёге за очередной крутой собес. Андрей видно парень с опытом, со многими штуками работал и натыкался на различные кейсы – можно хантить 😉. Собес понравился 🔥
Теперь на что стоит обратить внимание.
1. Схема и точка.
Нужно уметь рисовать схемы, если не умеете – учитесь. Возьмите какую-нибудь простую функцию и попробуйте спроектировать в виде схемы с нужными модулями, связями и т.д.. Это не только показывает скилл разработчика, но и помогает при разработке и ускоряет ее. Условно можно представить как инструкцию, по которой вы потом пишите код шаг за шагом.
2. Сбор Требований.
Всегда старайтесь собрать всевозможные требования, задавайте любые вопросы, даже если вам кажется что "тут все понятно и очевидно". Как показывает опыт и практика, часто заказчик/бизнес думает и представляет всё по своему. Важно уточнить все эти моменты до начала реализации и убедиться, что все друг друга поняли.
3. Рассуждения вслух.
Эта тема уже много где затрагивалась. Рассуждайте вслух, это во-первых может вас самих натолкнуть на новые мысли, а во-вторых, при необходимости интервьюер может скорректировал ход ваших мыслей в более верном направлении.
4. Аргументация выбора.
С этим по идее понятно, можете пересмотреть фидбек, там Серёга подробно про это говорит. Нужно уметь аргументировать свой выбор, но для этого вы должны понимать как работает выбранный вами инструмент/архитектура/паттерн, какие плюсы/минусы, для каких кейсов больше подходит и т.д.
Варианты стоп-фраз: "ну так все делают", "это популярный фреймворк", "это крутая библиотека/подход/паттерн", "так google/apple рекомендует делать" 😉
Полезные ссылки/посты
👉 Simple Framework For Mobile System Design Interviews (про который говорили в собесе)
👉 Mobile System Design Interviews Series
👉 System Design Interview For Mobile Engineers
👉 Тред с ресурсами по system design от Евгения Мацюка
YouTube
Собеседование Android system design
Экспертное собеседование в Android system design. Обсудят адаптацию system design под Android разработчика, будут проектировать библиотеку.
Интервьюер - Сергей Боиштян, AvitoTech, Senior Android Developer Experience Engineer
🔗 Ген партнер Android Broadcast…
Интервьюер - Сергей Боиштян, AvitoTech, Senior Android Developer Experience Engineer
🔗 Ген партнер Android Broadcast…
🔥24👍10👀1
Android App Starter Template
Еще один проект-шаблон, который может стать отправной точкой для новых проектов с использованием best practices разработки и чистой архитектурой. Это интерпретация и адаптация официальных рекомендаций по архитектуре от Google.
👉 Modularization
👉 Gradle Version Catalog
👉 Ktor
👉 Coroutines
👉 Jetpack Compose
👉 Hilt
👉 DataStore
👉 Testing
Код на GitHub → Android App Starter Template
Еще один проект-шаблон, который может стать отправной точкой для новых проектов с использованием best practices разработки и чистой архитектурой. Это интерпретация и адаптация официальных рекомендаций по архитектуре от Google.
👉 Modularization
👉 Gradle Version Catalog
👉 Ktor
👉 Coroutines
👉 Jetpack Compose
👉 Hilt
👉 DataStore
👉 Testing
Код на GitHub → Android App Starter Template
👍21🔥5⚡2
Easy SharedPreferences with Delegated Properties in Kotlin
Довольно популярный пример реализации Kotlin Delegated Properties для префов.
Смотреть (En)
Довольно популярный пример реализации Kotlin Delegated Properties для префов.
Смотреть (En)
👍12🤔3🔥2
Kotlin Coroutines Playlist
Плейлист с видеоуроками по корутинам. Большая часть видосов от 2020 года, что-то уже могло устареть, но в целом понять основы вполне себе норм 🔥
Смотреть (En)
Плейлист с видеоуроками по корутинам. Большая часть видосов от 2020 года, что-то уже могло устареть, но в целом понять основы вполне себе норм 🔥
Смотреть (En)
🔥7👍4👨💻2⚡1👎1
В AppMetrica добавили аналитику рекламной монетизации
Добавление данных по Ad Revenue в отчетах AppMetrica поможет оценить эффективность рекламной монетизации и найти способы ее улучшения.
Чем полезны данные по Ad Revenue:
• Помогут быстро оценить доход от монетизации в целом, или по раздельности от рекламы и встроенных покупок.
• Позволят отслеживать, как новые фичи влияют на изменение количества просмотров рекламы на пользователя и ARPU.
• Помогут находить наиболее эффективные рекламные сети, плейсменты и форматы по доходу от них.
Используйте данные по Ad Revenue в таких отчетах, как когорты, воронки, retention и User Acquisition, чтобы глубже оценить эффективность монетизации
Читать (Ru)
Добавление данных по Ad Revenue в отчетах AppMetrica поможет оценить эффективность рекламной монетизации и найти способы ее улучшения.
Чем полезны данные по Ad Revenue:
• Помогут быстро оценить доход от монетизации в целом, или по раздельности от рекламы и встроенных покупок.
• Позволят отслеживать, как новые фичи влияют на изменение количества просмотров рекламы на пользователя и ARPU.
• Помогут находить наиболее эффективные рекламные сети, плейсменты и форматы по доходу от них.
Используйте данные по Ad Revenue в таких отчетах, как когорты, воронки, retention и User Acquisition, чтобы глубже оценить эффективность монетизации
Читать (Ru)
🤮6👍5🔥1🎉1
Bottom sheet in iOS
Несколько статей про работу с Bottom sheet в iOS. В первой статье подробно описывается работа кастомного transitioning delegate для отображения любого контента в виде bottom sheet, а во второй рассказывается про организацию навигации внутри bottom sheet.
👉 Custom transitioning
👉 Navigation
Несколько статей про работу с Bottom sheet в iOS. В первой статье подробно описывается работа кастомного transitioning delegate для отображения любого контента в виде bottom sheet, а во второй рассказывается про организацию навигации внутри bottom sheet.
👉 Custom transitioning
👉 Navigation
🔥7👍3🤔1
iOS Ref – заметки по iOS-разработке
Подборка полезных заметок по iOS (особенности девайсов, версии инструментов, тулзы, ссылки на гайды, cheatsheets и прочее 💪).
Читать (En)
Подборка полезных заметок по iOS (особенности девайсов, версии инструментов, тулзы, ссылки на гайды, cheatsheets и прочее 💪).
Читать (En)
🔥8👍3⚡2
Jetpack Compose — When should I use derivedStateOf?
Статья с разбором и примерами, когда стоит использовать функцию derivedStateOf() из Jetpack Compose.
Читать (En)
Статья с разбором и примерами, когда стоит использовать функцию derivedStateOf() из Jetpack Compose.
Читать (En)
👍9🔥1🤔1
Оптимизируй или сдохни: профилирование и оптимизация Jetpack Compose
Статья с громким заголовком, Jetpack Compose не оставляет шансов 😀
Как профилировать и оптимизировать Jetpack Compose.
👉 Recomposition Counts: локализуем лишние рекомпозиции
👉 Compose Compiler Metrics: ищем причины лишних рекомпозиций
👉 Профилирование CPU: находим «тяжелые» методы и разгружаем процессор
👉 Профилирование GPU: узнаем, какие компоненты долго отрисовываютс
👉 Советы по устранению ошибок
Читать (Ru)
Статья с громким заголовком, Jetpack Compose не оставляет шансов 😀
Как профилировать и оптимизировать Jetpack Compose.
👉 Recomposition Counts: локализуем лишние рекомпозиции
👉 Compose Compiler Metrics: ищем причины лишних рекомпозиций
👉 Профилирование CPU: находим «тяжелые» методы и разгружаем процессор
👉 Профилирование GPU: узнаем, какие компоненты долго отрисовываютс
👉 Советы по устранению ошибок
Читать (Ru)
👍12🔥2😁2
Navigation with ViewModel when Jetpack Compose is the actor
Еще одна статья про навигацию в Jetpack Compose через ViewModel.
Код на GitHub → Сompose Nav Model
Читать (En)
Еще одна статья про навигацию в Jetpack Compose через ViewModel.
Код на GitHub → Сompose Nav Model
Читать (En)
👍12👎4🤔3🔥1
Как я несколько лет боролся с прокрастинацией и победил: полное практическое руководство
Решил я тут статью почитать и отложил на потом 😁
А если серьезно, не знаю насколько будет актуально кому-то из вас, но статья интересная и с полезными советами.
Читать (Ru)
Решил я тут статью почитать и отложил на потом 😁
А если серьезно, не знаю насколько будет актуально кому-то из вас, но статья интересная и с полезными советами.
Читать (Ru)
👍20😁6🤨2👎1
Как можно хранить стабы для MockWebServer в Android-тестах
QA Automation Engineer из мобильной платформенной команды Delivery Club поделился опытом подмены и хранения ответов бэкенда при UI-автоматизации тестирования курьерского Android-приложения.
В статье рассматриваются известные способы создания сетевых заглушек в Android-тестах, а также как их подключать и в чем плюсы и недостатки каждого из них.
Читать (Ru)
QA Automation Engineer из мобильной платформенной команды Delivery Club поделился опытом подмены и хранения ответов бэкенда при UI-автоматизации тестирования курьерского Android-приложения.
В статье рассматриваются известные способы создания сетевых заглушек в Android-тестах, а также как их подключать и в чем плюсы и недостатки каждого из них.
Читать (Ru)
👍7🔥3⚡1
Как настроить Charles
Подробный гайд по настройке и подключению Charles Proxy.
Если вдруг кто-то не занет или не пользовался, рекомендую попробовать. Из наиболее популярных функций, которыми чаще всего пользуются: подмена сертификата, моки ответов с бэка и мониторинг трафика.
Полезно как тестировщикам, так и разработчикам.
Читать (Ru)
Подробный гайд по настройке и подключению Charles Proxy.
Если вдруг кто-то не занет или не пользовался, рекомендую попробовать. Из наиболее популярных функций, которыми чаще всего пользуются: подмена сертификата, моки ответов с бэка и мониторинг трафика.
Полезно как тестировщикам, так и разработчикам.
Читать (Ru)
👍24🔥7⚡1
Игра в маляра, или Content-based color scheme: как цветовая схема приложения может меняться в зависимости от контента
А вот интересный пример, как можно сделать динамическую тему в приложении с генерацией цветовой схемы на основе контента (картинки) – аля Dynamic Colors из Material Design 3.
"Неожиданный плюс, который мы получили от нашей реализации, — она работает и на версиях младше Android 12 — в отличие от Dynamic Сolors на основании wallpapers" 🤘
Код на GitHub → Dynamic Theme Sample
Читать (Ru)
А вот интересный пример, как можно сделать динамическую тему в приложении с генерацией цветовой схемы на основе контента (картинки) – аля Dynamic Colors из Material Design 3.
"Неожиданный плюс, который мы получили от нашей реализации, — она работает и на версиях младше Android 12 — в отличие от Dynamic Сolors на основании wallpapers" 🤘
Код на GitHub → Dynamic Theme Sample
Читать (Ru)
👍10🔥2🤔1
Вам нужен чистый код? Используйте правило шести
Еща одна интересная статья, не совсем на профильную тему, но не менее актуальную. В статье на простом примере показывается (в контексте строк), как с помощью "правила шести" сделать код более чистым и понятным для восприятия.
Читать (Ru)
Еща одна интересная статья, не совсем на профильную тему, но не менее актуальную. В статье на простом примере показывается (в контексте строк), как с помощью "правила шести" сделать код более чистым и понятным для восприятия.
Читать (Ru)
👍8⚡1🔥1
Reorder items with Drag and Drop using SwiftUI
Простой пример реализации Drag and Drop в списке на SwiftUI.
Читать (En)
Простой пример реализации Drag and Drop в списке на SwiftUI.
Читать (En)
👍5🔥3👨💻1
This media is not supported in your browser
VIEW IN TELEGRAM
AutoSizing TextField in Jetpack compose
Пример реализации динамичного размера текста, подгоняемого под размеры поля ввода в Jetpack compose.
Читать (En)
Пример реализации динамичного размера текста, подгоняемого под размеры поля ввода в Jetpack compose.
Читать (En)
👍11🔥5⚡3
Introducing the Architecture Templates
Тут Гугл выпустил репозиторий с набором шаблонов, которые могут помочь стартануть проект с нуля или быстро проводить эксперименты.
Все проекты используют лучшие практики и соответствуют архитектурным рекомендациям от Гугла.
👉 Room Database
👉 Dependency injection with Hilt
👉 Jetpack ViewModel
👉 Jetpack Compose and Material3
👉 Jetpack Navigation
👉 Reactive data layer
👉 Kotlin Coroutines and Flow
👉 Unit tests
👉 UI tests with Hilt
👉 KTS gradle files
👉 Version catalog
Код на GitHub → Android Architecture Starter Templates
Читать (En)
Тут Гугл выпустил репозиторий с набором шаблонов, которые могут помочь стартануть проект с нуля или быстро проводить эксперименты.
Все проекты используют лучшие практики и соответствуют архитектурным рекомендациям от Гугла.
👉 Room Database
👉 Dependency injection with Hilt
👉 Jetpack ViewModel
👉 Jetpack Compose and Material3
👉 Jetpack Navigation
👉 Reactive data layer
👉 Kotlin Coroutines and Flow
👉 Unit tests
👉 UI tests with Hilt
👉 KTS gradle files
👉 Version catalog
Код на GitHub → Android Architecture Starter Templates
Читать (En)
👍25⚡3🔥3