Android разработка – Telegram
Android разработка
5.22K subscribers
442 photos
25 videos
1 file
547 links
все о Android разработке

@itchannels_telegram - 🔥 лучшие it каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - ml 📚

@pythonlbooks -📚books
Download Telegram
🖥 Советы по работе с 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍21
📲 Тинькофф проведет Android-митап в Петербурге

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

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

🗓 До встречи 18 мая в Петербурге на IT’s Tinkoff Mobile Meetup!
👍1
Что нового в 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
2👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Сокращение времени запуска Android-приложения

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

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

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

#android
👍53🔥1
​​apk.sh

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

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

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

https://github.com/ax/apk.sh
👍42🔥2
Еще раз про Async Tasks

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

#дайджестновостей
👍51🔥1
💻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
👍62🔥2
Android NDK. Как писать под Android на C++

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

https://youtu.be/RemuJrVrO8U

@android_its
👍5🔥1🤔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 вставляет превьюшки используемых рисованных файлов вместо стандартных иконок файлов в представлении проекта. Чтобы узнать, какой именно файл вы использовали, просто просмотрите папки в представлении проекта при использовании плагина.

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

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21👎1
Как создать 😎 анимированные шейдеры в Jetpack Compose

Как насчет статейки про Jetpack Compose?
Автор показывает, что можно сделать с анимированием в Compose Multiplatform используя Kotlin и OpenGL.
3
👍63🔥1
💸 Как продвигать мобильные приложения в 2023-м году? Разбираем основные способы и инструменты продвижения в топ App Store и Google Play

Ниже максимально полный материал о продвижении приложений в крупнейших сторах. В нем подробно разберем основные инструменты мобильного маркетинга. Также объясним, как правильно использовать ключевые слова и поговорим об их влиянии на позиции приложения в поиске. Расскажем, как получить топовые места и собрать максимум органического трафика. Статья будет полезна маркетологам, продакт-менеджерам и разработчикам, которые сами продвигают свои приложения. Добавляйте пост в закладки, мы будем обновлять мануал по мере новых изменений ;-)

Специфика продвижения мобильных продуктов и главное отличие от продвижения в вэбе заключается в том, что приложения распространяются через сторы, такие как Google Play и App Store. Это означает, что в первую очередь нужно учитывать особенности этих платформ и соответствовать их требованиям. Таким образом во многом задача мобильного маркетолога сводится к тому, чтобы обогнать конкурентов в занять топовые позиции в поисковой выдаче стора.

Читать

@android_its
👍32🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🌙 Условное отображение BottomBar в Compose

В большинстве случаев, при работе с BottomBar в Compose, возникает необходимость скрыть его при определенных условиях.

Не всегда BottomBar нужен на каждом экране приложения и занимает драгоценное пространство.
Рассмотрим, как настроить BottomBar так, чтобы его можно было скрывать и показывать по требованию с помощью
Jetpack Compose .

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥21
🖥 Многопоточность (Multithreading) для практического программирования

Очень много полезного про потоки в одной статье (14 мин)
Вопросы терминологии
Можно ли жить без потоков, концепция из прошлого столетия (в JS же получается)
Особенности исполнения программ в концепции с потоками
Какие проблемы создают потоки: гонка, deadlock

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3🔥1
🖥 Большое количество полезных видео по Андроид разработке.

Подборка докладов с Droidcon San Francisco.

Более 40 роликов и спиоск постоянно пополняется.

📌 Перейти

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥21
⚡️Маст-хэв список для программистов, каналы с последними книжными новинками, библиотеками, разбором кода и актуальной информацией, связанной с вашим языком программирования.
Лучший способ получать свежие обновлении и следить за трендами в разработке.

Python: t.me/pythonl
C#: t.me/csharp_ci
C/C++/ t.me/cpluspluc
Машинное обучение: t.me/ai_machinelearning_big_data
Data Science: t.me/data_analysis_ml
Devops: t.me/devOPSitsec
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
Rust: t.me/rust_code
Javanoscript: t.me/javanoscriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Хакинг: t.me/linuxkalii
Java: t.me/javatg

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy

📕 Бесплатные Книги для программистов: https://news.1rj.ru/str/addlist/YZ0EI8Ya4OJjYzEy

🎞 YouTube канал: https://www.youtube.com/@uproger

😆ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: t.me/english_forprogrammers
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
📖 React Native: полное руководство по созданию виджета для домашнего экрана для iOS и Android

Как работает виджет?
Виджет работает как расширение приложения. Он не функционирует как самостоятельное приложение. Виджеты доступны в трех размерах (Small, Medium и Large) и могут быть статичными и настраиваемыми. Виджет ограничен в плане взаимодействия. Его нельзя скроллить, а можно только касаться. Малый виджет может иметь только один тип области взаимодействия, в то время как средний и большой — несколько.

Зачем разрабатывать виджеты?
Виджеты обычно создаются не только для того, чтобы предоставлять важную информацию и доступ к приложению на домашнем экране, но и для того, чтобы выделять приложение на фоне конкурентов и поддерживать вовлеченность пользователей.

Виджеты для взаимодействия с React Native
К сожалению, создать виджет для домашнего экрана с помощью React Native невозможно. Но не волнуйтесь, решение есть! Мы рассмотрим, как использовать нативный виджет для взаимодействия с приложением React Native.

Настройка

1. Создайте новое приложение:
react-native init RNWidget

2. Добавьте зависимость, которая создаст “мост” между виджетом и приложением:
yarn add react-native-shared-group-preferences

3. Чтобы достичь взаимодействия с нативным модулем, добавьте следующий код в App.js:

Продолжение

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4👍2