Вы Android-разработчик и хотите делиться знаниями с другими?
Станьте автором курсов в Яндекс Практикуме — создавайте и улучшайте образовательный контент и влияйте на формирование индустрии.
Частичная занятость (2-3 часа в день)
Что делать?
Помимо теории нужно будет придумывать квизы, тесты, практические задания, дополняя это примерами из вашей профессиональной жизни.
Почему вам стоит стать автором курса?
● Помощь тысячам людей получить востребованную IT-профессию.
● Прокачка себя и подтверждение своей экспертности.
● Дополнительных доход на удалёнке.
Откликайтесь по ссылке https://practicum.yandex.ru/job/vacancy-105
Станьте автором курсов в Яндекс Практикуме — создавайте и улучшайте образовательный контент и влияйте на формирование индустрии.
Частичная занятость (2-3 часа в день)
Что делать?
Помимо теории нужно будет придумывать квизы, тесты, практические задания, дополняя это примерами из вашей профессиональной жизни.
Почему вам стоит стать автором курса?
● Помощь тысячам людей получить востребованную IT-профессию.
● Прокачка себя и подтверждение своей экспертности.
● Дополнительных доход на удалёнке.
Откликайтесь по ссылке https://practicum.yandex.ru/job/vacancy-105
🔥2👍1
🎧Топ-7 плагинов для Android Studio
1. ADB Idea
ADB Idea – это плагин, созданный для Android Studio и Intellij IDEA с целью упрощения процесса разработки под андроид. Он позволяет выполнять различные необходимые действия одним щелчком мыши, вместо того чтобы создавать их с нуля, что в конечном итоге ускоряет процесс разработки.
2. CodeGlance
CodeGlance – это своего рода мини-карта всего кода, которая позволяет с первого взгляда увидеть весь блок кода. После включения CodeGlance весь код отображается сбоку экрана в формате миникарты, откуда можно быстро перейти к нужному участку кода, выбрав его в поле CodeGlance. CodeGlance также отображает цвет блоков, что делает его еще более понятным и продуктивным.
3. Key Promoter X
При работе над проектами Android Key Promoter X помогает добиться необходимых сочетаний клавиш. Key Promoter X отображает сочетание клавиш, которое следовало бы использовать вместо того, чтобы нажать на кнопку в IDE с помощью мыши.
4. Scala
Sbt-android – это основной инструмент, используемый для создания Android-приложений на Scala. С помощью задач sbt этот плагин предлагает вам быстро собрать и запустить ваше приложение из консоли sbt. Что еще лучше, он автоматически загружает и обновляет Android SDK за вас. Как создать новый проект с помощью sbt-android и как настроить IntelliJ, очень хорошо объясняется в README в репозитории GitHub (или Android Studio).
5. IdeaVim
IdeaVim предлагает поддержку широкого спектра возможностей Vim, включая клавиши движения, удаление/изменение, метки, регистры, некоторые команды Ex, регексы Vim, конфигурацию через /.ideavimrc, макросы, плагины Vim и т.д.
6. Android Input
При разработке приложений для Android часто возникает необходимость ввода текста для тестирования определенных функций или функциональности на реальном устройстве Android или эмуляторе.
7. Android Drawable Preview
Android Drawable Preview вставляет превьюшки используемых рисованных файлов вместо стандартных иконок файлов в представлении проекта. Чтобы узнать, какой именно файл вы использовали, просто просмотрите папки в представлении проекта при использовании плагина.
🙌Плагины улучшают процесс работы и повышают производительность, но их избыточное количество может негативно сказаться на результативности. Для предотвращения этого следует разумно подойти к выбору плагинов и использовать только лучшие из них.
https://itmozg.ru/top-7-plaginov-dlja-android-studio/
1. ADB Idea
ADB Idea – это плагин, созданный для Android Studio и Intellij IDEA с целью упрощения процесса разработки под андроид. Он позволяет выполнять различные необходимые действия одним щелчком мыши, вместо того чтобы создавать их с нуля, что в конечном итоге ускоряет процесс разработки.
2. CodeGlance
CodeGlance – это своего рода мини-карта всего кода, которая позволяет с первого взгляда увидеть весь блок кода. После включения CodeGlance весь код отображается сбоку экрана в формате миникарты, откуда можно быстро перейти к нужному участку кода, выбрав его в поле CodeGlance. CodeGlance также отображает цвет блоков, что делает его еще более понятным и продуктивным.
3. Key Promoter X
При работе над проектами Android Key Promoter X помогает добиться необходимых сочетаний клавиш. Key Promoter X отображает сочетание клавиш, которое следовало бы использовать вместо того, чтобы нажать на кнопку в IDE с помощью мыши.
4. Scala
Sbt-android – это основной инструмент, используемый для создания Android-приложений на Scala. С помощью задач sbt этот плагин предлагает вам быстро собрать и запустить ваше приложение из консоли sbt. Что еще лучше, он автоматически загружает и обновляет Android SDK за вас. Как создать новый проект с помощью sbt-android и как настроить IntelliJ, очень хорошо объясняется в README в репозитории GitHub (или Android Studio).
5. IdeaVim
IdeaVim предлагает поддержку широкого спектра возможностей Vim, включая клавиши движения, удаление/изменение, метки, регистры, некоторые команды Ex, регексы Vim, конфигурацию через /.ideavimrc, макросы, плагины Vim и т.д.
6. Android Input
При разработке приложений для Android часто возникает необходимость ввода текста для тестирования определенных функций или функциональности на реальном устройстве Android или эмуляторе.
7. Android Drawable Preview
Android Drawable Preview вставляет превьюшки используемых рисованных файлов вместо стандартных иконок файлов в представлении проекта. Чтобы узнать, какой именно файл вы использовали, просто просмотрите папки в представлении проекта при использовании плагина.
🙌Плагины улучшают процесс работы и повышают производительность, но их избыточное количество может негативно сказаться на результативности. Для предотвращения этого следует разумно подойти к выбору плагинов и использовать только лучшие из них.
https://itmozg.ru/top-7-plaginov-dlja-android-studio/
👍6🔥4❤1
🌘🌘 По ту сторону фидбека: как проходят Android-собеседования и чего ждут от кандидатов
Пока вы ищете работу, работодатель ищет себе крутого профессионала, и желательно с первого раза.
На собесе вы проходите несколько этапов: изучение резюме, скрининг, общение с рекрутером, знакомство с командой, и в конце вас ждет босс💪 - технический специалист.
В статье рассказано, что хотят слышать собеседующие, как их покорить.
Читать
@android_its
Пока вы ищете работу, работодатель ищет себе крутого профессионала, и желательно с первого раза.
На собесе вы проходите несколько этапов: изучение резюме, скрининг, общение с рекрутером, знакомство с командой, и в конце вас ждет босс💪 - технический специалист.
В статье рассказано, что хотят слышать собеседующие, как их покорить.
Читать
@android_its
👍5❤2🔥1
Список материалов и ресурсов по безопасности Android, предназначенных для пентестеров и охотников за ошибками.
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥2
Собеседование Middle Android разработчика
Что такое настоящий опыт в мире Android? Какие нюансы и тонкости создания кода в IDE могут стать решающими на собеседовании? Ответы на эти и другие вопросы ждут вас в этом видео.
#android
https://www.youtube.com/watch?v=ZqLyxt3XTZQ
@android_its
Что такое настоящий опыт в мире Android? Какие нюансы и тонкости создания кода в IDE могут стать решающими на собеседовании? Ответы на эти и другие вопросы ждут вас в этом видео.
#android
https://www.youtube.com/watch?v=ZqLyxt3XTZQ
@android_its
👍6❤1👎1🔥1
Курс «Английский для разработчиков» Яндекс Практикума
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋ Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋ Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
❤1👍1👎1
1. Как проходить курс?
2. Установка и настройка Android Studio
3. Установка Android Virtual Device
4. HelloWorld
5. Структура проекта
6. Запуск приложения на смартфоне
7. Файл AndroidManifest.xml
8. Файлы Layout и рисование интерфейса
9. Размеры и позиционирование элементов
10. Создание пользовательского интерфейса
#video #android
▪Video
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6💩2👍1🔥1
Media is too big
VIEW IN TELEGRAM
00:00 Вступление
00:40 Размер Android приложения
01:32 AvitoTech
02:12 Картинки
06:22 Шрифты
08:20 Поддерживаемые конфигурации для ресурсов
09:09 Дублирование ресурсов
09:41 Оптимизация через Tint
10:16 Удаление неиспользуемых ресурсов из проекта
11:49 Оптимизации кода
15:54 Удаление мусора в сборке
16:51 Сравнение размеров APK
17:38 Заключение
📌 Источник
#Android
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2
⏏ Создание анимированной кнопки-счетчика в Jetpack Compose
🟠 Создание базового макета
Начнем с создания базового макета без функций анимации и перетаскивания. Можно разделить дизайн на два основных компонента: перетаскиваемый ползунок и округлый макет кнопки с иконками уменьшения, сброса и увеличения.
Понадобится также корневой макет для хранения этих двух компонентов. Поскольку кнопка сброса скрыта под перетаскиваемым ползунком, а ползунок можно перетаскивать по вертикали за пределы кнопки, мы будем использовать компонент Box, позволяющий реализовать перекрывающиеся элементы.
Первоначальная composable корневого макета:
🟠 Теперь рассмотрим composable ButtonContainer, в которой размещаются кнопки-иконки. Будем использовать компонент Row, поскольку три кнопки должны располагаться горизонтально. Arrangement.SpaceBetween поможет горизонтально расположить кнопки в начале, центре и конце макета. Кнопки представлены как composable IconControlButton, которая является просто оберткой IconButton.
ПРИМЕЧАНИЕ: ЧТОБЫ ПРИМЕНИТЬ ТАКИЕ ЖЕ ИКОНКИ, ДОБАВЬТЕ В ПРОЕКТ ЗАВИСИМОСТЬ ANDROIDX.COMPOSE.MATERIAL:MATERIAL-ICONS-EXTENDED ИЛИ ИКОНКИ ВРУЧНУЮ.
Мы будем использовать модификатор clip(RoundedCornerShape()) для получения необходимой формы фона, а также зададим цвет фона. Изменим альфа-канал цветового насыщения фона, поскольку позже понадобится анимировать его при перетаскивании ползунка. То же самое касается насыщенности цвета кнопок. Кнопку сброса пока скроем, так как будем работать над ее логикой потом.
ПРИМЕЧАНИЕ: НЕ РЕКОМЕНДУЕТСЯ ХАРДКОДИТЬ ЦВЕТА ПОДОБНЫМ ОБРАЗОМ, ТАК КАК ЭТО ВЫЗОВЕТ ПРОБЛЕМЫ СО СВЕТЛОЙ/ТЕМНОЙ ТЕМОЙ. В ДАННОМ ПРИМЕРЕ ЭТО ДЕЛАЕТСЯ ТОЛЬКО ДЛЯ ТОГО, ЧТОБЫ МАКСИМАЛЬНО СОКРАТИТЬ КОД.
Composable контейнера кнопки:
📌 Продолжение
@android_its
Начнем с создания базового макета без функций анимации и перетаскивания. Можно разделить дизайн на два основных компонента: перетаскиваемый ползунок и округлый макет кнопки с иконками уменьшения, сброса и увеличения.
Понадобится также корневой макет для хранения этих двух компонентов. Поскольку кнопка сброса скрыта под перетаскиваемым ползунком, а ползунок можно перетаскивать по вертикали за пределы кнопки, мы будем использовать компонент Box, позволяющий реализовать перекрывающиеся элементы.
Первоначальная composable корневого макета:
@Composable
private fun CounterButton(
value: String,
modifier: Modifier = Modifier
) {
Box(
contentAlignment = Alignment.Center,
modifier = modifier
.width(200.dp)
.height(80.dp)
) {
ButtonContainer(
onValueDecreaseClick = { /*TODO*/ },
onValueIncreaseClick = { /*TODO*/ },
onValueClearClick = { /*TODO*/ },
modifier = Modifier
)
DraggableThumbButton(
value = value,
onClick = { /*TODO*/ },
modifier = Modifier.align(Alignment.Center)
)
}
}
ПРИМЕЧАНИЕ: ЧТОБЫ ПРИМЕНИТЬ ТАКИЕ ЖЕ ИКОНКИ, ДОБАВЬТЕ В ПРОЕКТ ЗАВИСИМОСТЬ ANDROIDX.COMPOSE.MATERIAL:MATERIAL-ICONS-EXTENDED ИЛИ ИКОНКИ ВРУЧНУЮ.
Мы будем использовать модификатор clip(RoundedCornerShape()) для получения необходимой формы фона, а также зададим цвет фона. Изменим альфа-канал цветового насыщения фона, поскольку позже понадобится анимировать его при перетаскивании ползунка. То же самое касается насыщенности цвета кнопок. Кнопку сброса пока скроем, так как будем работать над ее логикой потом.
ПРИМЕЧАНИЕ: НЕ РЕКОМЕНДУЕТСЯ ХАРДКОДИТЬ ЦВЕТА ПОДОБНЫМ ОБРАЗОМ, ТАК КАК ЭТО ВЫЗОВЕТ ПРОБЛЕМЫ СО СВЕТЛОЙ/ТЕМНОЙ ТЕМОЙ. В ДАННОМ ПРИМЕРЕ ЭТО ДЕЛАЕТСЯ ТОЛЬКО ДЛЯ ТОГО, ЧТОБЫ МАКСИМАЛЬНО СОКРАТИТЬ КОД.
Composable контейнера кнопки:
📌 Продолжение
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥2👍1
Очень полезная шпаргалка для собеседования по Android - Вопросы для собеседования по Android
▪Github
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Droidian
Droidian - это дистрибутив GNU/Linux, разработанный на базе Debian, специально для использования на мобильных устройствах, основанных на Mobian.
Основная цель Droidian заключается в том, чтобы позволить пользователям запускать Debian на своих Android-телефонах.
Для достижения этой цели Droidian использует уже установленные и признанные технологии, такие как libhybris и Halium.
4pda⬅️
Поддерживаемые устройства⬅️
@android_its
Droidian - это дистрибутив GNU/Linux, разработанный на базе Debian, специально для использования на мобильных устройствах, основанных на Mobian.
Основная цель Droidian заключается в том, чтобы позволить пользователям запускать Debian на своих Android-телефонах.
Для достижения этой цели Droidian использует уже установленные и признанные технологии, такие как libhybris и Halium.
4pda
Поддерживаемые устройства
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
Ускоряем сборку за счёт миграции с kapt на ksp
#android #build #kapt #ksp #performance
https://habr.com/ru/companies/hh/articles/755952/
#android #build #kapt #ksp #performance
https://habr.com/ru/companies/hh/articles/755952/
Хабр
Ускоряем сборку за счёт миграции с kapt на ksp
Всем привет, меня зовут Катя Гущина, я Android-разработчик hh.ru. Хочу поделиться нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте. В этой...
👍4🔥1
🔥 Дайджест полезных материалов из мира : Android за неделю
Почитать:
— Используем UI-тесты для поиска утечек
— Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
— Vivaldi 6.2 для Android — Внимание к деталям
— Библиотека «Jetpack Compose» для начинающего Android-разработчика
— Запускаем IDEA и CLion на Android
— Мобильная разработка за неделю #503 (21 — 27 августа)
— Coroutines are not just about concurrency
— Labeling Multiple Barcodes with Augmented Reality and Dynamsoft Barcode Reader
— KSP in Android projects
— Android
— Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
— How to Create a Bluetooth LE Scanner for Android
— Exploring Simple Widgets II: Autocomplete
— Entorno de Desarrollo para empezar a desarrollar aplicaciones Moviles I
— Why I Haven't Started Learning Kotlin Multiplatform Mobile Yet
— Guide to Develop the Best White Label Taxi Dispatch System
Посмотреть:
🌐 Dagger KSP | Замена Firebase | Ускорение тестов (⏱ 19:43)
🌐 Кодогенерация. KAPT. KSP. Manual DI (⏱ 57:57)
🌐 Cобеседование Android разработчика. Максим Качинкин, Dodo Engineering (⏱ 00:00)
🌐 Продвинутый парсинг на Python со сменой прокси (⏱ 10:27)
🌐 Уроки Golang с нуля /#25 - Интерфейсы (⏱ 10:51)
🌐 Многопоточный парсер на Python. ООП подход (⏱ 08:24)
Хорошего дня!
Почитать:
— Используем UI-тесты для поиска утечек
— Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
— Vivaldi 6.2 для Android — Внимание к деталям
— Библиотека «Jetpack Compose» для начинающего Android-разработчика
— Запускаем IDEA и CLion на Android
— Мобильная разработка за неделю #503 (21 — 27 августа)
— Coroutines are not just about concurrency
— Labeling Multiple Barcodes with Augmented Reality and Dynamsoft Barcode Reader
— KSP in Android projects
— Android
— Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
— How to Create a Bluetooth LE Scanner for Android
— Exploring Simple Widgets II: Autocomplete
— Entorno de Desarrollo para empezar a desarrollar aplicaciones Moviles I
— Why I Haven't Started Learning Kotlin Multiplatform Mobile Yet
— Guide to Develop the Best White Label Taxi Dispatch System
Посмотреть:
🌐 Dagger KSP | Замена Firebase | Ускорение тестов (⏱ 19:43)
🌐 Кодогенерация. KAPT. KSP. Manual DI (⏱ 57:57)
🌐 Cобеседование Android разработчика. Максим Качинкин, Dodo Engineering (⏱ 00:00)
🌐 Продвинутый парсинг на Python со сменой прокси (⏱ 10:27)
🌐 Уроки Golang с нуля /#25 - Интерфейсы (⏱ 10:51)
🌐 Многопоточный парсер на Python. ООП подход (⏱ 08:24)
Хорошего дня!
👍6❤3🥰2
1. Рисование круга
Начнем с чего-нибудь простого — нарисуем круг.
@Composable
fun DrawCircle() {
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Blue)
) {
drawCircle(color = Color.Red, radius = 100f)
}
}2. Рисование прямоугольника
Нарисовать прямоугольник так же просто.
@Composable
fun DrawRectangle() {
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Blue)
) {
drawRect(color = Color.Green, size = size)
}
}3. Построение линии
Для построения линии требуется две точки: начальная и конечная.
@Composable
fun DrawLine() {
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Red)
) {
drawLine(
color = Color.Blue,
start = Offset.Zero,
end = Offset(size.width, size.height),
strokeWidth = 4f
)
}4. Создание текста
Можно также создать текст на холсте.
@Composable
fun DrawCanvasText() {
val paint = Paint().asFrameworkPaint().apply {
// paint configuration
this.textSize = 60f
}
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Red)
) {
drawIntoCanvas {
it.nativeCanvas.drawText("Hello, Canvas!", 20f, 200f, paint)
}
}
}5. Создание контура
Контур — это серия соединенных линий и кривых. Вот как нарисовать простой треугольник с помощью контура.
@Composable
fun DrawTriangle() {
Canvas(
modifier = Modifier
.size(200.dp)
) {
val path = Path().apply {
moveTo(size.width / 2, 0f)
lineTo(size.width, size.height)
lineTo(0f, size.height)
close()
}
drawPath(path = path, color = Color.Magenta)
}
}6. Рисование дуги
Дуга — это сегмент окружности. Можно нарисовать дугу, указав начальный угол и угол поворота.
@Composable
fun DrawArc() {
Canvas(modifier = Modifier.size(200.dp)) {
drawArc(
color = Color.Cyan,
startAngle = 0f,
sweepAngle = 270f,
useCenter = true,
topLeft = Offset.Zero,
size = size
)
}
}
7. Применение техники отсекания
Можно применить технику отсекания, чтобы ограничить область рисования на холсте. Вот пример применения кругового отсекания.
@Composable
fun ApplyClip() {
Canvas(modifier = Modifier.size(200.dp)) {
clipPath(Path().apply { addOval(Rect(Offset.Zero, size)) }) {
drawRect(color = Color.Yellow)
}
}
}8. Применение техники трансформации
Можно применить технику трансформации на холсте, чтобы изменить способ выполнения последующих операций рисования. Вот пример применения вращения.
@Composable
fun ApplyTransform() {
Canvas(modifier = Modifier.size(200.dp)) {
rotate(45f) {
drawRect(color = Color.Blue)
}
}9. Рисование с использованием шейдера
Шейдер — это инструмент для определения цвета каждого пикселя при рисовании. Вот пример рисования с помощью линейного градиентного шейдера.
@Composable
fun DrawWithShader() {
Canvas(modifier = Modifier.size(200.dp)) {
val shader = Brush.linearGradient(
colors = listOf(Color.Red, Color.Blue),
start = Offset.Zero,
end = Offset(size.width, size.height)
)
drawRect(brush = shader)
}
}10. Настройка индикатора выполнения
📌Статья
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Lottielab теперь многопоточный
Lottielab - редактор Lottie анимаций, что позволит вам работать с ними эффективнее. Проект пока в Beta
Хотели ускорить анимацию в приложениях на Android? Библиотека Lottie теперь поддерживает многопоточность!
В статье подробно объясняют, как новая настройка asyncUpdates переносит ресурсоёмкую фазу update в фоновый поток.
#android #tooling #animation
▪Github
▪Lottielab
@android_its
Lottielab - редактор Lottie анимаций, что позволит вам работать с ними эффективнее. Проект пока в Beta
Хотели ускорить анимацию в приложениях на Android? Библиотека Lottie теперь поддерживает многопоточность!
В статье подробно объясняют, как новая настройка asyncUpdates переносит ресурсоёмкую фазу update в фоновый поток.
#android #tooling #animation
▪Github
▪Lottielab
@android_its
👍5❤1🔥1
🔥 Дайджест полезных материалов из мира: Android за неделю
Почитать:
— Используем UI-тесты для поиска утечек
— Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
— Vivaldi 6.2 для Android — Внимание к деталям
— Библиотека «Jetpack Compose» для начинающего Android-разработчика
— Запускаем IDEA и CLion на Android
— Мобильная разработка за неделю #503 (21 — 27 августа)
— Coroutines are not just about concurrency
— Labeling Multiple Barcodes with Augmented Reality and Dynamsoft Barcode Reader
— KSP in Android projects
— Android
— Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
— How to Create a Bluetooth LE Scanner for Android
— Exploring Simple Widgets II: Autocomplete
— Entorno de Desarrollo para empezar a desarrollar aplicaciones Moviles I
— Why I Haven't Started Learning Kotlin Multiplatform Mobile Yet
— Guide to Develop the Best White Label Taxi Dispatch System
Посмотреть:
🌐 Что нового в Android 14 для разработчиков (⏱ 36:32)
🌐 Cобеседование Android-разработчика. Максим Качинкин, Dodo Engineering (⏱ 01:44:13)
🌐 Как учиться правильно? Методы обучения ios и не только (⏱ 13:41)
🌐 Продвинутый парсинг на Python со сменой прокси (⏱ 10:27)
🌐 Уроки Golang с нуля /#25 - Интерфейсы (⏱ 10:51)
🌐 Многопоточный парсер на Python. ООП подход (⏱ 08:24)
Хорошего дня!
@android_its
Почитать:
— Используем UI-тесты для поиска утечек
— Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
— Vivaldi 6.2 для Android — Внимание к деталям
— Библиотека «Jetpack Compose» для начинающего Android-разработчика
— Запускаем IDEA и CLion на Android
— Мобильная разработка за неделю #503 (21 — 27 августа)
— Coroutines are not just about concurrency
— Labeling Multiple Barcodes with Augmented Reality and Dynamsoft Barcode Reader
— KSP in Android projects
— Android
— Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
— How to Create a Bluetooth LE Scanner for Android
— Exploring Simple Widgets II: Autocomplete
— Entorno de Desarrollo para empezar a desarrollar aplicaciones Moviles I
— Why I Haven't Started Learning Kotlin Multiplatform Mobile Yet
— Guide to Develop the Best White Label Taxi Dispatch System
Посмотреть:
🌐 Что нового в Android 14 для разработчиков (⏱ 36:32)
🌐 Cобеседование Android-разработчика. Максим Качинкин, Dodo Engineering (⏱ 01:44:13)
🌐 Как учиться правильно? Методы обучения ios и не только (⏱ 13:41)
🌐 Продвинутый парсинг на Python со сменой прокси (⏱ 10:27)
🌐 Уроки Golang с нуля /#25 - Интерфейсы (⏱ 10:51)
🌐 Многопоточный парсер на Python. ООП подход (⏱ 08:24)
Хорошего дня!
@android_its
👍6❤3🔥2
Android: пошаговый курс для начинающих
1. Android Studio – установка, настройка эмулятора
2. Введение в XML, что такое View, теги и атрибут
3. Контейнеры - FrameLayout, LinarLayout. Отступы.
4. Верстаем экран по макету из Figma, ShapeDrawable
5. Ресурсы (res), квалификаторы, локализация, шрифты
6. Cтили, темы в приложении и их кастомизация
7. findViewById, ViewBinding, backing property
#video #android
https://www.youtube.com/watch?v=DzqfBxlvANQ&list=PLgPRahgE-GctUcLMcQFvl00xsXqpNJOix
@android_its
1. Android Studio – установка, настройка эмулятора
2. Введение в XML, что такое View, теги и атрибут
3. Контейнеры - FrameLayout, LinarLayout. Отступы.
4. Верстаем экран по макету из Figma, ShapeDrawable
5. Ресурсы (res), квалификаторы, локализация, шрифты
6. Cтили, темы в приложении и их кастомизация
7. findViewById, ViewBinding, backing property
#video #android
https://www.youtube.com/watch?v=DzqfBxlvANQ&list=PLgPRahgE-GctUcLMcQFvl00xsXqpNJOix
@android_its
👍11❤2🔥2
🔥 Дайджест полезных материалов из мира : Android за неделю
Почитать:
— Есть ли смысл начинать писать мобильное приложение не на Kotlin Multiplatform и Compose Multiplatform?
— ForBlitz Statistics: Как я в 10 классе сделал приложение на 10K+ установок
— Когда бизнесу нужна разработка мобильного приложения? Раскладываем по полочкам. Помогаем определиться с подходами
— Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения
— PWA vs Native: чек-лист, который поможет выбрать
— Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?
— Мобильная разработка за неделю #505 (4 — 10 сентября)
— Simplify ViewModelProvider.Factory() Implementation with Kotlin Lambda and Object Expressions
— Why Kotlin Multiplatform could change everything in the mobile dev world
— ViewModel en Android
— Best API For Android App Development
— Curso de Programação Android, Angular e Outros 100% Gratuitos
— РКН против приложения «Навальный»: борьба за доступность
— Why Choose Saudi Arabia IT Agency for Mobile App Development?
— if you are building mvp for a fintech company , what stack will you choose native or flutter? and why
— Mastering Kotlin Coroutines: Boosting Android App Performance and Responsiveness
— How To Free Up Your Internal Storage On Android Phone in 2022
Посмотреть:
🌐 Собеседование на Mobile Developer. Алексей Панов, Контур (⏱ 00:00)
🌐 Python анализ данных с Pandas. PandaSQL (⏱ 12:13)
🌐 Python анализ данных с Pandas. Join, merge, concat в Pandas (⏱ 19:25)
🌐 Python+SQL часть2 создание таблиц. (⏱ 05:15)
🌐 Управление жестами всегда было в ваших часах, просто его нужно было активировать. (⏱ 00:11)
🌐 Уроки Golang с нуля /#28 - Встраивание типов (⏱ 06:16)
🌐 Уроки Golang с нуля /#27 - Bufio. Чтение и запись (⏱ 10:35)
🌐 Python анализ данных с Pandas. (⏱ 17:04)
🌐 Как устроена логика навигации флоу в приложении Тинькофф — Тимур Валиев, Тинькофф (⏱ 25:21)
🌐 Почему Accelerate — это не страшно — Игорь Белов, Тинькофф (⏱ 26:53)
Хорошего дня!
Почитать:
— Есть ли смысл начинать писать мобильное приложение не на Kotlin Multiplatform и Compose Multiplatform?
— ForBlitz Statistics: Как я в 10 классе сделал приложение на 10K+ установок
— Когда бизнесу нужна разработка мобильного приложения? Раскладываем по полочкам. Помогаем определиться с подходами
— Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения
— PWA vs Native: чек-лист, который поможет выбрать
— Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?
— Мобильная разработка за неделю #505 (4 — 10 сентября)
— Simplify ViewModelProvider.Factory() Implementation with Kotlin Lambda and Object Expressions
— Why Kotlin Multiplatform could change everything in the mobile dev world
— ViewModel en Android
— Best API For Android App Development
— Curso de Programação Android, Angular e Outros 100% Gratuitos
— РКН против приложения «Навальный»: борьба за доступность
— Why Choose Saudi Arabia IT Agency for Mobile App Development?
— if you are building mvp for a fintech company , what stack will you choose native or flutter? and why
— Mastering Kotlin Coroutines: Boosting Android App Performance and Responsiveness
— How To Free Up Your Internal Storage On Android Phone in 2022
Посмотреть:
🌐 Собеседование на Mobile Developer. Алексей Панов, Контур (⏱ 00:00)
🌐 Python анализ данных с Pandas. PandaSQL (⏱ 12:13)
🌐 Python анализ данных с Pandas. Join, merge, concat в Pandas (⏱ 19:25)
🌐 Python+SQL часть2 создание таблиц. (⏱ 05:15)
🌐 Управление жестами всегда было в ваших часах, просто его нужно было активировать. (⏱ 00:11)
🌐 Уроки Golang с нуля /#28 - Встраивание типов (⏱ 06:16)
🌐 Уроки Golang с нуля /#27 - Bufio. Чтение и запись (⏱ 10:35)
🌐 Python анализ данных с Pandas. (⏱ 17:04)
🌐 Как устроена логика навигации флоу в приложении Тинькофф — Тимур Валиев, Тинькофф (⏱ 25:21)
🌐 Почему Accelerate — это не страшно — Игорь Белов, Тинькофф (⏱ 26:53)
Хорошего дня!
👍5❤1🔥1
Зачем создавать собственную версию UseCase? Причина очевидна: у каждого из нас уникальный опыт и свои подходы к решению проблем. Делясь собственной версией UseCase, я не опровергаю идеи других разработчиков.
В разработке программного обеспечения
UseCase — это описание конкретного действия или взаимодействия, которое система или приложение выполняет для достижения определенной цели субъекта (пользователя или другой системы).
В нем описываются “шаги” и взаимодействия между различными компонентами, чтобы продемонстрировать, как конкретная функциональность используется в системе. UseCase часто используется для фиксирования “функциональных требований” и определения поведения системы с точки зрения ее пользователей.
Что такое UseCase в гибкой и функционально чистой архитектуре?
В контексте Fluent and Fun Clean Architecture (гибкой и функционально чистой архитектуры) UseCase служит более всеобъемлющей цели по сравнению с традиционным сценариями использования. Вместо того чтобы описывать функциональность исключительно с точки зрения пользователя, мы подходим к ней с точки зрения приложения при выполнении события или действия.
☝️Это означает, что UseCase не только описывает действия пользователя, но и представляет шаги, необходимые для достижения определенного результата при инициации события. Объединяя эти подходы, мы создаем выразительные и удобочитаемые UseCase, соответствующие требованиям приложения.
Как создать UseCase в рамках гибкой и функционально чистой архитектуры?
Прежде чем мы углубимся в особенности UseCase в контексте гибкой и функционально чистой архитектуры, разберемся с тем, как реализовать UseCase в рамках чистой архитектуры.
Для лучшего понимания рассмотрим простой пример UseCase в приложении электронной коммерции.
UseCase: Place Order (размещение заказа).
Действие: Клиент.
Описание: Этот UseCase представляет собой процесс размещения клиентом заказа на товар в приложении электронной коммерции.
Требования:
1. Клиент должен быть авторизован.
2. Корзина не должна быть пуста, чтобы можно было оформить заказ.
3. Сумма денег в кошельке клиента не должна быть меньше суммы заказанного товара.
4. Если все три условия соблюдены, необходимо обновить запас продукции.
5. После завершения оформления заказа корзина в приложении должна быть очищена.
Чтобы реализовать это все в рамках чистой архитектуры, вы, как правило, следуете структуре кода, подобной приведенной ниже.
class PlaceOrderUseCase(
private val userRepository: UserRepository,
private val productRepository: ProductRepository
) {
operator fun invoke(order: Order) {
if (userRepository.isLoggedIn()) {
val cart = userRepository.getCart()
if (cart.isNotEmpty()) {
if (userRepository.hasEnoughFunds(order.getTotalPrice())) {
productRepository.updateProductStock(order)
userRepository.clearCart()
} else {
throw InsufficientFundsException(
"Not enough funds in the wallet."
)
}
} else {
throw EmptyCartException("The cart is empty.")
}
} else {
throw NotLoggedInException("User is not logged in.")
}
}
}Теперь разберем ее шаг за шагом, чтобы создать UseCase:
Читать
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2👎1
Теперь можно безопасно разблокировать зашифрованный LUKS на GNU/Linux с помощью режима USB-аксессуара, без необходимости вводить пароль.
👀 GitHub
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1