@android_broadcast · Post #9006 · 24.04.2025 г., 10:03
🚀Room 2.7.1 уже здесь! Исправлен IndexOutOfBoundsException при валидации type converters, а также runInTransaction() теперь работает с SQLiteDriver #jetpack#jetpackupdate
Hashtags
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #32 · 7 фев.
Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять: from timeit import timeit def t1(): # складываем 10 строк через + из переменной t = 'text' for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t2(): # склеиваем список строк через метод join arr = ['text'] * 10 for _ in range(1000): s = ''.join(arr) def t3(): # складываем через + но не из переменной а непосредственно инлайн объекты for _ in range(1000): s = 'text' + 'text' + 'text' + ... # всего 10 раз Теперь каждую строку склейки запустим по 10М раз >>> timeit(t1, number=10000) 0.21951690399964718 >>> timeit(t2, number=10000) 1.4978306379998685 >>> timeit(t3, number=10000) 0.2213820789993406 Хм, а нам говорили что через "+" это плохо и медленно ))) 😁 Тут стоит учитывать, что речь идёт о склейке множества длинных строк. Давайте изменим условия: def t4(): t = 'text'*100 for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t5(): arr = ['text'*100] * 10 for _ in range(1000): s = ''.join(arr) def t6(): for _ in range(1000): s = 'text'*100 + 'text'*100 + ... # всего 10 раз >>> timeit(t4, number=10000) 12.795130728000004 >>> timeit(t5, number=10000) 2.642637542999182 >>> timeit(t6, number=10000) 0.2184546610005782 Вот, уже другой разговор, сразу видна разница, в среднем в 6 раз. Но погодите, почему последний тест t6() по скорости такой же как и t3()? Ведь строки теперь в 100 раз длиннее! Это вопросы оптимизации кода, какие простые изменения ускоряют или замедляют выполнение программы. Мы столкнулись с примером обхода обращения к переменной. Например, именно так работает директива #define в С++, во время компиляции подставляя значение переменной вместо ссылки на неё. В Python это тоже работает, но часто ли вы сможете встретить такой способ работы со строками? К сожалению, способ почти только теоретический. В целом, тесты показали то, что мы хотели. Делаем выводы самостоятельно. Полный листинг 🌍 #tricks
Пребарај: #jetpackupdate
@android_broadcast · Post #9006 · 24.04.2025 г., 10:03
🚀Room 2.7.1 уже здесь! Исправлен IndexOutOfBoundsException при валидации type converters, а также runInTransaction() теперь работает с SQLiteDriver #jetpack#jetpackupdate
Hashtags
@android_broadcast · Post #9005 · 24.04.2025 г., 10:01
Вышла библиотека Jetpack Print 1.1.0, которая перешла на RGB формат при отправке изображения на принтеры для лучшей совместимости #jetpack#jetpackupdate
Hashtags
@android_broadcast · Post #9004 · 24.04.2025 г., 10:00
🚀 Вышел Jetpack Datastore 1.1.5 где поменяли реализацию Storage по умолчанию с OkioStorage на FileStorage. Вызвано тем чтобы решить проблему с CorruptionException в PreferencesDataStore. #jetpack#jetpackupdate
Hashtags
@android_broadcast · Post #8866 · 27.03.2025 г., 16:49
🚀 Вышел Jetpack DataStore 1.1.4 и там изменили реализацию хранилища по умолчанию, которая должна уменшить количество ошибок повреждения данных #jetpack#jetpackupdate
Hashtags
@android_broadcast · Post #8931 · 10.04.2025 г., 05:26
Также сегодня вышли beta версии Jetpack Navigation 2.9, Jetpack Lifecycle 2.9 (lifecycle, viewmodel), Saved State 1.3, Jetpack Activity 1.11, RecyclerView-Selection Version 1.2.0 #android#jetpack#jetpackupdate
Hashtags
@android_broadcast · Post #8925 · 10.04.2025 г., 04:03
🚀Вышел Jetpack AsyncLayoutInflater 1.1.0 Что нового: 👉 Возможность настройки AsyncLayoutFactory при инициализации AsyncLayoutInflater, что позволяет использовать AsyncAppCompatFactory для корректной работы с AppCompat view 👉 inflate метод теперь принимает Executor на котором будет вызван callback OnInflateFinishedListener #android#jetpack#jetpackupdate
Hashtags
@android_broadcast · Post #8872 · 27.03.2025 г., 17:24
🚀Первая альфа-версия DataStore 1.2.0, в которой добавлена поддержка работы в режиме Direct Boot (режим работы приложения до разблокировки устройства пользователем). Кроме того, появился артефакт с поддержкой Guava для Java. #android#jetpack#jetpackupdate
Hashtags
@android_broadcast · Post #9268 · 19.06.2025 г., 12:36
🚀Вышло обновление Android Jetpack библиотек В этот раз вас жду багфиксы: Room 2.7.2 и WorkManager 2.10.2, а также первая RC версия Benchmark Version 1.4.0 #android#androiddev#jetpack#jetpackupdate
@android_broadcast · Post #9525 · 25.09.2025 г., 07:40
🤖Вышел Jetpack Window 1.5.0 Что нового: 👉WindowSizeClass появились разделения для больших (Large - от 1200 до 1600) и очень больших (XLarge - более 1600 dp) экранов 👉 Получение WindowMetrics теперь работает с Application Context, а не только с UI Context 👉 Добавили API для автоматического сохранения и восстановления статуса встраивания Activity при перезапуске процесса 👉 Удалили экспериментальное API WindowInsets #android#androidjetpack#jetpackupdate
@android_broadcast · Post #8870 · 27.03.2025 г., 17:16
🚀 Добавили поддержку Android 16 для Jetpack Activity в версии 1.11.0 Alpha02 #android#jetpack#android16#jetpackupdate
@android_broadcast · Post #9080 · 09.05.2025 г., 05:48
🚀Релиз Jetpack Lifecycle 2.9.0: тестирование ViewModel и больше KMP 🎉 Новый артефакт lifecycle-viewmodel-testing - KMP библиотека для тестирования ViewModel в изоляции с помощью ViewModelScenario 👉SavedStateHandle теперь может возвращать MutableStateFlow 👉CreationExtras добавили перегрузки операторов in, +=, и + Больше поддержки KMP 👉lifecycle-testing, lifecycle-viewmodel-savedstate теперь полностью KMP библиотеки 👉LocalLifecycleOwner стал доступен из common кода 👉ViewModelProvider.NewInstanceFactory теперь доступна для Android и JVM #android#jetpack#jetpackupdate#kmp
@android_broadcast · Post #8867 · 27.03.2025 г., 16:51
🚀 Вышел Jetpack Room 2.7.0 RC03 с важными исправлениями багов перед выходом первой стабильной версии с поддержкой KMP #android#jetpack#jetpackupdate#kmp