За последние пару месяцев ко мне уже неоднократно обращались разработчики программ под Windows с просьбой дать совет относительно того, стоит ли ввязываться в разработку под Mac. Как оказалось, у многих из них уже сформировался набор стереотипов уровня «разработчики платят Apple за то, что она разрешает писать программы под Mac», «Objective-C — старый язык, на котором ничего невозможно написать», «для Mac нет инструментов разработки» и т.д. и т.п. Так как повторяться мне уже порядком надоело, попробую оформить свои ответы в формате небольшой статьи, к которой в дальнейшем и буду отсылать.

Итак…

Рынок shareware приложений под Mac забит не так сильно, как под Windows. Свободных областей навалом: можно писать теггеры/конвертеры мультимедиа файлов, игры, productivity утилиты (впрочем, не стоит делать очередной GTD). Игр под Mac, кстати, относительно немного и шанс быть замеченным гораздо выше, чем в случае написания проекта под Windows. Например, разработчик игры Lugaru пишет, что половину денег с продаж дает именно Mac-версия.

Зарабатывать 3-4 тысячи вечнозеленых рублей в месяц с одного проекта вполне реально. Это не потолок. Авторы Pixelmator за первый день продаж заработали 60 тысяч долларов, Delicious Library за месяц принес своим разработчикам четверть миллиона. Оба продукта создавались небольшими командами, а вовсе не штатом по 30+ человек.

Макинтошники очень трепетно относятся к качеству интерфейса. Если вам хочется разрабатывать удобные приложения, использующие передовые решения, то Mac — идеальная платформа. Не Windows с традиционно низкой культурой разработки интерфейсов и уж точно не Linux с полным отсутствием таковой. Посмотрите на Disco, Things, Times, Fontcase и сравните их с тем мусором, которым забиты до отказов помойки вроде Tucows. Почитайте блоги вроде Beautiful Pixels или многостраничные обсуждения на тему нового вида  iTunes. Пользователи Mac в состоянии по виду отличить XUL от QT и каждую из них от Cocoa, они замечают разницу между разными типами антиалиасинга и вряд ли будут терпеть надранные из разных приложений иконки, натыканные на тулбаре приложения как попало.

Касается это не только интерфейса. Продавать халтуру под Mac не так-то просто, так что не следует надеяться на головокружительный успех еще одного «cd-ejector’а».

Если приложение планируется кроссплатформенным, настоятельно рекомендую озаботиться проектированием интерфейса под каждую платформу отдельно, ровно как и заказом нескольких наборов графики. Да, это удорожает разработку, да, это сложнее, чем слабать один интерфейс на QT для Mac/Windows/Linux, однако в противном случае халтуру быстро раскусят, что не лучшим образом скажется на популярности приложения.

Основные средства разработки доступны бесплатно. Ладно, за доступ к iPhone/iPad SDK и некоторым другим радостям жизни все же придется заплатить… Зато с каждым макинтошем вы уже получаете Xcode (аналог Visual Studio). Хочется большего? Качайте и ставьте мак-порты соответствующих утилит или сторонние инструменты вроде SVN лиента Versions.

Потратив немного времени на поиски можно найти кучу готовых компонентов, позволяющих упростить написание приложения. Хотите удобное автообновление? Ставьте Sparkle. Красивые полупрозрачные окошки? BWToolkit. Примеров полно. Что радует, большинство подобных компонентов распространяется на условиях более чем либеральных лицензий BSD/MIT, а не «вирусной» GPL. Разумеется, FFmpeg, LAME и куча других открытых кроссплатформенных проектов также в наличии.

Отказываться от старых привычек все же придется. Например, интерфейсы надо будет собирать в Interface Builder, а вместо изобретения велосипеда на C++ использовать связку Objective-C/Cocoa (первое время работать будет непривычно). Книги по Objective-C сейчас неложно заказать, да и в Сети немало обучающих материалов, форумов и примеров кода. Если вдруг решитесь писать игры под Mac или же портировать существующие с Windows, сразу закладывайтесь на отсутствие здесь DirectX, работать придется с OpenGL.

Советую отдельно потратить время на изучение возможностей современных OS X. Использование Core Animation, «родной» поддержки 64 бит или Grand Central Dispatch могут здорово облегчить жизнь разработчика.

Заинтересовал? Отлично. Попробуйте для начала выпросить на пару дней Mac у знакомых или взять в аренду. Покупка б/у «миника» — практически беспроигрышный вариант. Даже если вы передумаете, его всегда можно задействовать в качестве тихой и удобной Windows машины.

Удачи!