Перші кроки на Mac: новачкам про OS X. Програмування в Mac OS X: пишемо для iPhone Корисні функції клавіші Fn

у цьому топіку я покажу як написати простенький додаток для 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:трохи підправив форматування, код читається краще, але до ідеалу далеко

Я використовую MacBook Pro протягом декількох місяців вдома, і мені було цікаво, чи є хороша книга або керівництво, яке може допомогти мені стати найкращим програмістом на Mac. Можливо, Mac-еквівалент Початок програмування Linux . Примітка. Я не шукаю ресурс про те, як програмувати програму Mac, натомість я шукаю більш загальний посібник з використання Mac для спільного середовища розробки.

Як тло я є програмістом Windows вдень. Протягом багатьох років я також займався деякими Linux та BSD, особливо в школі, наприклад, програмуванням сокетів, графікою, типом типу make install. Вдома я робитиму Java, Scala, PHP і т.д. На Mac.

Досі я використовував Eclipse, QuickSilver та TextMate. VMWare Fusion, XCode та NetBeans налаштовані, але я їх не використовую. Перемикач DVI KVM підключається до реальної клавіатури, трекболу та монітора. Нещодавно залишився до пізньої битви з MacPorts і зрозумів, що мені потрібен x86_64. Найбільша проблема, з якою я зіткнувся - це налаштувати PHP. Я не знаю, чому вони не постачаються з бібліотекою MySQL та GD. Зрештою, я зрозумів, що це Googling, і побудував розширення з джерела. У мене таке відчуття, що я не отримав записки і не прочитав базового керівництва про те, як стати програмістом на Mac, наприклад, як працює вся архітектура. Як програміст Windows може бути досить продуктивним у Mac OS X?

Змінити. Конкретний тип програми, який я хочу розробити, на мій погляд, не має особливого значення. Це може бути Java, Scala, PHP, як я згадував, або Cocoa, C++ або щось ще.

Я шукаю конкретну книгу, ресурс, поради про те, як бути ефективнішим програмістом на Mac, бажано щось окрім "встановити XYZ".

6 відповідей

Здається вам потрібний огляд того, як Mac OS X працює на системному рівні, більше, ніж переосмислення інструментів і т.д. Якщо це станеться, я почну з (основного) Посібник із системної архітектури Mac OS X від Apple, потім перейдіть до Початок роботи з Mac OS X , який повинен дати вам достатньо огляд для початку роботи.

З вашого питання незрозуміло, що ви маєте намір робити з вашим програмуванням, але якщо ви вирішите продовжити розробку Cocoa/OS X, я рекомендую програму Cocoa для Mac OS X від Aaron Hillegass.

Переробивши з Windows у Mac OS X близько п'яти років тому, я часто знаходжу себе так само. Я просто не можу бути продуктивним у Windows (наскільки це можливо, я можу бути продуктивним), як я можу на Mac OS X.

Щиро кажучи, між Mac OS X і Windows існує безліч невеликих відмінностей. Я знаходжу найбільшу причину для людей, які так думають (зазвичай це стосується лише геймерів та розробників) полягає в тому, що вони намагаються використовувати Mac як Windows. Ви повинні навчитися визнавати, що вам потрібно використовувати командний ключ, а не ключ управління і т.д.

Схоже, ви використовуєте Mac, тому що ви повинні на противагу тому, що хочете. Це дійсно набагато краще, ніж Windows, коли ви звикаєте до неї.

Я думаю, що багато програмістів на Windows приходять на Mac і не намагаються його правильно вивчити, тому що вони задоволені, думаючи, що вони всі знають, тому що вони "використовували Windows все своє життя". Я думаю, як тільки ви знайдете Spotlight, Expose, "Ярлики для клавіатури Mac OS X" і т.д. Ви виявите, що ви самі є багато більш продуктивним, ніж будь-коли були на Windows.... і його дійсно забавна ОС для використання.

Ознайомтеся з деякими з найкращих програм Mac, які ви можете отримати і. Ви також можете виконати пошук "100 найкращих програм для Mac".

Крім того, я помітив, що ви намагалися налаштувати якийсь веб-сервер безпосередньо в Mac OS X. Він поставляється з одним, але якщо ви збираєтеся додати MySQL та деякі інші розширення, я б не пішов шляхом MacPorts. Отримати VMWare Fusion або VirtualBox (з відкритим вихідним кодом) та запустити сервер у віртуальній машині. Набагато чистіше. У мене є subversion/trac FreeBSD VM, який обробляє мій локальний контроль версій.

Я хотів би додати, що якщо ви зараз не використовуєте Xcode, ви повинні обов'язково вивчити його і використовувати його якнайшвидше. Це набагато приємніше IDE для використання, ніж Visual Studio, і це зробить ваше життя набагато простішим.

Не забувайте, що ви, ймовірно, витратили роки на сайтах довідки Windows, ви малою мірою повинні зробити це з Mac. Щоразу, коли у вас є проблема з використанням Mac, поставте питання ServerFault . Ми все більш ніж готові допомогти вам.

У мене така сама ситуація, як у вас. Я використовую Windows для розробки і близько року тому купив MBP для дому (коли я перейшов до офісу). Мені дуже важко отримати будь-яку реальну роботу на моєму MBP. Якось я звик до середовища Windows із двома екранами. Але нехай це вас не зупинить. Декілька програм, які я пропоную вам отримати, такі:

  • Передача - Гарний клієнт ftp
  • MAMP – запускає веб-сервер майже з коробки. Добре для базового розвитку.
  • Quicksilver - допомагає швидко знайти програми.
  • Простір разом з жестів (Налаштуйте ваші жести, щоб переміститися з одного екрана на інший, я використовую три пальці, слизькі).
  • Entourage - для електронної пошти
  • Термінал - для ssh (альтернатива шпаклівки) (входить до комплекту)
  • Dreamweaver/BBedit/Textmate (все досить пристойно, але я люблю editplus на вікнах, а не шанувальник IDE).

Я припускаю, що ваше питання полягає не в навчанні COCOA, а про більш ефективне використання MAC. Ну, наведені вище інструменти можуть допомогти вам.

На жаль, ваше питання не дуже зрозуміле щодо того, що ви дійсно хочете.

Якщо ви хочете написати щось крос-платформне, може бути дуже корисно мати віртуальну машину для тестування. Коли в Linux я завжди використовував VirtualBox, він також працює і з OS X.

Слово

Пам'ятайте: “На початку було Слово…». Ось це саме воно. У цій серії статей спробуємо розібратися та описати, як можна програмувати під 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,якщо ви хочете написати на ньому скрипт. Просто сідайте та пишіть – воно вже там, уже налаштоване.

Далі буде…