Erste Schritte auf dem Mac: für Einsteiger in OS X. Programmieren in Mac OS X: Schreiben für das iPhone Nützliche Funktionen der „Fn“-Taste

In diesem Thema zeige ich Ihnen, wie Sie mit dem offiziellen SDK eine einfache Anwendung für das iPhone schreiben. Es ist ganz einfach zu bekommen, Sie benötigen:
1. Intel-basierter Mac (funktioniert zwar auch auf PowerPC, aber nach etwas Fummelei)
2. iPhone SDK. Ich werde in der Beta 2 schreiben. Sie können die neueste Version erhalten, indem Sie sich unter Developer.Apple.com registrieren. Beta 2 kann in Torrents gefunden werden

HalloHabr

Um Moskau nicht zu sehr zu belasten, machen wir das Einfachste: Die Anwendung zeigt nur das Habr-Logo an. Öffnen Sie XCode (erforderlich in 32-Bit Modus) und erstellen Sie eine neue Cocoa Touch-Anwendung:

Nennen wir es HelloHabr und speichern es auf dem Desktop.

Der Meister der Projekterstellung hat es bereits für uns erledigt. Schauen wir uns den Inhalt von main.m an:
#importieren

Int main(int argc, char *argv)
{
NSAutoreleasePool * pool = [init];
//Da Sie die Speicherbereinigung auf einem iPhone nicht verwenden können, verwenden wir den Autorelease-Pool, um Ihnen das Leben zu erleichtern
int retVal = UIApplicationMain(argc, argv, nil, @"HelloHabrAppDelegate");
//Um die Anwendung zu starten, müssen Sie diese Funktion aufrufen. @"HelloHabrAppDelegate" – die Klasse, an die die Kontrolle übertragen wird
;
return retVal;
}

Werfen wir nun einen Blick auf HelloHabrAppDelegate.h:
#importieren

Und auf HelloHabrAppDelegate.m:
#import „HelloHabrAppDelegate.h“
#import „MyView.h“

@implementation HelloHabrAppDelegate
//Diese Anweisungen bedeuten, dass beim Kompilieren Getter und Setter eingegeben werden, anstatt über . aufzurufen
Fenster synthetisieren;
ContentView synthetisieren;

//Funktion von UIApplication delegiert
- (void)applicationDidFinishLaunching:(UIApplication *)application (
// Erstelle das Hauptfenster
self.window = [[ initWithFrame:[bounds]] autorelease];
// ContentView erstellen
self.contentView = [[ initWithFrame:[ applicationFrame]] autorelease];
//Fügen Sie unsere Inhaltsansicht zum Hauptfenster hinzu, damit sie angezeigt wird
;
// Hauptfenster sichtbar machen
;
}

- (void)dealloc (;
;
;
}

Der kleine Hardware-Teil ist fertig, beginnen wir mit dem Schreiben der Anwendung. Speichern Sie das Habr-Logo im Anwendungsordner. Ziehen Sie es dann aus dem Ordner in den Ressourcenordner unseres Projekts im XCode-Fenster:

Nun fügen wir der MyView-Klasse ein neues Feld „habrView“ vom Typ „UIImageView *“ hinzu, d.h. MyView.h wird so aussehen:
#importieren

Definieren wir nun die Init- und Dealloc-Prozeduren in der MyView-Klasse:
#import „MyView.h“

@implementation MyView
- (id) initWithFrame:(CGRect)frame (if(self = ) (
//Hintergrundfarbe - Schwarz
];
//Erstelle ein neues Objekt mit dem Bild des Habr-Logos
UIImage *image = ;
//Erstelle eine Komponente, die das Logo anzeigt
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//Habr-Logo-Anzeigekomponente zum Formular hinzufügen
;
}
sich selbst zurückgeben;
}

- (void) dealloc (;
;
}
Ende

Alle. Wir kompilieren, führen es aus und bekommen, was wir wollten:

Und jetzt eine Methode zum Erstellen von Anwendungen für die Faulenzer. Dashcode kann Webanwendungen für iPhone und iPod Touch erstellen. Öffnen Sie Dashcode und wählen Sie RSS als Vorlage aus. Gehen Sie zur Registerkarte „Seitenattribute“, legen Sie den Seitentitel fest: „Harbrahabr RSS“, die Feed-URL: „feed://habrahabr.ru/rss/main/“. Gehen Sie dann zur Registerkarte „Harbrahabr RSS“ (der Designer öffnet sich) und ändern Sie die Aufschrift „Mein RSS-Feed“ in „Habrahabr RSS-Feed“:

Klicken Sie auf „Ausführen“ und holen Sie sich den RSS-Reader von Habr:

Im Grunde alles. Ich warte auf Bewertungen, Wünsche, Anregungen in den Kommentaren

Aktualisierung: Ich habe die Formatierung ein wenig angepasst, der Code ist besser lesbar, aber alles andere als ideal

Ich benutze seit einigen Monaten ein MacBook Pro zu Hause und frage mich, ob es ein gutes Buch oder eine gute Anleitung gibt, die mir dabei helfen könnte, ein besserer Mac-Programmierer zu werden. Vielleicht das Mac-Äquivalent zu „Erste Schritte mit der Linux-Programmierung“. Notiz. Ich suche nicht nach einer Ressource zum Programmieren einer Mac-Anwendung, sondern nach einer allgemeineren Anleitung zur Verwendung eines Mac für eine allgemeine Entwicklungsumgebung.

Im Hintergrund bin ich tagsüber Windows-Programmierer. Ich habe im Laufe der Jahre auch einige Linux- und BSD-Sachen gemacht, vor allem in der Schule, wie Socket-Programmierung, Grafik, Make-Install-Sachen. Zu Hause werde ich Java, Scala, PHP usw. machen. Auf dem Mac.

Bisher habe ich Eclipse, QuickSilver und TextMate verwendet. VMWare Fusion, XCode und NetBeans sind konfiguriert, ich verwende sie aber nicht. Der DVI-KVM-Switch verbindet sich mit einer echten Tastatur, einem Trackball und einem Monitor. Kürzlich blieb ich bis zu einem späten Kampf mit MacPorts und erkannte, dass ich x86_64 brauchte. Das größte Problem, auf das ich gestoßen bin, ist die Einrichtung von PHP. Ich weiß nicht, warum sie nicht mit der MySQL- und GD-Bibliothek geliefert werden. Irgendwann wurde mir klar, dass es sich um Googeln handelte, und ich baute Erweiterungen aus der Quelle. Ich habe das Gefühl, dass ich weder das Memo erhalten noch das grundlegende Tutorial darüber gelesen habe, wie man ein Mac-Programmierer wird, und auch nicht, wie die gesamte Architektur funktioniert. Wie kann ein Windows-Programmierer unter Mac OS X produktiv genug sein?

Ändern. Die konkrete Art der Anwendung, die ich entwickeln möchte, spielt meiner Meinung nach keine Rolle. Es könnte Java, Scala, PHP sein, wie ich bereits erwähnt habe, oder Cocoa, C++ oder was auch immer.

Ich suche nach einem bestimmten Buch, einer Ressource und Tipps, wie man ein effizienterer Mac-Programmierer wird, vorzugsweise nach etwas, das über „XYZ installieren“ hinausgeht.

6 Antworten

Es scheint, dass Sie eher einen Überblick über die Funktionsweise von Mac OS In diesem Fall beginne ich mit Apples (grundlegendem) Handbuch zur Mac OS X-Systemarchitektur und gehe dann zu „Erste Schritte mit Mac OS

Aus Ihrer Frage geht nicht klar hervor, was Sie mit Ihrer Programmierung vorhaben, aber wenn Sie sich für die Entwicklung von Cocoa/OS X entscheiden, empfehle ich Cocoa Programming für Mac OS X von Aaron Hillegass.

Nachdem ich vor etwa fünf Jahren von Windows auf Mac OS X umgestiegen bin, geht es mir oft ähnlich. Ich kann unter Windows einfach nicht so produktiv sein wie unter Mac OS X.

Ehrlich gesagt gibt es viele kleine Unterschiede zwischen Mac OS X und Windows. Ich finde, der Hauptgrund für Leute, die so denken (normalerweise nur Gamer und Entwickler), ist, dass sie versuchen, einen Mac als Windows-Maschine zu verwenden. Sie müssen lernen zu akzeptieren, dass Sie die Befehlstaste und nicht die Steuertaste usw. verwenden müssen.

Es sieht so aus, als würden Sie einen Mac verwenden, weil Sie es tun müssen, im Gegensatz zu dem, was Sie wollen. Es ist wirklich viel besser als Windows, wenn man sich erst einmal daran gewöhnt hat.

Ich denke, viele Windows-Programmierer kommen zum Mac und versuchen nicht, es richtig zu lernen, weil sie selbstgefällig werden und denken, sie wüssten alles, weil sie „ihr ganzes Leben lang Windows verwendet haben“. Ich denke, sobald Sie Spotlight, Expose, „Mac OS Sie werden feststellen, dass Sie selbst VIEL produktiver sind als jemals zuvor unter Windows ... und es ein wirklich unterhaltsames Betriebssystem ist.

Schauen Sie sich einige der besten Mac-Apps an, die Sie bekommen können. Sie können auch nach „Top 100 Mac Apps“ suchen.

Außerdem ist mir aufgefallen, dass Sie versucht haben, eine Art Webserver direkt in Mac OS Holen Sie sich VMWare Fusion oder VirtualBox (Open Source) und führen Sie den Server in einer virtuellen Maschine aus. Viel sauberer. Ich habe eine Subversion/Trac-FreeBSD-VM, die meine lokale Versionskontrolle übernimmt.

Ich möchte hinzufügen, dass Sie es auf jeden Fall erlernen und so schnell wie möglich verwenden sollten, wenn Sie Xcode derzeit nicht verwenden. Es ist eine viel benutzerfreundlichere IDE als Visual Studio und wird Ihnen das Leben erheblich erleichtern.

Vergessen Sie nicht, dass Sie, obwohl Sie wahrscheinlich Jahre damit verbracht haben, Windows-Hilfeseiten zu lesen, das Gleiche in geringem Umfang auch auf einem Mac tun müssen. Wenn Sie ein Problem bei der Verwendung eines Mac haben, stellen Sie die Frage „ServerFault“. Wir sind alle gerne bereit, Ihnen zu helfen.

Ich habe die gleiche Situation wie du. Ich verwende Windows für die Entwicklung und habe mir vor etwa einem Jahr (als ich ins Büro zog) einen MBP für zu Hause gekauft. Es fällt mir wirklich schwer, wirklich an meinem MBP zu arbeiten. Irgendwie habe ich mich an die Windows-Umgebung mit zwei Bildschirmen gewöhnt. Aber lassen Sie sich davon nicht aufhalten. Einige Programme, die ich Ihnen empfehle, sind die folgenden:

  • Transfer – Guter FTP-Client
  • MAMP – führt einen Webserver fast sofort aus. Gut für die Grundentwicklung.
  • Quicksilver – hilft Ihnen, schnell Anwendungen zu finden.
  • Leerzeichen und Gesten (Passen Sie Ihre Gesten an, um von einem Bildschirm zum anderen zu wechseln, ich verwende drei Finger, rutschig).
  • Entourage – für E-Mail
  • Terminal – für SSH (Putty-Alternative) (im Lieferumfang enthalten)
  • Dreamweaver/BBedit/Textmate (alles ziemlich anständig, aber ich liebe Editplus unter Windows, bin kein IDE-Fan).

Ich vermute, bei Ihrer Frage geht es nicht darum, COCOA zu lernen, sondern darum, MAC effizienter zu nutzen. Nun, die oben genannten Tools können Ihnen helfen.

Leider geht aus Ihrer Frage nicht ganz klar hervor, was Sie eigentlich wollen.

Wenn Sie etwas plattformübergreifend schreiben möchten, kann es sehr nützlich sein, eine virtuelle Maschine zum Testen zu haben. Während ich unter Linux immer VirtualBox verwendet habe, funktioniert es auch unter OS X.

Wort

Denken Sie daran: „Am Anfang war das Wort...“" Genau das ist es. In dieser Artikelserie werden wir versuchen zu verstehen und zu beschreiben, wie Sie unter programmieren können Mac OS X Was lohnt sich zu tun, was lohnt sich nicht. Warum ist das überhaupt notwendig? Schließlich gibt es noch viele andere Systeme.

Argumente...

Jedes Betriebssystem hat seine eigenen Argumente. Und oft ist die Programmierung für eines der Systeme keine Frage der Wahl oder Präferenz, sondern Teil der technischen Spezifikation. In diesem Fall ist es ziemlich schwierig, (vernünftig) zu argumentieren. Und wahrscheinlich nur Mac OS X(und Computer im Allgemeinen Apfel) In diesem Streit um den Arbeitsplatz können wir uns zumindest irgendwie wehren.

Lassen Sie uns auf was auch immer programmieren. Zum Beispiel für das Web. In diesem Fall arbeiten wir am häufigsten mit Apache/MySQL/P(HP/Perl/Python). Hier gibt es für niemanden Probleme Betriebssystem. Aber dann müssen Sie überprüfen, wie alles in Browsern optisch aussieht. Und alle Systeme sind durch die Unmöglichkeit einer (legalen) Markteinführung im Stich gelassen Mac OS X um zu überprüfen, wie die Website funktionieren wird Safari. Aber im Gegenteil – bitte, so viel Sie möchten. In drei Versionen.

Okay, auch wenn wir etwas speziell dafür entwickeln müssen Linux/Windows. Es scheint, dass Sie in diesem Fall unbedingt die geeignete Plattform auswählen müssen, die entsprechende Betriebssystem. Aber warte, warum? In virtuellen Maschinen funktionieren diese Systeme hervorragend. Gleichzeitig ist es möglich, ein Netzwerk lokal zu emulieren (einen Server darin auszuführen). V.M., Client zu einem anderen), Snapshots erstellen (Status speichern V.M. zu einem bestimmten Zeitpunkt für ein späteres Rollback) und so weiter.

Und schließlich verbietet Ihnen niemand, Ihre eigenen zu setzen Linux oder Windows(oder beides gleichzeitig) zu Mac. Das Umgekehrte ist nicht möglich. Und einfach so – ganz einfach, wenn es sein muss.

Gibt es begründete Nachteile von Macs? Ja, gibt es. Pathologische Feindseligkeit. Manche Menschen brauchen etwas Bestimmtes. Zum Beispiel Anpassbarkeit . Oder maximieren Sie das Fenster, indem Sie auf die Titelleiste doppelklicken. Das ist alles was Sie brauchen und das ist alles. In diesem Fall Mac OS X ist streng kontraindiziert; in diesem Fall kommen nur negative Emotionen zum Vorschein.

und Fakten...

Und die Fakten sind einfach. Immer häufiger auf Entwicklerkonferenzen MacBooks Und Macbook Pro. Dort werden Vorträge gehalten, Prototypen von Entwicklungen und finale Releases vorgeführt.

Macs sind ziemlich eng in das Leben der Entwickler eingedrungen. Und an manchen Orten haben sie sie einfach erobert. Zum Beispiel, Java Entwicklung. Bei der Konferenz JavaOne 60 Prozent aller Computer sind Firmenlaptops Apfel.

Nun, genug der Texte. Mal sehen, was es tatsächlich bietet Apfel zum Programmieren und wie bequem es ist, alles einzurichten, um es zu verwenden.

Gib mir zwei!

Es gibt zwei einfache Dinge, die für verschiedene Entwickler nicht immer offensichtlich und nicht immer leicht zu verstehen sind. Vor allem diejenigen, die kein Endprodukt schaffen (Notizblock) und eine Plattform für andere (1C).

Um eine Plattform zu erstellen, muss zunächst etwas darauf laufen. Das heißt, damit Drittprogrammierer Programme dafür erstellen können. Erinnern wir uns daran, was für ein Aufruhr es gab iPhone SDK... Natürlich fast nie zuvor SDK wurden nicht einfach so ausgegeben. Und fast nie waren sie von solcher Qualität. Oder zum Beispiel, als es entwickelt wurde Sony Playstation 3, DevKit(Entwicklerwerkzeuge, Entwickler-Toolkit) war dafür viel früher bereit als die Konsole selbst. Damit bis zur Veröffentlichung der Konsole bereits mindestens mehrere Spiele erscheinen können. Deshalb sind Werkzeuge wichtig. Das ist äußerst wichtig. Und in Apfel Das ist gut verstanden. Sie verschenken es kostenlos (jeder Mac wird mit einer Betriebssystemdiskette geliefert und SDK), sie entwickeln es sehr aktiv weiter.

Zweitens ist die Erstellung einer großen Plattform für viele Menschen (die dieselben Macs verwenden) eine Menge Arbeit. Menschen sind unterschiedlich und die Werkzeuge sollten vielfältig sein. Zu diesem Zweck mit Mac OS X Traditionell werden mehrere Skriptsprachen mitgeliefert, die bereits für die Arbeit konfiguriert sind. Eigentlich, Mac OS X - das einzige Betriebssystem (jetzt beginnen sie zu erscheinen Linuxes), in dem es ursprünglich steht Java. Deshalb, um mit der Programmierung unter zu beginnen Mac OS X, Kein Herunterladen und Installieren erforderlich, z. B. Python wenn Sie ein Skript darüber schreiben möchten. Setzen Sie sich einfach hin und schreiben Sie – es ist bereits da, bereits konfiguriert.

Fortsetzung folgt…