Primii pași pe Mac: pentru începători despre OS X. Programare în Mac OS X: scriere pentru iPhone Funcții utile ale tastei „Fn”

în acest subiect vă voi arăta cum să scrieți o aplicație simplă pentru iPhone folosind SDK-ul oficial. Este ușor să-l obțineți, aveți nevoie de:
1. Mac bazat pe Intel (deși funcționează și pe PowerPC, dar după ceva lăutari)
2. iPhone SDK. Voi scrie în versiunea beta 2. Puteți obține cea mai recentă versiune înregistrându-vă la developer.apple.com. Beta 2 poate fi găsită în torrente

Bună,Habr

Pentru a nu solicita prea mult Moscova, vom face cel mai simplu lucru: aplicația va afișa doar sigla Habr. Deschideți XCode (necesar în pe 32 de biți mod) și creați o nouă aplicație Cocoa Touch:

Să-l numim HelloHabr și să-l salvăm pe desktop.

Maestrul creării de proiecte a făcut-o deja pentru noi. Să ne uităm la conținutul main.m:
#import

Int main(int argc, char *argv)
{
NSAutoreleasePool * pool = [init];
//Din moment ce nu puteți folosi colectarea gunoiului pe un iPhone, folosim grupul de eliberare automată pentru a face viața mai ușoară
int retVal = UIApplicationMain(argc, argv, nil, @"HelloHabrAppDelegate");
//pentru a porni aplicația, trebuie să apelați această funcție. @"HelloHabrAppDelegate" - clasa către care va fi transferat controlul
;
return retVal;
}

Acum să aruncăm o privire la HelloHabrAppDelegate.h:
#import

Și pe HelloHabrAppDelegate.m:
#import „HelloHabrAppDelegate.h”
#import „MyView.h”

@implementation HelloHabrAppDelegate
//aceste directive înseamnă că la compilare, în loc să apelați prin ., introduceți getters și setters
fereastra de sinteză;
sintetiza contentView;

//funcție delegată de la UIApplication
- (void)applicationDidFinishLaunching:(UIApplication *)aplicație (
// Creați fereastra principală
self.window = [[ initWithFrame:[ bounds]] autorelease];
// creează contentView
self.contentView = [[ initWithFrame:[ applicationFrame]] autorelease];
//adăugați conținutul nostru în fereastra principală, astfel încât să fie afișat
;
// face fereastra principală vizibilă
;
}

- (void)dealloc (;
;
;
}

Micul hardware este terminat, să începem să scriem aplicația. Salvați sigla habr în folderul aplicației. Apoi trageți-l din folder în folderul Resources al proiectului nostru în fereastra XCode:

Acum să adăugăm un câmp nou „habrView” de tipul „UIImageView *” la clasa MyView, adică. MyView.h va arăta astfel:
#import

Acum să definim procedurile init și dealloc în clasa MyView:
#import „MyView.h”

@implementation MyView
- (id) initWithFrame:(CGRect)frame (dacă(self = ) (
//culoarea fundalului - negru
];
//creăm un nou obiect cu imaginea logo-ului habr
UIImagine *imagine = ;
//creăm o componentă care va afișa sigla
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//adăugați o componentă de afișare a logo-ului habr în formular
;
}
se întoarce pe sine;
}

- (void) dealloc (;
;
}
Sfârşit

Toate. Compilăm, rulăm și obținem ceea ce ne doream:

Și acum o metodă de a crea aplicații pentru leneși. Dashcode poate crea aplicații web pentru iPhone și iPod Touch. Deschideți Dashcode și selectați RSS ca șablon. Accesați fila Atribute pagină, setați Titlul paginii: „Harbrahabr RSS”, Adresa URL a fluxului: „feed://habrahabr.ru/rss/main/”. Apoi accesați fila „Harbrahabr RSS” (designerul se va deschide) și schimbați inscripția „My RSS Feed” în „Habrahabr RSS Feed”:

Faceți clic pe Run și obțineți cititorul RSS de la Habr:

Practic totul. Aștept recenzii, urări, sugestii în comentarii

Actualizare: Am ajustat puțin formatarea, codul este mai ușor de citit, dar este departe de a fi ideal

Folosesc un MacBook Pro de câteva luni acasă și mă întrebam dacă există o carte sau un ghid bun care m-ar putea ajuta să devin un programator Mac mai bun. Poate echivalentul Mac al noțiunii de început cu programarea Linux. Notă. Nu caut o resursă despre cum să programați o aplicație Mac, ci caut un ghid mai general pentru utilizarea unui Mac pentru un mediu de dezvoltare general.

Ca fundal, sunt un programator Windows de zi. De asemenea, am făcut niște chestii cu Linux și BSD de-a lungul anilor, mai ales în școală, cum ar fi programarea cu socket, grafica, chestii de tip make install. Acasa voi face Java, Scala, PHP, etc. Pe Mac.

Până acum am folosit Eclipse, QuickSilver și TextMate. VMWare Fusion, XCode și NetBeans sunt configurate, dar nu le folosesc. Comutatorul KVM DVI se conectează la o tastatură, trackball și monitor real. Recent, am stat până la o luptă târzie cu MacPorts și mi-am dat seama că am nevoie de x86_64. Cea mai mare problemă pe care am întâlnit-o este configurarea PHP. Nu știu de ce nu vin cu biblioteca MySQL și GD. În cele din urmă, mi-am dat seama că era Google și am construit extensii de la sursă. Simt că nu am primit nota sau nu am citit tutorialul de bază despre cum să devin programator Mac, cum ar fi cum funcționează întreaga arhitectură. Cum poate un programator Windows să fie suficient de productiv pe Mac OS X?

Schimbare. Tipul specific de aplicație pe care vreau să o dezvolt nu prea contează în opinia mea. Ar putea fi Java, Scala, PHP, așa cum am menționat, sau Cocoa, C++ sau orice altceva.

Caut o anumită carte, o resursă, sfaturi despre cum să fii un programator Mac mai eficient, de preferință ceva dincolo de „instalați XYZ”.

6 răspunsuri

Se pare că aveți nevoie de o privire de ansamblu asupra modului în care funcționează Mac OS X la nivel de sistem mai mult decât de o regândire a instrumentelor etc. Dacă se întâmplă acest lucru, voi începe cu Ghidul de arhitectură a sistemului Mac OS X (de bază) al Apple, apoi voi trece la Noțiuni introductive cu Mac OS X, care ar trebui să vă ofere suficientă o privire de ansamblu pentru a începe.

Nu este clar din întrebarea dvs. ce intenționați să faceți cu programarea dvs., dar dacă vă decideți să urmați dezvoltarea Cocoa/OS X, vă recomand Cocoa Programming pentru Mac OS X de Aaron Hilegass.

După ce m-am convertit de la Windows la Mac OS X în urmă cu aproximativ cinci ani, mă trezesc adesea în aceeași ordine de idei. Pur și simplu nu pot fi productiv pe Windows (pe cât de productiv pot fi) așa cum pot fi pe Mac OS X.

Pentru a fi sincer, există o mulțime de mici diferențe între Mac OS X și Windows. Găsesc că cel mai mare motiv pentru oamenii care gândesc în acest fel (de obicei doar jucători și dezvoltatori) este că încearcă să folosească un Mac ca o mașină Windows. Trebuie să înveți să accepți că trebuie să folosești tasta de comandă și nu tasta de control etc.

Se pare că folosești un Mac pentru că trebuie, spre deosebire de ceea ce vrei. Este într-adevăr mult mai bun decât Windows odată ce te obișnuiești cu el.

Cred că o mulțime de programatori Windows vin la Mac și nu încearcă să-l învețe corect pentru că devin mulțumiți, crezând că știu totul pentru că au „folosit Windows toată viața”. Cred că odată ce descoperi Spotlight, Expose, „Comenzi rapide de la tastatură Mac OS X”, etc. Vei descoperi că tu însuți ești MULT mai productiv decât ai fost vreodată pe Windows... și este un sistem de operare cu adevărat distractiv de folosit.

Consultați unele dintre cele mai bune aplicații pentru Mac pe care le puteți obține și. De asemenea, puteți căuta „Top 100 de aplicații Mac”.

De asemenea, am observat că încercați să configurați un fel de server web direct în Mac OS X. Vine cu unul, dar dacă veți adăuga MySQL și alte extensii, nu aș merge pe ruta MacPorts. Obțineți VMWare Fusion sau VirtualBox (sursă deschisă) și rulați serverul într-o mașină virtuală. Mult mai curat. Am un subversion/trac FreeBSD VM care se ocupă de controlul versiunii mele locale.

Aș dori să adaug că, dacă nu utilizați Xcode în prezent, ar trebui să îl învățați și să îl utilizați cât mai curând posibil. Este un IDE mult mai frumos de utilizat decât Visual Studio și îți va face viața mult mai ușoară.

Nu uitați că, deși probabil ați petrecut ani de zile pe site-urile de ajutor Windows, trebuie să faceți același lucru pe un Mac într-o mică măsură. Ori de câte ori aveți o problemă la utilizarea unui Mac, puneți întrebarea ServerFault. Suntem cu toții mai mult decât dispuși să vă ajutăm.

Am aceeași situație ca și tine. Folosesc Windows pentru dezvoltare și am cumpărat un MBP pentru acasă acum aproximativ un an (când m-am mutat la birou). Îmi este foarte greu să lucrez cu adevărat la MBP. Cumva m-am obișnuit cu mediul Windows cu două ecrane. Dar nu lăsa asta să te oprească. Câteva programe pe care vă sugerez să le obțineți sunt următoarele:

  • Transfer - client ftp bun
  • MAMP - rulează un server web aproape ieșit din cutie. Bun pentru dezvoltarea de bază.
  • Quicksilver - vă ajută să găsiți rapid aplicații.
  • Spații împreună cu gesturi (Personalizați-vă gesturile pentru a trece de la un ecran la altul, folosesc trei degete, alunecos).
  • Entourage - pentru e-mail
  • Terminal - pentru ssh (alternativă chit) (inclus)
  • Dreamweaver/BBedit/Textmate (toate destul de decente, dar sunt un iubitor de editplus pe Windows, nu un fan IDE).

Bănuiesc că întrebarea ta nu este despre învățarea COCOA, ci despre utilizarea MAC mai eficient. Ei bine, instrumentele de mai sus vă pot ajuta.

Din păcate, întrebarea ta nu este foarte clară cu privire la ceea ce vrei de fapt.

Dacă doriți să scrieți ceva multiplatform, poate fi foarte util să aveți o mașină virtuală pentru testare. În timp ce pe Linux am folosit întotdeauna VirtualBox, funcționează și pe OS X.

Cuvânt

Amintiți-vă: „La început a fost Cuvântul..." Exact asta este. În această serie de articole vom încerca să înțelegem și să descriem cum puteți programa sub Mac OS X ce merită făcut, ce nu merită făcut. Ei bine, de ce este chiar necesar acest lucru? La urma urmei, există o mulțime de alte sisteme.

Argumente...

Fiecare sistem de operare are propriile argumente. Și adesea programarea pentru unul dintre sisteme nu este o chestiune de alegere sau preferință, ci o parte a specificațiilor tehnice. În acest caz, este destul de dificil de argumentat (în mod rezonabil). Și probabil numai Mac OS X(și computerele în general Măr) Ne putem apăra măcar cumva în această dispută la locul de muncă.

Să programăm pe orice. De exemplu, pentru web. În acest caz, cel mai adesea lucrăm cu Apache/MySQL/P(HP/Perl/Python). Nu sunt probleme pentru nimeni aici OS. Dar apoi trebuie să verificați cum arată totul vizual în browsere. Și toate sistemele sunt dezamăgiți de imposibilitatea lansării (legale). Mac OS X pentru a verifica cum va funcționa site-ul Safari. Dar dimpotrivă – vă rog, atât cât vă place. În trei versiuni.

Bine, chiar dacă trebuie să dezvoltăm ceva special pentru Linux/Windows. Se pare că în acest caz trebuie neapărat să alegeți platforma potrivită, cea potrivită OS. Dar stai, de ce? În mașinile virtuale, aceste sisteme funcționează genial. În același timp, este posibil să emulați local o rețea (rulați un server într-unul V.M., client la altul), faceți instantanee (salvați starea V.M. la un anumit moment în timp pentru derularea ulterioară) și așa mai departe.

Și, în sfârșit, nimeni nu îți interzice să-l pui pe al tău Linux sau Windows(sau ambele deodată) să Mac. Nu se poate face invers. Și chiar așa - ușor, dacă este necesar.

Există dezavantaje justificate ale Mac-urilor? Da, am. Ostilitate patologică. Unii oameni au nevoie de ceva specific. De exemplu, personalizarea . Sau maximizați fereastra făcând dublu clic pe bara de titlu. Atât ai nevoie și atât. În acest caz Mac OS X este strict contraindicat; în acest caz nu iese decât emoții negative.

si fapte...

Iar faptele sunt simple. Din ce în ce mai des întâlnite la conferințele pentru dezvoltatori MacBook-uriȘi MacBook Pro. Acolo au loc prezentări, sunt demonstrate prototipuri de dezvoltări și lansări finale.

Mac-urile au intrat destul de aproape în viața dezvoltatorilor. Și în unele locuri i-au cucerit pur și simplu. De exemplu, Java dezvoltare. La conferinta JavaOne 60 la sută din toate computerele sunt laptop-uri de companie Măr.

Ei bine, destule versuri. Să vedem ce oferă de fapt Măr pentru programare și cât de convenabil este să setați totul pentru a-l utiliza.

Dă-mi două!

Există două lucruri simple care nu sunt întotdeauna evidente și nu întotdeauna ușor de înțeles de către diferiți dezvoltatori. Mai ales cei care creează un produs non-final (Bloc de note)și o platformă pentru alții (1C).

În primul rând, pentru a crea o platformă, trebuie să existe ceva care rulează pe ea. Adică, astfel încât programatorii terți să poată crea programe pentru acesta. Să ne amintim ce tam-tam a fost iPhone SDK... Desigur, aproape niciodată înainte SDK nu au fost date chiar așa. Și aproape niciodată nu au fost de asemenea calitate. Sau, de exemplu, când a fost dezvoltat Sony Playstation 3, DevKit(instrumente de dezvoltare, Setul de instrumente pentru dezvoltatori) era gata pentru asta mult mai devreme decât consola în sine. Astfel încât până la lansarea consolei, cel puțin mai multe jocuri pot apărea deja. De aceea instrumentele sunt importante. Acest lucru este extrem de important. Si in Măr Acest lucru este bine înțeles. Îl oferă gratuit (orice Mac vine cu un disc OS și SDK), o dezvoltă foarte activ.

În al doilea rând, crearea unei platforme mari este multă muncă pentru mulți oameni (folosind aceleași Mac-uri). Oamenii sunt diferiți, iar instrumentele ar trebui să fie variate. În acest scop, cu Mac OS XÎn mod tradițional, sunt furnizate mai multe limbaje de scripting, deja configurate pentru lucru. De fapt, Mac OS X - singurul sistem de operare (acum încep să apară Linux),în care se află inițial Java. Prin urmare, pentru a începe programarea sub Mac OS X, nu este nevoie să descărcați și să instalați, de exemplu, Piton dacă vrei să scrii un script pe el. Doar stați și scrieți - este deja acolo, deja configurat.

Va urma…