Premiers pas sur Mac : pour débuter sur OS X. Programmation sous Mac OS X : écrire pour iPhone Fonctions utiles de la touche « Fn »

dans cette rubrique, je vais vous montrer comment écrire une application simple pour iPhone à l'aide du SDK officiel. C'est simple pour l'obtenir, il vous faut :
1. Mac basé sur Intel (bien qu'il fonctionne également sur PowerPC, mais après quelques bidouilles)
2. SDK iPhone. J'écrirai en version bêta 2. Vous pouvez obtenir la dernière version en vous inscrivant sur Developer.apple.com. La bêta 2 peut être trouvée dans les torrents

BonjourHabr

Afin de ne pas trop surcharger Moscou, nous ferons la chose la plus simple : l’application affichera simplement le logo Habr. Ouvrez XCode (obligatoire dans 32 bits mode) et créez une nouvelle application Cocoa Touch :

Appelons-le HelloHabr et enregistrons-le sur le bureau.

Le maître de la création de projets l'a déjà fait pour nous. Regardons le contenu de main.m :
#importer

Int principal (int argc, char *argv)
{
NSAutoreleasePool * pool = [init];
// comme vous ne pouvez pas utiliser le garbage collection sur un iPhone, nous utilisons le pool de libération automatique pour vous faciliter la vie
int retVal = UIApplicationMain(argc, argv, nil, @"HelloHabrAppDelegate");
//pour démarrer l'application, vous devez appeler cette fonction. @"HelloHabrAppDelegate" - la classe à laquelle le contrôle sera transféré
;
retourner retVal ;
}

Jetons maintenant un œil à HelloHabrAppDelegate.h :
#importer

Et sur HelloHabrAppDelegate.m :
#import "HelloHabrAppDelegate.h"
#import "MaVue.h"

@implementation HelloHabrAppDelegate
//ces directives signifient que lors de la compilation, au lieu d'appeler via ., entrez les getters et les setters
fenêtre de synthèse ;
synthétiser contentView ;

//fonction déléguée depuis UIApplication
- (void)applicationDidFinishLaunching :(UIApplication *)application (
// Crée la fenêtre principale
self.window = [[ initWithFrame:[ limites]] autorelease];
// crée contentView
self.contentView = [[ initWithFrame:[ applicationFrame]] autorelease];
//ajoute notre contenttView à la fenêtre principale pour qu'elle soit affichée
;
// rend la fenêtre principale visible
;
}

- (annuler)dealloc (;
;
;
}

La petite partie matérielle est terminée, passons à l'écriture de l'application. Enregistrez le logo habr dans le dossier de l'application. Faites-le ensuite glisser du dossier vers le dossier Ressources de notre projet dans la fenêtre XCode :

Ajoutons maintenant un nouveau champ « habrView » de type « UIImageView * » à la classe MyView, c'est-à-dire MyView.h ressemblera à ceci :
#importer

Définissons maintenant les procédures init et dealloc dans la classe MyView :
#import "MaVue.h"

@implementation MyView
- (id) initWithFrame:(CGRect)frame (if(self = ) (
//couleur de fond - noir
];
//crée un nouvel objet avec l'image du logo habr
UIImage *image = ;
//crée un composant qui affichera le logo
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
//ajoute un composant d'affichage du logo habr au formulaire
;
}
revenir soi-même;
}

- (vide) dealloc (;
;
}
fin

Tous. Nous compilons, exécutons et obtenons ce que nous voulions :

Et maintenant une méthode de création d'applications pour les paresseux. Dashcode peut créer des applications Web pour iPhone et iPod Touch. Ouvrez Dashcode et sélectionnez RSS comme modèle. Accédez à l'onglet Attributs de la page, définissez le titre de la page : « Harbrahabr RSS », l'URL du flux : « feed://habrahabr.ru/rss/main/ ». Allez ensuite dans l'onglet « Harbrahabr RSS » (le concepteur s'ouvrira) et remplacez l'inscription « Mon flux RSS » par « Habrahabr RSS Feed » :

Cliquez sur Exécuter et obtenez le lecteur RSS de Habr :

En gros, tout. J'attends des avis, des souhaits, des suggestions dans les commentaires

Mise à jour : J'ai un peu ajusté la mise en forme, le code est mieux lisible, mais c'est loin d'être idéal

J'utilise un MacBook Pro depuis quelques mois à la maison et je me demandais s'il existait un bon livre ou un bon guide qui pourrait m'aider à devenir un meilleur programmeur Mac. Peut-être l'équivalent Mac de Premiers pas avec la programmation Linux. Note. Je ne recherche pas de ressource sur la façon de programmer une application Mac, mais plutôt un guide plus général sur l'utilisation d'un Mac pour un environnement de développement général.

En arrière-plan, je suis programmeur Windows de jour. J'ai également fait des trucs sur Linux et BSD au fil des ans, en particulier à l'école, comme la programmation de sockets, les graphiques, les trucs de type make install. À la maison, je ferai du Java, Scala, PHP, etc. Sur Mac.

Jusqu'à présent, j'ai utilisé Eclipse, QuickSilver et TextMate. VMWare Fusion, XCode et NetBeans sont configurés, mais je ne les utilise pas. Le commutateur DVI KVM se connecte à un véritable clavier, trackball et moniteur. Récemment, je suis resté jusqu'à une bataille tardive avec MacPorts et j'ai réalisé que j'avais besoin de x86_64. Le plus gros problème que j'ai rencontré est la configuration de PHP. Je ne sais pas pourquoi ils ne sont pas fournis avec les bibliothèques MySQL et GD. Finalement, j'ai réalisé qu'il s'agissait d'une recherche sur Google et j'ai créé des extensions à partir de la source. J'ai l'impression de ne pas avoir reçu le mémo ni lu le didacticiel de base sur la façon de devenir programmeur Mac, ainsi que sur le fonctionnement de toute l'architecture. Comment un programmeur Windows peut-il être suffisamment productif sur Mac OS X ?

Changement. Le type spécifique d’application que je souhaite développer n’a pas vraiment d’importance à mon avis. Cela peut être Java, Scala, PHP comme je l'ai mentionné, ou Cocoa, C++ ou autre.

Je recherche un livre, une ressource, des conseils spécifiques sur la façon de devenir un programmeur Mac plus efficace, de préférence quelque chose au-delà de "installer XYZ".

6 réponses

Il semble que vous ayez besoin d'un aperçu du fonctionnement de Mac OS X au niveau du système plutôt que de repenser les outils, etc. Si cela se produit, je commencerai par le guide d'architecture système Mac OS X (de base) d'Apple, puis passerai à la section Premiers pas avec Mac OS X, qui devrait vous donner une vue d'ensemble suffisante pour commencer.

Votre question ne montre pas clairement ce que vous avez l'intention de faire avec votre programmation, mais si vous décidez de poursuivre le développement de Cocoa/OS X, je recommande Cocoa Programming for Mac OS X par Aaron Hillegass.

Ayant migré de Windows vers Mac OS X il y a environ cinq ans, je me retrouve souvent dans la même veine. Je ne peux tout simplement pas être productif sous Windows (aussi productif que possible) comme je peux le faire sous Mac OS X.

Pour être honnête, il existe de nombreuses petites différences entre Mac OS X et Windows. Je trouve que la principale raison pour laquelle les gens pensent de cette façon (généralement uniquement les joueurs et les développeurs) est qu'ils essaient d'utiliser un Mac comme une machine Windows. Vous devez apprendre à accepter que vous devez utiliser la touche de commande et non la touche de contrôle, etc.

Il semble que vous utilisez un Mac parce que vous devez le faire, contrairement à ce que vous voulez. C'est vraiment bien mieux que Windows une fois que vous vous y êtes habitué.

Je pense que beaucoup de programmeurs Windows viennent sur Mac et n'essaient pas de l'apprendre correctement parce qu'ils deviennent complaisants, pensant qu'ils savent tout parce qu'ils ont « utilisé Windows toute leur vie ». Je pense qu'une fois que vous aurez découvert Spotlight, Expose, "Raccourcis clavier Mac OS X", etc. Vous constaterez que vous êtes vous-même BEAUCOUP plus productif que jamais sous Windows... et c'est un système d'exploitation vraiment amusant à utiliser.

Découvrez quelques-unes des meilleures applications Mac que vous pouvez obtenir et. Vous pouvez également rechercher « Top 100 des applications Mac ».

De plus, j'ai remarqué que vous essayiez de configurer une sorte de serveur Web directement dans Mac OS X. Il en est livré avec un, mais si vous comptez ajouter MySQL et d'autres extensions, je n'emprunterais pas la voie MacPorts. Obtenez VMWare Fusion ou VirtualBox (open source) et exécutez le serveur dans une machine virtuelle. Beaucoup plus propre. J'ai une machine virtuelle Subversion/trac FreeBSD qui gère mon contrôle de version local.

Je voudrais ajouter que si vous n'utilisez pas actuellement Xcode, vous devez absolument l'apprendre et l'utiliser dès que possible. C'est un IDE bien plus agréable à utiliser que Visual Studio et vous facilitera grandement la vie.

N'oubliez pas que même si vous avez probablement passé des années sur les sites d'aide Windows, vous devez dans une certaine mesure faire la même chose sur un Mac. Chaque fois que vous rencontrez un problème avec un Mac, posez la question ServerFault. Nous sommes tous plus que disposés à vous aider.

J'ai la même situation que toi. J'utilise Windows pour le développement et j'ai acheté un MBP pour la maison il y a environ un an (lorsque j'ai déménagé au bureau). J'ai vraiment du mal à faire un vrai travail sur mon MBP. D'une manière ou d'une autre, je me suis habitué à l'environnement Windows avec deux écrans. Mais ne laissez pas cela vous arrêter. Quelques programmes que je vous suggère d'acquérir sont les suivants :

  • Transfert - Bon client FTP
  • MAMP - exécute un serveur Web presque prêt à l'emploi. Bon pour le développement de base.
  • Quicksilver - vous aide à trouver rapidement des applications.
  • Des espaces accompagnés de gestes (Personnalisez vos gestes pour passer d'un écran à un autre, j'utilise trois doigts, glissants).
  • Entourage - pour le courrier électronique
  • Terminal - pour ssh (alternative putty) (inclus)
  • Dreamweaver/BBedit/Textmate (tous assez corrects, mais j'adore editplus sur Windows, pas un fan de l'IDE).

Je suppose que votre question ne concerne pas l'apprentissage de COCOA, mais l'utilisation plus efficace de MAC. Eh bien, les outils ci-dessus peuvent vous aider.

Malheureusement, votre question n'est pas très claire quant à ce que vous voulez réellement.

Si vous souhaitez écrire quelque chose sur plusieurs plates-formes, il peut être très utile de disposer d'une machine virtuelle pour les tests. Sous Linux, j'ai toujours utilisé VirtualBox, cela fonctionne également sous OS X.

Mot

Rappelez-vous : « Au commencement était la Parole…" C'est exactement ça. Dans cette série d'articles, nous essaierons de comprendre et de décrire comment programmer sous MacOSX ce qui vaut la peine d'être fait, ce qui ne vaut pas la peine d'être fait. Eh bien, pourquoi est-ce même nécessaire ? Après tout, il existe de nombreux autres systèmes.

Des arguments....

Chaque système d'exploitation a ses propres arguments. Et souvent, la programmation pour l’un des systèmes n’est pas une question de choix ou de préférence, mais fait partie des spécifications techniques. Dans ce cas, il est assez difficile d’argumenter (raisonnablement). Et probablement seulement MacOSX(et les ordinateurs en général Pomme) Nous pouvons au moins d’une manière ou d’une autre nous défendre dans ce conflit sur le lieu de travail.

Programmons sur n'importe quoi. Par exemple, pour le web. Dans ce cas, nous travaillons le plus souvent avec Apache/MySQL/P(HP/Perl/Python). Il n'y a de problèmes pour personne ici Système d'exploitation. Mais vous devez ensuite vérifier à quoi tout ressemble visuellement dans les navigateurs. Et tous les systèmes sont abandonnés par l'impossibilité de lancement (légal) MacOSX pour vérifier comment le site fonctionnera Safari. Mais au contraire, s'il vous plaît, autant que vous le souhaitez. En trois versions.

D'accord, même si nous devons développer quelque chose spécifiquement pour Linux/Windows. Il semble que dans ce cas, vous devez absolument choisir la plateforme appropriée, la plateforme appropriée. Système d'exploitation. Mais attends, pourquoi ? Dans les machines virtuelles, ces systèmes fonctionnent à merveille. En même temps, il est possible d'émuler localement un réseau (exécuter un serveur en un seul V.M., client à un autre), prendre des instantanés (enregistrer l'état V.M.à un moment donné pour une restauration ultérieure) et ainsi de suite.

Et enfin, personne ne vous interdit de mettre le votre Linux ou Fenêtres(ou les deux à la fois) pour Mac. L’inverse ne peut pas être fait. Et juste comme ça - facilement, si nécessaire.

Y a-t-il des inconvénients raisonnables aux Mac ? Oui, je l'ai fait. Hostilité pathologique. Certaines personnes ont besoin de quelque chose de spécifique. Par exemple, la personnalisation . Ou agrandissez la fenêtre en double-cliquant sur la barre de titre. C'est tout ce dont vous avez besoin et c'est tout. Dans ce cas MacOS X est strictement contre-indiqué ; dans ce cas, seules des émotions négatives en ressortent.

et des faits...

Et les faits sont simples. De plus en plus courant lors des conférences de développeurs MacBook Et MacBookPro. Des présentations y sont organisées, des prototypes de développements et des versions finales sont démontrés.

Les Mac sont entrés de très près dans la vie des développeurs. Et dans certains endroits, ils les ont simplement conquis. Par exemple, Java développement. À la conférence JavaOne 60 % de tous les ordinateurs sont des ordinateurs portables d’entreprise Pomme.

Bon, assez parlé des paroles. Voyons ce que cela donne réellement Pomme pour la programmation et combien il est pratique de tout configurer pour pouvoir l'utiliser.

Donnez-m'en deux !

Il y a deux choses simples qui ne sont pas toujours évidentes et pas toujours faciles à comprendre par les différents développeurs. Surtout ceux qui créent un produit non final (Bloc-notes) et une plateforme pour les autres (1C).

Tout d’abord, pour créer une plate-forme, vous devez avoir quelque chose qui s’exécute dessus. Autrement dit, afin que des programmeurs tiers puissent créer des programmes pour cela. Rappelons-nous à quel point il y avait du bruit SDK iPhone... Bien sûr, presque jamais auparavant SDK n'ont pas été distribués comme ça. Et presque jamais ils n’étaient d’une telle qualité. Ou, par exemple, lorsqu'il a été développé Sony Playstation 3, Kit de développement(outils de développement, Boîte à outils du développeur)était prêt bien plus tôt que la console elle-même. De sorte qu'au moment de la sortie de la console, au moins plusieurs jeux peuvent déjà apparaître. C'est pourquoi les outils sont importants. C'est extrêmement important. Et dans Pomme Cela est bien compris. Ils le donnent gratuitement (chaque Mac est livré avec un disque de système d'exploitation et SDK), ils le développent très activement.

Deuxièmement, créer une grande plate-forme demande beaucoup de travail pour de nombreuses personnes (utilisant les mêmes Mac). Les gens sont différents et les outils doivent être variés. A cet effet, avec MacOSX Traditionnellement, plusieurs langages de script sont fournis, déjà configurés pour le travail. En fait, MacOSX - le seul système d'exploitation (maintenant ils commencent à apparaître Linux), dans lequel il se trouve à l'origine Java. Par conséquent, pour démarrer la programmation sous Mac OS X, pas besoin de télécharger et d'installer, par exemple, Python si vous voulez écrire un script dessus. Asseyez-vous et écrivez - c'est déjà là, déjà configuré.

À suivre…