Подписка на блог

В Телеграме помимо ссылок на заметки делюсь околодизайнерскими наблюдениями.

В Твиттере помимо ссылок на заметки пишу всякую чушь.

В Тумблере и Же-же есть автоматические трансляции. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

По РСС и Джейсон-фиду трансляции для автоматических читалок

Эмси

Поработать над Эмси

А кто из вас разработчик под Мак?

Есть такая штука — Эмси. Я когда-то её придумал и запрограммировал, а потом дальше её программировать стал Алексей Блинов. Мы с ним давно придумали, что должно быть в новой версии. Хочется это реализовать и исправить пару багов.

Проблема в том, что у Алексея пока нет времени этим заняться. Сам я давно разучился программировать под Мак (нормально никогда не умел). Если кто-то из вас хочет в качестве упражнения сделать апдейтик, пишите: ilyabirman@ilyabirman.ru.

Спасибо.

 6   2015   Эмси
 5   2015   продукты   проекты   релиз   Эмси

Эмси 2.0 поддерживает Йосемити

Новости настольных приложений.

Новая версия Эмси, которую Эплы не могли утвердить целую вечность, наконец-то вышла и дружит с Йосемити, включая тёмный режим:

Эмси 2.0 поддерживает Йосемити

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

Спешите, пока Эпл думает, что доллар стоит 33 рубля.

 1   2014   продукты   проекты   релиз   Эмси
 3   2014   проекты   Эмси

Эмси 1.7

Ура, у нас с Алексеем Блиновым готова новая версия Эмси.

Теперь прямо в Эмси можно ставить звёздочки песням:

Но пока в Эмси не тыкнешь, он по-прежнему сидит тихо и не высовывается.

Купить в Апсторе

 3   2013   Эмси

Эмси 1.6.1

У меня для вас ещё один небольшой апдейт — Эмси 1.6.1.

Эмси больше не глючит с Айтюнсом 11.0.3. Кроме того, исправлен баг, из-за которого Айтюнс мог перезапускаться после выхода, если Эмси запущен. Спасибо Алексею Блинову!

Купить в Апсторе

2013   проекты   Эмси

Эмси 1.6

В новой версии Эмси:

  • добавлена поддержка ретины;
  • исправлен баг, из-за которого мог не работать Open at Login на Мак-ОСе 10.8.

Пройдите в Апстор за покупкой.

 3   2012   Эмси

Эмси 1.5

Как всегда не без приключений мы с Алексеем Блиновым выпустили версию 1.5. Точнее, Алексей выпустил: к этой версии я вообще оказался слабо причастен, поскольку дизайн я сформулировал в паре предложений (см. следующий абзац), а потом Алексей это реализовывал, преодолевая сопротивление ОС и Эпла.

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

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

Алексей Блинов делится хаком (из нашей майской переписки):

Там решение настолько неизящное, что как-то неловко даже. Но написать можно все равно :-) Чтобы проверить, видно ли наш статус-айтем, я прошу у системы список всех окон, которые выше окна статус-айтема в иерархии. Если в этом списке нет несистемных окон (системные окна всегда выше всех), то значит нас видно. А когда не видно, в этом списке появляется левое окно.

К сожалению, это решение по каким-то причинам работало не совсем надёжно. Потом Алексей его поменял:

После общения с Питером Эммоном на ВВДЦ запрос «дай все окна, которые выше окна статус айтема» я заменил на запрос «дай список вообще всех видимых окон в системе» и проверку, есть ли окно статус айтема в этом списке. Про запрос всех видимых окон я не знал, это Питер мне подсказал.

А дальше самое интересное:

При получении нотификации о смене текущего приложения либо при смене трека, делаю такую проверку на видимость. Нас видно?
если да, и мы показываем всё полностью, ничего не делать;
если да, и мы показываем только название или только иконку, пробуем показать чуть больше (вдруг есть место); проверяем на видимость, и если не видно, возвращаемся к предыдущему состоянию;
если нет, значит мы показываем сликом много; пробуем показать чуть меньше, проверяем на видимость, и если видно, останавливаемся.

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

Если нас видно и мы показываемся не полностью, вычисляем сколько надо места, чтобы показать всё. Вычисляем дельту между этим значением и текущей шириной. Создаем ещё один статус-айтем без содержания (чтобы его не видно было) с шириной дельта. Добавляем его в меню-бар. Проверяем этот статус-айтем на видимость (это можно сделать несмотря на то, что в нем нет содержания). Если его видно, значит новое состояние влезет. Убираем проверочный статус-айтем и рисуемся с новым состоянием.

Когда приложение было готово, Эпл его по традиции (о нелёгкой судьбе Эмси читайте в заметке про версию 1.3) не пустил в стор. Оказалось, что там всплыли какие-то проблемы с голден-мастером «Горного льва», которые не проявлялись на всех предыдущих билдах. Алексей быстро что-то подправил и переотправил приложение в стор.

Наконец, Эмси 1.5 на экранах ваших Маков! Покупайте наше прекрасное приложение за доллар!

 12   2012   Эмси

Эмси 1.4

У нас тут апдейтец: новая версия Эмси умеет копировать название трека и искать его Гуглем:

Эмси 1.4

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

А акция невиданной щедрости продолжается: купите Эмси 1.4 за один доллар вместо трёх прямо сейчас, и ОК!

 14 комментариев    3   2011   проекты   Эмси

Эмси 1.3

У Эмси непростая судьба. Эплы очень не любят пускать в стор его апдейты, всё время находя к чему придраться.

Сначала у него было недостаточно entertaining value (это не шутка). Мы написали им письмо удивления, а пока они его рассматривали, мы добавили поповер, который рассказывал о том, что это и зачем, и засубмиттили апдейт. Тут Эплы вдруг передумали и пропустили нашу недостаточно развлекательную прогу (1.0). А потом стремительно пропустили и версию с поповером (1.1).

Но весь смысл поповера был в том, чтобы добавить им веселья там, а им и так весело сделалось, поэтому мы решили потом его убрать.

Потом был апдейт до 1.2, в котором добавилась голубая сосиска-прогрессбар и альт-перемотка. Правда, версию 1.2 сначала не пропустили в стор из-за того, что на скриншоте в качестве песни в меню было написано «The Beatles: Yesterday»! Сказали, что у нас нет прав на слово Beatles (причём, они это откуда-то знают). Пришлось подправить скриншот и потерять ещё неделю.

В версии 1.3 мы, наконец, убрали поповер, сделали нормальное меню и вообще улучшили дизайн. Прогрессбар больше не рисуется постоянно, а появляется только при нажатом Альте (то есть когда перемоткой можно воспользоваться):

Эмси 1.3

Напомню, что версия 1.1 была новым словом в интерфейсах:

А ещё мы сделали суперважный шаг вперёд в интерфейсах: у нас нет идиотской галочки «запускать при запуске системы». Программа без лишних вопросов прописывается в Login items при запуске и выписывается оттуда при выходе через её меню. Если у вас показывалась текущая песня, а потом вы перезагрузились, то и после перезагрузки она продолжит показываться. А если не показывалась, то и после перезагрузки не будет.

Как вы знаете, во Льве уже официально так стало правильно себя вести — открываться после перезапуска, если тебя не закрыли перед ним. К сожалению, об этом плохо знает компания Эпл: версию 1.3 нам завернули как раз за то, что она перезапускается, не спросив пользователя! При этом предыдущие версии с этой фичей спокойно пропускали.

Мы не могли не написать письмо-привет Эплам, и спросить, хрена ли они хотят, если теперь даже их программы так себя ведут, но они были непоколебимы — пользователь должен обязательно сам решить, что он хочет перезапуска программы. Короче, пришлось изменить дизайн так, чтобы сделать по-ихнему.

Но зато у нас специальная промоцена!

Бегите покупать Эмси 1.3 за один доллар вместо трёх!