SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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)
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...Sebastiano Panichella
 
General Elections Final Press Noteas per M
General Elections Final Press Noteas per MGeneral Elections Final Press Noteas per M
General Elections Final Press Noteas per MVidyaAdsule1
 
A Guide to Choosing the Ideal Air Cooler
A Guide to Choosing the Ideal Air CoolerA Guide to Choosing the Ideal Air Cooler
A Guide to Choosing the Ideal Air Coolerenquirieskenstar
 
GESCO SE Press and Analyst Conference on Financial Results 2024
GESCO SE Press and Analyst Conference on Financial Results 2024GESCO SE Press and Analyst Conference on Financial Results 2024
GESCO SE Press and Analyst Conference on Financial Results 2024GESCO SE
 
Application of GIS in Landslide Disaster Response.pptx
Application of GIS in Landslide Disaster Response.pptxApplication of GIS in Landslide Disaster Response.pptx
Application of GIS in Landslide Disaster Response.pptxRoquia Salam
 
cse-csp batch4 review-1.1.pptx cyber security
cse-csp batch4 review-1.1.pptx cyber securitycse-csp batch4 review-1.1.pptx cyber security
cse-csp batch4 review-1.1.pptx cyber securitysandeepnani2260
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRRsarwankumar4524
 
Don't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunity
Don't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunityDon't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunity
Don't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunityApp Ethena
 
proposal kumeneger edited.docx A kumeeger
proposal kumeneger edited.docx A kumeegerproposal kumeneger edited.docx A kumeeger
proposal kumeneger edited.docx A kumeegerkumenegertelayegrama
 
05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptx
05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptx05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptx
05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptxerickamwana1
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEMCharmi13
 
Internship Presentation | PPT | CSE | SE
Internship Presentation | PPT | CSE | SEInternship Presentation | PPT | CSE | SE
Internship Presentation | PPT | CSE | SESaleh Ibne Omar
 
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...漢銘 謝
 
Testing with Fewer Resources: Toward Adaptive Approaches for Cost-effective ...
Testing with Fewer Resources:  Toward Adaptive Approaches for Cost-effective ...Testing with Fewer Resources:  Toward Adaptive Approaches for Cost-effective ...
Testing with Fewer Resources: Toward Adaptive Approaches for Cost-effective ...Sebastiano Panichella
 
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRachelAnnTenibroAmaz
 
Chizaram's Women Tech Makers Deck. .pptx
Chizaram's Women Tech Makers Deck.  .pptxChizaram's Women Tech Makers Deck.  .pptx
Chizaram's Women Tech Makers Deck. .pptxogubuikealex
 
Engaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptxEngaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptxAsifArshad8
 

Kürzlich hochgeladen (17)

Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
 
General Elections Final Press Noteas per M
General Elections Final Press Noteas per MGeneral Elections Final Press Noteas per M
General Elections Final Press Noteas per M
 
A Guide to Choosing the Ideal Air Cooler
A Guide to Choosing the Ideal Air CoolerA Guide to Choosing the Ideal Air Cooler
A Guide to Choosing the Ideal Air Cooler
 
GESCO SE Press and Analyst Conference on Financial Results 2024
GESCO SE Press and Analyst Conference on Financial Results 2024GESCO SE Press and Analyst Conference on Financial Results 2024
GESCO SE Press and Analyst Conference on Financial Results 2024
 
Application of GIS in Landslide Disaster Response.pptx
Application of GIS in Landslide Disaster Response.pptxApplication of GIS in Landslide Disaster Response.pptx
Application of GIS in Landslide Disaster Response.pptx
 
cse-csp batch4 review-1.1.pptx cyber security
cse-csp batch4 review-1.1.pptx cyber securitycse-csp batch4 review-1.1.pptx cyber security
cse-csp batch4 review-1.1.pptx cyber security
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
 
Don't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunity
Don't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunityDon't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunity
Don't Miss Out: Strategies for Making the Most of the Ethena DigitalOpportunity
 
proposal kumeneger edited.docx A kumeeger
proposal kumeneger edited.docx A kumeegerproposal kumeneger edited.docx A kumeeger
proposal kumeneger edited.docx A kumeeger
 
05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptx
05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptx05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptx
05.02 MMC - Assignment 4 - Image Attribution Lovepreet.pptx
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEM
 
Internship Presentation | PPT | CSE | SE
Internship Presentation | PPT | CSE | SEInternship Presentation | PPT | CSE | SE
Internship Presentation | PPT | CSE | SE
 
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
 
Testing with Fewer Resources: Toward Adaptive Approaches for Cost-effective ...
Testing with Fewer Resources:  Toward Adaptive Approaches for Cost-effective ...Testing with Fewer Resources:  Toward Adaptive Approaches for Cost-effective ...
Testing with Fewer Resources: Toward Adaptive Approaches for Cost-effective ...
 
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
 
Chizaram's Women Tech Makers Deck. .pptx
Chizaram's Women Tech Makers Deck.  .pptxChizaram's Women Tech Makers Deck.  .pptx
Chizaram's Women Tech Makers Deck. .pptx
 
Engaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptxEngaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptx
 

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