<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>xCode</title>
	<atom:link href="http://xcode.md/feed/" rel="self" type="application/rss+xml" />
	<link>http://xcode.md</link>
	<description>Exemple de cod sursă în diferite limbaje de programare.</description>
	<lastBuildDate>Thu, 01 Dec 2011 17:56:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Cream Browser-ul Nostru Pentru iOS in Objective-c</title>
		<link>http://xcode.md/cream-browser-ul-nostru-pentru-ios-in-objective-c/</link>
		<comments>http://xcode.md/cream-browser-ul-nostru-pentru-ios-in-objective-c/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 14:34:32 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[@property]]></category>
		<category><![CDATA[@synthesize]]></category>
		<category><![CDATA[IBAction]]></category>
		<category><![CDATA[IBOutlet]]></category>
		<category><![CDATA[iOs]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[NSURL]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[UIActivityIndicatorView]]></category>
		<category><![CDATA[UIBarButtonItem]]></category>
		<category><![CDATA[UITextField]]></category>
		<category><![CDATA[UIToolbar]]></category>
		<category><![CDATA[UIVewbView]]></category>
		<category><![CDATA[UIView]]></category>
		<category><![CDATA[webViewDidFinishLoad]]></category>
		<category><![CDATA[webViewDidStartLoad]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=150</guid>
		<description><![CDATA[Pentru început vom crea un proiect nou, utilizând template-ul &#8220;Single View Application&#8221; și-l vom întitula &#8220;WebBrowser&#8220;. Deschidem fișierul &#8220;VeiwController.h&#8221; și efectuam careva modificări: indicam obiectului nostru &#8220;ViewController&#8221; că va implimenta metode din protocolul &#8221;UIVebViewDelegate&#8220; adăugăm 3 IBoutlets pentru a interactiona cu elementele din interfața utilizatorului: &#8220;urlField&#8221; obiectul unde va fi introdusa adresa paginii web. &#8220;webBrowser&#8221; este [...]]]></description>
			<content:encoded><![CDATA[<p>Pentru început vom crea un proiect nou, utilizând template-ul &#8220;<em>Single View Application</em>&#8221; și-l vom întitula &#8220;<em>WebBrowser</em>&#8220;.</p>
<p><img class="alignnone size-full wp-image-151" title="xcode_4_1" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_1.jpg" alt="" width="640" height="416" /></p>
<p><img class="alignnone size-full wp-image-152" title="xcode_4_2" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_2.jpg" alt="" width="640" height="416" /></p>
<p>Deschidem fișierul &#8220;<em>VeiwController.h</em>&#8221; și efectuam careva modificări:</p>
<ul>
<li>indicam obiectului nostru &#8220;<em>ViewController</em>&#8221; că va implimenta metode din protocolul &#8221;<em>UIVebViewDelegate</em>&#8220;</li>
<li>adăugăm 3 IBoutlets pentru a interactiona cu elementele din interfața utilizatorului:</li>
<ol>
<li>&#8220;<em>urlField</em>&#8221; obiectul unde va fi introdusa adresa paginii web.</li>
<li>&#8220;<em>webBrowser</em>&#8221; este elementul care va afișa paginile web.</li>
<li>&#8220;<em>loadingActivity</em>&#8221; indicatorul de activitate al browser-ului nostru.</li>
</ol>
<li>adaugăm o metodă IBAction, care va fi chemată la actiune când utilizatorul nostru va apasa pe butoul de navigare &#8220;GO&#8221;</li>
</ul>
<p>Acest fișier ar trebui să arate așa</p>
<pre class="brush:cpp">//
//  ViewController.h
//  WebBrowser
//
//  Created by xCode.md on 11/28/11.
//  Copyright (c) 2011 xCode.md. All rights reserved.
//
#import &lt;UIKit/UIKit.h&gt;
@interface ViewController : UIViewController&lt;UIWebViewDelegate&gt;
@property (nonatomic, retain) IBOutlet UITextField *urlField;
@property (nonatomic, retain) IBOutlet UIWebView *webBrowser;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *loadingActivity;
-(IBAction) navigateUrl;
@end</pre>
<p>Acum modificăm fișierul de implimetare &#8220;<em>ViewController.m</em>&#8221;</p>
<p>În acest fișier direct după <em>@implimetation ViewController</em>, pentru a crea metodele &#8220;setters&#8221; și &#8220;getters&#8221; pentru variabilele noastre adaugăm acest cod</p>
<pre class="brush:cpp">@synthesize urlField;
@synthesize webBrowser;
@synthesize loadingActivity;</pre>
<p>acum implimentăm codul pentru metoda noastră &#8220;<em>navigateUrl</em>&#8221;</p>
<pre class="brush:cpp">-(IBAction) navigateUrl
{
    [urlField resignFirstResponder];
    NSURL *url = [NSURL URLWithString:urlField.text];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webBrowser loadRequest:requestObj];
}</pre>
<p>și implimentăm metodele utilizate din protocolul <em>UIWebViewDelegate</em></p>
<pre class="brush:cpp">- (void)webViewDidStartLoad:(UIWebView *)browser {
    [loadingActivity startAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *)browser {
     [loadingActivity stopAnimating];
}</pre>
<p>Fișierul ar trebui sa conțină urmatorul cod</p>
<pre class="brush:cpp">//
//  ViewController.m
//  WebBrowser
//
//  Created by xCode.md on 11/28/11.
//  Copyright (c) 2011 xCode.md. All rights reserved.
//
#import "ViewController.h"
@implementation ViewController

@synthesize urlField;

@synthesize webBrowser;
@synthesize loadingActivity;

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

-(IBAction) navigateUrl
{
[urlField resignFirstResponder];
NSURL *url = [NSURL URLWithString:urlField.text];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webBrowser loadRequest:requestObj];
}

- (void)webViewDidStartLoad:(UIWebView *)browser {
[loadingActivity startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)browser {
[loadingActivity stopAnimating];
}

@end</pre>
<p>Acum vom lucra cu fișierul de interfață &#8220;<em>ViewController.xib</em>&#8220;. Facem click pe acest fișier. Din libraria cu obiecte, din meniul din dreapta, selectăm obiectul &#8220;UIToolbar&#8221;. Cu ajutorul mouse-ului, tragem și adăugăm acest obiect pe interfața aplicației noastre, pe &#8220;UIView&#8221;.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_3.jpg"><img class="alignnone size-full wp-image-153" title="xcode_4_3" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_3.jpg" alt="" width="604" height="388" /></a></p>
<p>Facem dublu click pe obiectul &#8220;<em>UIBarButtonItem</em>&#8221; și modificăm titlul din &#8220;<em>Item</em>&#8221; în &#8220;<em>GO</em>&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_11.jpg"><img title="xcode_4_11" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_11.jpg" alt="" width="382" height="175" /></a></p>
<p>Din libraria cu obiecte selectăm obiectul &#8220;<em>UITextField</em>&#8221; și-l tragem, exact cum este indicat în imaginea de mai jos, pe obiectul adăugat precedent, înaintea butonului &#8220;<em>GO</em>&#8220;. Dupa care îl lărgim un pic<br />
<a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_4.jpg"><img class="alignnone size-full wp-image-154" title="xcode_4_4" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_4.jpg" alt="" width="604" height="388" /></a></p>
<p>Din libraria cu obiecte găsim și selectăm obiectul &#8220;<em>UIVewbView</em>&#8221; și-l tragem pe interfața aplicației noastre, pe obiectul &#8220;<em>UIView</em>&#8220;. După care, cu ajutorul mouse-lui il poziționăm direct sub &#8220;<em>UIToolbar</em>&#8221;<br />
<a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_5.jpg"><img class="alignnone size-full wp-image-155" title="xcode_4_5" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_5.jpg" alt="" width="604" height="388" /></a></p>
<p>A mai ramas de adăugat și obiectul de afișare a activitătii browser-ului nostru. Din libraria cu obiecte găsim și selectăm obiectul &#8220;<em>UIActivityIndicatorView</em>&#8221; și-l tragem pe interfața aplicatiei noastre, pe obiectul &#8220;<em>UIView</em>&#8220;.<br />
<a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_6.jpg"><img class="alignnone size-full wp-image-156" title="xcode_4_6" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_6.jpg" alt="" width="604" height="388" /></a></p>
<p>Selectăm obiectul nostru &#8220;<em>UIActivityIndicatorView</em>&#8221; și în meniul din dreapta sus, facem click pe &#8220;<em>Show the Attributes Inspector</em>&#8220;. Modificăm un pic culoarea obiectului selectând opțiunea pentru proprietatea &#8220;<em>Color</em>&#8221; -&gt; &#8220;<em>Dark Text Color</em>&#8220;. Un pic mai jos de &#8220;<em>Color</em>&#8221; găsim și selectăm proprietatea &#8220;<em>Hides When Stopped</em>&#8220;.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_7.jpg"><img title="xcode_4_7" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_7.jpg" alt="" width="308" height="437" /></a></p>
<p>Acum facem legatură între obiectele de interfață și obiectele declarate în &#8220;ViewController&#8221;</p>
<p>Facem click dreptul pe “<em>File’s Owner</em>“, găsim primul obiect “<em>loadingActivity</em>“. Facem click pe cerculețul din partea dreaptă care apare langă numele obiectului nostru, din &#8220;<em>ViewController</em>&#8220;, și-l tragem pe obiectul nostru, din interfată, &#8220;<em>UIActivityIndicatorView</em>&#8220;.<br />
<a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_8.jpg"><img class="alignnone size-full wp-image-157" title="xcode_4_8" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_8.jpg" alt="" width="573" height="498" /></a><br />
La fel procedam și cu &#8220;<em>urlField</em>&#8220;, doar că îl tragem pe obiectul &#8220;<em>TextFieldView</em>&#8220;.<br />
<a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_9.jpg"><img class="alignnone size-full wp-image-159" title="xcode_4_9" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_9.jpg" alt="" width="573" height="498" /></a><br />
Conectăm acum metoda &#8220;<em>navigateUrl</em>&#8221; din &#8220;<em>ViewController</em>&#8221; cu acțiunea obiectul &#8220;<em>UIBarButtonItem</em>&#8221; (butonul nostru cu titlul &#8220;<em>Go</em>&#8220;).<br />
<a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_12.jpg"><img class="alignnone size-full wp-image-164" title="xcode_4_12" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_12.jpg" alt="" width="573" height="498" /></a><br />
Acum conectam obiectul &#8220;<em>UIWebView</em>&#8221; din interfața aplicației noastre cu obiectul &#8220;<em>webBrowser</em>&#8220; din &#8220;<em>ViewController</em>&#8220;.<br />
<a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_10.jpg"><img class="alignnone size-full wp-image-165" title="xcode_4_10" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_10.jpg" alt="" width="573" height="498" /></a></p>
<p>A mai ramas să indicam că delegatele obiectului &#8220;<em>UIWebView</em>&#8220; (<em>webViewDidStartLoad </em>și <em>webViewDidFinishLoad</em>) sunt interceptate de &#8220;<em>Viewcontroller</em>&#8220;, selectăm obiectul &#8220;<em>UIWebVew</em>&#8220;, facem click dreptul, și la fel, tragem cerculețul din dreapta catre &#8220;<em>File&#8217;s Owner</em>&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4_13.jpg"><img class="alignnone size-full wp-image-162" title="xcode_4_13" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_13.jpg" alt="" width="573" height="498" /></a></p>
<p>&nbsp;</p>
<p>Acum efectuăm un &#8220;test drive&#8221;. Apăsam butonul &#8220;Run&#8221;</p>
<p><img class="alignnone size-full wp-image-168" title="xcode_4_15" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_15.jpg" alt="" width="438" height="99" /></p>
<p>&nbsp;</p>
<p>Xcode va lansa acum Simulatorul iOS cu aplicaţia noastră în ea.</p>
<p><img class="alignnone size-full wp-image-163" title="xcode_4_14" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4_14.jpg" alt="" width="373" height="724" /></p>
<p>Pentru cei ce doresc sa descarce acest proiect am pus la dispozitie <a title="WebBrowser" href="http://xcode.md/wp-content/uploads/2011/11/WebBrowser.zip">codul sursa</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/cream-browser-ul-nostru-pentru-ios-in-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lectia a treia HelloWord in objective-c utilizand conceptul MVC</title>
		<link>http://xcode.md/lectia-a-treia-helloword-in-objective-c-utilizand-conceptul-mvc/</link>
		<comments>http://xcode.md/lectia-a-treia-helloword-in-objective-c-utilizand-conceptul-mvc/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 08:59:26 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[hello word]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Model View Controller]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=126</guid>
		<description><![CDATA[Principiul care stă la baza conceptului Model-View-Controller este împărţirea responsabilităţilor. &#8220;Model&#8221; reprezintă partea logica a aplicaţiei, aici are loc procesarea datelor. Partea de &#8220;View&#8220;, este preocupată doar cu crearea interfeţei utilizator în funcţie de datele şi mai ales a schimbărilor stărilor acesteia, recepţionate de la &#8220;Model&#8220;. Pentru ea nu contează logica aplicaţiei sau cum are [...]]]></description>
			<content:encoded><![CDATA[<p>Principiul care stă la baza conceptului Model-View-Controller este împărţirea responsabilităţilor.</p>
<p>&#8220;<em>Model</em>&#8221; reprezintă partea logica a aplicaţiei, aici are loc procesarea datelor.</p>
<p>Partea de &#8220;<em>View</em>&#8220;, este preocupată doar cu crearea interfeţei utilizator în funcţie de datele şi mai ales a schimbărilor stărilor acesteia, recepţionate de la &#8220;<em>Model</em>&#8220;. Pentru ea nu contează logica aplicaţiei sau cum are loc procesul de &#8220;input&#8221;, ci doar reprezentarea cât mai corectă a stării curente a modelului.</p>
<p>&#8220;<em>Controller</em>&#8220;-ul se ocupă cum translatarea acţiunilor prestate de utilizator în &#8220;update&#8221;-uri către &#8220;<em>Model</em>&#8220;, nefiind important la ce va folosi &#8220;<em>Modelul</em>&#8221; aceste &#8220;update&#8221;-uri.</p>
<h2><span class="Apple-style-span" style="font-size: 20px;">Creăm proiectul</span></h2>
<p>Deschidem Xcode, când va fi încărcat, veţi vedea ecranul de bun venit.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_1.jpg"><img title="xcode_1" src="http://xcode.md/wp-content/uploads/2011/11/xcode_1.jpg" alt="" width="640" height="416" /></a></p>
<p>În această fereastra, faceţi clic pe &#8220;Create a new Xcode project&#8221;.</p>
<p>Se va deschide<strong> </strong>fereastra ce conține template-urile.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_2.jpg"><img title="xcode_2" src="http://xcode.md/wp-content/uploads/2011/11/xcode_2.jpg" alt="" width="584" height="395" /></a></p>
<p>Selectăm &#8220;<em>Emthy Application</em>&#8220;.</p>
<p>Pagina următoare vă va permite să definiţi numele proiectului şi identificatorul. Identificator este numele aplicaţiei. Îl puteţi vedea ca un nume de domeniu scris inversat. Dacă domenul site-ului dvs. este mycompany.com, identificatorul dvs. ar fi com.mycompany.APPLICATIONNAME.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_3.jpg"><img title="xcode_3" src="http://xcode.md/wp-content/uploads/2011/11/xcode_3.jpg" alt="" width="584" height="395" /></a></p>
<p>&nbsp;</p>
<p>Nu uitam sa deselectam &#8220;<em>Use Core Data</em>&#8221; si &#8220;<em>Include Unit Test</em>&#8220;.</p>
<p>În baza locaţiei pe care o selectaţi și a numelui proiectului, va fi creat un dosar cu acel nume şi fişierele proiectului nostru vor fi fixate acolo. Imediat după salvarea template-ului, vei observa cum iți este organizată fereastra de lucru.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4.jpg"><img title="xcode_4" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>&nbsp;</p>
<h2>Cream fisierele &#8220;Controller&#8221; si &#8220;View&#8221;</h2>
<p>Din meniul din stânga selectăm &#8220;<em>Project navigator</em>&#8220;, pe dosarul &#8220;<em>HelloWord</em>&#8221;  facem click cu butonul din dreapta a mouse-ului și selectăm &#8220;<em>New File</em>&#8220;.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_5.jpg"><img title="xcode_5" src="http://xcode.md/wp-content/uploads/2011/11/xcode_5.jpg" alt="" width="426" height="488" /></a></p>
<p>Din fereastra cu template-uri, care se va deschide, selectăm &#8220;<em>Cocoa Touch</em>&#8221; &gt;&#8221;<em>UIViewContoller subclass</em>&#8221; și facem click pe &#8220;<em>Next</em>&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_17.jpg"><img class="alignnone size-medium wp-image-127" title="xcode_17" src="http://xcode.md/wp-content/uploads/2011/11/xcode_17-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>In urmatoarea fereastră indicam numele clasei noastre &#8220;ViewController&#8221;, dacă nu este selectată optiunea &#8220;<em>With XIB for user interface</em>&#8221; atunci o selectăm, asa cum aplicatia noastră este doar pentru dispozitive din familia &#8220;<em>iPhone</em>&#8221; atunci nu vom avea nevoie de a selecta optiunea &#8220;<em>Targeted for iPad</em>&#8220;.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_18.jpg"><img class="alignnone size-medium wp-image-128" title="xcode_18" src="http://xcode.md/wp-content/uploads/2011/11/xcode_18-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>La pasul urmator indicam locatia unde vor fi create și salvate fișierele pentru această clasa</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_19.jpg"><img class="alignnone size-medium wp-image-129" title="xcode_19" src="http://xcode.md/wp-content/uploads/2011/11/xcode_19-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>Observam ca sau creat 3 noi fișiere</p>
<ul>
<li>ViewController.h &#8211; fișierul &#8220;header&#8221; al clasei &#8220;ViewController&#8221;</li>
<li>ViewController.m &#8211; fișierul de implimentare al clasei &#8220;ViewController&#8221;</li>
<li>ViewController.xib &#8211; fișierul de interfată &#8220;ViewController&#8221;</li>
</ul>
<p><img class="alignnone size-full wp-image-130" title="xcode_20" src="http://xcode.md/wp-content/uploads/2011/11/xcode_20.jpg" alt="" width="288" height="310" /></p>
<p>&nbsp;</p>
<h2>Lucram un pic cu codul</h2>
<p>Deschidem fisierul &#8220;ViewController.h&#8221;, declarăm o variabilă noua &#8220;helloWorldLabel&#8221; si o metodă/functie &#8220;displayHelloWordOnTheLabel&#8221;, pentru afisarea textului &#8220;Salut Lume&#8221;.</p>
<pre class="brush:cpp">//
//  ViewController.h
//  HelloWorld
//
//  Created by XCode.md on 11/22/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//

#import &lt;UIKit/UIKit.h&gt;

@interface ViewController : UIViewController {
UILabel *helloWorldLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *helloWorldLabel;

- (IBAction)displayHelloWordOnTheLabel;
@end</pre>
<p>Din motivul ca vom avea nevoie să accesăm si să modificăm variabila/obiectul &#8220;<em>helloWordLabel</em>&#8221; cu ajutorul comenzii @property (si desigur @synthesize in fisierul nostru de implimentare, dar asta un pic mai tarziu) am indicat compilatorului sa creeze automat setters si getters.</p>
<p>Pentru ca variabila noastra sa poată fi untilizată in Interface Builder, inainte the tipul variabilei/obiectului am indicat tipul IBOutlet. Astfel aceast obiect va putea fi folosit pentru a face legatură cu alt obiect din interfata utilizatorului.</p>
<p>O methodă poate fi utilizată in Interface Builder daca la aceasta metoda se indică, ca tip pe care il returnă, tipul &#8220;<em>IBAction</em>&#8220;.</p>
<p>In fisierul de implimentare &#8220;ViewController.m&#8221; primul lucru care-l facem e de a adăuga &#8220;<em>@synthesize helloWorldLabel = _helloWorldLabel;</em>&#8221; pentru ca Xcode sa creeze setters si getters pentru obiectul nostru. Nu uitam să eliminăm variabila cand aplicatia noastră va termina delucrat. Pentru aceasta adaugam in metoda &#8220;<em>- (void)viewDidUnload</em>&#8220; un nou rand &#8220;<em>self.helloWorldLabel = nil;</em>&#8221;</p>
<p>După aceasta definim metoda &#8220;<em>- (IBAction)displayHelloWordOnTheLabel</em>&#8221;</p>
<p>Fisierul &#8220;<em>ViewController.m</em>&#8221; ar trebui sa arate asa</p>
<pre class="brush:cpp">//
//  ViewController.m
//  HelloWorld
//
//  Created by XCode.md on 11/22/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//

#import "ViewController.h"

@implementation ViewController

@synthesize helloWorldLabel = _helloWorldLabel;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}

- (void)viewDidUnload
{
[super viewDidUnload];
self.helloWorldLabel = nil;
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (IBAction)displayHelloWordOnTheLabel
{
[self.helloWorldLabel setText:@"Salut Lume!"];
}

@end</pre>
<p>&nbsp;</p>
<p>Deschidem fișierul &#8220;<em>AppDelegate.h</em>&#8221; și adaugam cateva randuri noi. Acest fișier ar trebui să contină codul de mai jos</p>
<pre class="brush:cpp">//
//  AppDelegate.h
//  HelloWorld
//
//  Created by XCode.md on 11/22/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import &lt;UIKit/UIKit.h&gt;
@class ViewController;
@interface AppDelegate : UIResponder &lt;UIApplicationDelegate&gt;
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@end</pre>
<p>In acest fisier am declarat o nouă variabilă &#8221;<em>viewController</em>&#8221; de care este de tipul &#8220;<em>ViewController</em>&#8221;</p>
<p>Deschidem fișierul &#8220;<em>AppDelegate.m</em>&#8221;</p>
<p>Acest fișier ar trebui să conțină următorul cod</p>
<pre class="brush:cpp">//
//  AppDelegate.m
//  HelloWorld
//
//  Created by XCode.md on 11/22/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import "AppDelegate.h"
//adaugam classa ViewContoller
#import "ViewController.h"

@implementation AppDelegate

@synthesize window = _window;
//pentru a genera "setters" si "getters" pentru obiectul nostru viewController
@synthesize viewController = _viewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
//Alocam obiectul nostru viewController de classa "ViewController" si il initializam cu fisierul de interfata cu acelasi nume "ViewController"
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
//Pentru ca obiectul nostru "viewController" sa fie vizibil e nevoie de al atribui ferestrei noastre principale.
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
/*
Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
*/
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
/*
Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
*/
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
/*
Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
*/
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
/*
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
*/
}

- (void)applicationWillTerminate:(UIApplication *)application
{
/*
Called when the application is about to terminate.
Save data if appropriate.
See also applicationDidEnterBackground:.
*/
}
@end</pre>
<h2>Lucrăm cu interfața utilizatorului</h2>
<p>Facem click pe fisierul &#8220;ViewController.xib&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_21.jpg"><img class="alignnone size-medium wp-image-132" title="xcode_21" src="http://xcode.md/wp-content/uploads/2011/11/xcode_21-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>&nbsp;</p>
<p>In meniul din dreapta avem o listă cu elemente de interfață predefinite numită &#8220;<em>Object Library</em>&#8220;. În caz că nu vedem aceste elemente ne ducem la &#8220;<em>View</em>&#8221; &gt; &#8220;<em>Utilities</em>&#8221; &gt; &#8220;<em>Show Object Library</em>&#8220;. Această bibliotecă cu elemente de interfață este utilizată, în primul rând, pentru a alege elementele interfeței utilizatorului pe care dorim să le includem în aplicaţia noastră.</p>
<p>Din biblioteca de obiecte selectăm elementul &#8220;<em>UILabel</em>&#8221; și-l tragem în fereastra aplicatiei</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_22.jpg"><img class="alignnone size-medium wp-image-135" title="xcode_22" src="http://xcode.md/wp-content/uploads/2011/11/xcode_22-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>&nbsp;</p>
<p>Pentru ca textul &#8220;Salut Lume&#8221; sa incapa in obiectul &#8220;<em>Label</em>&#8221; e nevoie de al lărgi un pic chenarul obiectului. Pentru a arăta un pic mai frumos am aliniat textul in centru.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_30.jpg"><img title="xcode_30" src="http://xcode.md/wp-content/uploads/2011/11/xcode_30.jpg" alt="" width="353" height="513" /></a></p>
<p>Alinierea poate fi facută activand din meniul din drepta sus optiunea &#8220;<em>Show the Attributes inspector</em>&#8221;</p>
<p><img title="xcode_31" src="http://xcode.md/wp-content/uploads/2011/11/xcode_31.jpg" alt="" width="244" height="235" /></p>
<p>Acum trebuie sa conectăm totul impreuna. Facem click dreptul pe &#8220;<em>File&#8217;s Owner</em>&#8220;, găsim obiectul nostru &#8220;<em>helloWordLabel</em>&#8220;, in grupa &#8220;<em>Outlets</em>&#8220;. Facem click pe cerculetul din partea dreapta care apare langă numele obiectului nostru, din ViewController, și-l  tragem pe obiectul nostru din interfată.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_23.png"><img title="xcode_23" src="http://xcode.md/wp-content/uploads/2011/11/xcode_23-300x170.png" alt="" width="300" height="170" /></a></p>
<p>Acum avem nevoie de un buton care va modifica textul din &#8220;<em>Label</em>&#8221; in &#8220;<em>Salut Lume!</em>&#8221; . Pentru aceasta din biblioteca de obiecte selectăm elementul &#8220;<em>UIButton</em>&#8221; și-l tragem în fereastra aplicatiei noastre</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_24.jpg"><img title="xcode_24" src="http://xcode.md/wp-content/uploads/2011/11/xcode_24-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>Modificăm textul care apare pe buton, pentru aceasta facem click pe butonul nostru pentru a-l selecta si in meniul din dreapta sus activăm optiunea &#8220;<em>Show the Attributes inspector</em>&#8221; . In campul &#8220;title&#8221; indicăm textul care va aparea pe buton, in cazul nostru &#8220;Click&#8221;.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_25.jpg"><img class="alignnone size-medium wp-image-138" title="xcode_25" src="http://xcode.md/wp-content/uploads/2011/11/xcode_25-300x171.jpg" alt="" width="300" height="171" /></a></p>
<p>O alta optiune mai rapidă de adăugare/editare a textul care apare pe buton este de a face dublu click pe el</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_26.jpg"><img class="alignnone size-full wp-image-139" title="xcode_26" src="http://xcode.md/wp-content/uploads/2011/11/xcode_26.jpg" alt="" width="383" height="531" /></a></p>
<p>Acum facem click drept pe butonul nostru si din meniul care va apărea, tragem cerculetul din partea dreaptă a evenimentului &#8220;<em>Touch Up Inside</em>&#8221; către obiectul &#8220;<em>File&#8217;s Owner</em>&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_27.jpg"><img class="alignnone size-medium wp-image-140" title="xcode_27" src="http://xcode.md/wp-content/uploads/2011/11/xcode_27-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>dupa ce dăm drumul la cursor, vor apărea metodele din &#8220;ViewController&#8221; care au ca tip &#8220;<em>IBAction</em>&#8220;, in cazul nostru va apărea metoda &#8220;<em>displayHelloWordOnTheLabel</em>&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_28.jpg"><img class="alignnone size-medium wp-image-141" title="xcode_28" src="http://xcode.md/wp-content/uploads/2011/11/xcode_28-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>&nbsp;</p>
<p>Facem click pe aceasta metoda si vom observa că s-a facut legătura intre evenimentul butonului &#8220;<em>Touch Up Inside</em>&#8221; si metoda &#8220;<em>displayHelloWordOnTheLabel</em>&#8221; din clasa &#8220;<em>ViewController</em>&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_29.jpg"><img class="alignnone size-full wp-image-142" title="xcode_29" src="http://xcode.md/wp-content/uploads/2011/11/xcode_29.jpg" alt="" width="496" height="595" /></a></p>
<p>Acum efectuăm un &#8220;test drive&#8221;. Apăsam butonul &#8220;Run&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_14.jpg"><img title="xcode_14" src="http://xcode.md/wp-content/uploads/2011/11/xcode_14-300x67.jpg" alt="" width="300" height="67" /></a></p>
<p>&nbsp;</p>
<p>Xcode va lansa acum Simulatorul iOS cu aplicaţia noastră în ea.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_32.jpg"><img class="alignnone size-full wp-image-145" title="xcode_32" src="http://xcode.md/wp-content/uploads/2011/11/xcode_32.jpg" alt="" width="400" height="720" /></a></p>
<p>&nbsp;</p>
<p>Pentru cei ce doresc sa descarce acest proiect am pus la dispozitie <a title="source code" href="http://xcode.md/wp-content/uploads/2011/11/HelloWorld3.zip">codul sursa</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/lectia-a-treia-helloword-in-objective-c-utilizand-conceptul-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode Lectia a doua HelloWord in Objective-C utilizand Storyborad</title>
		<link>http://xcode.md/xcode-lectia-a-doua-helloword-in-objective-c-utilizand-storyborad/</link>
		<comments>http://xcode.md/xcode-lectia-a-doua-helloword-in-objective-c-utilizand-storyborad/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 07:51:15 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[descarcam Xcode]]></category>
		<category><![CDATA[iOs]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=117</guid>
		<description><![CDATA[Creăm proiectul Pentru a începe cu crearea de noi applicatii iOS, vom crea un proiect nou. Deschidem Xcode, când va fi încărcat, veţi vedea ecranul de bun venit. În această fereastra, faceţi clic pe &#8220;Create a new Xcode project&#8221;. Se va deschide fereastra ce conține template-urile. Selectăm &#8220;Emthy Application&#8221;. Pagina următoare vă va permite să definiţi [...]]]></description>
			<content:encoded><![CDATA[<h2>Creăm proiectul</h2>
<p>Pentru a începe cu crearea de noi applicatii iOS, vom crea un proiect nou.</p>
<p>Deschidem Xcode, când va fi încărcat, veţi vedea ecranul de bun venit.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_1.jpg"><img class="size-full wp-image-88 alignnone" title="xcode_1" src="http://xcode.md/wp-content/uploads/2011/11/xcode_1.jpg" alt="" width="640" height="416" /></a></p>
<p>În această fereastra, faceţi clic pe &#8220;Create a new Xcode project&#8221;.</p>
<p>Se va deschide<strong> </strong>fereastra ce conține template-urile.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_2.jpg"><img class="alignnone size-full wp-image-89" title="xcode_2" src="http://xcode.md/wp-content/uploads/2011/11/xcode_2.jpg" alt="" width="584" height="395" /></a></p>
<p>Selectăm &#8220;Emthy Application&#8221;.</p>
<p>Pagina următoare vă va permite să definiţi numele proiectului şi identificatorul. Identificator este numele aplicaţiei. Îl puteţi vedea ca un nume de domeniu scris inversat. Dacă domenul site-ului dvs. este mycompany.com, identificatorul dvs. ar fi com.mycompany.APPLICATIONNAME.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_3.jpg"><img class="alignnone size-full wp-image-105" title="xcode_3" src="http://xcode.md/wp-content/uploads/2011/11/xcode_3.jpg" alt="" width="584" height="395" /></a></p>
<p>&nbsp;</p>
<p>Nu uitam sa deselectam &#8220;<em>Use Core Data</em>&#8221; si &#8220;<em>Include Unit Test</em>&#8220;.</p>
<p>În baza locaţiei pe care o selectaţi și a numelui proiectului, va fi creat un dosar cu acel nume şi fişierele proiectului nostru vor fi fixate acolo. Imediat după salvarea template-ului, vei observa cum iți este organizată fereastra de lucru.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4.jpg"><img class="alignnone size-medium wp-image-106" title="xcode_4" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>&nbsp;</p>
<h2>Incepem sa programam</h2>
<p>Deschidem fișierul &#8220;<em>AppDelegate.h</em>&#8221; si declarăm o nouă variabilă &#8221;<em>helloLabel</em>&#8221; de tipul &#8220;<em>UILabel</em>&#8221;</p>
<pre class="brush:cpp">//
//  AppDelegate.m
//  HelloWorld
//
//  Created by XCode.md on 11/11/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import &lt;UIKit/UIKit.h&gt;
@interface AppDelegate : UIResponder &lt;UIApplicationDelegate&gt;
{
UILabel *helloLabel;
}
@property (strong, nonatomic) UIWindow *window;
@end</pre>
<p>Deschidem fișierul &#8220;<em>AppDelegate.m</em>&#8220;, gasim metoda/functia &#8220;<em>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions</em>&#8221; și inainte de &#8220;<em>return YES</em>&#8221; adaugam cateva randuri de cod</p>
<pre class="brush:cpp">    //alocam variabila/obiectul helloLabel cu pozitia pe x = 120px, pozitia pe y = 160px, latimea=100px si inaltimea=60px
    helloLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 160, 100, 60)];
    //setam textul ce apare pe helloLabel
    helloLabel.text = @"Salut Lume!";
    //afisam variabila/obiectul helloLabel pe ecranul device-ului, atasind-ul ferestrei principale
    [self.window addSubview:helloLabel];</pre>
<p>Fișierul nostru ar trebui sa arate in felul urmator</p>
<pre class="brush:cpp">//
//  AppDelegate.m
//  HelloWorld
//
//  Created by XCode.md on 11/11/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import "AppDelegate.h"
@implementation AppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //aici se creaza si aloca fereastra principala care va avea dimensiunea ecranului device-ului nostru
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // aici setam culoarea backround-ului ferestrei principale
    self.window.backgroundColor = [UIColor whiteColor];
    // indicam ca aceasta fereastra este vizibila si principala pentru interactionarea cu utilizatorul
    [self.window makeKeyAndVisible];
    //alocam variabila/obiectul helloLabel cu pozitia pe x = 120px, pozitia pe y = 160px, latimea=100px si inaltimea=60px
    helloLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 160, 100, 60)];
    //setam textul ce apare pe helloLabel
    helloLabel.text = @"Salut Lume!";
    //afisam variabila/obiectul helloLabel pe ecranul device-ului, atasind-ul ferestrei principale
    [self.window addSubview:helloLabel];
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
    /*
     Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
     Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
     */
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    /*
     Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
     If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
     */
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    /*
     Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
     */
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    /*
     Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
     */
}

- (void)applicationWillTerminate:(UIApplication *)application
{
    /*
     Called when the application is about to terminate.
     Save data if appropriate.
     See also applicationDidEnterBackground:.
     */
}

@end</pre>
<p>Acum verificăm dacă totul merge bine si programa va rula fară erori. Apăsam butonul &#8220;Run&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_14.jpg"><img class="alignnone size-medium wp-image-116" title="xcode_14" src="http://xcode.md/wp-content/uploads/2011/11/xcode_14-300x67.jpg" alt="" width="300" height="67" /></a></p>
<p>&nbsp;</p>
<p>Xcode va lansa acum Simulatorul iOS cu aplicaţia noastră în ea.</p>
<p><img class="alignnone size-full wp-image-103" title="xcode_15" src="http://xcode.md/wp-content/uploads/2011/11/xcode_15.jpg" alt="" width="364" height="710" /></p>
<p>&nbsp;</p>
<p>Pentru cei ce doresc sa descarce acest proiect am pus la dispozitie <a title="source code" href="http://xcode.md/wp-content/uploads/2011/11/HelloWorld2.zip">codul sursa</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/xcode-lectia-a-doua-helloword-in-objective-c-utilizand-storyborad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programam in Objective-C, prima noastra aplicatie pentru iOS in XCode 4.2</title>
		<link>http://xcode.md/programam-in-objective-c-prima-noastra-aplicatie-pentru-ios-in-xcode-4-2/</link>
		<comments>http://xcode.md/programam-in-objective-c-prima-noastra-aplicatie-pentru-ios-in-xcode-4-2/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 08:24:20 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[descarcam Xcode]]></category>
		<category><![CDATA[iOs]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=75</guid>
		<description><![CDATA[Nu se pot crea aplicatii iOS utilizând un computer Windows sau Linux, de aceea primul lucru de care veți avea nevoie este de un Mac, sau cel putin un PC care rulează OSX. Al doilea lucru pe care trebuie să-l faci este să descărci Xcode de pe siteul official al companiei Apple http://developer.apple.com/xcode/index.php, și să-l instalezi [...]]]></description>
			<content:encoded><![CDATA[<p>Nu se pot crea aplicatii iOS utilizând un computer Windows sau Linux, de aceea primul lucru de care veți avea nevoie este de un Mac, sau cel putin un PC care rulează OSX. Al doilea lucru pe care trebuie să-l faci este să descărci Xcode de pe siteul official al companiei Apple http://developer.apple.com/xcode/index.php, și să-l instalezi pe calculatorul tău.</p>
<h2>Creăm proiectul</h2>
<p>Pentru a începe cu crearea de noi applicatii iOS, vom crea un proiect nou.</p>
<p>Deschidem Xcode, când va fi încărcat, veţi vedea ecranul de bun venit.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_1.jpg"><img class="size-full wp-image-88 alignnone" title="xcode_1" src="http://xcode.md/wp-content/uploads/2011/11/xcode_1.jpg" alt="" width="640" height="416" /></a></p>
<p>În această fereastra, faceţi clic pe &#8220;Create a new Xcode project&#8221;.</p>
<p>Se va deschide<strong> </strong>fereastra ce conține template-urile.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_2.jpg"><img class="alignnone size-full wp-image-89" title="xcode_2" src="http://xcode.md/wp-content/uploads/2011/11/xcode_2.jpg" alt="" width="584" height="395" /></a></p>
<p>Selectăm &#8220;Emthy Application&#8221;.</p>
<p>Pagina următoare vă va permite să definiţi numele proiectului şi identificatorul. Identificator este numele aplicaţiei. Îl puteţi vedea ca un nume de domeniu scris inversat. Dacă domenul site-ului dvs. este mycompany.com, identificatorul dvs. ar fi com.mycompany.APPLICATIONNAME.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_3.jpg"><img class="alignnone size-full wp-image-105" title="xcode_3" src="http://xcode.md/wp-content/uploads/2011/11/xcode_3.jpg" alt="" width="584" height="395" /></a></p>
<p>&nbsp;</p>
<p>Nu uitam sa deselectam &#8220;<em>Use Core Data</em>&#8221; si &#8220;<em>Include Unit Test</em>&#8220;.</p>
<p>În baza locaţiei pe care o selectaţi și a numelui proiectului, va fi creat un dosar cu acel nume şi fişierele proiectului nostru vor fi fixate acolo. Imediat după salvarea template-ului, vei observa cum iți este organizată fereastra de lucru.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_4.jpg"><img class="alignnone size-medium wp-image-106" title="xcode_4" src="http://xcode.md/wp-content/uploads/2011/11/xcode_4-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>&nbsp;</p>
<h2>Câteva lecții despre Objective-C</h2>
<p>Fiecare obiect(clasă) într-un proiect <strong>Xcode</strong> are un fişier de antet cu extensia &#8220;<em>.h</em>&#8220;, şi un fişier de implimentare cu extensia &#8220;<em>.m</em>&#8220;.</p>
<ul>
<li>În fișierul de antet (<em>header file</em>) se definește interfaţa obiectului (clasei), se importă fişierele,  se declara variabilele şi se declara metodele(funcţiile).</li>
<li>Fișierele care poseda extensiunea &#8221;<em>.m</em>” , sunt numite fişiere de implementare (<em>implementation file</em>). În aceste fișiere își are reședința codul de baza al computatorului. Acesta este fișierul în care vă este pus în aplicare codul pentru obiect (clasa),  aici are loc adăugarea codului pentru metode (funcții), aici se manipulează variabilele dumneavoastră, sau se suprascrie şi personalizează clasa părinte.</li>
</ul>
<p>Tot ceea de ce vom avea nevoie pentru a scrie codul și pentru a accesa interfaţa utilizatorului, vom găsi pe partea stângă a ecranului în &#8220;<em>Project navigator</em>&#8220;.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_16.jpg"><img class="alignnone size-full wp-image-107" title="xcode_16" src="http://xcode.md/wp-content/uploads/2011/11/xcode_16.jpg" alt="" width="263" height="241" /></a></p>
<p>După cum puteţi vedea, aveţi posibilitatea să deschideți fiecare dintre dosare pentru a face cunoștință cu conţinutul acestuia.</p>
<p>Aici veți găsi 2 fișiere: &#8220;<em>AppDelegate.h</em>&#8221; si &#8220;<em>AppDelegate.m</em>&#8221; aceste fișiere se folosesc pentru declararea clasei &#8220;<em>AppDelegate&#8221; </em>care lansează și  gestionează aplicatia dumneavoastră.</p>
<p>Dacă aveţi orice particularizare necesară în timpul lansării/încheierii aplicației, sau atunci când aplicaţia trece în modul  &#8221;<em>background</em>&#8220;, in acest caz puteţi introduce codul aici. Însă, în majoritatea cazurilor, puteţi ignora &#8220;<em>AppDelegate&#8221;</em>.</p>
<p>Atunci când veți face click pe aceste fişiere, Xcode va deschide o fereastră de cod sursă pe partea dreaptă a ecranului proiectului. Veţi observa că Xcode a pus deja o multime de lucruri acolo, fapt care ne va scuti de puțin tapat.</p>
<h2>Modificam un pic codul</h2>
<p>Deschidem fișierul &#8220;<em>AppDelegate.h</em>&#8220;, el trebuie să contină codul de mai jos</p>
<pre class="brush:cpp">//
//  AppDelegate.m
//  HelloWorld
//
//  Created by XCode.md on 11/11/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import &lt;UIKit/UIKit.h&gt;
@interface AppDelegate : UIResponder &lt;UIApplicationDelegate&gt;
@property (strong, nonatomic) UIWindow *window;
@end</pre>
<p>Deschidem fișierul &#8220;<em>AppDelegate.m</em>&#8220;, găsim aceste rânduri de cod</p>
<pre class="brush:cpp">self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];</pre>
<pre class="brush:cpp">self.window.backgroundColor = [UIColor whiteColor];</pre>
<pre class="brush:cpp">[self.window makeKeyAndVisible];</pre>
<p>și le comentăm sau le eliminam.</p>
<p>Acest fișier ar trebui să arate conțină următorul cod</p>
<pre class="brush:cpp">//
//  AppDelegate.m
//  HelloWorld
//
//  Created by XCode.md on 11/11/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import "AppDelegate.h"
@implementation AppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
//self.window.backgroundColor = [UIColor whiteColor];
//[self.window makeKeyAndVisible];
return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
/*
Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
*/
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
/*
Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
*/
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
/*
Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
*/
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
/*
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
*/
}

- (void)applicationWillTerminate:(UIApplication *)application
{
/*
Called when the application is about to terminate.
Save data if appropriate.
See also applicationDidEnterBackground:.
*/
}

@end</pre>
<h2>Creăm interfața utilizatorului</h2>
<p>Pentru a începe, avem nevoie de un fișier de interfață cu care vom lucra. Din meniul din stânga selectăm &#8220;<em>Project navigator</em>&#8220;, pe dosarul &#8220;<em>HelloWord</em>&#8221;  facem click cu butonul din dreapta a mouse-ului și selectăm &#8220;<em>New File</em>&#8220;.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_5.jpg"><img class="alignnone size-full wp-image-108" title="xcode_5" src="http://xcode.md/wp-content/uploads/2011/11/xcode_5.jpg" alt="" width="426" height="488" /></a></p>
<p>Din fereastra cu template-uri, care se va deschide, selectam &#8220;<em>User Interface</em>&#8221; &gt;&#8221;<em>Storyborad</em>&#8221; și facem click pe &#8220;<em>Next</em>&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_6.jpg"><img class="alignnone size-medium wp-image-109" title="xcode_6" src="http://xcode.md/wp-content/uploads/2011/11/xcode_6-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_7.jpg"><img class="alignnone size-medium wp-image-110" title="xcode_7" src="http://xcode.md/wp-content/uploads/2011/11/xcode_7-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>Așa cum aplicația noastră este pentru dispozitive din familia iPhone selectăm &#8220;<em>iPhone</em>&#8221; și apăsăm pe &#8221;<em>Next</em>&#8221;</p>
<p>În fereastra urmatoare indicăm numele fișierului și îl creăm.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_8.jpg"><img class="alignnone size-medium wp-image-111" title="xcode_8" src="http://xcode.md/wp-content/uploads/2011/11/xcode_8-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>Dupa ce creăm fișierul de interfată &#8220;<em>HelloWorldStoryboard.storyboard</em>&#8220;, îl selectăm, și se va deschide fereastra următoare</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_9.jpg"><img class="alignnone size-medium wp-image-112" title="xcode_9" src="http://xcode.md/wp-content/uploads/2011/11/xcode_9-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>În meniul din dreapta avem o listă cu elemente de interfață predefinite numită &#8220;<em>Object Library</em>&#8220;. În caz că nu vedem aceste elemente ne ducem la &#8220;<em>View</em>&#8221; &gt; &#8220;<em>Utilities</em>&#8221; &gt; &#8220;<em>Show Object Library</em>&#8220;. Această bibliotecă cu elemente de interfață este utilizată, în primul rând, pentru a alege elementele interfeței utilizatorului pe care dorim să le includem în aplicaţia noastră.</p>
<p>Din biblioteca de obiecte selectam elementul &#8220;<em>View Controller</em>&#8221; și-l tragem în chenarul gri</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_10.jpg"><img class="alignnone size-medium wp-image-113" title="xcode_10" src="http://xcode.md/wp-content/uploads/2011/11/xcode_10-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>Găsim în lista de obiecte elementul &#8220;<em>Label View</em>&#8221; și-l tragem în ferestruica aplicaţiei noastre.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_11.jpg"><img class="alignnone size-medium wp-image-114" title="xcode_11" src="http://xcode.md/wp-content/uploads/2011/11/xcode_11-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>Înlocuim textul &#8220;<em>Label</em>&#8221; cu  textul &#8220;<em>Salut Lume!</em>&#8220;. Folosind instrumentele, care vor aparea în partea dreaptă a ecranului, putem edita modul în care apare textul.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_12.jpg"><img class="alignnone size-medium wp-image-100" title="xcode_12" src="http://xcode.md/wp-content/uploads/2011/11/xcode_12-300x228.jpg" alt="" width="300" height="228" /></a></p>
<p>În parea stânga a ecranului, facem click pe proiectul nostru &#8220;<em>HelloWorld</em>&#8221;  și în fereastra care se va deschide în campul &#8220;<em>Main Storyborad</em>&#8221; indicăm numele fișierului nostru de interfață &#8220;<em>HelloWorldStoryboard</em>&#8220;, nu e nevoie de a indica extensia.</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_13.jpg"><img class="alignnone size-medium wp-image-115" title="xcode_13" src="http://xcode.md/wp-content/uploads/2011/11/xcode_13-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p>Acum efectuăm un &#8220;test drive&#8221;. Apăsam butonul &#8220;Run&#8221;</p>
<p><a href="http://xcode.md/wp-content/uploads/2011/11/xcode_14.jpg"><img class="alignnone size-medium wp-image-116" title="xcode_14" src="http://xcode.md/wp-content/uploads/2011/11/xcode_14-300x67.jpg" alt="" width="300" height="67" /></a></p>
<p>&nbsp;</p>
<p>Xcode va lansa acum Simulatorul iOS cu aplicaţia noastră în ea.</p>
<p><img class="alignnone size-full wp-image-103" title="xcode_15" src="http://xcode.md/wp-content/uploads/2011/11/xcode_15.jpg" alt="" width="364" height="710" /></p>
<p>&nbsp;</p>
<p>Pentru cei ce doresc sa descarce acest proiect am pus la dispozitie <a title="source code" href="http://xcode.md/wp-content/uploads/2011/11/HelloWorld1.zip">codul sursa</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/programam-in-objective-c-prima-noastra-aplicatie-pentru-ios-in-xcode-4-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fisierul .htaccess</title>
		<link>http://xcode.md/fisierul-htaccess/</link>
		<comments>http://xcode.md/fisierul-htaccess/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 07:22:56 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[.php]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=72</guid>
		<description><![CDATA[Un fişier .htaccess (in engleza hypertext access) este un fişier ce contine comenzi, denumite directive Apache şi este cunoscut in majoritatea serverelor web ca fişierul de configurare la nivel de director. Practic, acest fişier este introdus în unul din foldere(directoare) şi oferă posibilitatea de a suprascrie unele dintre setarile serverului. Atentie: nu este vorba despre o extensie [...]]]></description>
			<content:encoded><![CDATA[<p>Un fişier <strong>.htaccess</strong> (in engleza hypertext access) este un fişier ce contine comenzi, denumite directive Apache şi este cunoscut in majoritatea serverelor web ca fişierul de configurare la nivel de director. Practic, acest fişier este introdus în unul din foldere(directoare) şi oferă posibilitatea de a suprascrie unele dintre setarile serverului. Atentie: nu este vorba despre o extensie cum este <strong>.php</strong> cum ar fi &#8220;<strong>nume_fisier.htaccess</strong>&#8221; ci pur şi simplu &#8220;<strong>.htaccess</strong>&#8220;. <strong>.htaccess</strong> este un fişier în format ASCII care poate fi creat cu orice editor text, de exemplu Notepad.<br />
Scopul iniţial al <strong>.htaccess</strong>, reflectat în numele său, a fost de a controla fiecare director în parte, de exemplu, prin solicitarea unei parole pentru a accesa conţinutul acestuia. În zilele noastre însă, fişierele <strong>.htaccess</strong> pot suprascrie multe alte setări de configurare. Comenzile din <strong>.htaccess</strong> actionează la nivel de director, influentand toate fişierele din directorul curent (în care acesta se află) cat şi subdirectoarele acestuia. Puteti pune un fişier <strong>.htaccess</strong> în fiecare director, dacă doriti setări diferite, un subdirector va fi afectat de cel mai aproape <strong>.htaccess</strong>.<br />
Modul de actiune al fişierului <strong>.htaccess</strong> este foarte puternic, chiar şi o mică eroare de sintaxă (cum ar fi lipsa unui spatiu) poate duce la o functionare greşită a serverului.</p>
<p>Cateva lucruri care pot fi obtinute utilizand .htaccess:</p>
<ul>
<li>directoare protejate cu parola,</li>
<li>setare pagini erori personalizate,</li>
<li>dezactivare listare director (directory listings),</li>
<li>specificare fisier index alternativ,</li>
<li>blocarea accesului vizitatorilor pe baza de adresa IP,</li>
<li>prevenire furt banda prin utilizarea &#8216;hotlink&#8217;,</li>
<li>redirectionare automata catre anumite pagini,</li>
<li>adaugare tipuri MIME,</li>
<li>cautare fisiere .html/.htm dupa cod php.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/fisierul-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrie primul tau script in PHP: formularul feedback</title>
		<link>http://xcode.md/scrie-primul-tau-script-in-php-formularul-feedback/</link>
		<comments>http://xcode.md/scrie-primul-tau-script-in-php-formularul-feedback/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 16:36:28 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[contact-us]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[fisier]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[subject]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=1</guid>
		<description><![CDATA[Primul lucru pe care-l vom facem este să scriem formularul de introducere a datelor. Creăm un fișier HTML denumit, să presupunem, &#8220;contact-us.html&#8221;. În acest fișier, în secțiunea BODY, înserăm urmatorul cod: &#60;form method="post" action="sendmail.php"&#62; Email: &#60;input type="text" name="email"&#62;&#60;br&#62; Subiect: &#60;input type="text" name="subject"&#62;&#60;br&#62; Mesaj: &#60;textarea name="message"&#62;&#60;/textarea&#62;&#60;br&#62; &#60;input type="submit" name="submit" value="Trimite"&#62; &#60;/form&#62; Acest formular conține 3 câmpuri [...]]]></description>
			<content:encoded><![CDATA[<p>Primul lucru pe care-l vom facem este să scriem formularul de introducere a datelor. Creăm un fișier HTML denumit, să presupunem, &#8220;contact-us.html&#8221;. În acest fișier, în secțiunea BODY, înserăm urmatorul cod:</p>
<pre class="brush:html">&lt;form method="post" action="sendmail.php"&gt;
Email: &lt;input type="text" name="email"&gt;&lt;br&gt;
Subiect: &lt;input type="text" name="subject"&gt;&lt;br&gt;
Mesaj: &lt;textarea name="message"&gt;&lt;/textarea&gt;&lt;br&gt;
&lt;input type="submit" name="submit" value="Trimite"&gt;
&lt;/form&gt;</pre>
<p>Acest formular conține 3 câmpuri și un buton pentru a trimite datele din formular:</p>
<ul>
<li>câmpul numit &#8220;email&#8221; care se gaseste sub forma &lt;input type=&#8221;text&#8221; name=&#8221;email&#8221;&gt;</li>
<li>câmpul numit &#8220;subject&#8221; care se gaseste sub forma &lt;input type=&#8221;text&#8221; name=&#8221;subject&#8221;&gt;</li>
<li>câmpul numit &#8220;message&#8221; care se gaseste sub forma &lt;textarea name=&#8221;message&#8221;&gt;&lt;/textarea&gt;</li>
<li>butonul numit &#8220;submit&#8221; care se gaseste sub forma &lt;input type=&#8221;submit&#8221; name=&#8221;submit&#8221; value=&#8221;Trimite&#8221;&gt;</li>
</ul>
<p>Când butonul este apasat, datele sunt &#8220;postate&#8221; fișierului &#8220;sendmail.php&#8221;.</p>
<p>Acum tot ce a ramas de făcut este de a crea fișierul &#8220;sendmail.php&#8221; și de a salva codul urmator în acest fișier.</p>
<pre class="brush:php">&lt;?php
$subject = $_POST['subject'];
$message = $_POST['message'];
$email = $_POST['email'];
mail( "yourname@yourdomain.com", $subject, $message, "From: $email" );
header( "Location: http://www.yourdomain.com/thankyou.html" );
?&gt;</pre>
<p>Programul trebuie sa fie delimitat de etichetele de deschidere &#8220;<!--?php"(sau "<?") și de închidere "?-->&#8221; pentru că interpretorul PHP tratează toate intrările drept cod HTML daca nu i se specifică altceva.</p>
<p>Când date sunt trimise programului &#8220;sendmail.php&#8221; conținutul câmpului &#8220;subject&#8221; este atribuit unei variabile PHP denumită $subject, conținutul câmpului &#8220;message&#8221; este atribuit unei variabile PHP denumită $message iar conținutul câmpului &#8220;email&#8221; este atribuit unei variabile PHP denumită $email.</p>
<p>După atribuirea variabilelor programul apelează o functie specială denumită sugestiv &#8220;mail&#8221;, care de fapt se ocupă de trimiterea mesajului prin email. Primul parametru al funcției &#8220;mail&#8221; este adresa de email la care doresti să se trimita datele din formular, adica propria ta adresă de email. Al doilea parametru este &#8220;Subject&#8221; și reprezintă subiectul mesajului email. Al treilea parametru este conținutul mesajului. Ultimul parametru este variabila $email cu antet-ul &#8220;From:&#8221; pentru a ști cine ne-a trimis datele și pentru a-i putea raspunde dacă vom avea nevoie. Dacă vei dori sa folosești acest program în cadrul paginilor site-ului tău va trebui sa înlocuiești adresa site-ului și cea de email cu cele corecte .</p>
<p>În final, este adecvat să-i mulțumești vizitatorului pentru mesajul trimis. Pentru a face acest lucru, cu ajutorul funcției &#8220;header&#8221; trimitem înapoi catre browser-ul acestuia un antet HTTP, care îi transmite programului sa încarce un fișier denumit &#8220;thankyou.html&#8221; de pe site-ul tau.</p>
<p>Desigur vei crea un fișier denumit în mod corespunzator &#8220;thankyou.html&#8221; cu un mesaj pentru a mulțumi vizitatorului tău pentru efortul depus, in caz contrar vizitatorul va fi întâmpinat dupa trimiterea mesajului său de o eroare &#8220;404/File Not Found&#8221; (404/Fișierul nu a fost găsit).</p>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/scrie-primul-tau-script-in-php-formularul-feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crearea unui script PHP</title>
		<link>http://xcode.md/crearea-unui-script-php/</link>
		<comments>http://xcode.md/crearea-unui-script-php/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 14:50:39 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[echi]]></category>
		<category><![CDATA[hello word]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=46</guid>
		<description><![CDATA[Întotdeauna codul php este delimitat cu etichetele &#8220;&#60;?&#8221; și respectiv &#8220;?&#62;&#8221; sau  &#8221;&#60;?php&#8221; și respectiv &#8220;?&#62;&#8221; Sa luam ca exemplu urmatorul cod: &#60;?php echo 'Salut, acesta este primul meu script PHP'; ?&#62; Intram în directorul unde am instalat serverul web (în cazul nostru: C:\Program Files\EasyPHP-5.4.0beta2\ și accesăm directorul www. Cream o nouă pagină cu numele: hello_world.php. Dupa ce ați [...]]]></description>
			<content:encoded><![CDATA[<p>Întotdeauna codul php este delimitat cu etichetele &#8220;&lt;?&#8221; și respectiv &#8220;?&gt;&#8221; sau  &#8221;&lt;?php&#8221; și respectiv &#8220;?&gt;&#8221;<br />
Sa luam ca exemplu urmatorul cod:</p>
<pre class="brush:php">&lt;?php
echo 'Salut, acesta este primul meu script PHP';
?&gt;</pre>
<p>Intram în directorul unde am instalat serverul web (în cazul nostru: <strong>C:\Program Files\EasyPHP-5.4.0beta2\</strong> și accesăm directorul <strong>www</strong>.<br />
Cream o nouă pagină cu numele: hello_world.php.</p>
<p>Dupa ce ați creat fișierul hello_word.php în <strong>C:\Program Files\EasyPHP-5.4.0beta2\</strong><strong>www</strong> deschideti un browser și tastați adresa: http://localhost/hello_word.php</p>
<p>După cum vedeți, textul este afișat în pagină cu ajutorul construcției <strong>echo</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/crearea-unui-script-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalare PHP + MySQL</title>
		<link>http://xcode.md/instalare-php-mysql/</link>
		<comments>http://xcode.md/instalare-php-mysql/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 15:16:40 +0000</pubDate>
		<dc:creator>xcode</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[EasyPHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[phpMyAdmin]]></category>

		<guid isPermaLink="false">http://xcode.md/?p=48</guid>
		<description><![CDATA[Pentru a începe a programa în PHP e nevoie de a instala un pachet complet ce să conțină Apache + PHP + MySQL + phpMyAdmin. Eu vă recomand pachetul EasyPHP. Acest pachet nu necesită decât o instalare simplă (ca a oricarui program) și-l puteți descarca de la adresa: http://www.easyphp.org/download.php Pachetul va fi instalat în C:\Program [...]]]></description>
			<content:encoded><![CDATA[<p>Pentru a începe a programa în PHP e nevoie de a instala un pachet complet ce să conțină Apache + PHP + MySQL + phpMyAdmin. Eu vă recomand pachetul <a title="EasyPHP" href="http://www.easyphp.org/">EasyPHP</a>.<br />
Acest pachet nu necesită decât o instalare simplă (ca a oricarui program) și-l puteți descarca de la adresa: <a href="http://www.easyphp.org/download.php">http://www.easyphp.org/download.php</a></p>
<p><img class="alignnone size-medium wp-image-49" title="install0" src="http://xcode.md/wp-content/uploads/2011/11/install0-300x232.png" alt="" width="300" height="232" /></p>
<p>Pachetul va fi instalat în <strong>C:\Program Files\EasyPHP-5.4.0beta2\</strong>  iar directorul rădăcina unde sunt ținute și de unde se accesează paginile și scripturile PHP este <strong>www</strong>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://xcode.md/instalare-php-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: xcode.md @ 2012-05-20 10:54:31 -->
