Ранее я уже упоминал о другой фишке из ˍˍfutureˍˍ , это оператор деления.
from __future__ import division
Суть проста. Раньше сложность типа данных результата поределялась типом самого сложного операнда.
Например:
int/int => int
int/float => float
В первом случае оба операнда int, значит и результат будет int. Во втором float более сложный тип, поэтому результат будет float.
Если нам требуется получить дробное значение при делении двух int то приходилось форсированно один из операндов конверировать в float.
12/float(5) => float
Но с новой "философией" это не требуется. В Python3 "floor division" заменили на "true division" а старый способ теперь работает через оператор "//".
>>> 3/2
1.5
>>> 3//2
1
То есть теперь деление int на int даёт float если результат не целое число.
В классах теперь доступны методы __floordiv__() и __truediv__() для определения поведения с этими операторами.
Данный переход описан в PEP238.
#pep#2to3#basic
Material 3 Expressive начали раскатывать на Android часы. Сразу сделали краткий обзор нововведений и запустили неделю, посвященную разработки под обновлённую WearOS
#android#wearos#material3expressive
🤖 Вышла Material Components for Android 1.1.3 с компонентами из Material 3 Expressive (но пока еще не всё)
Что добавили из комнентов:
👉DockedToolbarLayout - компонент для показа действий на текущем экране/странице (обычно закреплен в нижний части экрана)
👉FloatingToolbarLayout - плавающий набор действия для текущего экрана/страницы
👉LoadingIndicator - новые индикаторы ожидания
👉MaterialSplitButton - разделенная кнопка
👉MaterialButtonGroup - компонент для группировки нескольких кнопок
Что ещё из важного:
👉 Минимальный Android SDK подняли до 21
👉 Включили nonTransitiveRClass (про последствия для вас читайте тут)
👉 Официальная поддержка Material 3 Expressive будет в версии 1.14.0. Уже есть альфа версии
🛠 Много улучшений существующих компонентов и исправления багов
#android#material3#material3expressive
🤖 Androidify - пример приложения со всем модным стеком от Google: Jetpack Compose, Gemini API через Firebase AI Logic SDK, CameraX, Media3, Material 3 Expressive и Navigation 3. Поддержка экранов разных размеров и складных устройств
Больше подробностей в статье и есть 🐱исходный код на GitHub
#android#compose#material3expressive#пример
🤖Редизайн WearOS с Material 3 Expressive
Google WearOS 6 получит редизайн на основе Material 3 Expressive. Обещают что изменения дизайна не повлияют на время работы часов, а даже наоборот - в WearOS 6 станет на 10% дольше времени работы
Как пользователь Google Pixel Watch могу сказать что показанное меня очень радует. Сейчас дизайн неудобный
#android#wearos#material3#material3expressive
🤖Редизайн Android - Material 3 Expressive
В рамках The Android Show I/O Edition показали "самый большой редизайн Android за всё время" (со слов спикера). Нас ждет Material 3 Expressive - обновленная версия Material 3 на основе существующих токенов
Буду садиться разбираться и рассказывать на 🪙Boosty про что будет в обновлении
#android#android16#material#ui#material3expressive
🤯Navigation Drawer становится Deprecated
В Material 3 Expressive делают deprecated компонент "Navigation Drawer". Заменой ему предлагают "Navigation Rail", предлагающий ту же функциональность, но лучше адаптирующийся под разные размеры окна
#ui#material#material3#material3expressive