android_its | Unsorted

Telegram-канал android_its - Android разработка

4971

все о Android разработке @itchannels_telegram - 🔥 лучшие it каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books

Subscribe to a channel

Android разработка

Пост-дайджест туториалов по разработке для Android: в статьях — полезные весьма полезные штуки — вам должно понравиться 😎

👉 Своя библиотека под Android за один вечер
👉 Кастомный TabRow Indicator в Jetpack Compose
akshay.kalola28/10-useful-kotlin-extension-functions-for-android-developers-2-c063d0b1464e">👉 10 полезных функций Kotlin для разработчиков Android
shubh.8998/in-this-blog-we-will-check-how-we-can-start-a-background-service-which-will-not-be-killed-by-d76dc9cf025a">👉 Создаем фоновую службу для Android, которая будет работать вечно
👉 Реализуем WhatsApp’s Circular Reveal на Jetpack Compose
👉 Мануал по созданию приложений с чистой архитектурой, модульностью и тестированием

#дайджест

Читать полностью…

Android разработка

💻10 функции высшего порядка используемые в проектах Android.

👂Слушатели событий
Слушатели событий  —  распространенный случай использования функций высшего порядка при разработке Android. Рассмотрим следующую функцию, которая принимает в качестве аргумента функцию высшего порядка для обработки события нажатия кнопки:
fun View.onClick(action: () -> Unit) {
setOnClickListener { action() }
}


Эта функция расширяет класс View и принимает лямбда-выражение, которое будет выполняться при нажатии по представлению (view). Для настройки слушателя нажатия для представления используется метод setOnClickListener, а лямбда-выражение выполняется, когда происходит событие нажатия.
Используя эту функцию, можно обрабатывать события нажатия кнопки кратким и читабельным способом:
button.onClick {
Toast.makeText(context, "Button clicked", Toast.LENGTH_SHORT).show()
}


🖼Анимация представлений
Анимация в Android легче сделать гибкой и многоразовой, используя функции высшего порядка. Вот пример расширения класса View с функциями высшего порядка для анимации свойств:
fun View.animateProperty(
property: KProperty0<Float>,
fromValue: Float,
toValue: Float,
duration: Long,
onComplete: () -> Unit = {}
) {
val animator = ObjectAnimator.ofFloat(this, property.name, fromValue, toValue).apply {
setDuration(duration)
addListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) {
onComplete()
}
})
}
animator.start()
}


📃RecyclerView
Одним из примеров использования RecyclerView в качестве функции высшего порядка является создание функции, которая принимает список элементов и функцию для привязки каждого элемента к держателю представления и возвращает настроенный адаптер RecyclerView.
fun <T> RecyclerView.bindData(
data: List<T>,
layoutRes: Int,
bindFunc: (View, T) -> Unit,
clickListener: ((T) -> Unit)? = null
) {
adapter = object : RecyclerView.Adapter<ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(layoutRes, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = data[position]
bindFunc(holder.itemView, item)
clickListener?.let { listener ->
holder.itemView.setOnClickListener { listener(item) }
}
}
override fun getItemCount() = data.size
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
}
}


🖊Обработка разрешений
Обработка разрешений  —  распространенная задача при создании мобильных приложений.

Вот пример реализации на языке Kotlin:
fun Activity.withPermissions(vararg permissions: String, callback: () -> Unit) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val ungrantedPermissions = permissions.filter {
checkSelfPermission(it) == PackageManager.PERMISSION_DENIED
}
if (ungrantedPermissions.isEmpty()) {
// Все разрешения предоставлены, выполнить обратный вызов
callback()
} else {
// Запрос разрешений
requestPermissions(ungrantedPermissions.toTypedArray(), 0)
}
} else {
// Устройства до версии Marshmallow, выполнение обратного вызова
callback()
}
}


Эту функцию можно использовать следующим образом:
withPermissions(
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
) {
// Код для выполнения при получении разрешений
}


Читать дальше

@android_its

Читать полностью…

Android разработка

​​apk.sh

apk.sh — это скрипт Bash, упрощающий обратное проектирование Android-приложений, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, пересборка и исправление APK.

apk.sh в основном использует apktool для дизассемблирования, декодирования и восстановления ресурсов и немного bash для автоматизации процесса внедрения гаджета frida.

Android-устройство с root-правами не требуется.

https://github.com/ax/apk.sh

Читать полностью…

Android разработка

Сокращение времени запуска Android-приложения

Время запуска — это первое впечатление пользователей о приложении, и медленная загрузка может негативно сказаться на удержании и привлечении пользователей.

Статья рассказывает о том, как разработчики Turo (каршеринг-приложение) сократили время запуска программы на 77%:

https://medium.com/androiddevelopers/turo-reduced-its-app-startup-time-by-77-using-android-developer-tools-and-best-practices-bcf82f596bcf

#android

Читать полностью…

Android разработка

Лучшие практики, которые позволят предотвратить ошибки в ходе оптимизации iOS-приложения для плохих сетевых условий.

Читать

Читать полностью…

Android разработка

📲 Тинькофф проведет Android-митап в Петербурге

Встреча пройдет 18 мая в особняке «Пальма». Ребята расскажут, как адаптировать ваше Android-приложение для поддержки устройств с большими экранами, и разберут возможности SDK. В конце митапа выступит Кирилл Розов с докладом про запуск задач в фоне.

Не забудьте зарегистрироваться и позвать с собой коллег.

🗓 До встречи 18 мая в Петербурге на IT’s Tinkoff Mobile Meetup!

Читать полностью…

Android разработка

Переход с MVVM на MVI

Во время перехода на Jetpack Compose разработчик из GityMarket заметил, что некоторые методы во ViewModel перестали соответствовать правилам SOLID. Это отразилось на тестирование и стало понятно, что нужно делать рефакторинг кода или менять архитектуру проекта. Выбор пал на MVI. Свою реализацию автор разбирает в статье, а именно — UI и ViewModel:

https://proandroiddev.com/migrate-from-mvvm-to-mvi-f938c27c214f

#Android

@android_its

Читать полностью…

Android разработка

#mobile #pentest #bugbounty #practice

Пошаговая настройка лаборатории для анализа безопасности Android-приложений: гайд для начинающего багхантера.

Читать

@android_its

Читать полностью…

Android разработка

Android 14 Beta 1

Google выпустила первую бета-версию Android 14. Приложения уже можно протестировать и оставить отзыв о версии. В бета версии пока мало нововведений: новая стрелка назад и более удобный шеринг, а также дополнительные графические возможности.

Подробнее:

https://android-developers.googleblog.com/2023/04/android-14-beta-1.html

#android

Читать полностью…

Android разработка

Обновился гайд по обработке поворота экрана и прочих смен конфигурации. Хороший повод перечитать и освежить знания.

#android #configchanges

https://developer.android.com/guide/topics/resources/runtime-changes

@android_its

Читать полностью…

Android разработка

Релиз Jetpack Media3: что нового?

Спустя два года Android Developers сделали релиз официальной версии Jetpack Media3. Если вы использовали ExoPlayer, MediaCompat или Media2, то вам будет несложно перейти на Media3.

Media3 используется для работы с аудио и видео. По сути, библиотека предоставляет интерфейс проигрывателя (Player) с компонентами: MediaSession и MediaController.

Полный список API по ссылке:

https://android-developers.googleblog.com/2023/03/media3-is-ready-to-play.html

#android

Читать полностью…

Android разработка

Дорожная карта для Android-разработчика на 2023

Видео, в котором рассказывает, что должен знать начинающий, чтобы стать Android-разработчиком:

https://youtu.be/AhUL5tHF3uc

@android_its

Читать полностью…

Android разработка

Kotlin: как использовать функции расширения

Функции расширения предоставляют возможность расширять функциональность существующих классов, не наследуя их. По сути, они являются полезным инструментом для того, чтобы сделать код более читаемым, разделив его на более мелкие модули.

В этой статье рассматривается, что такое extension functions, а также как их можно использовать наиболее эффективно:

https://androidgeek.co/how-to-use-extension-functions-in-kotlin-4b5e52e84ee5

#android

@android_its

Читать полностью…

Android разработка

Kotlin: Null-безопасность и 3 подводных камня

Если вы изучаете Kotlin, то наверняка слышали про Null-безопасность. Система типов в Kotlin направлена на искоренение опасности нулевых(null) значений. Но на все ли 100%?

В этой статье автор рассматривает 3 случая, которые могут вызвать ошибку, а компилятор даже не попытается вас защитить:

https://betterprogramming.pub/kotlin-isnt-null-safe-yet-here-are-3-gotchas-23258fada62

#kotlin

@android_its

Читать полностью…

Android разработка

Constraints and modifier order (8 мин)

Разбор как правильно организовывать цепочки Compose модификаторов и влияние их влияет на размер Composable функций

📺 Видео версия (12 мин)

@android_its

Читать полностью…

Android разработка

Android NDK. Как писать под Android на C++

Интервью с разработчиком в платформенной команде inDriver, который непонаслышке знает что такое Android NDK и зачем он нужен. Он рассказал как пишется C++ код для Android и многое другое.

https://youtu.be/RemuJrVrO8U

@android_its

Читать полностью…

Android разработка

Еще раз про Async Tasks

Очень понравилось толкование материала. Для новичков будет весьма полезно. Автор объясняет материал не сухими терминами, а пытается донести до каждого идею асинхронности. Очень рекомендуем!

#дайджестновостей

Читать полностью…

Android разработка

Серия из 4 видео про работу с камерой

CameraX concepts - https://www.youtube.com/watch?v=I4rDx90Nlus

Setup and permissions - https://www.youtube.com/watch?v=XUN6mUQiDpg

CameraController basics - https://www.youtube.com/watch?v=fazzQs-O31U

CameraProvider basics - https://www.youtube.com/watch?v=OfjPOUunkc8

#android #camera

Читать полностью…

Android разработка

Что нового в Jetpack и Jetpack Compose

10 мая в Маунтин-Вью в Калифорнии началась ежегодная конференция Google I/O 2023. Разработчики OS Android рассказали об обновлениях в Jetpack и Jetpack Compose.

В материале разработчики рассказывают об оптимизации производительности приложений, обновлениях ключевых библиотек, и о библиотеках UI, в том числе Compose:

https://android-developers.googleblog.com/2023/05/whats-new-in-jetpack-io-2023.html

Более подробно об обновлениях в Jetpack Compose в статье:

https://android-developers.googleblog.com/2023/05/whats-new-in-jetpack-compose.html

#jetpack #compose

Читать полностью…

Android разработка

Разбор практических кейсов уменьшения размера Android-приложения от Кирилла Розова.

🌐 Смотреть

@android_its

Читать полностью…

Android разработка

🖥 Советы по работе с Gradle для начинающих Android-разработчиков

Руководство для начинающих по работе с Build Gradle с полным разбором файлов конфигурации:

— settings.gradle / setings.gradle.kts,
— build.gradle / build.gradle.kts,
— gradle.properties,
— build.gradle / build.gradle.kts:

https://vtsen.hashnode.dev/beginners-guide-to-understand-build-gradle-files-in-android-studio

#gradle #Android

@android_its

Читать полностью…

Android разработка

В исследование безопасности мобильного приложения среди прочего входит анализ трафика. Но как поднять прокси-сервер для перехвата сетевого трафика Android-устройства?

Есть несколько способов, каждый из которых имеет свои достоинства и недостатки. Подробности — в пошаговом руководстве.

Читать полностью…

Android разработка

«Чем новее, тем лучше: как мы с GSON на Kotlinx.Serialization переезжали»

Андрей Мещеряков, Android-разработчик в команде роста Тинькофф Инвестиций, поделился опытом миграции с Gson на Kotlinx.

С помощью Kotlinx.Serialization разработчики могут сериализовывать данные в такие форматы, как JSON, XML и Protocol Buffers, что делает его ценным инструментом для создания веб-сервисов и приложений. Автор статьи рассказал о подводных камнях, с которыми могут столкнуться разработчики, используя Kotlinx в проекте:

https://habr.com/ru/companies/tinkoff/articles/728928/

#kotlin #android

Читать полностью…

Android разработка

6 полезных шаблонов проектирования для Android-разработчика

Шаблоны проектирования не являются специфичными для какого-либо языка программирования или технологии и могут применяться в самых разных проектах. Однако в этой статье, автор подобрал наиболее полезные паттерны в разработке под Android: Builder, Factory, Singleton и другие:

naeem0313/6-design-patterns-every-android-developer-must-know-a1ae0954bf21" rel="nofollow">https://medium.com/@naeem0313/6-design-patterns-every-android-developer-must-know-a1ae0954bf21

#android

Читать полностью…

Android разработка

Reddit Recap и Jetpack Compose в приложении

Разработчики Reddit поделились своим опытом реализации анимаций на Jetpack Compose и обновленным пользовательским интерфейсом в приложении. Им пришлось полностью переписать весь UI с нуля на Compose, чтобы улучшить тем самым архитектуру проекта. Подробная история — здесь: https://www.reddit.com/r/RedditEng/comments/12axmiu/building_reddit_recap_with_jetpack_compose_on/

@android_its

Читать полностью…

Android разработка

Сможете ли вы работать мобильным разработчиком в Тинькофф?

Сравните свои скиллы с требованиями и откликайтесь на вакансии в Тинькофф, если интересно решать сложные финтех-задачи: https://l.tinkoff.ru/mob.pro

Читать полностью…

Android разработка

Релиз Jetpack Compose: что нового?

1. Page: улучшили свайп между страницами контента (пример поведения на видео). Теперь дополнительные библиотеки, например, Accompanist, можно не использовать в проекте.

2. Новые Flow Layouts: Flow Row и Flow Column обеспечивают эффективный и компактный способ размещения элементов в контейнере, когда размер элементов или контейнера неизвестен или динамичен.

3. Повышение производительности в Modifier.

4. Text и TextField стали более функциональными: новые анимации, поддержка бегущей строки, более плавные переходы.

Источник: https://android-developers.googleblog.com/2023/03/whats-new-in-jetpack-compose-march-23-release.html

#android

Читать полностью…

Android разработка

Краткий справочник по некоторым наиболее полезным API конфиденциальности в Android, а также рекомендации, которые следует учитывать при разработке своего приложения.

🔗Скачать в светлом режиме

Читать полностью…

Android разработка

Знакомимся с Kotlin на практике

Хотите быстро приступить к написанию кода на Kotlin? Упражнения Kotlin Koans от JetBrains помогут освоить синтаксис языка и его идиомы. Задания выглядят как непройденные unit-тесты, и вам предстоит их успешно завершить.

Единственное условие — нужно знать какой-либо язык программирования, например Java.

Поупражняться: https://play.kotlinlang.org/koans/overview

#kotlin #курсы

@android_its

Читать полностью…

Android разработка

Путеводитель по времени и дате на Kotlin

В этом видео автор рассказывает, как можно использовать LocalDate, LocalTime, LocalDateTime и ZonedDateTime в проектах на Kotlin. Данный урок отлично подойдёт начинающим и тем, кто немного путается в формате:

https://youtu.be/gzHy6wKAJh8

#kotlin #android

Читать полностью…
Subscribe to a channel