Гаджеты для mac os x. Мои любимые виджеты для Dashboard. PCalc: для расширенных расчетов

Скачать на Телефон 28.06.2020
Скачать на Телефон

Здравствуйте, хабравчане-маководы!

Сегодня мы с вами попробуем разобраться в азах создания виджета для Dashboard в Mac OS X. Нам понадобится программа Dashcode, предназначенная как раз для этого.

Для начала немного теории. Виджет в Dashboard - это специально сформировання веб-страничка, упакованная в бандл вместе со всем ресурсами. Ну, и немного служебной информации в довесок. Соответственно, используемый язык программирования - JavaScript. Если Вы уже знакомы с ним, а так же с HTML/CSS (хотя это вряд ли понадобится), то Вы уже способны написать простенький виджет. Если же нет, то не стоит расстраиваться, этот язык очень прост и интуитивно понятен, разобраться с ним можно достаточно быстро. Далее я буду считать, что с JS читатель более-менее знаком. Сама же статья рассчитана на новичков, так что прошу не ругать за «слишком простое изложение и детальное разжёвывание элементарных вещей». Кроме того, за дизайн тоже прошу не пинать - ну не дизайнер я, не дизайнер! Если кто хочет помочь с этим делом - welcome =)

Для удобства, все исходники (а так же готовый к использованию виджет) выложены на гитхаб, ссылка в конце статьи. Но не спешите просто скачивать их! Лучше потратить немного времени и разобраться, как создать это всё самому.

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


Такой виджет (ну, очень похожий) уже был создан хабратоварищем neoromantic аж в 2007 году, но ссылки на скачивание не рабочие, а кроме того, та статья не содержала практического руководства по созданию подобных виджетов.

Восстановим справе Восполним эти недостатки.

Создадим пустой проект. Для этого запустим Dashcode и кликнем в нужные места. Процесс тривиален.

Что же мы видим? Базовый виджет имеет основное и вспомогательное состояния (соответственно, front и back в левой панели). Первое отображается в обычном режиме работы, второе - для настройки параметров виджета. Переключаться между ними можно выбирая соответствующие пункты в списке компонент слева. Мы можем смело удалить всё лишнее, кроме кнопок «info» и «Done», которые служат для переключения между основным и вспомогательным состояниями. Далее, для простоты, будем называть это лицевой и тыльной сторонами виджета.

Теперь на лицевую сторону нашего виджета (без единой строчки кода!) кидаем нужные компоненты: несколько надписей. Для этого открываем библиотеку комонент - кнопка Library справа вверху - и перетаскиваем на виджет компоненты типа «Text». Теперь открываем Inspector (так же кнопка справа вверху) и с его помощью настраиваем размеры, цвета и так далее для нашего виджета. С его же помощью зададим осмысленные имена нашим надписям - для более удобного доступа из кода.

На тыльную сторону кинем надпись и поле ввода. Ну, и ещё картинку - для красоты. И в итоге получаем примерно следующее:

Что ж, неплохо, наш GUI уже готов! Можем жать Cmd+R и потыкать на кнопки (i) и Done, любуясь эффектом переворота виджета.

Но одного GUI нам мало, так что переходим к логике. Для этого слева вверху жмём на кнопку View и выбираем в выпадающем списке Source Code. И можем уже лицезреть наш автоматически сгенерированный JavaScript-код. И смело начинаем его править!

Для начала определимся с «архитектурой» нашего виджета. Мы будем по таймеру запрашивать через API хабра данные о пользователе, парсить их и отображать карму и рейтинг на лицевой стороне виджета. Для этого объявляем глобальную переменную updateTimer в начале файла main.js, создаём функции startTimer(msec) и stopTimer() , которые будут с этим таймером работать. Так же создадим функцию updateStats() , которая будет вызываться по таймеру.

Function startTimer(msec) { updateTimer = setTimeout("updateStats()", msec); } function stopTimer() { clearTimeout(updateTimer); } function updateStats() { alert("It works!"); startTimer(updateInterval); }
В функцию show() вставим вызов startTimer(5000) для запуска таймера при показе виджета, а в функцию hide() , соответственно, вставим stopTimer() для экономии ресурсов когда виджет не показан (Dashboard не активна). Теперь мы можем запустить наш виджет и увидеть в консоли (Cmd+Alt+1) вывод «It works!» каждые 5 секунд.

Но нас ведь не интересует такой вздор, мы хотим по таймеру дёргать карму и рейтинг! Так что в функции updateStatus() вместо алерта мы будем вызывать функцию execStatsRequest() (API хабра советует не дёргать данные о пользователе чаще, чем раз в минуту, так что увеличим заодно интервал).

Теперь дело за HTTP-запросами к API хабрахабра. Создаём новые функции - execStatsRequest() и processStatsRequest(), которые будут служить для запуска и обработки запросов. Вот как они выглядят у меня:
function execStatsRequest() { if (userName().length > 0) { var Url = "http://habrahabr.ru/api/profile/" + userName() + "/"; alert("User: " + userName() + "\nURL: " + Url); xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = processStatsRequest; xmlHttp.overrideMimeType("text/xml"); xmlHttp.open("GET", Url, true); xmlHttp.send(); } else { resetStats(); } } function processStatsRequest() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { alert("xml is " + xmlHttp.responseXML); if (xmlHttp.responseXML == null) { resetStats(); } else { alert(xmlHttp.responseText); var error = xmlHttp.responseXML.getElementsByTagName("error"); if (error != null) { alert("Some error occured!"); resetStats(); setLogin("<" + userName() + " not found>"); return; } var login = xmlHttp.responseXML.getElementsByTagName("login").firstChild.nodeValue; var karma = xmlHttp.responseXML.getElementsByTagName("karma").firstChild.nodeValue; var rating = xmlHttp.responseXML.getElementsByTagName("rating").firstChild.nodeValue; var position = xmlHttp.responseXML.getElementsByTagName("ratingPosition").firstChild.nodeValue; setLogin(login); setKarma(karma); setRating(rating); setPosition(position); } } }
Здесь мы формируем URL запроса, создаём объект типа XMLHttpRequest, и с его помощью запрашиваем методом GET наши данные. Что примечательно, приходится насильно ставить ответу MIME-тип «text/xml» , ибо хабра-апи возвращает почему-то «text/html». А в функции processStatsRequest() мы парсим полученный в XML ответ. При этом, мы проверяем его на наличие ошибки - и уведомляем об этом пользователя.

Тут стоит отвлечься от кода и настроить сам виджет - разрешить ему работать с сетью. Для этого в левой панели прокручиваем список элементов вниз и видим пункт Widget Attributes. Здесь просто ставим галочку «Allow Network Access». Так же можно настроить id виджета и его версию. Теперь вернёмся к коду.

Функции setLogin() , setKarma() и иже с ними отображают передаваемую в них строку в нужных полях лицевой стороны. Они были созданы для удобства и выглядят однотипно, вроде того:

Function setLogin(login) { document.getElementById("userName").innerText = login; }
Функция же resetStats() устанавливает дефолтные значения для всех полей. А функции setUserName() и userName() служат обёрткой над полем ввода имени хабраюзера на тыльной стороне виджета:

Function userName() { return document.getElementById("nameEdit").value; } function setUserName(name) { document.getElementById("nameEdit").value = name; }
Что ж, виджет почти готов. Почему почти? Да потому что нам надо бы ещё сохранять в настройках введённое имя пользователя. Для этого пишем функции loadPrefs() и savePrefs() .

Var preferenceKey = "habraUserName"; function loadPrefs() { var name = widget.preferenceForKey(widget.identifier + "-" + preferenceKey); alert(widget.identifier + "-" + preferenceKey); alert("name from preferences: " + name); if (name != null) setUserName(name); } function savePrefs() { widget.setPreferenceForKey(userName(), widget.identifier + "-" + preferenceKey); }
Эти функции целесообразно вызывать соответственно в функциях show() и hide() . Настройка будет уникальна для каждого виджета, что позволяет накидать на Dashboard виджеты с информацией по нескольким пользователям.

Ну, теперь уж точно виджет готов к использованию. Но нет предела совершенству! Локализуем теперь наш виджет, дабы иметь русскую и английскую версии. Вы так же можете сделать (как домашнее задание) локализацию на французский и японский языки.

Переходм к нашей лицевой стороне, вызываем инспектор. Теперь поочерёдно выделяем наши надписи и в разделе Localization инспектора выставляем в поле Value значение на английском языке. Они, вероятно, будут совпадать с предустановленными уже значениями поля Key. Эти значения будут внесены в дефолтную (английскую) локализацию, что можно увидеть в файле en.lproj/localizedStrings.js .

Теперь добавим русскую локализацию. Переходм в Widget Attributes и в разделе Localization добавляем (в левом списке) русский язык. Выбираем его, и теперь в правом списке можем вводить локализованные строки.


Эти значения, соответственно, будут прописаны в ru.lproj/localizedStrings.js .

Собственно, вот и всё, можем запускать наш виджет и любоваться своей (или чужой) кармой! Чтобы установить виджет в Dashboard, нужно выбрать Run & Share в левой панели и выбрать Save to Disk или Deploy to Dashboard - в зависимости от наших потребностей.

Если хочется скачать уже готовый виджет, то милости прошу.

Большинство пользователей компьютеров от Apple, которые уже установили себе последнюю версию операционной системы macOS, после обновления не смогли найти ранее привычную всем панель Dashboard, на которой обычно располагаются различные виджеты.

Некоторые источники даже сообщали, что Apple убрала её из новой версии операционной системы совсем, однако это не так, просто в Mojave она теперь отключена по умолчанию, а вернуть эту панель с виджетами можно буквально в пару кликов.

Напомним что Dashboard - это такая программа, которая отображается отдельными окном в macOS и обычно идет перед всеми рабочими столами. Основное её предназначение - расположение различных виджетов для быстрого доступа, таких как: погода, калькулятор, заметки, календарь и множества других на свой вкус.

Однако установив последнюю версию операционной системы от Apple - Mojave пользователи не обнаружили привычного для них окна с виджетами на его законном месте, да и вообще нигде не обнаружили. Плохо искали!

Действительно, Apple по умолчанию отключила Dashboard в новой версии macOS посчитав этот инструмент устаревшим и бесполезными, но как это часто бывает, многие с таким мнением остались не согласны и хотят его вернуть. И вот как это сделать.

Для того, что бы включить Dashboard в Mojave проделайте следующие действия.

1. Откройте системные настройки.

Для этого кликните на "яблочко" в левом верхнем углу экрана Mac OS и в выпадающем меню выберите пункт "Системные настройки" .

2. Откройте Mission Control

В открывшемся меню настроек системы найдите и откройте пункт с названием "Mission Control" .

3. Настройте отображение Dashboard

Последним делом в открывшемся меню найдите пункт "Dashboard" и в выпадающем списке выберите, как вы хотите его отображать. Для того, что бы он отображался отдельным окном выберите в списке пункт "Как пространство" .

В общем то это всё, можно закрыть меню и поискать окно с виджетами на его привычном месте. Для этого просто нажмите Fn+F9 (отобразится список всех рабочих столов, включая окно Dashboard).

Для дашборда в OS X">

На порядок повышаем эффективность использования своего Mac за полчаса.

Dashboard в OS X - это место, куда можно поместить виджеты для мгновенного доступа к различным приложениям и сайтам. Он запускается сочетанием клавиш Fn + F12 . По умолчанию Dashboard выглядит так:

Как видите, ничего интересного. Но если потратить немного времени, то можно превратить его в удобную площадку для начала работы с Mac. Просто надо добавить виджетов.

Во-первых, разместить на нем любимые сайты. Делается это так:

  • 1. Открываем нужный сайт в браузере Safari;
  • 2. Выбираем Файл -> Открыть в Dashboard;
  • 3. Выделяем часть страницы, которую надо отображать в виджете и нажимаем кнопку Добавить ;
  • Убеждаемся, что на Dashboard появился новый виджет.

Помимо сайтов на Dashboard можно добавлять виджеты-приложения. О 12 самых полезных из сейчас расскажем.

Как устанавливать виджеты из статьи?

После загрузки файла по ссылке (с расширением wght) надо кликнуть на него два раза и подтвердить установку. После этого новый виджет появится в списке дополнительных виджетов, которые доступны после клика на плюсик в левом нижнем углу экрана Dashboard.

1. Яндекс.Пробки

Этот виджет позволяет единым взором оценить дорожную ситуацию в вашем городе. Карта несколько мелковата, но основные улицы вполне можно разобрать.

2. Mac Tips and Tricks

Тонна полезных советов по использованию Mac. Если держать этот виджет на видном месте и время от времени читать материалы из него, то через полгода можно стать настоящим гуру OS X.

3. Calendar Countdown

С помощью этого виджета можно сделать счетчик, который показывает сколько времени осталось до того или иного события.

4. Classic NotePad

Текстовый редактор стилизованный под старые маки.

5. iCal Events

Отображает список ближайших событий из вашего календаря.

6. Font See

Этот виджет поможет узнать, как будет выглядеть текст набранный определенным шрифтом.

7. iTiny URL

Виджет для сокращения длинных URL-адресов.

8. Key Shorts

Справочник по горячим клавишам.

9. Nasa Image of The Day

Картинка дня от NASA. Украшает, вдохновляет и расширяет кругозор.

10. iTunes Music Store Charts

11. Currency Converter

Очень удобный конвертер валют. С его помощью можно посмотреть эквиваленты заданной суммы сразу в нескольких денежных единицах (их список настраивается пользователем).

12. Power Switch

Бывало ли у вас, когда вы дожидались 5-10-15 минут установки какой-то программы и не ложились спать, чтобы после ее завершения выключить Mac? C Power Switch бы не пришлось ждать. Этот виджет может запланировать выключение/выход в режим сна/перезагрузку компьютера через определенный временной интервал.

Многие владельцы компьютеров Mac предпочитают внимательно следить - причем не только внешним, но и "внутренним". Для этого им мало стандартного "Мониторинга системы": они устанавливают по 3-4 сторонних приложения и отслеживают большинство параметров с их помощью. Но что, если все это окажется прямо в центре уведомлений Mac, да еще и с крутой визуальной реализацией?

И такой виджет есть. Он появился в Mac в прошлом месяце и называется MONIT. Говорящее название, не правда ли? Он черпает информацию о множестве показателей — количестве , загруженности процессора или оперативной памяти, показывает данные о сетевом подключении вместе со скоростью загрузки и скачивания, и многое другое.


При нажатии на нужный параметр вы увидите более подробную информацию о нем.


Программа действительно удобная и полезная — захотели узнать, насколько загружен процессор, открыли центр уведомлений — и все видно! Но самый главный ее плюс — цена. MONIT распространяется абсолютно бесплатно, загрузить можно по ссылке ниже.

Название: MONIT
Издатель/разработчик: Tildeslash Norge Ltd
Цена: Бесплатно
Встроенные покупки: Нет
Совместимость: OS X 10.11 и выше
Ссылка:

В операционной системе OS X, как и в iOS нет возможности добавить виджеты на рабочий стол, подобно тому как это реализовано в Android или Windows. Но в OS X, начиная с версии 10.4, есть отдельное рабочее пространство с виджетами — Dashboard .

Его можно вызвать специальным жестом по трекпаду или с помощью горячей клавиши. В данной инструкции мы расскажем Вам, как вынести любой виджет, совместимый с Dashboard на рабочий стол Вашего Mac.

Для начала нам потребуется включить режим разработчика Dashboard . Для этого необходимо:

1. Открыть терминал и ввести следующую команду:

defaults write com.apple.dashboard devmode YES

2. Затем открыть «Системные настройки» и выбрать пункт Mission Control .

3. Убрать галочку напротив опции «Показывать Dashboard как пространство»

4. Теперь необходимо нажать на значок  панели меню и выбрать опцию «Завершить сеанс» , затем снова войти в систему под своим профилем, что бы изменения вступили в силу.

Теперь можно непосредственно приступить к добавлению виджетов на рабочий стол.

1. Для того, что бы открыть Dashbord теперь нельзя использовать жест «смахивания». Поэтому, что бы его открыть используйте горячую клавишу — F4.

2. После открытия Dashboard нажмите указателем мыши и удерживайте требуемый виджет, при этом еще раз нажмите на горячую клавишу.

3. После этого виджет останется на рабочем столе. И его можно будет переместить в любое место.

Для удаления виджета с рабочего стола:

1. Нажмите и удерживайте указатель мыши на виджете на рабочем столе.

2. Вызовите Dashboard с помощью горячей клавиши F4 и только после этого отпустите кнопку мыши и закройте Dashboard .

Для отключения режима разработчика Dashboard введите следующую комманду в терминале:

defaults write com.apple.dashboard devmode NO

Единственным недостатком этого способа является то, что виджеты, добавленные на рабочий стол, будут всегда находится поверх окон других приложений, даже поверх окна Launchpad.


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



Рекомендуем почитать

Наверх