Pull to refresh

Программирование в Mac OS X: пишем для iPhone

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


HelloHabr


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

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

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

теперь взглянем на HelloHabrAppDelegate.h:
#import <UIKit/UIKit.h>

class MyView;

interface HelloHabrAppDelegate: NSObject {
UIWindow *window; //главное окно приложения
MyView *contentView; //экземпляр класса MyView(он тоже создался автоматически).
}

//чтобы можно было обращатся к window и contentView через точку, а не писать get и set. Особенность ObjC 2.0
@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) MyView *contentView;

end

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

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

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

— (void)dealloc {[contentView release];
[window release];
[super dealloc];
}

end

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


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

interface MyView: UIView { UIImageView *habrView;
}

end

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

@implementation MyView
— (id) initWithFrame:(CGRect)frame {if(self = [super initWithFrame:frame]) {
//цвет фона — черный
[self setBackgroundColor:[UIColor blackColor]];
//создаем новое объект с изображением логотипа хабра
UIImage *image = [UIImage imageNamed:@«habr.gif»];
//создаем компонент, который и будет показывать логотип
self->habrView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, [image size].width, [image size].height)];
[habrView setImage:image];
[habrView setCenter:[self center]];

[image release];
//добавляем компонент отображения логотипа хабра на форму
[self addSubview:self->habrView];
}
return self;
}

— (void) dealloc {[self->habrView dealloc];
[super 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: немного подправил форматирование, код читается получше, но до идеала далеко
Tags:
Hubs:
+51
Comments 50
Comments Comments 50

Articles