Как стать автором
Обновить
17.17

macOS *

Настольная ОС компании Apple

Сначала показывать
Порог рейтинга
Уровень сложности

Интеграция приложений Qt в среду Mac OS X (с использованием Cocoa и Objective-C++)

Время на прочтение9 мин
Количество просмотров14K
Доброго всем дня!

Недавно я писал о кастомизации заголовка окна в Mac OS X и получил реквесты написать поподробнее о взаимодействии Qt и Cocoa. Думаю, тему можно немного развернуть и написать об интеграции приложений, написанных с помощью Qt, в среду Mac OS X. Оговорюсь, что используется в данном случае Qt for Cocoa, если возьмёте Qt for Carbon, то и работать придётся только с карбоном. Но он морально устарел, и использовать его стоит только в крайних случаях.

Обычная Qt-программа имеет ряд несостыковок с Apple HIG. Точнее, может иметь, так как не всем программам нужен дополнительный функционал. Например, не любой программе надо иметь бэдж поверх значка в доке, расширять меню дока или выносить/дублировать некоторые функции в маковское меню.

Но что делать, если такой функционал нужен? Если нужно отображать в доке количество уведомлений (а-ля скайп), обрабатывать клик по иконке в доке, добавлять свои пункты меню в док, да ещё и иметь нормальное меню, в общем, сделать так, чтобы программа смотрелась как родная в Mac OS? Что-то из этого можно сделать с помощью штатных или полудокументированных функций Qt, а что-то — только с использованием Cocoa и, соответственно, Objective-C… Что же делать?

Нам поможет Objective-C-plus-plus!

Кастомизация заголовка окна в Mac OS X

Время на прочтение6 мин
Количество просмотров6K
Добрый день, %username%!

Не так давно пришла необходимость в кастомизации заголовка окна своей программы в Mac OS X. Если это делают iCal.app и Adress Book.app, то почему бы и мне не сделать так же?

Первые же ссылки из гугла дали мне несколько зацепок, и даже одна тестовая программа (после долгих плясок с бубном) скомпилилась и отобразила свой нестандартный заголовок. Но она требовала подключения приватных хедеров, их модификации (для соответствия новой версии Mac OS X) и т.п… А мне хотелось лучшего, хотелось сделать проще, да ещё и задать цвет текста заголовка окна (для гармонии с новым цветом заголовка). Отбросив все неудачные примеры, начал я копать зацепки…

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

Осторожно! Под катом присутствует магия рантайма.
Магию в студию!

Новый Skype 5.4 Beta

Время на прочтение1 мин
Количество просмотров700
Сегодня вышел новый Skype 5.4 Beta.

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

Скачать новую версию можно здесь.

Тернистый путь iOS Developer'а

Время на прочтение2 мин
Количество просмотров13K
Привет Хабр!
Я вот недавно подсел на ваш сайт, в частности раздел посвященный iOS разработке. Этим делом профессионально занимаюсь вот уже как 5 лет и многое повидал. Вот теперь решил поделиться и своим опытом, может кто сочтет полезным.
Читать дальше →

Смена временных зон в Mac OS X Snow Leopard

Время на прочтение2 мин
Количество просмотров18K

Введение


В связи с отменой перехода на летнее/зимнее время посвящается.

В Mac OS X настройки часовых поясов находятся в двух местах: /etc/localtime и /usr/share/icu/icudtXXX.dat.
/etc/localtime, который является сиволической ссылкой на /usr/share/zoneinfo/[установленная time zone, например Europe/Moscow], задает настройки временных зон для консоли.
Системные часы, приложения Mail и прочие берут настройки тайм-зон из /usr/share/icu/icudtXXX.dat.

30 октября 2011г. у меня случилось следующее: в Terminal'е и различных консольных утилитах время правильное(localtime был заранее обновлен), а в Mail, системных часах и прочем отстает на час.

Решение проблемы


Читать дальше →

Добавляем города в виджет World Clock

Время на прочтение3 мин
Количество просмотров7.1K


Если кто-то из пользователей MacOS вынужден следить за временем в разных часовых поясах (ну или наслаждается этим процессом глобализации), он, возможно, захочет использовать для этих целей Dashboard и стандартный виджет World Clock.

Однако, к сожалению, этот виджет не позволяет отображать время для всех нужных городов, к примеру, в нем от рождения нет Минска! Краем уха я слышал, что виджеты для дашборда наврайчены на javascript/css/html. Итак, пришло время посмотреть, так ли это, и исправить недоразумение с недостатком городов. Я не задавался целью изучать API виджетов, это скорее туториал для людей, не совсем близких к программированию.

Читать дальше →

Выключение внутреннего экрана ноутбука в Lion

Время на прочтение1 мин
Количество просмотров7.4K
В Mac OS X Lion компания Apple изменила поведение макбуков при закрытии крышки с подключенным внешним монитором, это было специальное изменение, о чём можно судить из документации: support.apple.com/kb/ht3131

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

На днях на форумах Apple наконец-то появилось решение, возвращающее поведение как в Snow Leopard.
Читать дальше →

NTFS-3G в OS X Lion

Время на прочтение1 мин
Количество просмотров61K
NTFS-3G for Mac

Понадобилось подмонтировать (на запись, разумеется) свой внешний жёсткий диск (отформатрированный в NTFS) к Макбуку, на котором стоит OS X Lion.

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

Под катом — решение и подводные камни.
Читать дальше →

Многоканальное аудио для MAC OS своими руками или как обЪединять интерфейсы

Время на прочтение3 мин
Количество просмотров30K
Пошаговое руководство, как скрутить вместе 2 разных аудиоинтерфейса в один под MAC OS X без паяльника и дополнительных проводов. Думаю, будет полезно дискжокеям и сочувствующим.
Читать дальше →

Lion отправлен на золото

Время на прочтение1 мин
Количество просмотров690
Gold Master билд Mac OS X 10.7 Lion стал доступен для загрузки зарегистрированным разработчикам в Mac Dev Center. GM билдом стал билд 11A511.

Выход в App Store для обычных пользователей запланирован на этот месяц.

Fuse4X — стандартная реализация Fuse API для MacOSX

Время на прочтение2 мин
Количество просмотров2.5K
Замечательная новость в стане разработчиков под MacOSX. Совсем недавно вышел релиз проекта Fuse4X — порта Fuse под MacOSX.

Традиционно файловые системы разрабатываются как модули ядра операционной системы, но к сожалению это имеет свои недостатки:
Читать дальше →

Обзор систем для ведения домашней бухгалтерии

Время на прочтение10 мин
Количество просмотров143K
При отборе программ для обзора для меня немаловажным требованием является отсутствие синхронизации с каким-либо внешним сервисом (да, я параноик) и наличие версии для айфона. Сравнительная таблица прошарена в гуглдоксах.

Если не оговорено отдельно, под «айфоном» подразумеваются все iOS-устройства. Комментарии к каждой программе я старалась давать по существу и для тех пунктов, которые не отражены в сравнительной таблице. Если в поле таблицы стоит звёздочка, то к данному значению есть комментарии в обзоре.

Общий момент — те программы, которые обновляют курс валют автоматически, делают это с finance.yahoo.com.
Читать дальше →

Vico — новый текстовый редактор

Время на прочтение1 мин
Количество просмотров4K


Вовсю идет разработка нового текстового редактора для программистов под Mac OS X — Vico. На мой взгляд очень интересный редактор, нечто с лицом Textmate и мощью Vim. Оступление от разработчика: «Мои глаза требуют отлично выглядящего, современного текстового редактора. Но мои пальцы просто хотят vi.»
Читать дальше →

Ближайшие события

Голосовой переводчик для Mac OS X

Время на прочтение7 мин
Количество просмотров9.2K
В недалёком прошлом лишь в фантастических фильмах можно было видеть «чудо коробочки», в которые говоришь, а в результате слышишь перевод сказанного на другом языке. Но прогресс идёт…

Я очень давно ждал, когда Google откроет API своего сервиса распознавания речи (в своих продуктах компания его использует). Несколько месяцев назад я перевернул «этот ваш ёнтернет», но безрезультатно. И вот на днях я вижу топик на Хабре Используем Google Voice Search в своем приложении .NET! Я был неимоверно счастлив. Топик ссылается на оригинальную статью Accessing Google speech API / Chrome 11. Всё внимательно изучил и «расковырял» исходники Chrome.

Google Speech Recognition API пока неофициальный и стал доступен общественности благодаря браузеру Chrome.

Варианты его использования поистине безграничны. А если объединить это с морфологическими модулями, то может наворотить просто чумовых дел в сфере управления голосом.

Для демонстрации и создания «каркасного движка» (для своих дальнейших нужд) я сделал «Голосовой переводчик» для Mac OS X за пару дней. Это симбиоз технологий Google, Microsoft (произношение) и открытого проекта ffmpeg (конвертация во flac). Это именно голосовой переводчик — никакого набора текста. Просто произносите фразу и слушаете её перевод. Да, качество распознавания может быть не идеальным, но на коротких чётких фразах вполне приемлемо.

Вот видео работы программы:


Как обычно, этот топик я разделю на две части. Одна для обычных пользователей, кто захочет «побаловаться» этой программой. Другая для разработчиков (я предоставлю исходные коды базового проекта).
Читать дальше →

История о том, как достучаться с Mac до серверного RMM-модуля, но не без Windows

Время на прочтение5 мин
Количество просмотров1.1K
Странное стечение обстоятельств вынудило меня сегодня заняться решением, из разряда вещей простых, но несовместимых, о чем и хочу вам рассказать. Как водится, начну издалека, здесь будет много мыслей, маленьких размышлений и совсем микроскопичесиких отвлечений, так что, у желающих будет замечательная возможность пропитаться духом истории и попутно подумать и о своем. История будет и про сервера, и про Windows и Mac OS, про админские будни и праздники, и даже (немного) про Java.
Читать дальше →

Запускаем любое приложение с языком, отличным от системного

Время на прочтение1 мин
Количество просмотров3.3K
Я с трудом перевариваю локализованный софт. Здесь много причин: и желание естественным путём расширять словарный запас, и кривость любительских переводов недорогого софта, и банальный промах программистов, не знавших, что и за МКАДом вне США жизнь тоже есть и не сделавших запас в размере текстовых переменных. Хотя порой это проблема не столько программистов, сколько языков. Например, в руссификации свежего Ipod-а Nano полные русские названия не влазят на маленький экран, пришлось их сокращать. То же самое касается и разнообразных меню на десктопе — на русском особо не разгонишься, не приспособлен он для коротких, ёмких выражений.

Однако я столкнулся с случаем, когда без русской локализации приложение просто не выполняет свою работу. Представьте себе, что только локализованный ITunes корректно читает и конвертирует неюникодные ID3-теги. Я то мучительно пытался себя заставить сидеть под локализованной системой, то временно переключал её на русский для того, чтобы импортировать очередную пачку mp3-шек, но это было дико неудобно. Хотелось способа легко и непринуждённо запускать избранные программы на нужном тебе языке. И способ нашёлся!
Читать дальше →

Обход DRM для некоторых приложений в Mac AppStore

Время на прочтение1 мин
Количество просмотров4.5K
Установите обновление системы 10.6.6. Залогиньтесь в новый App Store (находится в доке). Скачайте в нем Twitter, это бесплатно. Откройте папку Applications, найдите Twitter, правый клик, Показать содержимое пакета, зайдите в папку Contents и скопируйте _CodeSignature, _MASReceipt and CodeResources.

Скачайте Angry Birds ( bit.ly/gy9wzk ), откройте dmg-файл, перетяните Angry Birds в папку Applications. правый клик, Показать содержимое пакета, откройте папку Contents и удалите в ней _CodeSignature, _MASReceipt и CodeResources. Теперь вставьте файлы, скопированные из Twitter.app.

Все. Наслаждайтесь Angry Birds и любыми другими .app-файлами из нового Mac App Store, которые можно найти онлайн :)

Прим.пер.: После этого всего AppStore воспринимает приложения как установленные.

Как подсказали в комментариях, приложения отмеченные как установленные все равно не обновляются через AppStore, а данная техника работает не для всех приложений (пока известны Angry Birds, Flight Control, Blush и Offroad racing)

BBCode-enabled Growl Webkit Style

Время на прочтение2 мин
Количество просмотров900
Продолжая тему Изучаем иностранные выражения (и не только), создал отдельный плагин для Growl, который поддерживает расширенное форматирование. Я считаю что для изучения языка (а не просто выражений) надо выводить немного больше информации, чем просто строчку «оригинал — перевод», например, добавлять контекст. Но в этом случае надо как-то отделять смысловые блоки друг от друга, желательно, визуально. Данный плагин это позволяет делать.

Естественно, возможности использования плагина не ограничены — он поддерживает полный набор BBCode-тегов. В данной заметке я расскажу как проинсталлировать и использовать плагин.
Читать дальше →

Изучаем иностранные выражения (и не только)

Время на прочтение4 мин
Количество просмотров2.1K
В этой заметке я расскажу как использовать GrowlNotify, Launchd и AppleScript для периодического вывода всплывающих сообщений (на примере классических латинских выражений). Заметка рассчитана на новичков, профессионалы вряд ли найдут для себя что-то новое.

Для всех вышеупомянутых инструментов дан краткий обзор, чтобы вы могли с минимальными усилиями сделать именно то, что вам нужно — напоминания о событиях, новых сообщениях из социальных сетей, мониторинг и диагностика сетевых сервисов и т.п. Либо можно просто сделать все так, как я описал, и через какое-то время похвастаться друзьям своим знанием латинских фраз. Scientia potentia est.
Читать дальше →