SlideShare uma empresa Scribd logo
1 de 74
Baixar para ler offline
Conceitos e prática no
desenvolvimento iOS
Desenvolvedor e instrutor
(iOS, Android, Java e Ruby)
Quem sou eu?
@fabiopimentel
github.com/fabiopimentel
Vamos programar?
Objective-C (OFICIAL)
Ruby - RubyMotion
C# - Xamarin
iOS MVC
Controller
Model View
iOS MVC
Controller
Model View
--------------
--------------
iOS MVC
Controller
Model View
--------------
--------------
iOS MVC
Controller
Model View
--------------
--------------
Outlet
iOS MVC
Controller
Model View
--------------
--------------
Outlet
Action
Opções para View
StoryBoard
Xib
Opções para View
1) StoryBoard
2) Xib
2) Programaticamente
Ciclo de Vida
ViewController
A tela já
existe?
ViewController
A tela já
existe?
viewWillAppear
Não
viewDidAppear
Tela visível
viewDidLoad
F
l
u
x
o
ViewController
A tela já
existe?
Sim
viewWillAppear
Não
viewDidAppear
Tela visível
viewDidLoad
viewDidLoad
viewWillAppear
Tela visível
viewWillDisappear
Ciclo de vida - ViewController
viewDidAppear
viewDidDisappear
Tela não visível
Ciclo de Vida - App
Aplicação
não está
rodando
Usuário
clica no ícone
da app
application:didFinishLauchingWithOptions:
applicationDidBecomeActive:
Aplicação
rodando
Usuário clica
em Home, ou recebe
chamada telefônica/
SMS
applicationWillResignActive:
applicationDidEnterBackground:
Aplicação em
backgroung
Usuário
clica no ícone
da app
applicationWillEnterForeground:
Ciclo de Vida - App
Aplicação
não está
rodando
Usuário
clica no ícone
da app
application:didFinishLauchingWithOptions:
applicationDidBecomeActive:
Aplicação
rodando
Usuário clica
em Home, ou recebe
chamada telefônica/
SMS
applicationWillResignActive:
applicationDidEnterBackground:
Aplicação em
backgroung
Usuário
clica no ícone
da app
applicationWillEnterForeground:
Live Coding
First
Round
Principal componente do iOS
TableView
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/tableview_iphone/
AboutTableViewsiPhone/AboutTableViewsiPhone.html
UITableViewStyleGrouped
UITableViewStylePlain
Section 0
Section 1
Section 2
Section 3
Section 4
Row 0
Row 1
Row 0
Row 1
Row 2
NSIndexPath
"The UIKit framework adds programming interfaces to the NSIndexPath class of the
Foundation framework to facilitate the identification of rows and sections in
UITableView objects and the identification of items and sections in UICollectionView
objects."
https://developer.apple.com/library/ios/documentation/uikit/reference/NSIndexPath_UIKitAdditions/Reference/
Reference.html
NSIndexPath
Row Section
Row 2
Section 2
NSIndexPath
UITableViewController
https://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewController_Class/
Reference/Reference.html
Métodos para configuração
– numberOfSectionsInTableView:

- tableView:numberOfRowsInSection:

– tableView:cellForRowAtIndexPath:
Trabalhando em Background
Opção 1
performSelectorInBackground:withObject:

performSelectonOnMainThread:withObject:
waitUntilDone
Exemplo
-(IBAction)carregaLista:(UIButton *) botao !
{

! [self performSelectorInBackground: @selector(buscaMotos) withObject: nil];!
}



Exemplo
-(IBAction)carregaLista:(UIButton *) botao !
{

! [self performSelectorInBackground: @selector(buscaMotos) withObject: nil];!
}



-(void)buscaMotos!
{	

	

 	

 //faz a comunicação com algum webservice	

	

 	

 [self performSelectorOnMainThread @selector(atualizaTabela:) withObject:
arrayDeDados waitUntilDone: NO];!
}
Exemplo
-(IBAction)carregaLista:(UIButton *) botao !
{

! [self performSelectorInBackground: @selector(buscaMotos) withObject: nil];!
}



-(void)buscaMotos!
{	

	

 	

 //faz a comunicação com algum webservice	

	

 	

 [self performSelectorOnMainThread @selector(atualizaTabela:) withObject: nil waitUntilDone:
NO];!
}!
-(void)atualizaTabela:(NSObject*) object!
{	

! ! [self.tableView reloadData];!
}
Opção 2
NSOperationQueue

NSInvocationOperation ou NSBlockOperation
Exemplo
-(IBAction)carregaLista:(UIButton *) botao {

NSOperationQueue * queue = [[NSOperationQueue alloc]init];

NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget: self
selector: @selector(downloadMotos) object:nil];

!
[queue addOperation:operation];

}

!
-(void)downloadPosts{

//faz a comunicação com algum webservice!

[self performSelectorOnMainThread @selector(atualizaTabela:) withObject: arrayDeDados
waitUntilDone: NO];

!
}

!
-(void)atualizaTabela:(NSObject*) object{

//...

[self.tableView reloadData];

}
Opção 3
Grand Central Dispatch (GCD)
Exemplo
NSArray *images = @[@"http://example.com/image1.png",

@"http://example.com/image2.png",

@"http://example.com/image3.png",

@"http://example.com/image4.png"];

!
dispatch_queue_t imageQueue = dispatch_queue_create("Image Queue",NULL);

!
for (NSString *urlString in images) {

dispatch_async(imageQueue, ^{



NSURL *url = [NSURL URLWithString:urlString];

NSData *imageData = [NSData dataWithContentsOfURL:url];

UIImage *image = [UIImage imageWithData:imageData];

!
NSUInteger imageIndex = [images indexOfObject:urlString];

UIImageView *imageVIew = (UIImageView *)[self.view viewWithTag:imageIndex];



if (!imageView) return;



dispatch_async(dispatch_get_main_queue(), ^{

// Update the UI

[imageVIew setImage:image];

});



}); 

}
Conexão com
webservices
Opção 1
NSURLRequest e
NSURLMutableRequest

NSURLConnection
Exemplo(GET)
NSString * url = @“http://projetows.heroku.com/motos.json”

!
NSURLRequest *request = [NSURLRequest requestWithURL: [NSURL
URLWithString: url] ];

!
[NSURLConnection sendAsynchronousRequest:request queue:
[NSOperationQueue mainQueue] 

completionHandler: ^(NSURLResponse *response, NSData *data, NSError
*connectionError) 

{

// manipula resposta

}

];
Opção 2
!
NSURLSession (iOS 7)
Exemplo (GET)
NSString * url = @“http://projetows.heroku.com/motos.json”

!
NSURLSession *session = [NSURLSession sharedSession];

[session dataTaskWithURL: [NSURL URLWithString:
url]completionHandler:^(NSData *data, NSURLResponse *response,
NSError *error)

{

//manipula resposta!

}

] resume];
Interpretando
resultados
JSON
projetows.heroku.com/motos.json
[
{
"marca":"Yamaha",
"modelo":"R1",
},
{
"marca":"Honda",
“modelo":"CBR 600 RR",
}
]
Opção da Apple
NSJSONSerialization
https://developer.apple.com/library/ios/documentation/ foundation/reference/
nsjsonserialization_class
Exemplo
NSString *url = @“http://projetows.heroku.com/motos.json";!
!
NSData *jsonData = [NSData dataWithContentsOfURL: [NSURL URLWithString:url]];!
!
NSError *error;!
NSArray *resultados = [NSJSONSerialization JSONObjectWithData: jsonData
options:NSJSONReadingMutableContainers error:&error];!
if(!error) {!
! for(NSDictionary * moto in resultados){!
! ! NSString *marca = [moto objectForKey:@"marca"];!
! ! NSString *modelo = [moto objectForKey:@"modelo"];!
! ! NSLog(@"Marca: %@, modelo: %@", marca, modelo);!
! }!
}!
Opções de terceiros
https://github.com/stig/json-framework/
JSON Framework
https://github.com/TouchCode/TouchJSON
TouchJSON
Agora basta juntar
tudo?
https://github.com/AFNetworking/
AFNetworking
Exemplo
!
NSString * url = @“projetows.heroku.com/motos.json”!
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];!
!
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {!
! !
! self.json = responseObject;!
! for(NSDictionary * moto in self.json){!
!
! NSString *marca = [moto objectForKey:@"marca"];!
! ! NSString *modelo = [moto objectForKey:@"modelo"];!
! ! NSLog(@"Marca: %@, modelo: %@", marca, modelo);!
! }!
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {!
NSLog(@"Error: %@", error);!
!
}];!
}!
Como usá-lo no projeto?
CocoaPods
http://cocoapods.org/
Gerenciador de
dependências
Instalação
gem install cocoapods
Instalação
gem install cocoa-pods
Podfile
Podfile
platform :ios , '7.1'!
!
pod 'AFNetworking', '> 2.0'
Instalação
gem install cocoa-pods
Podfile
pod install
Saída(Terminal)
Fabios-MacBook-Pro:MobileConf fabiopimentel$ pod install

Analyzing dependencies

Downloading dependencies

Installing AFNetworking (2.2.4)

Generating Pods project

Integrating client project

!
[!] From now on use `MobileConf.xcworkspace`.
Estrutura
do projeto
Live Coding
econd
Round
Mais bibliotecas …
Testes
Kiwi
https://github.com/kiwi-bdd/Kiwi
BDD
style
describe(@"Team", ^{

context(@"when newly created", ^{

it(@"should have a name", ^{

id team = [Team team];

[[team.name should] equal:@"Black Hawks"];

});

!
it(@"should have 11 players", ^{

id team = [Team team];

[[[team should] have:11] players];

});

});

});
Testes
KIF
https://github.com/kif-framework/KIF
Acceptance Tests
Kiwi
https://github.com/kiwi-bdd/Kiwi
BDD style
KIF Acceptance Tests
@implementation LoginTests

!
- (void)beforeEach

{

[tester navigateToLoginPage];

}

!
- (void)afterEach

{

[tester returnToLoggedOutHomeScreen];

}

!
- (void)testSuccessfulLogin

{

[tester enterText:@"user@example.com" intoViewWithAccessibilityLabel:@"Login User Name"];

[tester enterText:@"thisismypassword" intoViewWithAccessibilityLabel:@"Login Password"];

[tester tapViewWithAccessibilityLabel:@"Log In"];

!
// Verify that the login succeeded

[tester waitForTappableViewWithAccessibilityLabel:@"Welcome"];

}

!
@end
Ainda mais…
https://www.testflightapp.com/
AppCode (IDE)
E agora?
http://www.caelum.com.br/curso-ios-iphone-ipad/
https://developer.apple.com/programs/ios/
Obrigado!
@fabiopimentel

Mais conteúdo relacionado

Mais procurados

Javascript OOP
Javascript OOPJavascript OOP
Javascript OOPMiao Siyu
 
Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)James Titcumb
 
Crafting Quality PHP Applications (ConFoo YVR 2017)
Crafting Quality PHP Applications (ConFoo YVR 2017)Crafting Quality PHP Applications (ConFoo YVR 2017)
Crafting Quality PHP Applications (ConFoo YVR 2017)James Titcumb
 
Turn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesTurn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesjerryorr
 
Testing ASP.net Web Applications using Ruby
Testing ASP.net Web Applications using RubyTesting ASP.net Web Applications using Ruby
Testing ASP.net Web Applications using RubyBen Hall
 
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)Dip Your Toes in the Sea of Security (ConFoo YVR 2017)
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)James Titcumb
 
Design patterns in javascript
Design patterns in javascriptDesign patterns in javascript
Design patterns in javascriptAbimbola Idowu
 
The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)jeresig
 
Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?Simon Courtois
 
Keep It Simple Security (Symfony cafe 28-01-2016)
Keep It Simple Security (Symfony cafe 28-01-2016)Keep It Simple Security (Symfony cafe 28-01-2016)
Keep It Simple Security (Symfony cafe 28-01-2016)Oleg Zinchenko
 
Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)
Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)
Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)James Titcumb
 
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法Kenji Tanaka
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5arajivmordani
 
Alloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonAlloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonFokke Zandbergen
 
Crafting Quality PHP Applications (PHP Joburg Oct 2019)
Crafting Quality PHP Applications (PHP Joburg Oct 2019)Crafting Quality PHP Applications (PHP Joburg Oct 2019)
Crafting Quality PHP Applications (PHP Joburg Oct 2019)James Titcumb
 

Mais procurados (19)

Javascript OOP
Javascript OOPJavascript OOP
Javascript OOP
 
What's new in iOS9
What's new in iOS9What's new in iOS9
What's new in iOS9
 
Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)
 
Crafting Quality PHP Applications (ConFoo YVR 2017)
Crafting Quality PHP Applications (ConFoo YVR 2017)Crafting Quality PHP Applications (ConFoo YVR 2017)
Crafting Quality PHP Applications (ConFoo YVR 2017)
 
Turn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesTurn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modules
 
Testing ASP.net Web Applications using Ruby
Testing ASP.net Web Applications using RubyTesting ASP.net Web Applications using Ruby
Testing ASP.net Web Applications using Ruby
 
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)Dip Your Toes in the Sea of Security (ConFoo YVR 2017)
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)
 
Design patterns in javascript
Design patterns in javascriptDesign patterns in javascript
Design patterns in javascript
 
The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)
 
Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?Pourquoi Ruby on Rails ça déchire ?
Pourquoi Ruby on Rails ça déchire ?
 
Keep It Simple Security (Symfony cafe 28-01-2016)
Keep It Simple Security (Symfony cafe 28-01-2016)Keep It Simple Security (Symfony cafe 28-01-2016)
Keep It Simple Security (Symfony cafe 28-01-2016)
 
The Beauty of Java Script
The Beauty of Java ScriptThe Beauty of Java Script
The Beauty of Java Script
 
Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)
Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)
Kicking off with Zend Expressive and Doctrine ORM (ConFoo YVR 2017)
 
Oro meetup #4
Oro meetup #4Oro meetup #4
Oro meetup #4
 
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5a
 
Alloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonAlloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLon
 
JavaScript Patterns
JavaScript PatternsJavaScript Patterns
JavaScript Patterns
 
Crafting Quality PHP Applications (PHP Joburg Oct 2019)
Crafting Quality PHP Applications (PHP Joburg Oct 2019)Crafting Quality PHP Applications (PHP Joburg Oct 2019)
Crafting Quality PHP Applications (PHP Joburg Oct 2019)
 

Semelhante a Conceitos e prática no desenvolvimento iOS - Mobile Conf 2014

Formacion en movilidad: Conceptos de desarrollo en iOS (III)
Formacion en movilidad: Conceptos de desarrollo en iOS (III) Formacion en movilidad: Conceptos de desarrollo en iOS (III)
Formacion en movilidad: Conceptos de desarrollo en iOS (III) Mobivery
 
Apple Templates Considered Harmful
Apple Templates Considered HarmfulApple Templates Considered Harmful
Apple Templates Considered HarmfulBrian Gesiak
 
Mobile App Development: Primi passi con NativeScript e Angular 2
Mobile App Development: Primi passi con NativeScript e Angular 2Mobile App Development: Primi passi con NativeScript e Angular 2
Mobile App Development: Primi passi con NativeScript e Angular 2Filippo Matteo Riggio
 
303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Code303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Codejonmarimba
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder BehindJohn Wilker
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Sarp Erdag
 
[22]Efficient and Testable MVVM pattern
[22]Efficient and Testable MVVM pattern[22]Efficient and Testable MVVM pattern
[22]Efficient and Testable MVVM patternNAVER Engineering
 
! Modernizr v2.0.6 httpwww.modernizr.com Copyri.docx
!  Modernizr v2.0.6  httpwww.modernizr.com   Copyri.docx!  Modernizr v2.0.6  httpwww.modernizr.com   Copyri.docx
! Modernizr v2.0.6 httpwww.modernizr.com Copyri.docxMARRY7
 
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docxcase3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docxtidwellveronique
 
PhoneGap_Javakuche0612
PhoneGap_Javakuche0612PhoneGap_Javakuche0612
PhoneGap_Javakuche0612Yuhei Miyazato
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentanistar sung
 
Heroku pop-behind-the-sense
Heroku pop-behind-the-senseHeroku pop-behind-the-sense
Heroku pop-behind-the-senseBen Lin
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applicationslmrei
 
MBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&CoMBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&Coe-Legion
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCpootsbook
 
Integrating Angular js & three.js
Integrating Angular js & three.jsIntegrating Angular js & three.js
Integrating Angular js & three.jsJosh Staples
 

Semelhante a Conceitos e prática no desenvolvimento iOS - Mobile Conf 2014 (20)

Formacion en movilidad: Conceptos de desarrollo en iOS (III)
Formacion en movilidad: Conceptos de desarrollo en iOS (III) Formacion en movilidad: Conceptos de desarrollo en iOS (III)
Formacion en movilidad: Conceptos de desarrollo en iOS (III)
 
Apple Templates Considered Harmful
Apple Templates Considered HarmfulApple Templates Considered Harmful
Apple Templates Considered Harmful
 
Mobile App Development: Primi passi con NativeScript e Angular 2
Mobile App Development: Primi passi con NativeScript e Angular 2Mobile App Development: Primi passi con NativeScript e Angular 2
Mobile App Development: Primi passi con NativeScript e Angular 2
 
UIWebView Tips
UIWebView TipsUIWebView Tips
UIWebView Tips
 
iOS 7 SDK特訓班
iOS 7 SDK特訓班iOS 7 SDK特訓班
iOS 7 SDK特訓班
 
303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Code303 TANSTAAFL: Using Open Source iPhone UI Code
303 TANSTAAFL: Using Open Source iPhone UI Code
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder Behind
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
 
iOS
iOSiOS
iOS
 
[22]Efficient and Testable MVVM pattern
[22]Efficient and Testable MVVM pattern[22]Efficient and Testable MVVM pattern
[22]Efficient and Testable MVVM pattern
 
I os 04
I os 04I os 04
I os 04
 
! Modernizr v2.0.6 httpwww.modernizr.com Copyri.docx
!  Modernizr v2.0.6  httpwww.modernizr.com   Copyri.docx!  Modernizr v2.0.6  httpwww.modernizr.com   Copyri.docx
! Modernizr v2.0.6 httpwww.modernizr.com Copyri.docx
 
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docxcase3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
 
PhoneGap_Javakuche0612
PhoneGap_Javakuche0612PhoneGap_Javakuche0612
PhoneGap_Javakuche0612
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
 
Heroku pop-behind-the-sense
Heroku pop-behind-the-senseHeroku pop-behind-the-sense
Heroku pop-behind-the-sense
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applications
 
MBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&CoMBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&Co
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
 
Integrating Angular js & three.js
Integrating Angular js & three.jsIntegrating Angular js & three.js
Integrating Angular js & three.js
 

Último

lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lodhisaajjda
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalFabian de Rijk
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...amilabibi1
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar TrainingKylaCullinane
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxraffaeleoman
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIINhPhngng3
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...David Celestin
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfSenaatti-kiinteistöt
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatmentnswingard
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaKayode Fayemi
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Baileyhlharris
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfMahamudul Hasan
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfSkillCertProExams
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoKayode Fayemi
 

Último (15)

lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 

Conceitos e prática no desenvolvimento iOS - Mobile Conf 2014