#opensouce
Android Broadcast – это канал, который предназначен для Android разработчиков и всех, кто интересуется мобильными технологиями. Здесь вы найдете подборку актуальных новостей и статей, которые помогут вам быть в курсе последних тенденций в мире Android.
Кроме того, на канале проводятся обсуждения в специальном чате @android_broadcast_talks, где можно делиться опытом, задавать вопросы и обсуждать интересные темы. Для тех, кто хочет быть в курсе всех новостей, предлагается подписаться на медиа-канал https://taplink.cc/android_broadcast.
Если у вас есть вопросы или предложения, вы всегда можете связаться с автором канала через @android_broadcast_bot. Также возможно размещение рекламы на канале, для этого обращайтесь туда же – к @android_broadcast_bot. Присоединяйтесь к Android Broadcast и будьте в курсе самых свежих новостей и статей для разработчиков Android!
10 Jan, 06:00
09 Jan, 19:34
09 Jan, 10:41
ANDROID10
вы получите скидку на все товары в вашей корзине09 Jan, 08:49
09 Jan, 04:41
// Пример использования
class MyActivity : Activity() {
@Inject lateinit var devicePerformance: DevicePerformance
override fun onResume() {
super.onResume()
when {
devicePerformance.mediaPerformanceClass >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE -> {
// MPC level 34+
// Самое современное устройство. Стоит включать всё
}
devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.TIRAMISU -> {
// MPC level 33.
// Мощное, но не флагман
}
else -> {
// MPC level 31, 30 или не определено
// Удаляйте дополнительные плюшки для лучшей скорости работы
}
}
}
}
08 Jan, 17:35
27 Dec, 18:11
27 Dec, 15:00
27 Dec, 14:44
27 Dec, 14:12
27 Dec, 13:34
27 Dec, 12:47
27 Dec, 12:00
26 Dec, 16:00
26 Dec, 13:46
26 Dec, 09:00
24 Dec, 09:03
24 Dec, 06:00
23 Dec, 20:45
class MainApplication : Application(), KoinStartup {
override fun onKoinStartup(): KoinAppDeclaration = {
androidContext(this@MainApplication)
allowOverride(false)
modules(AppModule().module)
defaultModule()
}
}
// Initializer из Jetpack Startup
class FirstModuleInitializer : Initializer<Unit> {
override fun create(context: Context) {
loadKoinModules(firstModule)
}
override fun dependencies() =
mutableListOf(KoinInitializer::class.java)
}
val m1 = lazyModule {
singleOf(::ClassA) { bind<IClassA>() }
}
startKoin {
// загрузка модулей в фоне с помощью Kotlin Coroutines
lazyModules(m1)
}
val koin = KoinPlatform.getKoin()
// Ожидания выполнения задач загрузки модулей
koin.waitAllStartJobs()
// или ставим в очередь лямбду на выполнение после
koin.runOnKoinStarted { koin ->
// Код выполнится после загрузки lazy modules
}
23 Dec, 20:25
23 Dec, 09:39
ANDROID10
вы получите еще скидку на все товары в вашей корзине23 Dec, 08:31
05 Dec, 18:30
04 Dec, 14:44
04 Dec, 09:05
04 Dec, 05:05
03 Dec, 12:20
03 Dec, 06:05
Binds
теперь потребуют объявления с nullable типами JvmSuppressWildcards
в Multibinding Map для generic типа значенияBinds
методы теперь не могут использовать Scope, когда они делегирует @Produces имплементации02 Dec, 12:49
01 Dec, 08:52
30 Nov, 05:05
29 Nov, 14:06
29 Nov, 12:34
28 Nov, 14:14
27 Nov, 18:42
27 Nov, 17:48
27 Nov, 04:40
21 Nov, 07:00
21 Nov, 06:00
20 Nov, 08:49
20 Nov, 08:00
20 Nov, 05:00
19 Nov, 19:50
19 Nov, 19:46
19 Nov, 19:46
19 Nov, 12:00
19 Nov, 09:00
19 Nov, 05:11
18 Nov, 14:00
18 Nov, 13:36
18 Nov, 09:35
18 Nov, 08:37
ANDROID10
вы получите дополнительную скидку в размере 10% на все столы и аксессуары18 Nov, 05:37
15 Nov, 10:47
15 Nov, 10:26
15 Nov, 06:47
15 Nov, 06:00
14 Nov, 20:06
14 Nov, 17:16
14 Nov, 16:59
14 Nov, 12:51
14 Nov, 12:00
14 Nov, 12:00
14 Nov, 09:00
ANDROID10
вы получите дополнительную скидку в размере 10% на все столы и аксессуары14 Nov, 08:31
14 Nov, 08:25
saved()
, который делает сохранение и восстановление14 Nov, 08:17
encodeToSavedState()
и decodeFromSavedState()
можно сохранить любой класс с аннотацией @Serializable. Можно попробовать в версии 1.3.0-alpha0514 Nov, 08:07
14 Nov, 06:00
13 Nov, 17:44
13 Nov, 13:01
13 Nov, 12:00
13 Nov, 09:00
13 Nov, 07:30
13 Nov, 06:30
13 Nov, 06:00
12 Nov, 17:34
12 Nov, 10:18
11 Nov, 13:25
08 Nov, 12:00
08 Nov, 09:00
08 Nov, 08:40
07 Nov, 12:23
07 Nov, 10:01
07 Nov, 07:40
06 Nov, 12:00
06 Nov, 10:43
06 Nov, 08:23
06 Nov, 06:19
05 Nov, 15:00
05 Nov, 13:00
05 Nov, 10:00
05 Nov, 05:39
io.coil-kt
на io.coil-kt.coil3
android.resource://example.package.name/drawable/image
Extras
04 Nov, 18:03
04 Nov, 12:02
04 Nov, 09:51
04 Nov, 09:38
04 Nov, 08:50
04 Nov, 07:40
04 Nov, 07:03
04 Nov, 06:50
03 Nov, 10:26
31 Oct, 20:52
31 Oct, 18:17
31 Oct, 18:12
31 Oct, 14:28
31 Oct, 14:13
‘adb shell dumpsys jobscheduler
’ позволит понять какой Worker выполнялся31 Oct, 09:00
30 Oct, 16:23
29 Oct, 09:25
.gitignore
(который в корне проекта) вашего Android проекта на Gradle с использованием Kotlin*.iml
- все файлы конфигурации IDEA.gradle/
- всё что генерирует Gradle для своей работы.idea/
- весь локальный конфиг проекта.kotlin/
- всё что генерирует Kotlin для работы (помойму появилось с версии Kotlin 2.0)build/
- папка с файлами в процессе сборки Gradlecaptures/
- трейсы который собирает студииlocal.properties
- локальный файл конфигурации Android проектаbuild/
папка29 Oct, 06:01
28 Oct, 18:19
28 Oct, 17:20
28 Oct, 13:18
26 Oct, 11:04
25 Oct, 14:32
25 Oct, 09:40
24 Oct, 17:01
24 Oct, 09:10
23 Oct, 12:00
23 Oct, 10:12
23 Oct, 09:00
23 Oct, 08:00
23 Oct, 07:35
23 Oct, 06:00
Audi: BMW@2351584
22 Oct, 13:07
22 Oct, 05:34
22 Oct, 05:23
21 Oct, 19:26
21 Oct, 09:00
20 Oct, 09:02
18 Oct, 09:00
18 Oct, 06:00
17 Oct, 13:16
17 Oct, 09:00
17 Oct, 06:22
16 Oct, 17:30
16 Oct, 11:00
16 Oct, 08:32
16 Oct, 06:00
ANDROID10
вы получите скидку на все товары в вашей корзине15 Oct, 15:22
15 Oct, 05:24
14 Oct, 06:36
14 Oct, 06:00
List<ResolveInfo> resolveInfos =
packageManager.queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);
10 Oct, 16:53
10 Oct, 16:48