Вопрос по Kotlin
#вопросы_с_собеседований
Что такое reified?
...............................................................................................................
reified — это ключевое слово, которое может быть использовано только в inline-функциях. reified позволяет получить информацию о типе generic-параметра во время выполнения программы. В обычном случае, информация о типах стирается и недоступна во время выполнения, но с помощью reified можно сохранять эту информацию и использовать в других частях приложения.
#вопросы_с_собеседований
Что такое reified?
...............................................................................................................
👍5🌚3❤1👾1
😎 Очередной #дайджест полезных статей мира Mobile:
👉 Анализ производительности для ускорения сборок в Xcode — Xcode Build Timeline для изменения скорости сборки, а Build Timing Summary для анализа производительности
👉 Swift 6: подготовьте ваши проекты к будущему — подготовить async/await, existential и макросы, а остальное уже по месту
👉 Jetpack Compose Tricks: модификаторы для Dynamic UIs — работа с модификаторами с примерами кода
👉 Ultron — простые, стабильные, поддерживаемые тесты Android UI
👉 Создание расширения Chrome с помощью Flutter — всего 5 этапов и приложение готово. Главное не забыть поддержку вэба включить 😉
👉 Домашняя автоматизация на Flutter — использование Flutter для отправки команд подключенным смарт-вилкам и устройствам, установленным по всему дому
👉 Анализ производительности для ускорения сборок в Xcode — Xcode Build Timeline для изменения скорости сборки, а Build Timing Summary для анализа производительности
👉 Swift 6: подготовьте ваши проекты к будущему — подготовить async/await, existential и макросы, а остальное уже по месту
👉 Jetpack Compose Tricks: модификаторы для Dynamic UIs — работа с модификаторами с примерами кода
👉 Ultron — простые, стабильные, поддерживаемые тесты Android UI
👉 Создание расширения Chrome с помощью Flutter — всего 5 этапов и приложение готово. Главное не забыть поддержку вэба включить 😉
👉 Домашняя автоматизация на Flutter — использование Flutter для отправки команд подключенным смарт-вилкам и устройствам, установленным по всему дому
❤2👍2
Кастомные модификаторы в Android Jetpack Compose
Модификаторы в Jetpack Compose — это функции, преобразующие или улучшающие поведение и внешний вид composable-материалов. Jetpack Compose поставляется со встроенными модификаторами, но пользовательские модификаторы позволяют расширить возможности фреймворка, создавая свои собственные индивидуальные изменения.
Зачем их применять?
Абстракция и переиспользование — модификаторы инкапсулируют сложное поведение или визуальные модификации в единую функцию. Эта абстракция способствует повторному использованию в различных частях вашего приложения.
Организация кода — обеспечивается чистота и упорядоченность кода за счет выделения определенного поведения внутри функции-модификатора. Такое разделение повышает удобство обслуживания и читабельность.
Компонуемость — инкапсулируя функциональность в пользовательские модификаторы, вы можете создавать модульные компоненты UI.
Подробнее
#новость
Модификаторы в Jetpack Compose — это функции, преобразующие или улучшающие поведение и внешний вид composable-материалов. Jetpack Compose поставляется со встроенными модификаторами, но пользовательские модификаторы позволяют расширить возможности фреймворка, создавая свои собственные индивидуальные изменения.
Зачем их применять?
Абстракция и переиспользование — модификаторы инкапсулируют сложное поведение или визуальные модификации в единую функцию. Эта абстракция способствует повторному использованию в различных частях вашего приложения.
Организация кода — обеспечивается чистота и упорядоченность кода за счет выделения определенного поведения внутри функции-модификатора. Такое разделение повышает удобство обслуживания и читабельность.
Компонуемость — инкапсулируя функциональность в пользовательские модификаторы, вы можете создавать модульные компоненты UI.
Подробнее
#новость
❤4
Konsist — это статический анализатор кода Kotlin. Он облегчает стандартизацию кода, применяя соглашения о кодировании и защищая архитектуру проекта. Позволяет выполнять проверку согласованности в виде модульных тестов, которые предназначены для выполнения на уровне запроса на извлечение (PR) в качестве проверки подлинности.
Софт пока в разработке, а статус можно узнать тут.
#новость
Софт пока в разработке, а статус можно узнать тут.
#новость
👍6
29 августа, в 18:30 пройдет митап iOS-разработчиков со специалистами из ЮMoney, Сбера и ВКонтакте.
Что будет:
➖ Четыре свежих доклада
➖ Опыт разработчиков ЮMoney, Сбера и ВКонтакте, общение со спикерами
➖ Вопросы и ответы
Доклады:
➖ Кодогенерация из OpenAPI — как перестать писать код для работы с API и подружиться с кодогенератором.
➖ Сердце Большого Проекта — как держать пульс технологий, управлять ростом и обеспечивать бесперебойность.
➖ Зачем автоверсионирование и как сделать его правильно — почему стоит сделать на проекте автоверсионирование и как его сделать, чтобы было удобно им пользоваться.
➖ Разработка платёжного SDK — как быстро встроить mSDK в мобильные сценарии, чтобы он был удобным способом принимать деньги.
Регистрация
Что будет:
➖ Четыре свежих доклада
➖ Опыт разработчиков ЮMoney, Сбера и ВКонтакте, общение со спикерами
➖ Вопросы и ответы
Доклады:
➖ Кодогенерация из OpenAPI — как перестать писать код для работы с API и подружиться с кодогенератором.
➖ Сердце Большого Проекта — как держать пульс технологий, управлять ростом и обеспечивать бесперебойность.
➖ Зачем автоверсионирование и как сделать его правильно — почему стоит сделать на проекте автоверсионирование и как его сделать, чтобы было удобно им пользоваться.
➖ Разработка платёжного SDK — как быстро встроить mSDK в мобильные сценарии, чтобы он был удобным способом принимать деньги.
Регистрация
❤3
История боли джунов не нова — их никто не берет на работу, как ее вообще искать, вакансий очень мало, после курсов обещают успешный успех сразу за порогом😞. Есть рекомендации врать на счет опыта, приукрасить свои навыки, но сказка закончится на первой задаче.
Нам попался видос, где объясняют, как честным путем попасть на первую работу, как пройти собес, что нужно знать и как не бояться, как оценивают, на что обращают внимание, что будет после стажировки.
Нам попался видос, где объясняют, как честным путем попасть на первую работу, как пройти собес, что нужно знать и как не бояться, как оценивают, на что обращают внимание, что будет после стажировки.
❤3😁2
Повышение качества кода iOS: 12 основных стратегий для разработчиков
Набор советов по наведению порядка в коде после которых, возможно, ПО не будет отваливаться от каждого неловкого движения. Среди них:
➖ Модульная организация с расширениями
➖ typealias для семантической ясности
➖ Force Unwrapping
➖ Интернационализация и управление сообщениями
Набор советов по наведению порядка в коде после которых, возможно, ПО не будет отваливаться от каждого неловкого движения. Среди них:
➖ Модульная организация с расширениями
➖ typealias для семантической ясности
➖ Force Unwrapping
➖ Интернационализация и управление сообщениями
❤5
Свежая подборка по Kotlin, Swift и кроссплатформе.
🔹 Мобильное приложение для сотрудников: спорт, игрушечное казино и собственный Twitter — как сконцентрировать все разнообразие контента из разных каналов и приложений в одном месте и параллельно сделать удобный инструмент
🔹 Переход Slack на сотовую архитектуру — способ увеличить избыточность и ограничить радиус действия сбоев сайта
🔹 Прослушивание событий жизненного цикла приложения во Flutter — новый класс AppLifecycleListener для прослушивания события жизненного цикла приложения Flutter
🔹 Создание расширения Chrome с помощью Flutter: Пошаговое руководство — преобразовываем проект Flutter в полнофункциональное расширение для Chrome
🔹 Пошаговое руководство по потокам и каналам Kotlin — связка socket.io, клиентского API и отображения сообщений при получении нового сообщение от сервера
🔹 Системные обновления Google Play для Android Runtime (ART) — речь пойдет о повышении производительности и последних исправлениях безопасности.
#дайджест
🔹 Мобильное приложение для сотрудников: спорт, игрушечное казино и собственный Twitter — как сконцентрировать все разнообразие контента из разных каналов и приложений в одном месте и параллельно сделать удобный инструмент
🔹 Переход Slack на сотовую архитектуру — способ увеличить избыточность и ограничить радиус действия сбоев сайта
🔹 Прослушивание событий жизненного цикла приложения во Flutter — новый класс AppLifecycleListener для прослушивания события жизненного цикла приложения Flutter
🔹 Создание расширения Chrome с помощью Flutter: Пошаговое руководство — преобразовываем проект Flutter в полнофункциональное расширение для Chrome
🔹 Пошаговое руководство по потокам и каналам Kotlin — связка socket.io, клиентского API и отображения сообщений при получении нового сообщение от сервера
🔹 Системные обновления Google Play для Android Runtime (ART) — речь пойдет о повышении производительности и последних исправлениях безопасности.
#дайджест
❤4
#холивар
Вдохновившись темой: «Насколько необходимы основы программирования, та самая база?» и необходимостью алгоритмов, презирании этой темы в сообществе, решили спросить у вас, что вы думаете?
Негатив вокруг этого формата интервью стал настолько велик, что теперь часто можно встретить людей, испытывающих неприязнь к самой теории, которая не имеет ничего общего с непонятными головомками в программировании. А это вредит в том числе и индивидуальной карьере инженеров, которым говорят держаться подальше от этих знаний по причинам, не поддающимся логике.
В сети можно встретить такое:
🔹 Теория не отражает того, что человек будет делать на самом деле в своей работе.
🔹 Знание теории не является показателем мастерства человека в данной практической роли.
🔹 Теория вообще бессмысленна. Зачем разработчику iOS знать, что такое граф?
Всё это создает у людей впечатление, что основы бесполезны, в то время как на самом деле они используют их постоянно!
Так действительно ли нужно всё это знать? Ждем ваши реакции в комментариях 💪
Вдохновившись темой: «Насколько необходимы основы программирования, та самая база?» и необходимостью алгоритмов, презирании этой темы в сообществе, решили спросить у вас, что вы думаете?
Негатив вокруг этого формата интервью стал настолько велик, что теперь часто можно встретить людей, испытывающих неприязнь к самой теории, которая не имеет ничего общего с непонятными головомками в программировании. А это вредит в том числе и индивидуальной карьере инженеров, которым говорят держаться подальше от этих знаний по причинам, не поддающимся логике.
В сети можно встретить такое:
🔹 Теория не отражает того, что человек будет делать на самом деле в своей работе.
🔹 Знание теории не является показателем мастерства человека в данной практической роли.
🔹 Теория вообще бессмысленна. Зачем разработчику iOS знать, что такое граф?
Всё это создает у людей впечатление, что основы бесполезны, в то время как на самом деле они используют их постоянно!
Так действительно ли нужно всё это знать? Ждем ваши реакции в комментариях 💪
👍3🤔3❤2
Чего следует ожидать от мероприятие Apple, которое состоится 12 сентября?
Анимированное лого крутое сообразили — это факт 🔥💪
Что еще:
🔹 iPhone 15 Pro, iPhone 15 Pro Max и/или iPhone 15 Ultra
🔹 iPhone 15 и iPhone 15 Plus
🔹 Apple Watch Series 9 и Apple Watch Ultra
🔹 iPad, iPad Pro и iPad mini
🔹 возможно что-то еще, но это пока покрыто тайной 😉
Анимированное лого крутое сообразили — это факт 🔥💪
Что еще:
🔹 iPhone 15 Pro, iPhone 15 Pro Max и/или iPhone 15 Ultra
🔹 iPhone 15 и iPhone 15 Plus
🔹 Apple Watch Series 9 и Apple Watch Ultra
🔹 iPad, iPad Pro и iPad mini
🔹 возможно что-то еще, но это пока покрыто тайной 😉
🔥3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🤖🤔 Знаете, как реализовать анимацию встряхивания в Composable? В этом туториале все разжевывается.
В Jetpack Compose это очень легко реализовать с помощью функций анимации, которую можно применить для привлечения внимания к любому элементу. Здесь вы узнаете, как этого добиться, а также построите систему, позволяющую легко создавать трясущуюся анимацию с помощью кастомного модификатора.
В Jetpack Compose это очень легко реализовать с помощью функций анимации, которую можно применить для привлечения внимания к любому элементу. Здесь вы узнаете, как этого добиться, а также построите систему, позволяющую легко создавать трясущуюся анимацию с помощью кастомного модификатора.
❤5👍3
Тренировки по алгоритмам от Яндекса. «Сложность, тестирование, особые случаи»
В обучалке пока 12 уроков, все длинные, полезные и познавательные, поскольку алгоритмы знать не помешает любому разработчику — это базовые навыки.
Содержание этого видоса:
10:40 01. Сложность алгоритмов
15:01 Задача. Поиск самого частого символа
15:32 Решение #1
20:57 Решение #2
24:55 Решение #3
30:39 02. Особые случаи
32:19 Сумма последовательности
33:37 Максимум последовательности
35:04 03. Тестирование
38:11 Советы по составлению тестов
41:36 Покрытие тестами. Квадратное уравнение
42:31 Решение #1
42:57 Решение #2
43:55 Решение #3
44:38 Решение #4
45:58 Решение #5
46:56 Решение #6
47:44 Решение #7
48:54 Решение #8
49:27 Поиск самого частого символа
52:39 Ответы на вопросы
#лекция
В обучалке пока 12 уроков, все длинные, полезные и познавательные, поскольку алгоритмы знать не помешает любому разработчику — это базовые навыки.
Содержание этого видоса:
10:40 01. Сложность алгоритмов
15:01 Задача. Поиск самого частого символа
15:32 Решение #1
20:57 Решение #2
24:55 Решение #3
30:39 02. Особые случаи
32:19 Сумма последовательности
33:37 Максимум последовательности
35:04 03. Тестирование
38:11 Советы по составлению тестов
41:36 Покрытие тестами. Квадратное уравнение
42:31 Решение #1
42:57 Решение #2
43:55 Решение #3
44:38 Решение #4
45:58 Решение #5
46:56 Решение #6
47:44 Решение #7
48:54 Решение #8
49:27 Поиск самого частого символа
52:39 Ответы на вопросы
#лекция
👍7❤1
💼🚫 Устроился на работу, но она разонравилась: 8 советов, что делать
Несколько советов, как адаптироваться и понять, стоит ли оставаться или лучше уволиться.
Читать статью
Несколько советов, как адаптироваться и понять, стоит ли оставаться или лучше уволиться.
Читать статью
👍9❤1
Лучший способ просить повышение
Anonymous Poll
25%
Принести контр-оффер
6%
Усердно работать, чтобы заметили
6%
Не знаю
31%
Сменить работу
5%
Свой бизнес
16%
Показать свою ценность на этой работе
8%
Обратиться к высшему начальнику
3%
Свой вариант
👍4❤1
Создатель C++ Бьярне Страуструп поделился 👍👍 ценными жизненными советами, которыми могли бы воспользоваться все разработчики (и не только разработчики), независимо от их многолетнего опыта.
✏️ Не углубляйтесь в одно направление. Мы не знаем будущего, а наша карьера и жизнь — долгосрочная штука. Нужно и гвоздь уметь забить, грубо говоря😉. Будьте гибкими. Заводите знакомства вне компьютера, а лучше вообще не связанные с вашей деятельностью.
✏️ Больше общайтесь, доносите свои идеи, умейте слышать и слушать. Если вы напишете лучший код, и будете уметь делать только это, мир не изменится только благодаря этому.
✏️ Никогда не жалейте о чем-то, тем более, о потраченном времени на другие направления. Найдите время, чтобы вести сбалансированную жизнь и будьте готовы к новым возможностям.
✏️ Широкий набор навыков, приобретённых во время обучения, можно будет применить позже, когда придёт время. Сам Бьярне знал и изучал горы языков, предметов и информации, которые были полезны в разные периоды жизни.
✏️ Не углубляйтесь в одно направление. Мы не знаем будущего, а наша карьера и жизнь — долгосрочная штука. Нужно и гвоздь уметь забить, грубо говоря😉. Будьте гибкими. Заводите знакомства вне компьютера, а лучше вообще не связанные с вашей деятельностью.
✏️ Больше общайтесь, доносите свои идеи, умейте слышать и слушать. Если вы напишете лучший код, и будете уметь делать только это, мир не изменится только благодаря этому.
✏️ Никогда не жалейте о чем-то, тем более, о потраченном времени на другие направления. Найдите время, чтобы вести сбалансированную жизнь и будьте готовы к новым возможностям.
✏️ Широкий набор навыков, приобретённых во время обучения, можно будет применить позже, когда придёт время. Сам Бьярне знал и изучал горы языков, предметов и информации, которые были полезны в разные периоды жизни.
👍13❤3
А/Б тесты продуктовых и маркетинговых гипотез и внедрение изменений прямо в интерфейсе сервиса AppMetrica
В основе новой фичи «А/Б экспериментов» лежит «Конфигурация флагов». С её помощью можно задавать конкретные параметры тестирования: сделать флаг для нового рекламного баннера, раздела в интерфейсе.
Так продакт-менеджеры и аналитики смогут принимать более взвешенные и эффективные решения об изменениях, опираясь на статистику влияния на продуктовые метрики.
Начать пользоваться фичей в AppMetrica можно бесплатно: доступны 2 одновременных А/Б теста с выставлением 2 флагов. В платной версии масштабы увеличиваются до 2 000 различных флагов и 100 одновременных экспериментов.
В основе новой фичи «А/Б экспериментов» лежит «Конфигурация флагов». С её помощью можно задавать конкретные параметры тестирования: сделать флаг для нового рекламного баннера, раздела в интерфейсе.
Так продакт-менеджеры и аналитики смогут принимать более взвешенные и эффективные решения об изменениях, опираясь на статистику влияния на продуктовые метрики.
Начать пользоваться фичей в AppMetrica можно бесплатно: доступны 2 одновременных А/Б теста с выставлением 2 флагов. В платной версии масштабы увеличиваются до 2 000 различных флагов и 100 одновременных экспериментов.
Хабр
В AppMetrica появились А/Б тесты для анализа приложений
В сервисе AppMetrica появились А/Б тесты. Раздел называется «А/Б эксперименты» и теперь в сервисе для аналитики мобильных приложений можно не только анализировать данные работы...
👍5❤1🥱1
😎 Очередной #дайджест по Kotlin, Swift и кроссплатформе.
✍️ Появился Dagger 2.48 — выполнено несколько крупных фиксов и включает в себя альфа-версию процессоров Dagger и Hilt KSP
✍️ Разработка под ОС АВРОРА — установка Aurora SDK, где найти примеры приложений на Аврору, пара слов о документации Авроры, запуск первого приложения
✍️ Lottielab — инструмент для создания анимаций, позволяет импортировать или создать свои с нуля.
✍️ Swift UI переходы с эффектом искажения и металлическими шейдерами — суммарный эффект .distortionEffect + .overlay + .stroke
✍️ Фундаментальное руководство по пакетам в Java — серьезный материал по назначению пакетов, правилам создания, импорту классов и компиляции с запуском
✍️ Анимированный Circular Progress Indicator на Jetpack Compose — индикатор с анимированным статусом выполнения на основе текущего и максимального значений.
✍️ Появился Dagger 2.48 — выполнено несколько крупных фиксов и включает в себя альфа-версию процессоров Dagger и Hilt KSP
✍️ Разработка под ОС АВРОРА — установка Aurora SDK, где найти примеры приложений на Аврору, пара слов о документации Авроры, запуск первого приложения
✍️ Lottielab — инструмент для создания анимаций, позволяет импортировать или создать свои с нуля.
✍️ Swift UI переходы с эффектом искажения и металлическими шейдерами — суммарный эффект .distortionEffect + .overlay + .stroke
✍️ Фундаментальное руководство по пакетам в Java — серьезный материал по назначению пакетов, правилам создания, импорту классов и компиляции с запуском
✍️ Анимированный Circular Progress Indicator на Jetpack Compose — индикатор с анимированным статусом выполнения на основе текущего и максимального значений.
👍6❤1
🌍🌐 Разрабатываем карты в Android-приложении
Существует кроссплатформенная библиотека, позволяющая использовать картографические данные и технологии в мобильных приложениях — это Yandex MapKit. Штука очень масштабная, и разработчику, впервые столкнувшемуся с ней, заставить Яндекс-карты работать, может показаться сложной в использовании.
Начало
Чтобы создать и запустить приложение понадобится:
➖ Получить ключ;
➖ Установить библиотеку MapKit;
➖ Настроить библиотеку;
➖ Собрать и запустить приложение.
Особенности:
🔹 Необходим базовый уровень Kotlin; умение собрать проект, запустить приложение на эмуляторе или телефоне, загрузить необходимые библиотеки; View Binding.
🔹 Нельзя скрывать логотип Яндекса на карте; в приложении в разделе «о программе» должна быть ссылка на условия использования Яндекс-карт.
🔹 API-ключ должен быть задан единожды перед инициализацией MapKitFactory. Хорошо бы задать ключ при запуске приложения в методе Application.onCreate(), а инициализировать уже в других необходимых активити и фрагментах. Если же при каких-то условиях будет повторно вызван MapKitFactory.setApiKey("Ваш API-ключ"), вы получите краш приложения и ошибку в логах: "java.lang.AssertionError: You need to set the API key before using MapKit!".
🔹 Если логика и API-ключ находятся в одном активити/фрагменте, раздувать макет необходимо только после установки ключа.
🔹 Выполнять проверку установки ключа при пересоздания активити/фрагмента, например, для вызова метода MapKitFactory.setApiKey("Ваш API-ключ").
Подробнее
#туториал
Существует кроссплатформенная библиотека, позволяющая использовать картографические данные и технологии в мобильных приложениях — это Yandex MapKit. Штука очень масштабная, и разработчику, впервые столкнувшемуся с ней, заставить Яндекс-карты работать, может показаться сложной в использовании.
Начало
Чтобы создать и запустить приложение понадобится:
➖ Получить ключ;
➖ Установить библиотеку MapKit;
➖ Настроить библиотеку;
➖ Собрать и запустить приложение.
Особенности:
🔹 Необходим базовый уровень Kotlin; умение собрать проект, запустить приложение на эмуляторе или телефоне, загрузить необходимые библиотеки; View Binding.
🔹 Нельзя скрывать логотип Яндекса на карте; в приложении в разделе «о программе» должна быть ссылка на условия использования Яндекс-карт.
🔹 API-ключ должен быть задан единожды перед инициализацией MapKitFactory. Хорошо бы задать ключ при запуске приложения в методе Application.onCreate(), а инициализировать уже в других необходимых активити и фрагментах. Если же при каких-то условиях будет повторно вызван MapKitFactory.setApiKey("Ваш API-ключ"), вы получите краш приложения и ошибку в логах: "java.lang.AssertionError: You need to set the API key before using MapKit!".
🔹 Если логика и API-ключ находятся в одном активити/фрагменте, раздувать макет необходимо только после установки ключа.
🔹 Выполнять проверку установки ключа при пересоздания активити/фрагмента, например, для вызова метода MapKitFactory.setApiKey("Ваш API-ключ").
Подробнее
#туториал
👍6❤1
Со всеми хоть раз бывало, что хочется узнать, как написан UI в приложение, какие инструменты использованы и прочее.
Узнать всю поднаготину можно на своем любимом девайсе, активировав в настройках разработчика Layout Bounds.
Как активировать
На сайте Android, есть дока с подробностями, но в целом, это делается так:
🔹 Google Pixel: Настройки > О телефоне > Номер сборки
🔹 Samsung Galaxy S8 и старше: Настройки > О телефоне > Информация о ПО > Номер сборки
🔹 LG G6 и старше: Настройки > О телефоне > Информация о ПО > Номер сборки
🔹 HTC U11 и старше: Настройки > Информация о ПО > Далее > Номер сборки или Настройки > Система > О телефоне > Информация о ПО > Далее > Номер сборки
🔹 OnePlus 5T и старше: Настройки > О телефоне > Номер сборки
И тыкаем по номеру сборки, пока не появится сообщение. Теперь все включено и можно идти активировать Layout Bounds.
Отображение границ макета
Обычно он отображается в разделе системных настроек. Кроме того, его можно найти в разделе «Для разработчиков» в разделе «Система и обновления».
Перейдите к опции «Показывать границы макета» в разделе «Рисование» и включите ее. Теперь все, что отображается на экране, будет обведено различными цветными рамками.
Подробнее тут
#туториал
Узнать всю поднаготину можно на своем любимом девайсе, активировав в настройках разработчика Layout Bounds.
Как активировать
На сайте Android, есть дока с подробностями, но в целом, это делается так:
🔹 Google Pixel: Настройки > О телефоне > Номер сборки
🔹 Samsung Galaxy S8 и старше: Настройки > О телефоне > Информация о ПО > Номер сборки
🔹 LG G6 и старше: Настройки > О телефоне > Информация о ПО > Номер сборки
🔹 HTC U11 и старше: Настройки > Информация о ПО > Далее > Номер сборки или Настройки > Система > О телефоне > Информация о ПО > Далее > Номер сборки
🔹 OnePlus 5T и старше: Настройки > О телефоне > Номер сборки
И тыкаем по номеру сборки, пока не появится сообщение. Теперь все включено и можно идти активировать Layout Bounds.
Отображение границ макета
Обычно он отображается в разделе системных настроек. Кроме того, его можно найти в разделе «Для разработчиков» в разделе «Система и обновления».
Перейдите к опции «Показывать границы макета» в разделе «Рисование» и включите ее. Теперь все, что отображается на экране, будет обведено различными цветными рамками.
Подробнее тут
#туториал
❤25🔥14🥰13👏10👍5