Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Скрытие приложения по нажатию на кнопку "Закрыть" #6

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Davvie
Copy link

@Davvie Davvie commented May 30, 2022

Отличное приложение, спасибо!

Единственное, что было неожиданно для меня - полное закрытие по нажатию на кнопку "Закрыть". Большинство приложений на Маке скрываются, включая Music.app

В этом PR сделал скрытие вместо закрытия

@debug45
Copy link
Owner

debug45 commented May 31, 2022

Привет! Логика автозавершения обычно используется в приложениях, не поддерживающих многооконность — когда всё равно нельзя создать более чем одно окно. Наглядным системным примером такого паттерна является App Store, он тоже автоматически полностью завершается при закрытии пользователем его единственного окна.

Вообще говоря, фича закрытия окон в macOS предназначена для их удаления из памяти и высвобождения таким образом ресурсов системы. То есть когда вы попытаетесь снова воспользоваться тем или иным приложением после закрытия последнего его окна, для вас будет автоматически создано уже новое окно, с полностью новым внутренним его состоянием, включая сброшенный скролл и так далее. К слову, частое пересоздание окон таким образом — это относительно тяжеловесная история, не очень рациональная в плане производительности и экономии заряда аккумулятора ноутбука.

Системная «Музыка» действительно почему-то оверрайдит дефолтное поведение, по крестику сворачивая окно вместо его удаления. Однако в таком случае остаётся неотвеченным следующий логичный вопрос к разработчикам сего приложения — зачем подобным образом дублируется функциональность, если скрытие и так уже реализовано для всех окон в системе как отдельная самостоятельная фича? Налицо довольно странный UX-антипаттерн.

Возвращаясь к нашей теме, рекомендую пользоваться сворачиванием окна (Command + M) либо его скрытием (Command + H) в зависимости от того, что лично вам удобнее. А оверрайдить крестик на скрытие окна вместо его поведения по умолчанию (закрытия) — слишком уж сомнительный, я считаю, подход с точки зрения адекватности UX и собственных же гайдлайнов Apple. 🤷‍♂️

@Davvie
Copy link
Author

Davvie commented May 31, 2022

Привет! Вообще хороший аргумент, про App Store забыл :)

Про Музыку - там это поведение досталось от iTunes, который тоже так работал. Подозреваю, что такое исключение сделали, потому что пользователь не ожидает, что музыка перестанет играть, когда он закроет окно. И в Spotify тоже так

Из одноэкранных приложений, которые сворачиваются, а не закрываются, смог найти еще системный Календарь и Заметки. Похоже, Apple не строго следует этому правилу

@IlyaShorin
Copy link

IlyaShorin commented Dec 21, 2022

Я тут кабанчиком пробегал, кхм.
Было бы здорово при нажатии на закрытие приложения убирать его из дока (но не завершать), например в строку меню.
Не вижу смысла особого в иконке в доке, если работают кнопки на клавиатуре по переключению треков и постановке на паузу, а если уж очень надо открыть приложение чтобы поискать трек, можно это сделать из меню состояния, или быстро открыв его через спотлайт.
В общем я говорю об аналогичном поведении приложения бартендер, или какой-нибудь скриншотер типа shottr

Если в сборку это добавлять не хочется, может умные люди подскажут как исходник пересобрать нужным мне образом?

tsynik added a commit to tsynik/Yandex-Music that referenced this pull request Jan 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants