Developer Box
33 subscribers
50 photos
8 videos
37 links
channel unstoppable developer

author: @normno
github: github.com/NORMss
website: normno.ru
Download Telegram
Не прошло и года...

Официально выпускаю первую версию своего небольшого приложения для скачивания видео с RuTube для Windows и Android. Спасибо "блокировке" YouTube и всем, кто начал терабайтами грузить весь контент на RuTube и VK видео. По большей степени, приложение нужно для скачивания фильмов и сериалов

Вот ссылка на репозиторий со всем необходимом для установки: https://github.com/NORMss/RutubeDowloader (там правда ничего сложного)

Много полезных штук получилось поместить в этот релиз. Надеюсь получится записать короткое видео с показом всего, а пока все красиво расписал в репозитории GitHub. В будущем хочу сделать: больше подсказок, обработку ошибок пользователя и самое главное - скачивание в фоне на android

KMP показал себя во всей красе, жаль только не могу протестировать на macOs и iOS
По своим предложениям пишите в директ канала - это БЕСПЛАТНО
🔥4🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
Есть такой классный инструмент в Compose, который всегда был доступен веб-разработчикам, как Hot Reload

Благодаря ему можно без перезапуска приложения изменить UI в коде и сразу (после нажатия Ctrl + S) увидеть изменения в запущенном приложении. На Android это уже было давно, но теперь это доступно и в KMP

В закрепе можете увидеть пример на Windows - сделали очень стильно

Если ваш IntelliJ или Android Studio не поддерживает KMP и сам не предлагает запустить приложение в режиме Hot Reload, то можно без проблем создать свой вариант сборки Gradle с параметрами
composeApp:desktopRunHot --autoReload --mainClass=ru.normno.hotreloadcmp.MainKt


Подробнее про работу с Hot Reload и внедрением его в проект можно узнать на сайте JetBrains
🔥31
Маленько офтопа

Сегодня утром Windows решил обновиться до 24H2 (26100.4652) и у меня впервые в жизни слетел активатор
Так что будьте аккуратнее

UPD: всеми известные программы-активаторы исправили ситуацию
🤯2
Захотелось немного красоты

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

Существует один талант в мире красивого UI на Compose под псевдонимом Sinasamaki. У него есть множество уроков по созданию красивых штук на Compose и чуть-чуть XML. Один из таких - это Mesh Gradients in Jetpack Compose. Все было бы хорошо, если автор не предложил использовать не пойми откуда взявшийся модификатор meshGradient. Я так понимаю это модификатор из его UiKit за подписку.
Не сильно отчаявшись, начал делать все по урокам Google Brush: gradients and shaders через шейдеры на AGSL

Пока что получилось сделать небольшую анимацию
This media is not supported in your browser
VIEW IN TELEGRAM
💯3🔥1
Идет первый meetup про Android (здесь сохранится запись) у Сбера. На нем узнал, что Kaspersky использует Decompose для навигации. Пока очень интересная конференция получается

UPD: Выбрали они Decompose из-за более гибкой работы с жизненным циклом android
😭1
Еще на этой конференции рассказывали как Сберу удалось внедрить шрифт Брайля в устройство с плоским экраном, то есть в их терминал оплаты. Сделано это было для того, чтобы незрячие люди могли вводить пин-код без помощи других. Также был сделан крутой инструмент где вы можете научиться вводить пин-код на терминале прямо сейчас:
https://braille-trainer.vercel.app/

Разработку вела команда android
This media is not supported in your browser
VIEW IN TELEGRAM
Google, вы адекватные?
За последнюю неделю сильно изменились стандартные приложения на Android в плане шрифтов, размеров и положений элементов. Вот такое я сейчас заметил в часах...

Скорее всего это из-за нового элемента TextAutoSize, который сам подгоняет размер шрифта в зависимости от размера экрана, но видимо шрифты поменяли в последний момент и получилось это
🤯2😭2
This media is not supported in your browser
VIEW IN TELEGRAM
Сошлись 3 мои любимые вещи (жанр музыки Drum&Bass, программирование и красивые IDE) в одном Open Source проекте под названием Strudel

У этого проекта есть web приложение: strudel.cc
И репозиторий с кодом: codeberg.org/uzu/strudel

Я не смотрю вертикальные видео - это просто хороший пример
🔥3
Вот и прошла презентация Apple

Новый iPhone Air - вот это действительно AMAZING
🔥1
Нет, я не пропал, а все также продолжаю увлекаться Kotlin и KMP разработкой. Теперь будем пробовать macOs и iOS. Плюс на тайного Санту получил вот такую вот книжку
🔥5💩2
Как давно я это мечтал увидеть
🔥2
Мои рекомендации YouTube в 4 часа ночи

Git в Minecraft кажется очень необходимой вещью для строителей крупных проектов

Сразу вспоминается как я на первых курсах сохранял копии курсовой работы во время разработки, чтобы не потерять рабочие версии

https://youtu.be/ZdM-iNpv3nU?si=D3NUnNgtpS7gE3Vc
🔥2
В Material3 версии 1.5.0 добавили предустановки для анимаций, которые можно включить в Theme.kt

MaterialTheme(
colorScheme = colorScheme,
typography = Typography,
motionScheme = MotionScheme.expressive(),
content = content,
)

Затем в animationSpec прописываем предустановку из MaterialTheme по аналогии с typography или colorScheme

val animationProgress by animateFloatAsState(
...
animationSpec = MaterialTheme.motionScheme.slowSpatialSpec(),
)

На видео и в примере кода новые анимации из M3 Expressive
This media is not supported in your browser
VIEW IN TELEGRAM
2💯1
Google уже сделала Compose основным инструментом для разработки UI в Android и собирается постепенно прекращать поддержку XML в новых версиях Android Studio. Compose тоже не идеален и имеет свои проблемы. Одна из таких проблем - это лишние рекомпозиции. В каждой новой версии Compose появляются улучшения механизмов отрисовки UI, но что-то приходится улучшать самому используя лучшие концепции для создания динамичного UI

В последнем очень сильно может помочь плагин Compose Stability Analyzer для отслеживания стабильности UI от легенды Android разработки Jaewoong Eum
💯5
Дошли руки и до моего любимого pet проекта - RutubeDownloader, которым я пользуюсь регулярно

Получилось интегрировать iOS таргет в проект и успешно запустить приложение на эмуляторе через XCode. Вот коммит со всеми изменениями, которые пришлось сделать

Есть небольшие платформенные особенности которые быстро получится исправить. На macOs заработало сразу, благодаря JVM
🔥5
https://normno.ru/

На телефоне без использования компьютера создал себе новый сайт-портфолио с проектами, публикациями и музыкой из моего Spotify. Есть возможность редактирования у многих элементов из админки

Для этого понадобилось:
1. Создать макет сайта в Claude Design
2. Закинуть макет и написать ТЗ в Claude Code
3. Развернуть контейнер с сайтом на своем VPS

На все ушло в сумме 3 часа чистой работы. В этом репозиторий можно подробнее узнать о сайте: https://github.com/NORMss/ProfileWebNORM
🤯2🔥1
Это тестовый пост из сайта

Да, этот пост я написал не в telegram, а на сайте normno.ru
Теперь у меня работает синхронизация постов с сайтом и теперь без разницы где их читать и писать. Жаль что писать нечего(((
🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
TG WS Flowseal

Если вам знакомы эти три слова, то вы уже эксперт в современном интернете, но я придумал кое что еще...

Flowseal уже сделал супер удобный клиент Proxy для Windows, MacOS и Linux, который можно развернуть на OpenWRT, но нет варианта для iOS и Android(

Что же было придумано

TG WS можно было развернуть на OpenWRT, но мы упираемся в память роутера и его производительность. Есть запасной вариант - это взять старый ноутбук или не отключать компьютер и накатить клиент TG WS туда, что я и сделал...

Теперь пошаговый гайд

• Устанавливаем TG WS с GitHub или зеркала
• Запускам TG WS и заходим в настройки из значка в трее
• В разделе IP adress вводим 0.0.0.0 - это откроет ваше устройство для локальной сети. TG WG предложит перезапустить Proxy - Соглашаемся
• На Windows, система автоматический запросит разрешение на доступ к локальный сети - Разрешаем. На других системах, вам скорее всего понадобится самому разобраться с Firewall.
• Теперь, также через значок TG WS в трее открываем Телеграм и в открывшимся окне вы увидите запрос на подключение к proxy с уже вашим ip адресом. Эту ссылку отправьте другим пользователям в локальной сети вашего роутера для использования Телеграм

⚠️ ДИСКЛЕЙМЕР
При перезагрузке роутера или устройства на котором работает TG WS, скорее всего сменится IP адрес устройства в локальной сети. Чтобы такого не было, например, на OpenWRT можно задать статичный IP по MAC или каждый раз обновляйте IP вашего устройства в ссылке tg://proxy?server=<IP вашего устройства>
🔥2