IDE от Apple - Xcode, широко используется при использовании Objective-C и фреймворков Cocoa, которые состоят из библиотек, API, и среды выполнения. Cocoa и Xcode это лучший способ разрабатывать native Mac-приложения.
1) File | New | Project...
2) OS X | Application | Cocoa Application | Next
3) Сохраним проект в папке ~/Documents/Projects/
4) Описание иконок:
5) Шаблон проекта:
.h - интерфейс (что можно сделать, но не как можно сделать)
.m - реализация (как можно сделать)
.xib - файл от Interface Builder (окна, кнопки, текстовые поля)
.plist - свойства (ключи и значения, Info.plist содержит информацию имя, версия, авторские права приложения)
.strings - список строк, которые локализуются под другие языки (InfoPlist.strings содержит локализованную версию строк из Info.plist)
.pch - предварительно откомпилированный заголовочный файл, компилятор предварительно компилирует .h файлы и сохраняет их в .pch, это ускоряет компиляцию
.rtf - rich text formatted файл, файл Credits.rtf автоматически отображается стандартным окном About
.framework - bundle (по сути папка выглядящая как файл) содержащий .h, .xib, и библиотечный файлы; фреймворки позволяют выполнять общие функции (например, показ окон)
.app - bundle содержащий вcё что нужно для запуска приложения.
6) Сменим OS X Deployment Target и Organization:
7) Создать иконку можно в Illustrator, Photoshop, Gimp. Фон должен быть прозрачным, а размеры изображения 512x512. Вообще рекомендуется создать все размеры от 16х16 до 1024х1024. Формат PNG.
8) Run
9)
Создадим интерфейс!
10) В MainMenu.xib нажимаем Show Document Outline
11) Далее добавляем 4 кнопки Square Button (+, -, ÷, x), 3 текстовых поля (Text Field) и Horizontal Line. На панели Show the size inspector включим Minimum Size и Maximum Size чтобы размеры окна оставались фиксированными.
12) Для всех 4 кнопок делаем следующее. ПКМ (или Ctrl+ЛКМ) перетягиваем их на AppDelegate и выбираем myButtonAction.
Аналогично перетягиваем AppDelegate на текстовые поля по порядку и выбираем mValue1, mValue2, mResult.
13) Run
Далее напишем основной код!
14) Дорабатываем метод myButtonAction в файле BTSAppDelegate.m
Сделаем теперь конечный продукт!
15) Product | Clean
16) Product | Scheme | Edit Scheme...
17) На панели Run SimpleCalc.app ставим Build Configuration значение Release.
18) Product | Build For | Running
19) Дальше в файлах проекта можно сделать ПКМ на продукте и выбрать Show in Finder:
1) File | New | Project...
2) OS X | Application | Cocoa Application | Next
- Company Identifier можно еще написать в стиле com.yourlastname.yourfirstname
- Class Prefix нужен для того чтобы отличать классы, по другому говоря гарантируют уникальность, обычно используются инициалы.
3) Сохраним проект в папке ~/Documents/Projects/
4) Описание иконок:
5) Шаблон проекта:
.h - интерфейс (что можно сделать, но не как можно сделать)
.m - реализация (как можно сделать)
.xib - файл от Interface Builder (окна, кнопки, текстовые поля)
.plist - свойства (ключи и значения, Info.plist содержит информацию имя, версия, авторские права приложения)
.strings - список строк, которые локализуются под другие языки (InfoPlist.strings содержит локализованную версию строк из Info.plist)
.pch - предварительно откомпилированный заголовочный файл, компилятор предварительно компилирует .h файлы и сохраняет их в .pch, это ускоряет компиляцию
.rtf - rich text formatted файл, файл Credits.rtf автоматически отображается стандартным окном About
.framework - bundle (по сути папка выглядящая как файл) содержащий .h, .xib, и библиотечный файлы; фреймворки позволяют выполнять общие функции (например, показ окон)
.app - bundle содержащий вcё что нужно для запуска приложения.
6) Сменим OS X Deployment Target и Organization:
7) Создать иконку можно в Illustrator, Photoshop, Gimp. Фон должен быть прозрачным, а размеры изображения 512x512. Вообще рекомендуется создать все размеры от 16х16 до 1024х1024. Формат PNG.
- https://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode_Overview/AddIcons,Images,andEffects/AddIcons,Images,andEffects.html
- https://www.iphonelife.com/blog/31369/unleash-your-inner-app-developer-managing-images-xcode-5-asset-catalogs
- http://stackoverflow.com/a/18908202
8) Run
9)
// // BTSAppDelegate.h // SimpleCalc // // Created by Devtype on 14.03.14. // Copyright (c) 2014 Devtype. All rights reserved. // #import <Cocoa/Cocoa.h> @interface BTSAppDelegate : NSObject <NSApplicationDelegate> @property (assign) IBOutlet NSWindow *window; /* Create the user interface elements */ // Buttons @property (assign) IBOutlet NSButton *mAdd; @property (assign) IBOutlet NSButton *mSubtract; @property (assign) IBOutlet NSButton *mMutliply; @property (assign) IBOutlet NSButton *mDivide; // Text Fields @property (assign) IBOutlet NSTextField *mValue1; @property (assign) IBOutlet NSTextField *mValue2; @property (assign) IBOutlet NSTextField *mResult; /* Create the App interface for the buttons */ - (IBAction)myButtonAction:(id)sender; @end
// // BTSAppDelegate.m // SimpleCalc // // Created by Devtype on 14.03.14. // Copyright (c) 2014 Devtype. All rights reserved. // #import "BTSAppDelegate.h" @implementation BTSAppDelegate /* Create the user interface setter and getter functions */ // Buttons @synthesize mAdd; @synthesize mSubtract; @synthesize mMutliply; @synthesize mDivide; // Text Fields @synthesize mValue1; @synthesize mValue2; @synthesize mResult; - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Insert code here to initialize your application } /* Create the App implementation for the buttons */ - (IBAction)myButtonAction:(id)sender; { // For now, just beep NSBeep(); } @end
Создадим интерфейс!
10) В MainMenu.xib нажимаем Show Document Outline
11) Далее добавляем 4 кнопки Square Button (+, -, ÷, x), 3 текстовых поля (Text Field) и Horizontal Line. На панели Show the size inspector включим Minimum Size и Maximum Size чтобы размеры окна оставались фиксированными.
12) Для всех 4 кнопок делаем следующее. ПКМ (или Ctrl+ЛКМ) перетягиваем их на AppDelegate и выбираем myButtonAction.
Аналогично перетягиваем AppDelegate на текстовые поля по порядку и выбираем mValue1, mValue2, mResult.
13) Run
Далее напишем основной код!
14) Дорабатываем метод myButtonAction в файле BTSAppDelegate.m
/* Create the App implementation for the buttons */ - (IBAction)myButtonAction:(id)a_sender; { // For now, just beep // Comment out the beep, we don't need it // NSBeep(); // Get the button title (+, -, x, or ÷) to // determine which operation the App will // preform NSString *l_operation = [a_sender title]; // Get a double precision number from the // first text field double l_value1 = [mValue1 doubleValue]; // Get a double precision number from the // second text field double l_value2 = [mValue2 doubleValue]; // Create a double precision variable to // hold the result of l_value1 <op> l_value2 double l_result; // If the operation was addition, then // add the two values if ([@"+" isEqual: l_operation]) { l_result = l_value1 + l_value2; } // If the operation was subtraction, then // subtract the two values else if ([@"-" isEqual: l_operation]) { l_result = l_value1 - l_value2; } // If the operation was multiplication, then // multiply the two values else if ([@"x" isEqual: l_operation]) { l_result = l_value1 * l_value2; } // The operation must have been division, so // divide the first value by the second value else { l_result = l_value1 / l_value2; } // Set the result text field to the result [mResult setDoubleValue:l_result]; }
Сделаем теперь конечный продукт!
15) Product | Clean
16) Product | Scheme | Edit Scheme...
17) На панели Run SimpleCalc.app ставим Build Configuration значение Release.
18) Product | Build For | Running
19) Дальше в файлах проекта можно сделать ПКМ на продукте и выбрать Show in Finder: