Сегодня небольшой эксперимент на MacRadar. Мы попросили разработчиков одного известного и популярного приложения рассказать о том, как создавалась новая версия программы, с какими сложностями и интересными вещами они столкнулись. Мне кажется, это может быть интересно и пользователям :) В конце рассказа вас ждет конкурс. — Владимир Яшников

Как некоторые из вас уже знают, мы выпустили первую публичную бету DaisyDisk 2.

С начала 2009 года, когда мы только выпустили первую версию приложения, многое изменилось. У DaisyDisk стало гораздо больше пользователей, причем в их число входят как простые владельцы макбуков (Apple все еще любит экономить на винчестерах), так и сотрудники Apple или руководители IT-отделов видеостудий. Мы значительно доработали приложение, получили ценный опыт, познакомились с западными разработчиками, переделали сайт и завели запись в Twitter

Чуть больше года назад мы даже не планировали выпуск двойки, предполагая развивать ветку 1.x «до упора», да и особой нужды в крупном обновлении не было.
Все планы поломала функция удаления :) После многих часов проектирования и проработки деталей было ясно, что на существующей кодовой базе мы далеко не уедем и для того, чтобы реализовать удаление файлов красиво и элегантно (а иначе делать смысла не было) придется переписывать значительную часть программы. С определенного момента поддерживать две различные ветки было уже невозможно, потому немалой части своих улучшений DaisyDisk 1.5.x обязана именно применением в ней ранних версий движка «двойки» :)

Одновременно с доработкой движка менялся и внешний вид приложения. Полупрозрачная «зебра» нам уже порядком поднадоела, да и тенденция к сближению iOS с Mac OS X была вполне очевидной еще в начале года.
Дизайн приложения занял у нас несколько месяцев. Под дизайном, очевидно, подразумевается не рисование красивых картинок, а работы по проектированию интерфейса, его отрисовки, проработке деталей взамодействия. Например, дизайн основного экрана потребовал около трех десятков итераций (до недели на каждую), а проработка удаления — не меньше полусотни, включая создание десятков рабочих прототипов. Много времени ушло на «мелочи» вроде проработки анимаций или тонкую настройку индикатора занятости диска.
Последние заметные изменения были сделаны меньше месяца назад, после завершения тестирования альфа-версии на реальных пользователях, а также заморозки фич-листа (все значительные изменения и доработки переносятся на 2.01 и дальше), первые черновики интерфейса DaisyDisk 2 датируются сентябрем 2009. Объем работ можете себе представить :)

Значительным подспорьем стал перевод интерфейса DaisyDisk 2 на Core Animation. В немалой степени в наличии всех тех красот, которые можно наблюдать на экране беты заслуга инженеров «фруктовой компании». Несмотря на то, что многие анимации (число которых заметно выросло) анимации едва заметны, они здорово влияют на то, как воспринимается приложение, делая его интерфейс более живым.
Кстати, вопреки распространенному мнению одним из немногих компонентов, лишенных поддержки Core Animation остается sunburst: как ни прискорбно, Core Animation оказался совершенно неприспособлен для подобных вещей.

Если говорить о нововведениях, то одним из наиболее заметных является функция удаления. Реализована она довольно интересно: попробуйте поотрывать лепестки «ромашки», бросая их на «градусник». Drag and drop является важной частью OS X, так что мы постарались использовать его на полную катушку.

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

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

***

Конкурс традиционный — расскажите в твиттере о приложении (например, На @MacRadar рассказ о создании DaisyDisk 2 и розыгрыш лицензий: http://goo.gl/y7qrz), ссылку на ваш твит дайте здесь в комментариях. Троих счастливчиков определит генератор случайных чисел, имена назовем в пятницу. Удачи всем :)

ОБНОВЛЕНИЕ. Имена победителей: @begimosha, @CraftSW, @fineskodk