{"id":337,"date":"2009-10-18T20:50:33","date_gmt":"2009-10-18T18:50:33","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=337"},"modified":"2011-03-01T15:51:34","modified_gmt":"2011-03-01T14:51:34","slug":"t001-hello-world","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/t001-hello-world\/","title":{"rendered":"T#001 &#8211; Primo tutorial &#8220;Hello, World!&#8221;"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/10\/iphone_simulator_hello_world.jpg\" alt=\"HelloWorld in esecuzione\" width=\"80\" height=\"120\" \/> Eccoci al nostro primo tutorial. Non potevano che iniziare con il classico &#8220;<strong>Hello, World!<\/strong>&#8221; con cui ogni programmatore deve fare i conti la prima volta che inizia a scrivere un po&#8217; di codice in un qualsiasi linguaggio di programmazione. Queste semplici istruzioni vi guideranno attraverso la creazione di un semplice progetto che non fa altro che mostrare del testo, nel nostro caso appunto &#8220;Hello, World!&#8221;, nel display del vostro iPhone, o in alternativa dell&#8217;iPhone Simulator. Non preoccupiamoci ora del significato del codice che troveremo in questo tutorial, in linea di massima l&#8217;utilit\u00e0 di questa piccola guida \u00e8 semplicemente di prendere <strong>dimestichezza con Xcode<\/strong>, la stesura del codice e la gestione dei vari file del progetto. Il codice mostrato puo&#8217; essere facilmente copiato e incollato, ma \u00e8 buon esercizio riscriverlo completamente  in modo da poter cos\u00ec far caso alle funzioni descritte nei precedenti articoli dell&#8217;editor di Xcode, come ad esempio il completamento automatico.<!--more--><\/p>\n<h4>Creiamo il progetto<\/h4>\n<p>Per creare il nuovo progetto HelloWorld in Xcode, seguite i seguenti passi:<\/p>\n<ol>\n<li>Avviate il programma Xcode posizionato in <em>*Xcode*\/Applicazioni<\/em>, dove <em>*Xcode*<\/em>\u00a0rappresenta la directory in cui avete installato la suite di cui fa parte questo programma.<\/li>\n<li>Andate quindi su <em>File > New Project<\/em>.<\/li>\n<li>Selezionate il template <em>Window-Based Application<\/em> e cliccate su <em>Choose<\/em>.<\/li>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/10\/new_project_dialog_templates.jpg\" alt=\"NewProjectTemplate\" width=\"578\" height=\"474\" \/><br \/>\n<\/center><\/p>\n<li>Chiamate il progetto <em>HelloWorld<\/em> e scegliete la posizione dove sar\u00e0 salvato il progetto nel vostro file system<\/li>\n<li>Aggiungete ora una classe chiamata <em>MyView<\/em> al progetto:\n<ul>\n<li>Selezionate <em>File > New File<\/em>.<\/li>\n<li>Selezionate <em>Cocoa Touch Class<\/em>, quindi <em>Objective-C class<\/em>, infine <em>UIView<\/em> come subclass e cliccate <em>Next<\/em> per proseguire.<\/li>\n<p><center><br \/>\n<img decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/10\/new_file_templates_uiview.jpg\" alt=\"Nuovo File\" \/><br \/>\n<\/center><\/p>\n<li>Nel campo <em>File Name<\/em> inserite <em>MyView.m<\/em>.<\/li>\n<li>Selezionate l&#8217;opzione <em>Also create &#8220;MyView.h&#8221;<\/em>. Cliccate quindi su <em>Finish<\/em>.<\/li>\n<\/ul>\n<\/li>\n<li>Occorre ora scegliere l&#8217;SDK attivo. Se durante la creazione del progetto avete un iPhone collegato al vostro Mac, Xcode imposter\u00e0 l&#8217;SDK attivo in modo che l&#8217;applicazione venga installata ed eseguita direttamente sul vostro dispositivo. In caso contrario viene impostato l&#8217;SDK per eseguire e testare su\u00a0iPhone Simulator. Per modificare queste impostazioni  selezionate la vostra scelta dal sottomen\u00f9 che trovate in <em>Project > Set Active SDK<\/em> o tramite la casella a scelta multipla nella toolbar della finestra del progetto.<\/li>\n<\/ol>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/10\/overview_active_sdk.jpg\" alt=\"Scegliere l'SDK\" width=\"540\" height=\"269\" \/><br \/>\n<\/center><\/p>\n<h4>Scrivere il codice<\/h4>\n<p>L&#8217;editor di testo di Xcode \u00e8 il luogo dove pesserete la maggior parte del tempo durante lo sviluppo di applicazioni per iPhone. Qui \u00e8 possibile scrivere il codice, compilare l&#8217;applicazione ed eseguire il debug.<\/p>\n<p>Proseguiamo quindi con il nostro tutorial e andiamo ad inserire le prime porzioni di codice.<\/p>\n<p>Prima di tutto dovremmo modificare la classe <em>HelloWorldAppDelegate<\/em> andando ad includere al suo interno quella da noi appena creata, ovvero\u00a0<em>MyView<\/em>:<\/p>\n<ol>\n<li>Nel <em>Groups &#038; Files<\/em>, selezionate la cartella <em>HelloWorld<\/em>.<\/li>\n<li>Fate quindi doppio-click nel file\u00a0<em>HelloWorldAppDelegate.m<\/em> all&#8217;interno di <em>Classes<\/em>.<\/li>\n<li>Nella finestra dell&#8217;editor di\u00a0<em>HelloWorldAppDelegate<\/em> fate quanto segue:\n<ul>\n<li>Aggiungete la seguente linea di codice subito sotto la linea #import esistente.\n<pre lang=\"objc\">#import \"MyView.h\"<\/pre>\n<\/li>\n<li>Aggiungete quindi le seguenti linee di codice nel metodo <em>applicationDidFinishLaunching:<\/em> posizionandole subito sotto il commento\n<pre lang=\"objc\">\r\nMyView *view = [[MyView alloc] initWithFrame:[window frame]];\r\n[window addSubview:view];\r\n[view release];\r\n<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Dopo questi cambiamenti, il codice in <em>HelloWorldAppDelegate.m<\/em> dovrebbe apparire come segue:<\/p>\n<pre lang=\"objc\">\r\n#import \"HelloWorldAppDelegate.h\"\r\n#import \"MyView.h\"\r\n\r\n@implementation HelloWorldAppDelegate\r\n@synthesize window;\r\n\r\n- (void)applicationDidFinishLaunching:(UIApplication *)application {\r\n\r\n   \/\/ Override point for customization after app launch\r\n   MyView *view = [[MyView alloc] initWithFrame:[window frame]];\r\n   [window addSubview:view];\r\n   [view release];\r\n\r\n   [window makeKeyAndVisible];\r\n}\r\n\r\n- (void)dealloc {\r\n   [window release];\r\n   [super dealloc];\r\n}\r\n@end\r\n<\/pre>\n<p>Ora entriamo nel cuore della nostra prima applicazione, ovvero la parte di codice che mostra a video la scritta &#8220;Hello, World!&#8221;. Entrate nel file <em>MyView.m<\/em> e modificate il codice del metodo drawRect, come mostrato di seguito:<\/p>\n<pre lang=\"objc\">\r\n- (void) drawRect:(CGRect) rect {\r\n   NSString *hello   = @\"Hello, World!\";\r\n   CGPoint  location = CGPointMake(10, 20);\r\n   UIFont   *font    = [UIFont systemFontOfSize:24];\r\n   [[UIColor whiteColor] set];\r\n   [hello drawAtPoint:location withFont:font];\r\n}\r\n<\/pre>\n<h4>Avviare l&#8217;applicazione<\/h4>\n<p>Per generare ed eseguire l&#8217;applicazione HelloWorld, selezionare <em>Build > Build e Run<\/em> (o fare clic sulla voce &#8220;<em>Build and Go<\/em>&#8221; nella barra degli strumenti rapida nella finestra del progetto). Se non ci sono errori di compilazione, Xcode installa l&#8217;applicazione nell&#8217;iPhone Simulator o nel dispositivo (a seconda dell&#8217; SDK attivo).<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/10\/iphone_simulator_hello_world.jpg\" alt=\"HelloWorld in esecuzione\" width=\"323\" height=\"483\" \/><br \/>\n<\/center><\/p>\n<p>Tradotto da <a href=\"http:\/\/developer.apple.com\/iphone\/library\/documentation\/Xcode\/Conceptual\/iphone_development\/100-iPhone_Development_Quick_Start\/iphone_development_quick_start.html\" target=\"blank\">fonte<\/a> ufficiale Apple.<\/p>\n<p><center><\/p>\n<h4>Video Tutorial<\/h4>\n<p> by David Pollak<br \/>\n<\/center><\/p>\n<p><center><br \/>\n<object width=\"560\" height=\"340\"><param name=\"movie\" value=\"http:\/\/www.youtube.com\/v\/o3IKis-MJO4&#038;hl=it_IT&#038;fs=1&#038;rel=0\"><\/param><param name=\"allowFullScreen\" value=\"true\"><\/param><param name=\"allowscriptaccess\" value=\"always\"><\/param><embed src=\"http:\/\/www.youtube.com\/v\/o3IKis-MJO4&#038;hl=it_IT&#038;fs=1&#038;rel=0\" type=\"application\/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"560\" height=\"340\"><\/embed><\/object><br \/>\n<\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eccoci al nostro primo tutorial. Non potevano che iniziare con il classico &#8220;Hello, World!&#8221; con cui ogni&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[5,4,14,1,23],"class_list":["post-337","post","type-post","status-publish","format-standard","hentry","category-tutorial-pratici","tag-objective-c","tag-programmazione","tag-sdk","tag-tutorial-pratici","tag-xcode"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=337"}],"version-history":[{"count":57,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/337\/revisions"}],"predecessor-version":[{"id":10819,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/337\/revisions\/10819"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}