ycliper

Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
Скачать

Build a Pomodoro Timer & Package It as a DMG — Compose Desktop | Kotlin Desktop Lesson 20

Автор: Taught by Celeste AI - AI Coding Coach

Загружено: 2026-02-25

Просмотров: 32

Описание: Learn how to package Compose Desktop apps as native installers! We build a Pomodoro Timer with a circular Canvas progress ring, phase-specific
colors, and auto-advancing work/break cycles — then configure nativeDistributions in Gradle to produce a DMG installer with one command.

What You'll Learn:
nativeDistributions block to configure native packaging in Gradle
targetFormats for DMG (macOS), MSI (Windows), and DEB (Linux) installers
Package metadata: packageName, packageVersion, vendor, and description
Platform-specific config: macOS bundleID, Windows menuGroup, Linux debMaintainer
Running ./gradlew packageDmg to build a native macOS installer
Canvas drawArc for circular progress indicators with StrokeCap.Round
LaunchedEffect for countdown timer with auto-advance between phases
Pomodoro pattern: Work (25min) → Short Break (5min) → Long Break (15min) after 4 sessions
Session tracking dots with filled/outlined Canvas circles
Toolkit.getDefaultToolkit().beep() for phase completion alerts

Timestamps:
0:00 - Introduction
0:15 - Preview: Pomodoro Timer App
0:45 - Project Setup & Pomodoro Models
3:23 - Timer Circle with Canvas drawArc
5:30 - AppContent, Main & Compile
12:18 - Packaging with nativeDistributions
14:58 - Live Demo: Pomodoro Timer
15:53 - Recap & Key Takeaways
16:53 - Thanks for Watching

Key Takeaways:
1. nativeDistributions — Configure targetFormats to build DMG, MSI, and DEB installers from Gradle
2. Package Metadata — Set packageName, version, vendor, and description for professional distribution
3. Platform Config — macOS bundleID, Windows menuGroup, Linux debMaintainer for each target OS
4. Gradle Tasks — Run packageDmg, packageMsi, or packageDeb to build platform-specific installers
5. Canvas drawArc — Create circular progress indicators with Canvas, drawArc, and StrokeCap.Round

Source Code: https://github.com/GoCelesteAI/kotlin...

Не удается загрузить Youtube-плеер. Проверьте блокировку Youtube в вашей сети.
Повторяем попытку...
Build a Pomodoro Timer & Package It as a DMG — Compose Desktop | Kotlin Desktop Lesson 20

Поделиться в:

Доступные форматы для скачивания:

Скачать видео

  • Информация по загрузке:

Скачать аудио

Похожие видео

Lua for Beginners: Error Handling — Handling Things That Go Wrong with pcall & assert | Episode 27

Lua for Beginners: Error Handling — Handling Things That Go Wrong with pcall & assert | Episode 27

1 A.M Study Session 📚 [lofi hip hop]

1 A.M Study Session 📚 [lofi hip hop]

CI/CD — Простым языком на понятном примере

CI/CD — Простым языком на понятном примере

Кто пишет код лучше всех? Сравнил GPT‑5.2, Opus 4.5, Sonnet 4.5, Gemini 3, Qwen 3 Max, Kimi, GLM

Кто пишет код лучше всех? Сравнил GPT‑5.2, Opus 4.5, Sonnet 4.5, Gemini 3, Qwen 3 Max, Kimi, GLM

FEDE VALVERDE OSZALAŁ I RONALD ARAUJO W SUMIE TEŻ - URUGWAJCZYCY KLUCZOWI W MECZACH REALU I BARCY

FEDE VALVERDE OSZALAŁ I RONALD ARAUJO W SUMIE TEŻ - URUGWAJCZYCY KLUCZOWI W MECZACH REALU I BARCY

SQLite CRUD in Tauri: Build an Article Manager with Rust & React

SQLite CRUD in Tauri: Build an Article Manager with Rust & React

У меня ушло 10+ лет, чтобы понять то, что я расскажу за 11 минут

У меня ушло 10+ лет, чтобы понять то, что я расскажу за 11 минут

Как учиться быстро и самому? На примере языков  программирования.

Как учиться быстро и самому? На примере языков программирования.

MICHAŁ WAWER I JACEK PRUSINOWSKI - PORANNE ROZMOWY ZERO

MICHAŁ WAWER I JACEK PRUSINOWSKI - PORANNE ROZMOWY ZERO

Запуск нейросетей локально. Генерируем - ВСЁ

Запуск нейросетей локально. Генерируем - ВСЁ

Lua with Neovim: Type Conversion — Automatic Coercion, Safe Defaults & Explicit Casts | Episode 28

Lua with Neovim: Type Conversion — Automatic Coercion, Safe Defaults & Explicit Casts | Episode 28

Вайб-Кодинг — Гайд Для Тупых (Приложение За 1 Минуту Без Кода)

Вайб-Кодинг — Гайд Для Тупых (Приложение За 1 Минуту Без Кода)

Claude Code с КОМАНДОЙ агентов - автономная машина разработки

Claude Code с КОМАНДОЙ агентов - автономная машина разработки

Что такое API? Простыми Словами Для Начинающих

Что такое API? Простыми Словами Для Начинающих

Вайб-кодинг в Cursor AI: полный гайд + реальный пример проекта (подходы, техники, трюки)

Вайб-кодинг в Cursor AI: полный гайд + реальный пример проекта (подходы, техники, трюки)

Lua with Neovim: Writing a Neovim Plugin — Plugin Structure, Setup Pattern & Custom Commands | Ep 32

Lua with Neovim: Writing a Neovim Plugin — Plugin Structure, Setup Pattern & Custom Commands | Ep 32

AI-стартап за 38 часов: вайб-кодинг спидран с Claude Code (идея → MVP → релиз)

AI-стартап за 38 часов: вайб-кодинг спидран с Claude Code (идея → MVP → релиз)

Почему AI генерит мусор — и как заставить его писать нормальный код

Почему AI генерит мусор — и как заставить его писать нормальный код

КАК СОЗДАТЬ ИИ ассистента ЗА 20 МИНУТ без кода С НУЛЯ и заработать на этом

КАК СОЗДАТЬ ИИ ассистента ЗА 20 МИНУТ без кода С НУЛЯ и заработать на этом

Lua with Neovim: Metatables — __tostring, __add, __eq, __index & Custom Table Behavior | Episode 29

Lua with Neovim: Metatables — __tostring, __add, __eq, __index & Custom Table Behavior | Episode 29

© 2025 ycliper. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]