Не так давно мне удалось познакомится с командой MacPaw, известными разработчиками простых и элегантных решений для Mac-платформы. Год назад команда выпустила свое первое приложение для Windows под названием CleanMyPC. Программа CleanMyPC — не только универсальное решение для очистки дополнительного места на компьютере, но и PC-аналог их наиболее успешного Mac-продукта с аналогичным названием CleanMyMac. Подобное «портирование» приложений с Mac на PC — непривычный подход в отрасли разработки, поэтому интересно было пообщаться и взять интервью у основателя и директора MacPaw Александра Косована.
Наше досье
Александр Косован — главный разработчик и основатель MacPaw. После получения степени бакалавра в Киевском Политехническом Университете в 2008 году совместно с однокурсницей Верой Ткаченко основал компанию MacPaw. Спустя несколько месяцев был выпущен первый и ныне самый известный продукт компании — CleanMyMac. К 2011 году CleanMyMac был установлен более чем на миллион Макинтошей по всему миру. Александр уверен: успех продукта — в новом подходе к разработке пользовательских интерфейсов, ориентированных исключительно на пользователя. Это подход был применен и в отношении Windows-платформы, и в мае 2011 года компания выпустила ≠ Александр планирует и дальше заниматься развитием MacPaw и не ограничивает деятельность компании областью разработки Mac-приложений.
Станислав Горнаков: Здравствуйте, Александр! Итак, начнем с того, что больше всего заинтересовало редакцию журнала MSDeveloper.RU: как команде разработки Mac-приложений пришла идея сделать Windows-продукт CleanMyPC?
Александр Косован: Пользователи компьютеров, независимо от платформы, часто сталкиваются с нехваткой места на своих накопителях. Однако очистка ненужных файлов вручную — дело достаточно рутинное и требующее глубоких познаний в архитектуре операционной системы. Поэтому существует необходимость автоматизированного решения. Так появился CleanMyMac. В отличие от других похожих решений, CleanMyMac не только эффективен, но и представляет собой абсолютно новый, простой и понятный подход в решении задач. Судите сами: все, что нужно сделать, чтобы очистить место — нажать кнопку «Сканировать» и затем «Очистить». Затем мы поняли, что подобный подход еще более востребован в Windows-среде и решили портировать программу на ПК. Хотя, как правило, все двигаются в обратном направлении.
Вопрос: А как же команде Mac-разработчиков удалось написать полноценную системную утилиту для Windows?
Ответ: Решение этой проблемы далось нам нелегко. Дело в том, что у нас в офисе нет ни одного PC, одни Maки. При необходимости мы запускаем Windows и другие операционные системы исключительно в виртуальных машинах. Даже если бы наши разработчики взялись за программирование в Windows-среде, нам пришлось бы полностью поменять аппаратную экосистему. Поэтому мы решили нанять новую команду под разработку CleanMyPC.
Вопрос: Иными словами, в компании две команды разработки приложений — под Mac и PC?
Ответ: Абсолютно верно. Они даже сидят в разных офисах и испытывают к друг другу классовую неприязнь (шутя).
Вопрос: А как же совместная работа над, фактически, одним продуктом для разных платформ?
Ответ: Разумеется, при первичном проектировании и разработке CleanMyPC была задействована вся команда Mac-разработчиков. Ведь они уже много лет работают и полируют CleanMyMac и не понаслышке знают о том, как люди использут подобные приложения и какими они должны быть.
Вопрос: И какими же должны быть подобные предложения?
Ответ: В первую очередь, они должны работать эффективно, иными словами, освобождать действительно много места. Чем больше памяти может очистить программа — тем более она востребована, и эту закономерность мы наблюдаем как на Mac, так и на PC.
Вопрос: Это звучит несколько… очевидно.
Ответ: Верно, но здесь есть и подводные камни, такие как сохранность данных и работоспособность операционной системы после очистки. Создавая подобные приложение, мы всегда ходим по краю, удаляя системные файлы. Важно понимать, что чистить можно всегда, а что — только в определенных случаях. С Windows-версией нам было намного проще, ведь у нас уже был трехлетний опыт и мы понимали, что для каждого установленного пользователем приложения нужен свой подход к очистке. Мы действительно знаем, какие файлы можно удалять в том или ином приложении, а какие нельзя. Более того, в целях дополнительной безопасности алгоритм наших программ запрограммирован таким образом, чтобы игнорировать неизвестные им приложения.
Вопрос: А в чем выражается «простой и понятный» подход CleanMyMac в разработке CleanMyPC?
Ответ: При создании графического интерфейса CleanMyPC мы опирались на внешний вид и структуру нашего Mac-приложения. Это наиболее синхронная часть продукта. В разработке CleanMyPC мы пошли по проторенной CleanMyMac’ом дорожке — чтобы гарантировать сохранность и работоспособность всех приложений и самой операционной системы, работа с приложением сведена к алгоритму:
- Просканировал.
- Очистил.
Что касается «начинки», то функции, сервисы, способы очистки, логика поиска файлов в обеих системах кардинально различаются, и изнутри CleanMyMac и CleanMyPC — два совершенно разных приложения.
Вопрос: Оказался ли CleanMyPC успешнее его Mac-версии?
Ответ: Нельзя сказать однозначно. Самое главное, что мы усвоили для себя — это то, что Windows-рынок кардинально отличается от Mac-рынка. Особенно это касается таких утилит, как CleanMyPC — здесь очень жесткая конкуренция, и подход к покупателям совсем другой. Впрочем, именно наш «пользовательский подход» Windows-пользователям очень нравится.
Вопрос: Каковы будущие планы относительно CleanMyPC?
Ответ: Если говорить в общих чертах, то мы видим в будущем этого приложения способ предложить совершенно новый и простой подход к такой востребованной, но кажущейся не очень понятной и безопасной процедуре очистки ненужных файлов на компьютере.
Вопрос: Хотите оставить одну кнопку для пользователя, как в iPhone?
Ответ: В идеале — отказаться даже от нее. Ненужные файлы не должны существовать в системе вообще. Хотя, разумеется, в отношении таких задач, как управление расширениями и приложениями в системе, необходимо участие пользователя.
Вопрос: Вы хорошо разобрались в потребностях пользователей, а как насчет потребностей Windows-среды? Какую платформу для разработки вы выбрали и почему?
Ответ: Для реализации была выбрана платформа .NET 3.0. Это самая удобная и гибкая платформа, использующаяся в разработке сложных графических интерфейсов — таких, как в CleanMyPC. Основные преимущества .NET 3.0 — высокая скорость разработки и возможность создания rich-интерфейсов (с векторной графикой и анимацией), как на Cocoa. На С++ процесс разработки занял бы намного больше времени. Дополнительным стимулом был тот факт, что .NET 3.0 есть в системе по умолчанию, начиная с Windows Vista, и потому его не надо дополнительно устанавливать, в отличие от пока мало распространенного .NET 4.0. Мы рассматривали также .NET 2.0, ведь она доступна и на Windows XP, но в ней еще нет WPF (инструменты создания графического интерфейса) и WCF, необходимого для работы с сервисами слежения за системными процессами.
Выбор в пользу .NET 3.0 продиктовал свои условия — пришлось провести большую работу по внедрению части технологих из более поздних поколений фреймворков (таких как .NET 4.0). К примеру, то, что в .NET 4.0 можно использовать с помощью одной строки кода, нам приходилось реализовывать заново тридцатью строками. Большинство элементов управления, которые вы видете в CleanMyPC — вложенные списки файлов, кнопки, полосы прокрутки и прочее — мы писали и настраивали сами.
Вопрос: А с точки зрения сред разработки, что удобнее — Xcode или Visual Studio?
Ответ: Здесь впору ответить «На вкус и цвет товарища нет», поскольку это такой же вопрос предпочтений, как и выбор между WP7 и iPhone. Уверен, если посадить опытного Cocoa-разработчика за Visual Studio, он будет долго подбирать слова, чтобы описать охвативший его ужас. С другой стороны, если опытный .NET разработчик станет изучать Xcode, его энтузиазм также сойдет на нет в считанные секунды. Обе среды отлично справляются со своими задачами, постоянно развиваются и совершенствуются.
Вопрос: Как вы оцениваете — легче разрабатывать под Windows или под Mac?
Ответ: Это непростой вопрос. Надо признаться, возможности работы с графикой средствами WPF еще уступают тому, что можно реализовать на Cocoa. И, на мой взгляд, это основной вызов для Microsoft. Сейчас армия пользователей пополняется прежде всего новичками, а для них простота и понятность графического интерфейса обязательна. На сегодня .NET 3.0 — самая подходящая платформа для разработки популярного программного обеспечения. .NET 4.0 еще недостаточно распространена. .NET 4.5 — еще совсем «сырая», да и Microsoft предлагает ее исключительно с целью разработки Metro-приложений для нового Windows Store. Впрочем, если Microsoft серьезно смотрит в сторону закрытия платформы и перехода на Metro-приложения, то .NET 4.5, очевидно, скоро станет основным фреймворком для решения задач разработчиков. Неоспоримое преимущество работы в Windows — наличие подробной документации, массы форумов и готовых решений. В отличие от разработки на Mac, здесь почти не приходится изобретать велосипеды.
Вопрос: Скоро выходят новые поколения ОС — OS X Mountain Lion и Windows 8, где во многом разработчики станут еще более ограничены в средствах. Не боитесь ли Вы, что ваши продукты потеряют свой рынок?
Ответ: Оптимизация, чистка, поиск ненужных файлов — эти действия концептуально противоречат цели любой операционной системы. Все же знают, что для iOS и Windows Phone, к примеру, таких программ нет. Свою цель разработчики ОС, будь то Мас или Windows, видят в создании универсальной, стабильной, надежной операционной системы, которая не тормозит, не зависает, в ней ничего не нужно «оптимизировать» — она просто работает. Преследуя эти цели Apple и Microsoft последние годы движутся к закрытию своих систем, разработке так называемых «песочниц» для приложений и процессов. В конце концов, необходимость в таких приложениях как CleanMyMac и CleanMyPC отпадет — по крайней мере, в том виде, в котором они есть сейчас.
Вопрос: И что вы планируете тогда делать?
Ответ: Вскоре мы станем свидетелями перерождения потребностей пользователей и, как следствие, самих продуктов такой категории как утилиты. Совсем необходимость в таких приложениях не пропадет. Всегда можно найти пользовательские файлы, которые были нечаянно продублированы, потеряны или забыты. Так, понимая это, последние несколько месяцев мы работали над Mac-приложением по поиску дубликатов файлов. Почти сразу после релиза программа взлетела на первые места в Mac App Store, что лишь подтверждает мои слова. Мы предлагаем самые простые способы решения проблем пользователей, и эти проблемы действительно существуют.
Конечно, в идеале решения подобных проблем должны быть встроены в систему, но разработка операционной системы — это большой проект, которым занимается большой коллектив. Внесение подобных изменений может занимать года. За такое время небольшая компания может не только выявить и понять проблему, но и выпустить решение для неё. Насколько небольшая? Ну, как MacPaw&
Похоже, вы нашли свою формулу успеха! Желаем вам успехов в ваших будущих начинаниях!