TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #175 · 30 окт.

В прошлом посте говоря "Все вызовы теперь одинаковы" я несколько слукавил. Всё-таки есть в этом зоопарке версий некоторая несовместимость вызов которой просто так не унифицировать. Эти моменты вынесены в отдельный модуль QtCompat (compatibility). Там не так много функций но они довольно полезны. Этот модуль содержит унификаци модуля shiboken2, функций loadUi, translate и несколько переименованных функций классов или изменённую сигнатуру аргументов и возвращаемых значений. Это единственное исключение из правила когда вам потребуется где-то изменить свой код кроме импортов и этот код не похож на обычный код PySide2. Например, в PyQt4 и PySide есть метод QHeaderView.setResizeMode Для PyQt5 и PySide2 они были благополучно переименованы в QHeaderView.setSectionResizeMode Чтобы применить этот метод следует использовать такой код from Qt import QtCompath header = self.horizontalHeader() QtCompat.QHeaderView.setSectionResizeMode(header, QtWidgets.QHeaderView.Fixed) Унификация загрузки UI файлов: # PySide2 from PySide2.QtUiTools import QUiLoader loader = QUiLoader() widget = loader.load(ui_file) # PyQt5 from PyQt5 import uic widget = uic.loadUi(ui_file) # Qt.py from Qt import QtCompat widget = QtCompat.loadUi(ui_file) Хорошо что таких моментов не много и их легко запомнить. Полный список можно посмотреть в таблице. #qt#tricks

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #anvil

当前筛选 #anvil清除筛选
Android Broadcast

@android_broadcast · Post #9738 · 09.12.2025 г., 12:05

🚀Cash App перевел Android-приложение на Metro — новый DI фреймворк для Kotlin Команда Cash App (Block) успешно мигрировала своё Android-приложение с Anvil/Dagger на Metro — современный фреймворк для dependency injection, разработанный Zac Sweers. Metro — это compile-time DI фреймворк, вдохновленный Dagger и Anvil, но реализованный как Kotlin compiler plugin. Он Kotlin-first, поддерживает K2 и работает значительно быстрее традиционных решений. Вобрал в себя всё лучшее от Dagger, Anvil и Kotlin-Inject Почему перешли на Metro? - Скорость сборки — ускорение инкрементальных сборок на ~60% - Поддержка Kotlin K2 — возможность использовать новейший компилятор Kotlin - Упрощение стека — отказ от kapt и Java-ориентированных инструментов - Современный подход — Kotlin-first дизайн и улучшенный DX - Более строгая валидация DI-графа - Улучшена безопасность типов (нуллабельность) - Поддержка KMP 📊 Результаты по скорости сборки: - Инкрементальные сборки → ускорение на 58-60% - Чистые сборки → ускорение на 17% - ABI-изменения → сборка за 11.9s вместо 28.8s Миграция 1500 модулей проводилась постепенно с двойной поддержкой двух DI фреймворков для безопасного перехода. В зависимости от настройки Gradle менялся DI и генерация кода. Впервые вижу подход, когда был описан граф для 2 разных DI с целью постепенной миграции. Миграцию с Koin на Metro так не сделать, но вот с Koin Annotations на Metro вполне может получится. #DI#KMP#Dagger#Metro#Android#AndroidDev#Anvil