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

The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5a
rajivmordani
 

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

Apple Templates Considered Harmful
Apple Templates Considered HarmfulApple Templates Considered Harmful
Apple Templates Considered Harmful
Brian Gesiak
 
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
 
! 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
MARRY7
 
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docxcase3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
case3h231diamond.gifcase3h231energy.jpgcase3h231moder.docx
tidwellveronique
 
PhoneGap_Javakuche0612
PhoneGap_Javakuche0612PhoneGap_Javakuche0612
PhoneGap_Javakuche0612
Yuhei Miyazato
 

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

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
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Hung Le
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
ZurliaSoop
 
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
Kayode Fayemi
 

Último (20)

lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
BEAUTIFUL PLACES TO VISIT IN LESOTHO.pptx
BEAUTIFUL PLACES TO VISIT IN LESOTHO.pptxBEAUTIFUL PLACES TO VISIT IN LESOTHO.pptx
BEAUTIFUL PLACES TO VISIT IN LESOTHO.pptx
 
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
 
Lions New Portal from Narsimha Raju Dichpally 320D.pptx
Lions New Portal from Narsimha Raju Dichpally 320D.pptxLions New Portal from Narsimha Raju Dichpally 320D.pptx
Lions New Portal from Narsimha Raju Dichpally 320D.pptx
 
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait Cityin kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
 
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
 
Zone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptxZone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptx
 
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...
 
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
 
Introduction to Artificial intelligence.
Introduction to Artificial intelligence.Introduction to Artificial intelligence.
Introduction to Artificial intelligence.
 
History of Morena Moshoeshoe birth death
History of Morena Moshoeshoe birth deathHistory of Morena Moshoeshoe birth death
History of Morena Moshoeshoe birth death
 
BIG DEVELOPMENTS IN LESOTHO(DAMS & MINES
BIG DEVELOPMENTS IN LESOTHO(DAMS & MINESBIG DEVELOPMENTS IN LESOTHO(DAMS & MINES
BIG DEVELOPMENTS IN LESOTHO(DAMS & MINES
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
 
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
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
 
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
 
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
 
Ready Set Go Children Sermon about Mark 16:15-20
Ready Set Go Children Sermon about Mark 16:15-20Ready Set Go Children Sermon about Mark 16:15-20
Ready Set Go Children Sermon about Mark 16:15-20
 
LITTLE ABOUT LESOTHO FROM THE TIME MOSHOESHOE THE FIRST WAS BORN
LITTLE ABOUT LESOTHO FROM THE TIME MOSHOESHOE THE FIRST WAS BORNLITTLE ABOUT LESOTHO FROM THE TIME MOSHOESHOE THE FIRST WAS BORN
LITTLE ABOUT LESOTHO FROM THE TIME MOSHOESHOE THE FIRST WAS BORN
 
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