👾 Как оживает смартфон
Вы когда-нибудь задумывались, что происходит в момент загрузки телефона? Какие этапы преодолевает система от простого нажатия кнопки включения до появления интерфейса? И как устройство готовится к полноценной работе?
Автор статьи рассказывает, что скрывается под капотом Android и показывает процесс его запуска.
👉 Читать статью
#новость #android
Вы когда-нибудь задумывались, что происходит в момент загрузки телефона? Какие этапы преодолевает система от простого нажатия кнопки включения до появления интерфейса? И как устройство готовится к полноценной работе?
Автор статьи рассказывает, что скрывается под капотом Android и показывает процесс его запуска.
👉 Читать статью
#новость #android
❤1
📲 Погружаемся в мир технологий Яндекс Переводчика
В этом подкасте ведущий Android-разработчик Яндекс Переводчика рассказывает о своем пути в разработку, об уникальных функциях приложения, включая перевод изображений и документов, а также интеграцию с камерой и браузером. Также вы узнаете о будущем переводных технологий в эру больших языковых моделей.
👀 Смотреть видео
#новость #android
В этом подкасте ведущий Android-разработчик Яндекс Переводчика рассказывает о своем пути в разработку, об уникальных функциях приложения, включая перевод изображений и документов, а также интеграцию с камерой и браузером. Также вы узнаете о будущем переводных технологий в эру больших языковых моделей.
👀 Смотреть видео
#новость #android
😁2❤1
Шаблон MVC предполагает разделение кода на 3 компонента. При создании класса/файла приложения разработчик должен отнести его к одному из следующих трёх уровней:
🔹 Модель:
Этот компонент хранит данные приложения. Он ничего не знает об интерфейсе. Модель отвечает за обработку логики предметной области (реальных бизнес-правил) и взаимодействие с базой данных и сетевыми уровнями.
🔹 Представление:
Это слой пользовательского интерфейса (UI), в котором содержатся компоненты, видимые на экране. Кроме того, он обеспечивает визуализацию данных, хранящихся в модели, и позволяет пользователю взаимодействовать с ними.
🔹 Контроллер:
Этот компонент устанавливает связь между Представлением и Моделью. Он содержит основную логику приложения, получает информацию о действиях пользователя и обновляет Модель в соответствии с потребностями.
Несмотря на применение схемы MVC для модульного проектирования приложения, уровни кода зависят друг от друга. В этом шаблоне Представление и Контроллер зависят от Модели. Для применения шаблона MVC в проекте можно использовать несколько подходов:
В MVC данные обновляет контроллер, а представление их только отображает. Модель отделена и тестируется независимо от UI. Если представление соблюдает принцип единой ответственности — лишь передаёт действия контроллеру и показывает данные без бизнес-логики — то его достаточно проверять UI-тестами.
#буст #SeniorView #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3❤1
Хотите быстро отследить, что происходит в приложении на устройстве или эмуляторе?
На помощь приходит простая команда:
adb logcat | grep "MyTag"
— Подключается к логам Android-устройства или эмулятора
— Фильтрует вывод по тегу (например,
MyTag, который вы используете в Log.d(...))— Показывает только нужные строки, чтобы не тонуть в море системных логов
— Нужно быстро найти крэш или баг прямо на реальном устройстве
— Хотите дебажить только свою часть логов, а не весь Android-спам
— Проверяете работу логирования перед релизом
Добавьте уровни логов для фильтрации:
adb logcat *:E # только ошибки
adb logcat *:W # предупреждения и выше
adb logcat в работе?#буст #JuniorKit #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
To Do — простое приложение для ведения дел на Jetpack Compose с настраиваемыми темами Material Design 3.
#буст #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👾1
Чтобы быстрее освоиться в Android Studio, держи подборку полезных сочетаний клавиш (Windows/Linux → Mac в скобках):
Ctrl + Shift + F (Cmd + Shift + F)Найдёшь любой фрагмент кода во всём проекте.
Ctrl + N (Cmd + O)Откроешь нужный класс по имени без лишней навигации.
Ctrl + Alt + L (Cmd + Option + L)Приводит код к читаемому виду по стилю проекта.
Ctrl + Space (Ctrl + Space)Экономит время, подсказывает методы и переменные.
Shift + F10 (Ctrl + R)Мгновенный запуск на эмуляторе или подключённом устройстве.
Освоив эти комбинации, ты будешь писать и навигироваться по проекту заметно быстрее
#буст #JuniorKit #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
👾 Шаблон архитектуры MVP
MVP (Model - View - Presenter) появился как альтернатива традиционному архитектурному паттерну MVC (Model - View - Controller). Используя MVC в качестве архитектуры приложения, разработчики сталкиваются со следующими трудностями:
🔘 Большая часть основной бизнес-логики находится в Controller. В течение жизненного цикла приложения этот файл становится всё больше и его становится сложно поддерживать.
🔘 Из-за тесной связки пользовательского интерфейса и механизмов доступа к данным, и Controller, и View оказываются в одной Activity или Fragment. Это создаёт проблемы при внесении изменений в функциональность приложения.
🔘 Становится трудно проводить модульное тестирование разных слоёв, так как большинство тестируемых частей зависят от компонентов Android SDK.
Паттерн MVP решает эти проблемы MVC и предоставляет простой способ структурировать код проекта. Причина, по которой MVP широко применяется, заключается в том, что он обеспечивает модульность, тестируемость и более чистую и удобную в сопровождении кодовую базу. Он состоит из следующих трёх компонентов:
🔹 Model: слой для хранения данных. Отвечает за обработку предметной логики (реальных бизнес-правил) и взаимодействие с базой данных и сетевым уровнем.
🔹 View: слой пользовательского интерфейса (UI). Он отвечает за визуализацию данных и отслеживает действия пользователя, чтобы уведомлять Presenter.
🔹 Presenter: получает данные из модели и применяет UI-логику, чтобы решить, что отображать. Он управляет состоянием View и выполняет действия в соответствии с уведомлениями о действиях пользователя.
🐸 Библиотека мобильного разработчика
#буст #SeniorView #Android
MVP (Model - View - Presenter) появился как альтернатива традиционному архитектурному паттерну MVC (Model - View - Controller). Используя MVC в качестве архитектуры приложения, разработчики сталкиваются со следующими трудностями:
Паттерн MVP решает эти проблемы MVC и предоставляет простой способ структурировать код проекта. Причина, по которой MVP широко применяется, заключается в том, что он обеспечивает модульность, тестируемость и более чистую и удобную в сопровождении кодовую базу. Он состоит из следующих трёх компонентов:
🔹 Model: слой для хранения данных. Отвечает за обработку предметной логики (реальных бизнес-правил) и взаимодействие с базой данных и сетевым уровнем.
🔹 View: слой пользовательского интерфейса (UI). Он отвечает за визуализацию данных и отслеживает действия пользователя, чтобы уведомлять Presenter.
🔹 Presenter: получает данные из модели и применяет UI-логику, чтобы решить, что отображать. Он управляет состоянием View и выполняет действия в соответствии с уведомлениями о действиях пользователя.
#буст #SeniorView #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🥱2😁1
Обрезка — это удаление частей контента за пределами заданной формы. Представьте, что вы используете формочки для печенья: всё, что находится внутри формочки, остаётся, а всё, что снаружи, удаляется.
В Compose это делается с помощью
Modifier.clip функции:Image(
painter = painterResource(R.drawable.avatar),
contentDescription = null,
modifier = Modifier
.size(72.dp)
.clip(CircleShape)
)
Здесь изображение обрезается по кругу, независимо от фактических границ растрового изображения.
Если встроенных фигур (
CircleShape, RoundedCornerShape и т. д.) недостаточно, вы можете создать собственную Shape и нарисовать свой собственный контур. Например:class SquishedOvalShape : Shape {
override fun createOutline(
size: Size,
layoutDirection: LayoutDirection,
density: Density
): Outline {
return Outline.Generic(
Path().apply {
addOval(Rect(0f, size.height / 4f, size.width, size.height))
}
)
}
}Примените его, как и любую другую форму:
Modifier.clip(SquishedOvalShape())
#PixelPerfect #MiddlePath #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
adb shell dumpsys package – детальная информация об установленном приложенииПолучайте полную техническую информацию о любом установленном приложении на Android-устройстве – от версий и разрешений до активности процессов.
1. Информация о версиях:
adb shell dumpsys package com.yourapp.package | grep -E "versionName|versionCode"
2. Проверка разрешений:
adb shell dumpsys package com.yourapp.package | grep -A 20 "requested permissions"
3. Информация о активностях и сервисах:
adb shell dumpsys package com.yourapp.package | grep -E "Activity|Service|Receiver"
4. Детали установки APK:
adb shell dumpsys package com.yourapp.package | grep -A 10 "Installation"
1. Только основные данные:
adb shell dumpsys package com.yourapp.package | head -50
2. Поиск конкретной активности:
adb shell dumpsys package com.yourapp.package | grep -B 5 -A 5 "MainActivity"
3. Информация о подписантах:
adb shell dumpsys package com.yourapp.package | grep -A 15 "Signatures"
dumpsys для отладки? Какие еще параметры dumpsys вам полезны?#буст #JuniorKit #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
👾 Погружаемся в недра Retrofit
Думаю, многие задумывались о том, что происходит с функциями в интерфейсе Retrofit сервиса, когда мы помечаем их ключевым словом suspend? У некоторых даже есть заблуждение, что для сетевых запросов в таком случае используется корутиновский Dispatchers.IO. Спойлер — это не совсем так.
➡️ В этой статье автор как раз разберёт, как всё работает на самом деле
🐸 Библиотека мобильного разработчика
#свежак #Android
Думаю, многие задумывались о том, что происходит с функциями в интерфейсе Retrofit сервиса, когда мы помечаем их ключевым словом suspend? У некоторых даже есть заблуждение, что для сетевых запросов в таком случае используется корутиновский Dispatchers.IO. Спойлер — это не совсем так.
#свежак #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4