Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Кодинг приложений под Mac Os (https://forum.antichat.xyz/showthread.php?t=118582)

kori256 01.05.2009 01:30

Кодинг приложений под Mac Os
 
Сегодня мы рассмотрим основные приемы кодинга для Mac OS.
Мы будем писать самый обыкновенный генератор случайных чисел.

Для кодинга нам понадобится Mac OS X Developer Tools, который вы можете найти на диске вместе с Mac Os или
скачать в интернете. Вы можете, конечно, использовать весь потенциал "Mac OS X Developer Tools", но, в основном, вам понадобится только два приложения: Xcode и Interface Builder.

Итак, открываем xcode.
Наверху мы видим заголовок File. Нажимаем и создаем новый проект File -> New project.

Далее у нас есть выбор типа проекта, мы выберем Cocoa Application.

Затем пишем имя проекта, например, "RandomApp"


Итак, мы видим перед собой "Скелет" нашей будущей программы.. Нажмем "Build and Go", чтобы запустить нашу программу..
http://dnislavy.sk6.ru/image/4.jpg
Запустив программу, мы можем увидеть
http://dnislavy.sk6.ru/image/5.jpg

Основная функция
Нажмите Editor, чтобы можно было удобнее работать с кодом программы.
Слева вы можете увидеть пункт Resources, в котором есть файл MainMenu.nib.
Дважды щелкните по нему, чтобы открыть в Interface Builder



Interface Builder позволяет создавать и редактировать объекты пользовательского интерфейса (например, для окон и
кнопок), и сохранять
эти объекты в файл. Вы также можете создавать пользовательские классы и связи между
ними, или стандартный пользовательский интерфейс объектов.


Создание Интерфейса.


Откройте Library в пункте window -> Library.

http://dnislavy.sk6.ru/image/7.jpg

Во вкладке Cocoa вы можете найти пункт Views & Cells. Нажав на неё, вы можте увидеть множество объектов.

Нас интересует "Rounded Rect Button". Зажмите объект левой кнопкой мыши и перетащите его в окно нашей будущей

программы. Двойной клик по кнопке позволит вам изменить заголовок этой кнопки. Дайте ему название "Seed random

number generator using time" (вообще то можно любое )
Создайте под этой кнопкой еще одну и дайте ей название "Generate random number".
Затем, найдя в главе "Views & Cells" подглаву "Input & Values" перейдем в нее и найдем там "Label". Также

переместим его в наше окно.
У нас должно появиться что то вроде этого

http://dnislavy.sk6.ru/image/8.jpg


Сделаем окно меньше, внизу есть ползунок, чтоб было красивее.

И центрируем текст "Label".Чтобы его центрировать заходим в "Tools" и находим там "Attributes Inspector".

Нажимаем на "Label" И в свойствах жмем кнопку центрирования.

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

http://dnislavy.sk6.ru/image/9.jpg

Все, с интерфейсом будущей программы мы закончили.


В Objective-C, каждый класс определяется двумя файлами: файлом заголовка и файлом реализации.

Файл заголовка объявляет переменные и классы. Файл реализации определяет то, что эти методы делают.


Теперь вернитесь в xcode и выберите File->New File и создайте новый Cocoa -> Objective-C class.
Дайте новому файлу имя Foo.m
http://dnislavy.sk6.ru/image/10.jpg

Файлы Foo.h и Foo.m появятся в вашем проекте. Если они не появляются в группе Classes, перетащите их
туда вручную.

В Foo.h, вы будете добавлять, например переменные и методы класса.

Изменим Foo.h добавив в него следующий код:
PHP код:

#import <Cocoa/Cocoa.h>
@interface Foo NSObject {
    
IBOutlet NSTextField *textField;
}
-(
IBAction)seed:(id)sender;
-(
IBAction)generate:(id)sender;
@
end 


Сохраните Foo.h


Вернемся к Interface Builder.

Заходим в Library. В Cocoa заходим в Objects & Controllers и выбираем Object (NSObject).

Перетаскиваем его в MainMenu.nib, как показано на рисунке

http://dnislavy.sk6.ru/image/12.jpg


В Identity Inspector, установите класс этого файла как Foo. (Ваши действия должны появиться в Identity Inspector.

Если они не появятся, то еще раз проверьте файл Foo.h на наличие ошибок).

http://dnislavy.sk6.ru/image/13.jpg

Теперь свяжем наши действия с объектами..
Нажмите правой кнопкой мыши на "Label", вы увидите надпись "textField" и кружочек напротив нее..
Зажмите левой кнопкой мыши этот кружок и перетащите его к window
http://dnislavy.sk6.ru/image/14.jpg

Повторите то же самое и для кнопок "Seed random number generator using time" и "Generate random number" как

показано на рисунках

http://dnislavy.sk6.ru/image/15.jpg

http://dnislavy.sk6.ru/image/16.jpg

сохраним и снова возвратимся в xcode.

Теперь изменяем файл Foo.m

вставим в него следующий код..

PHP код:

#import "Foo.h"
@implementation Foo
- (IBAction)generate:(id)sender
{
    
// Generate a number between 1 and 100 inclusive
    
int generated;
    
generated = (random() % 100) + 1;
    
NSLog(@"generated = %d"generated);
    
// Ask the text field to change what it is displaying
    
[textField setIntValue:generated];
}
- (
IBAction)seed:(id)sender
{
    
// Seed the random number generator with the time
    
srandom(time(NULL));
    [
textField setStringValue:@"Generator seeded"];
}
@
end 

сохраняем все и теперь пытаемся запустить. Жмем Build and Go, если у нас появилось сообщение об ошибке, то надо

еще раз все проверить, особенно файлы Foo.h и Foo.m. Если сообщения нет, и программа запустилась, значит все нормально и работает!!

Удачи вам всем..


16.06.2009 Теперь замечательная книга Become An Xcoder есть и на русском языке качаем скачать

(с)kori256 специально для xaker.name и antichat.ru

-Hormold- 01.05.2009 02:07

Статью почитаю на досуге.
Хочу сразу заметить, на Хабре видел вакансию Mac программиста с зарплатой больше 100k руб!
Вот это сейчас актуально. Презедент же юзает Мак :-)

kori256 01.05.2009 02:09

Программирование прог под мак очень перспективное направление, но к моему большому сожалению слаборазвитое в нашей стране.

Qwazar 01.05.2009 02:42

Цитата:

Сообщение от kori256
Программирование прог под мак очень перспективное направление, но к моему большому сожалению слаборазвитое в нашей стране.

Это наоборот хорошо, значит конкуренция пока маленькая.

kori256 01.05.2009 02:52

Цитата:

Это наоборот хорошо, значит конкуренция пока маленькая.
В этом с тобой соглашусь:) ловить момент надо, пока он дан нам.

procedure 01.05.2009 03:57

визуал студия решает)
А теперь смотри что я делаю для того чтобы создать такую же прогу.
File -> new Project -> ConsoleApplication
Random rand = new Random(System.DateTime.Now.Millisecond);
Console.WriteLine(rand.Next(500));

В 2 строчки уложился)
В win приложении эти 2 строчки нужно кинуть в обработчик события по клику)

Но все равно молодец) Написал генератор) + за подробное описание, детишкам на мак осях должно понравится)

kori256 01.05.2009 08:22

procedure, спасибо.

root_sashok 04.05.2009 16:23

спасибо, тс, только это не совсем кодинг ;) кодинг в текстовой части, а это... интерфейс-строение :)

а маки да, они продвигаются еще как. у президента продукция Apple, кодинг под мак нехило стоит

geezer.code 04.05.2009 16:43

уже тошнит от obj-C, тошнит от квадратных скобок в первую очередь. синтаксис просто кошмарен :(
говорила мама иди в хирурги.

De-visible 04.05.2009 18:44

Программирование и кодинг, понятия разные.


Время: 03:06