Принципы работы в OS X несколько отличаются от Microsoft Windows, поэтому пользователи, недавно купившие Mac, на замену компьютеру с редмондской ОС испытывают некоторые трудности. Если в США и Европе знакомство с компьютером люди начинают как с РС, так и с Mac’ов, то в нашей стране и СНГ особой альтернативы нет. С вероятностью 99% первым компьютерным опытом будет Windows. Переучиваться, как известно, намного сложнее, чем учиться заново, но следуя нашим простым советам, можно свести все трудности перехода к минимуму.

Установка и удаление приложений

Вашим первым поисковым запросом в Safari скорей всего будет: «Как устанавливать программы на Mac?». Эта простая операция с которой вы неизбежно столкнетесь, кардинально отличается от таковой в ОС от Microsoft. И что примечательно, установка приложения займет меньше времени, чем вы потратите на поисковой запрос.

Большинство программ, распространяются в dmg-архивах (образах) и устанавливаются всего в пару кликов:

  • открываем скачанный.dmg-файл (он будет виден в Finder как съемный диск);
  • перетаскиваем каталог с приложением в системную папку «Программы»;
  • приложение через пару секунд появится на Launchpad (жест «щипок» для открытия) и сразу будет готово к работе;
  • теперь можно извлечь образ с дистрибутивом в боковой панели Finder и удалить.dmg-файл;

Установить приложение из.dmg-файла можно в любую удобную для вас папку, но тогда иконка программы не появится в Launchpad. Поэтому рекомендую пользоваться папкой «Программы», тем более что она для этого и предназначена.

Некоторые приложения имеют свой установщик и устанавливаются через него. В этом случае вы увидите диалоговое окно с кнопками «Принять», «Далее», «Установить» (привет, Windows!).

Начиная с версии 10.7, в OS X появился магазин приложений Mac App Store, аналогичный App Store на iOS. Работать с ним еще проще, для установки — достаточно нажать кнопку «Установить» на странице с приложением.

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

Взаимодействие с окнами. Закрыть или свернуть?


Пользователи Windows в первое время в шоке: мало того, что кнопки управления окном находятся слева, так они еще и работают иначе. В самом деле, кнопка «х» не закрывает программу, а закрывает только ее окно. Это связано с тем, что в OS X приложения могут иметь несколько окон и после того как мы закрыли окно программа продолжает работать. Кнопка «+» не разворачивает окно на весь экран, а масштабирует его до размеров отображаемого контента.

Для того чтобы полностью завершить приложение, следует нажать «Cmd+Q» или сделать правый клик на иконке в доке, и выбрать «Завершить».

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

Также с версии 10.7 приложения OS X могут работать в полноэкранном режим, когда скрываются док и строка меню. Для активации этого режима нужно нажать иконку со стрелками правом верхем углу экрана.

Используем мультитач жесты

Одной из главных особенностей OS X является поддержка мультитач жестов. Их здесь очень много (я насчитал более 10 жестов), и что самое главное, благодаря замечательному трекпаду — работают они просто шикарно.

Открываем системные настройки и переходим в раздел «Трекпад» («Мышь»), включаем нужные жесты и смотрим демонстрацию их работы. Кроме банальных имитации правой кнопки мыши, скроллинга и перетаскивания окон, с помощью жестов мы можем: искать выделенное слово; поворачивать, масштабировать изображения; открывать Launchpad, Mission Control, Центр уведомлений.

Потратив несколько минут на изучение жестов — вы сделаете свою работу в OS X продуктивней и намного приятней.

Полезные функции клавиши «Fn»

С помощью кнопки Fn можно получить быстрый доступ к многим функциям системы. Вот несколько полезных шорткатов:

  • Fn+Ctrl+F2 позволяет осуществлять навигацию по меню без использования мыши;
  • Fn+Backspace заменяет кнопку Delete;
  • Fn+F11 показать рабочий стол;
  • Fn+стрелка вверх заменяет кнопку Page Up;
  • Fn+стрелка вниз заменяет кнопку Page down;
  • Fn+стрелка влево заменяет кнопку Home;
  • Fn+стрелка вправо заменяет кнопку End;

Такие шорткаты очень легко запомнить и я рекомендую использовать их в повседневной работе. Кстати, существует крошечная утилита CheatSheet , которая поможет вам запомнить и использовать все доступные сокращения. После установки она встраивается в систему и при нажатии клавиши «Cmd» выводит полный список сокращений, доступный в открытом приложении.

Добавляем приложения в «Автозагрузку»

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

Открываем «Настройки» — «Пользователи и группы» и на вкладке «Объекты входа» редактируем список используя кнопки «+» и «-«. На престарелых маках имеет смысл убрать лишние элементы, это позволит ускорить загрузку системы.

Детальная информация о вашем Mac

В среде Windows для того чтобы получить полную информацию о «железе» компьютера приходится использовать сторонние утилиты, вроде AIDA 64. Операционная система от Apple, в этом плане выгодно отличается от конкурента. В состав OS X включена утилита «Информация о системе», которая дает нам подробный отчет абсолютно всего оборудования и софтварной части. Здесь мы можем посмотреть частоту процессора, количество слотов и тип памяти, мак-адрес wifi и bluetooth, а также множество другой служебной информации.

«Информацию о системе» можно найти в папке «Утилиты» на «Launchpad» или нажав на пиктограмму «Apple» в строке меню и выбрав пункт «Об этом Mac».

Быстрый просмотр файлов

Моя любимая встроенная функция в OS X это «Просмотр». В Finder на любом файле или папке при нажатии пробела откроется окно быстрого просмотра. Поддерживаются все типы файлов известные системе: изображения, видео, документы. Закрывается окошко просмотра повторным нажатием пробела. Быстро, просто и удобно.

Принудительное завершение приложений

Случается, что программы перестают отвечать на запросы или проще говоря зависают. Например вы открыли большое количество вкладок в Chrome или запустили несколько «тяжелых» приложений. Пользователям Windows хорошо знаком шорткат «Ctrl+Alt+Delete», которым они регулярно пользуются. В OS X чтобы вызвать диалог завершения приложений нужно нажать «Command+ Option+Esc», здесь выбираем подвисшую программу и нажимаем «Завершить».

Пусть в Mac OS такое случается редко, но если это произойдет — вы будете знать, что делать.

Включаем поддержку всех видеоформатов

Встроенный QuickTime поддерживает основные видеоформаты и для нужд большинства пользователей этого хватает с головой. Но если вы обладатель разномастной видеоколлекции — вам прийдется расширить список поддерживаемых форматов. Это можно сделать с помощью пакета кодеков Perian или установив сторонний проигрыватель медиафайлов, например VLC . Оба решения бесплатные.

Не забываем делать бэкапы

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

Слово

Помните: «В начале было Слово… ». Вот это именно оно. В этой серии статей попробуем разобраться и описать, как можно программировать под Mac OS X , что делать стоит, что не стоит. Ну, и для чего это вообще нужно. Ведь есть масса других систем.

Аргументы…

В пользу каждой операционной системы есть свои доводы. И часто программирование под какую-то из систем - это не вопрос выбора или предпочтений, но часть технического задания. В таком случае спорить (аргументированно) достаточно трудно. И наверное только Mac OS X (и вообще компьютеры Apple) можно хоть как-то отстоять в этом споре за рабочее место.

Пускай нам программировать все-равно на чем. Например, для web. В таком случае чаще всего мы работаем с Apache/MySQL/P(HP/Perl/Python) . Тут проблем нет для любой ОС . Но далее - нужно проверять, как все визуально выглядит в браузерах. И все системы подводит невозможность (легального) запуска Mac OS X для проверки, как будет работать сайт в Safari . А вот наоборот - пожалуйста, сколько угодно. В трех вариантах.

Ладно, пускай даже нам нужно разрабатывать что-то конкретно под Linux/Windows . Вроде бы в этом случае точно нужно выбирать соответствующую платформу, соответствующую ОС . Но постойте, зачем? В виртуальных машинах указанные системы работают блестяще. При этом есть возможность локально эмулировать сеть (запустить сервер в одной VM , клиента в другой), делать снапшоты (сохранять состояние VM на определенный момент времени для последующего отката) и так далее.

И, наконец, никто не запрещает поставить родную Linux или Windows (или обе сразу) на Mac . Обратное сделать нельзя. А вот так - запросто, если нужно.

Есть ли аргументированные минусы у Маков? Да, есть. Патологическая неприязнь. Некоторым нужно что-то конкретное. Например, настраиваемость . Или разворачивание окна по двойному щелчку мыши на заголовке. Вот нужно и все тут. В таком случае Mac OS X категорически противопоказан, ничего кроме отрицательных эмоций в таком случае не получается.

и факты…

А факты простые. На конференциях разработчиков все чаще встречаются MacBook’и и MacBook Pro. На них проводятся презентации, демонстрируются прототипы разработок и финальные релизы.

Mac’и вошли в жизнь разработчиков достаточно плотно. А местами просто покорили их. Например, Java разработка. На конференции JavaOne процентов 60 всех компьютеров - это ноутбуки фирмы Apple .

Ну, довольно лирики. Давайте посмотрим, что вообще предоставляет Apple для программирования и как удобно это все настроить, чтобы пользоваться.

Дайте два!

Есть две простые вещи, которые не всегда очевидны и не всегда легко понимаемы разными разработчиками. Особенно теми, кто создает не конечный продукт (Notepad), а платформу для других (1C).

Во-первых, для создания платформы нужно, чтобы на ней что-то работало. То есть чтобы сторонние программисты могли под нее создавать программы. Вспомним, какая шумиха была по-поводу iPhone SDK… Еще бы, практически никогда еще такие SDK не раздавались просто так. И почти никогда они не были настолько качественными. Или, например, когда разрабатывалась Sony Playstation 3 , DevKit (инструментарий разработчика, Developer Toolkit) для нее был готов гораздо раньше самой приставки. Чтобы к выходу приставки уже могли появиться хотя бы несколько игр. Поэтому инструментарий - это важно. Это архиважно. И в Apple это отлично понимают. Они раздают его бесплатно (к любому Маку на диске с ОС поставляется и SDK) , они его очень активно развивают.

Во-вторых, создание большой платформы - это большой труд многих людей (использующих те же Маки). Люди разные, и инструментарий должен быть разнообразным. С этой целью с Mac OS X традиционно поставляется несколько скриптовых языков, уже настроенных для работы. Собственно, Mac OS X - единственная ОС (сейчас начинают появляться Linux’ы), в которой изначально стоит Java. Поэтому для того, чтобы начать программировать под Mac OS X, не нужно скачивать и устанавливать, например, Python, если вы хотите написать на нем скрипт. Просто садитесь и пишите - оно уже там, уже настроено.

Продолжение следует…

Как легко видно это просто стандартная "заглушка". Ее задачей является правильная инициализация приложения, которая производится функцией NSApplicationMain . В эту инициализацию (которая общая для всех приложений) входит создание объекта NSApp класса NSApplication (точнее NSApp указывает на этот объект).

Одной из главных задач объекта класса NSApplication является загрузка главного nib -файла (на самом деле в приложении может быть более одного xib -файла, но при этом один, обычно MainMenu.xib является главным и автоматически загружается при запуске приложения).

При этом происходит фактически разархивация всего дерева объектов и связей между ними, заданный в этом xib -файле. Как уже отмечалось в предыдущей статье именно NSApp и будет владельцем главного xib -файла.

Одной из интересных особенностей программирования под Mac OS X является крайне редкое создание новых классов на основе NSWindow и NSApplication - практически всегда все необходимые действия могут быть достигнуты путем делегирования и паттерна Observer .

В основе написания приложений с графическим интерфейсом лежит пришедшая из Smalltalk "а концепция MVC (Model, View, Controller .

Согласно этой концепции (как это не удивительно Ruby on Rails при построении Web-страниц использует эту же самую концепцию) выделяются объекты, служащие для показа данных (views ), объекты, представляющие данные (models ) и объекты, отвечающие за их взаимодействие с пользователем (controllers ).

В Mac OS X уже содержится большое количество готовых объектов, предназначенных для показа данных (они обычно унаследованы от класса NSView ). В довольно простых приложениях нет необходимости создавать специально модель (хотя для больших приложений это оказывается очень удобным - вся бизнес-логика помещается именно в модели и не вылезает за ее пределы).

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

Начнем создание приложение с создания пользовательского интерфейса для него. Для этого вызовем Interface Builder двойным щелчком мыши по файлу MainMenu.xib(English) из списка файлов в правой части окна проекта. При этом запустится Interface Builder , сразу открыв xib-файл из нашего проекта.

Сразу же после запуска Interface Builder -а уберем все лишние окна. Далее откроем окно инспектора (при помощи команды меню Tools/Show Info ) и в свойствах окна зададим заголовок Calculator и снимем выделение с пункта "Zoom (and resize)".

Рис 4. Настройка окна калькулятора.

Перетащим поле для ввода текста с палитры компонент, расположив его в самом верху окна. Далее перетащим кнопку и поместим ее в нижний левый угол окна (рис 5.). Изменим текст кнопки на "0", а ее тег (поле Tag: ) на 0 и слегка уменьшим ее размер.

Рис 5. Выкладываем компоненты.

После этого выберем из меню Layout команду Embed Objects In и для нее выберем пункт Matrix . В результате будет создан объект класса NSMatrix, представляющий собой прямоугольную матрицу из компонент заданного класса.

Обратите внимание на то, что окно инспектора теперь отражает свойства объекта класса NSMatrix.

Рис 6. Создание блока кнопок.

Рис 7. Свойства матрицы кнопок.

Построим таким образом таблицу из кнопок размера 3х4.

Рис 8. Настройка текстового поля.

Настроим поле ввода при помощи инспектора - уберем выделение с пункта "Editable" - это не позволит явно вводить текст в это поле - и зададим выравнивание текста по правому краю (рис 9).

Рис 9. Задание атрибутов текстового поля.

Выбирая таким образом по очереди все кнопки настроим их параметры следующим образом - в качестве текста зададим одну из цифр (чтобы получилось так как на рис 10), а в качестве тега для каждой кнопки укажем значение соответствующей ей цифры (рис 11). Кроме того утсановим для получившеся матрицы кнопок режим (Mode) Highlight, вместо установленного по умолчанию List.

Рис 10. Выделение отдельной кнопки из матрицы.

Рис 11. Настройка атрибутов отдельной кнопки из матрицы.

Мы сразу же добавим поддержку клавиатуры, используя так называемые key equivalent "ы, рассмотренным нами в предыдущей статье. Для этого щелкнув мышью по полю Key Equiv. (после чего вокруг поля появится голубая рамка) нажмем на клавишу, которую мы хотим выбрать в качестве key equivalent "а.

Тег - это число, которое можно присвоить любому визуальному элементу (унаследованному от NSView). В ряде случаев использование тегов позволяет заметно облегчить жизнь программисту. Так в данном случае мы сопоставим всем цифровым кнопкам посылку одного и того же сообщения (digit: ), а обработчик сообщения (в контроллере) для получения соответствующей цифры просто запросит тег от посылающего сообщение объекта.

Следующим шагом будет убирание двух лишних кнопок (крайние кнопки в последнем ряду), чтобы у нас получилось ровно десять кнопок (как и цифр).

Для этого двойным щелчком мыши выделите нижнюю левую кнопку в матрице и в окне инспектора снимите выделения с пункта "Enabled" и поставьте выделение у пункта "Transparent".

В результате этих действий левая нижняя кнопка станет невидимой. Аналогично сделаем невидимой и правую нижнюю кнопку.

Рис 12. Окно калькулятора с цифровыми кнопками и кнопками С и СА.

Нашим следующим шагом будет создание класса контроллера. Для этого в палитре объектов Library откроем раздел Objects & Controllers и перетащим синий кубик, представляющий собой объект класса NSObject в окно Main Menu.xib (English)(рис 13).

Рис 13. Создание класса на основе класса NSObject

Выделив этот объект в окне инспектора откроем закладку Identity (предпоследняя). Далее в поле Class изменим название класса с NSObject на CalcController .

Рис 14. Свойства класса CalcController.

Далее при помощи кнопок + в разделах Class Actions и Class Outlets добавим нашему классу CalcController один outlet с именем text , задав в качестве его класса NSTextField и следующие методы - (раздел Class Actions ) - operation: , digit: , clear: и clearAll: .

Первый из этих методов (operation: ) будет вызываться при нажатии кнопки, соответствующей какой-либо арифметической операции. Метод digit: будет вызываться при нажатии какой-либо из цифровых кнопок, назначение методов clear: и clearAll: понятно из названия.

После того, как мы задали какие outlet "ы и методы нам нужны, при помощи команды меню File/Write Class Files... создадим файлы CalcController.h и CalcController.m.

Рис 15. Создание файлов для класса CalcController.

При этом появится диалоговое окно, в котором нужно задать, что требуется создание обоих файлов и их нужно сразу добавить к проекту Calculator.

Рис 16. Добавление созданных файлов в проект.

После этого вернемся обратно в XCode и убедимся, что файлы CalcController.h и CalcController.m действительно добавились к проекту.

Откроем файл CalcController.h - для этого можно либо однократным щелчком мыши по нему открыть файл в нижней части окна проекта (рис 17) или двойным щелчком открыть файл в отдельном окне.

Рис 17. Окно проекта с открытым файлом CalcController.h.

Обратите внимание, что в файле CalcController.h содержится полное описание класса CalcController, как мы его определили в Interface Builder "е.

Изменим файл CalcController.h как показано на следующем листинге.

в этом топике я покажу как написать простенькое приложение для iPhone с использованием официального SDK. Заполучить его просто, нужны:
1. Intel-based Mac(хотя и на PowerPC тоже работает, но после некоторых телодвижений)
2. iPhone SDK. Я буду писать на beta 2. Последнюю версию можно получить, зарегистрировавшись на developer.apple.com. Beta 2 можно найти в торрентах

HelloHabr

чтобы сильно не напрягать моск сделаем самое простое: приложение будет всего-лишь показывать логотип хабра. Открываем XCode(обязательно в 32-битном режиме) и создаем новое Cocoa Touch приложение:

назовем его HelloHabr и сохраним на рабочий стол.

Мастер создания проэктов уже сделал за нас. Посмотрим на содержимое main.m:
#import

Int main(int argc, char *argv)
{
NSAutoreleasePool * pool = [ init];
//поскольку в айфоне нельзя использовать сборку мусора, то для облегчения жизни используем autorelease pool
int retVal = UIApplicationMain(argc, argv, nil, @«HelloHabrAppDelegate»);
//чтобы запустить приложение, нужно вызвать эту функцию. @«HelloHabrAppDelegate» - класс, которому будет передано управление
;
return retVal;
}

Теперь взглянем на HelloHabrAppDelegate.h:
#import

И на HelloHabrAppDelegate.m:
#import «HelloHabrAppDelegate.h»
#import «MyView.h»

@implementation HelloHabrAppDelegate
//эти директивы означают, что при компияции вместо обращений через., вписать getter"ы и setter"ы
synthesize window;
synthesize contentView;

//функция, делегированная от UIApplication
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Создаем главное окно
self.window = [[ initWithFrame:[ bounds]] autorelease];
// создаем contentView
self.contentView = [[ initWithFrame:[ applicationFrame]] autorelease];
//добавляем наш contetntView к главному окну, чтобы оно отобразилось
;
// делаем видимым главное окно
;
}

- (void)dealloc {;
;
;
}

Маленькая мат.часть закончена, приступим к написанию приложения. Сохраняем логотип хабра в папку с приложением. Затем перетяем его из папки в папку Resources нашего проэкта в окне XCode:

Теперь добавим в класс MyView новое поле «habrView» типа «UIImageView *», т.е. MyView.h будет выглядеть так:
#import

А теперь определим в классе MyView процедуры init и dealloc:
#import «MyView.h»

@implementation MyView
- (id) initWithFrame:(CGRect)frame {if(self = ) {
//цвет фона - черный
];
//создаем новое объект с изображением логотипа хабра
UIImage *image = ;
//создаем компонент, который и будет показывать логотип
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//добавляем компонент отображения логотипа хабра на форму
;
}
return self;
}

- (void) dealloc {;
;
}
end

Все. Компилируем, запускаем и получаем то, что и хотели:

А теперь метод создания приложений для ленивых. Dashcode умеет создавать веб-приложения для iPhone и iPod Touch. Открываем Dashcode и в качестве заготовки выбираем RSS. Переходим на вкладку Page Attributes, задаем Page Title:«Harbrahabr RSS», Feed URL: «feed://habrahabr.ru/rss/main/». Затем переходим на вкладку «Harbrahabr RSS»(откроется дизайнер) и меняем надпись «My RSS Feed» на «Habrahabr RSS Feed»:

Нажимаем Run и получаем RSS-ридер Хабра:

В принципе все. Отзывы, пожелания, предложения жду в комментариях

Upd: немного подправил форматирование, код читается получше, но до идеала далеко

в этом топике я покажу как написать простенькое приложение для iPhone с использованием официального SDK. Заполучить его просто, нужны:
1. Intel-based Mac(хотя и на PowerPC тоже работает, но после некоторых телодвижений)
2. iPhone SDK. Я буду писать на beta 2. Последнюю версию можно получить, зарегистрировавшись на developer.apple.com. Beta 2 можно найти в торрентах

HelloHabr

чтобы сильно не напрягать моск сделаем самое простое: приложение будет всего-лишь показывать логотип хабра. Открываем XCode(обязательно в 32-битном режиме) и создаем новое Cocoa Touch приложение:

назовем его HelloHabr и сохраним на рабочий стол.

Мастер создания проэктов уже сделал за нас. Посмотрим на содержимое main.m:
#import

Int main(int argc, char *argv)
{
NSAutoreleasePool * pool = [ init];
//поскольку в айфоне нельзя использовать сборку мусора, то для облегчения жизни используем autorelease pool
int retVal = UIApplicationMain(argc, argv, nil, @«HelloHabrAppDelegate»);
//чтобы запустить приложение, нужно вызвать эту функцию. @«HelloHabrAppDelegate» - класс, которому будет передано управление
;
return retVal;
}

Теперь взглянем на HelloHabrAppDelegate.h:
#import

И на HelloHabrAppDelegate.m:
#import «HelloHabrAppDelegate.h»
#import «MyView.h»

@implementation HelloHabrAppDelegate
//эти директивы означают, что при компияции вместо обращений через., вписать getter"ы и setter"ы
window;
contentView;

//функция, делегированная от UIApplication
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Создаем главное окно
self.window = [[ initWithFrame:[ bounds]] autorelease];
// создаем contentView
self.contentView = [[ initWithFrame:[ applicationFrame]] autorelease];
//добавляем наш contetntView к главному окну, чтобы оно отобразилось
;
// делаем видимым главное окно
;
}

- (void)dealloc {;
;
;
}

Маленькая мат.часть закончена, приступим к написанию приложения. Сохраняем логотип хабра в папку с приложением. Затем перетяем его из папки в папку Resources нашего проэкта в окне XCode:

Теперь добавим в класс MyView новое поле «habrView» типа «UIImageView *», т.е. MyView.h будет выглядеть так:
#import

А теперь определим в классе MyView процедуры init и dealloc:
#import «MyView.h»

@implementation MyView
- (id) initWithFrame:(CGRect)frame {if(self = ) {
//цвет фона - черный
];
//создаем новое объект с изображением логотипа хабра
UIImage *image = ;
//создаем компонент, который и будет показывать логотип
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//добавляем компонент отображения логотипа хабра на форму
;
}
return self;
}

- (void) dealloc {;
;
}

Все. Компилируем, запускаем и получаем то, что и хотели:

А теперь метод создания приложений для ленивых. Dashcode умеет создавать веб-приложения для iPhone и iPod Touch. Открываем Dashcode и в качестве заготовки выбираем RSS.. Затем переходим на вкладку «Harbrahabr RSS»(откроется дизайнер) и меняем надпись «My RSS Feed» на «Habrahabr RSS Feed»:

Нажимаем Run и получаем RSS-ридер Хабра:

В принципе все. Отзывы, пожелания, предложения жду в комментариях

Upd: немного подправил форматирование, код читается получше, но до идеала далеко


Close