diff --git a/iTunesSearch.xcodeproj/project.pbxproj b/iTunesSearch.xcodeproj/project.pbxproj index 79e06d7..4a99fb5 100644 --- a/iTunesSearch.xcodeproj/project.pbxproj +++ b/iTunesSearch.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 92C21CE11AAE76930052ABE6 /* TableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CDF1AAE76930052ABE6 /* TableViewCell.m */; }; 92C21CE21AAE76930052ABE6 /* TableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 92C21CE01AAE76930052ABE6 /* TableViewCell.xib */; }; 92C21CE81AAE858E0052ABE6 /* Filme.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CE71AAE858E0052ABE6 /* Filme.m */; }; + DD0870091AB0F1B0002F0297 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DD08700B1AB0F1B0002F0297 /* Localizable.strings */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -49,6 +50,9 @@ 92C21CE01AAE76930052ABE6 /* TableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TableViewCell.xib; sourceTree = ""; }; 92C21CE61AAE858E0052ABE6 /* Filme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Filme.h; path = Entidades/Filme.h; sourceTree = ""; }; 92C21CE71AAE858E0052ABE6 /* Filme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Filme.m; path = Entidades/Filme.m; sourceTree = ""; }; + DD08700A1AB0F1B0002F0297 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + DD08700C1AB0F1C2002F0297 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/Localizable.strings; sourceTree = ""; }; + DD08700E1AB1AE46002F0297 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -101,6 +105,7 @@ 92C21CDA1AAE75B30052ABE6 /* iTunesManager.m */, 92C21CC01AAE757A0052ABE6 /* Images.xcassets */, 92C21CB31AAE757A0052ABE6 /* Supporting Files */, + DD08700B1AB0F1B0002F0297 /* Localizable.strings */, ); path = iTunesSearch; sourceTree = ""; @@ -213,6 +218,8 @@ knownRegions = ( en, Base, + pt, + fr, ); mainGroup = 92C21CA71AAE757A0052ABE6; productRefGroup = 92C21CB11AAE757A0052ABE6 /* Products */; @@ -233,6 +240,7 @@ 92C21CC11AAE757A0052ABE6 /* Images.xcassets in Resources */, 92C21CE21AAE76930052ABE6 /* TableViewCell.xib in Resources */, 92C21CDD1AAE75DC0052ABE6 /* TableView.xib in Resources */, + DD0870091AB0F1B0002F0297 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -277,6 +285,19 @@ }; /* End PBXTargetDependency section */ +/* Begin PBXVariantGroup section */ + DD08700B1AB0F1B0002F0297 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + DD08700A1AB0F1B0002F0297 /* en */, + DD08700C1AB0F1C2002F0297 /* pt */, + DD08700E1AB1AE46002F0297 /* fr */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 92C21CD11AAE757A0052ABE6 /* Debug */ = { isa = XCBuildConfiguration; diff --git a/iTunesSearch/Entidades/Filme.h b/iTunesSearch/Entidades/Filme.h index eb126dc..3c015be 100644 --- a/iTunesSearch/Entidades/Filme.h +++ b/iTunesSearch/Entidades/Filme.h @@ -16,5 +16,6 @@ @property (nonatomic, strong) NSString *duracao; @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; +@property (nonatomic,strong) NSString *midia; @end diff --git a/iTunesSearch/TableView.xib b/iTunesSearch/TableView.xib index 55f128c..853a65c 100644 --- a/iTunesSearch/TableView.xib +++ b/iTunesSearch/TableView.xib @@ -1,11 +1,12 @@ - + + @@ -15,11 +16,16 @@ + + + + + - + diff --git a/iTunesSearch/TableViewCell.h b/iTunesSearch/TableViewCell.h index b630349..858ccc1 100644 --- a/iTunesSearch/TableViewCell.h +++ b/iTunesSearch/TableViewCell.h @@ -12,6 +12,8 @@ @property (weak, nonatomic) IBOutlet UILabel *nome; @property (weak, nonatomic) IBOutlet UILabel *tipo; +@property (weak, nonatomic) IBOutlet UILabel *genero; +@property (weak, nonatomic) IBOutlet UILabel *duracao; @end diff --git a/iTunesSearch/TableViewCell.xib b/iTunesSearch/TableViewCell.xib index bf8bd3f..d5c0a4a 100644 --- a/iTunesSearch/TableViewCell.xib +++ b/iTunesSearch/TableViewCell.xib @@ -1,5 +1,5 @@ - + @@ -7,40 +7,63 @@ - - + + - + + + + + + + + + + + - + diff --git a/iTunesSearch/TableViewController.h b/iTunesSearch/TableViewController.h index 0cbb5c4..e3b6bca 100644 --- a/iTunesSearch/TableViewController.h +++ b/iTunesSearch/TableViewController.h @@ -8,10 +8,12 @@ #import -@interface TableViewController : UIViewController - +@interface TableViewController : UIViewController @property (strong, nonatomic) IBOutlet UITableView *tableview; +@property (weak, nonatomic) IBOutlet UISearchBar *search; + + @end diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index f689980..a97d5c8 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -12,7 +12,7 @@ #import "Entidades/Filme.h" @interface TableViewController () { - NSArray *midias; + NSMutableArray *midias; } @end @@ -24,14 +24,17 @@ @implementation TableViewController - (void)viewDidLoad { [super viewDidLoad]; - UINib *nib = [UINib nibWithNibName:@"TableViewCell" bundle:nil]; - [self.tableview registerNib:nib forCellReuseIdentifier:@"celulaPadrao"]; + UINib *nib = [UINib nibWithNibName:@"TableViewCell" bundle:nil]; + [self.tableview registerNib:nib forCellReuseIdentifier:@"celulaPadrao"]; + + [iTunesManager sharedInstance]; + + [self.search setDelegate:self]; + self.search.placeholder = NSLocalizedString(@"pesquisar", nil); - iTunesManager *itunes = [iTunesManager sharedInstance]; - midias = [itunes buscarMidias:@"Apple"]; #warning Necessario para que a table view tenha um espaco em relacao ao topo, pois caso contrario o texto ficara atras da barra superior - self.tableview.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableview.bounds.size.width, 15.f)]; + //self.tableview.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableview.bounds.size.width, 15.f)]; } - (void)didReceiveMemoryWarning { @@ -52,17 +55,42 @@ -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger) -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TableViewCell *celula = [self.tableview dequeueReusableCellWithIdentifier:@"celulaPadrao"]; - Filme *filme = [midias objectAtIndex:indexPath.row]; + Filme *asMidias = [midias objectAtIndex:indexPath.row]; + + [celula.nome setText:asMidias.nome]; + [celula.tipo setText:asMidias.midia]; + [celula.genero setText:asMidias.genero]; + [celula.duracao setText:[NSString stringWithFormat:@"%@",asMidias.duracao]]; + + - [celula.nome setText:filme.nome]; - [celula.tipo setText:@"Filme"]; return celula; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 70; + return 130; } + +- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar +{ + + iTunesManager *itunes = [iTunesManager sharedInstance]; + midias = [[NSMutableArray alloc] init]; +// NSArray *movie = [itunes buscarMidias:(_search.text) andMedia:@"movie"]; +// NSArray *ebook = [itunes buscarMidias:(_search.text) andMedia:@"ebook"]; +// NSArray *podcast = [itunes buscarMidias:(_search.text) andMedia: @"podcast" ]; +// NSArray *music = [itunes buscarMidias:(_search.text) andMedia:@"music"]; + [midias addObjectsFromArray:[itunes buscarMidias:(_search.text) andMedia:@"movie"]]; + [midias addObjectsFromArray:[itunes buscarMidias:(_search.text) andMedia:@"ebook"]]; + [midias addObjectsFromArray:[itunes buscarMidias:(_search.text) andMedia: @"podcast" ]]; + [midias addObjectsFromArray:[itunes buscarMidias:(_search.text) andMedia:@"music"]]; + + + [self.search resignFirstResponder]; + [self.tableview reloadData]; + +} @end diff --git a/iTunesSearch/en.lproj/Localizable.strings b/iTunesSearch/en.lproj/Localizable.strings new file mode 100644 index 0000000..4889d69 --- /dev/null +++ b/iTunesSearch/en.lproj/Localizable.strings @@ -0,0 +1,10 @@ +/* + Localzable.strings + iTunesSearch + + Created by Matheus Amancio Seixeiro on 3/11/15. + Copyright (c) 2015 joaquim. All rights reserved. +*/ + + +"pesquisar" ="search"; \ No newline at end of file diff --git a/iTunesSearch/fr.lproj/Localizable.strings b/iTunesSearch/fr.lproj/Localizable.strings new file mode 100644 index 0000000..6527506 --- /dev/null +++ b/iTunesSearch/fr.lproj/Localizable.strings @@ -0,0 +1,10 @@ +/* + Localzable.strings + iTunesSearch + + Created by Matheus Amancio Seixeiro on 3/11/15. + Copyright (c) 2015 joaquim. All rights reserved. +*/ + + +"pesquisar" ="Testetstetstes xablau"; \ No newline at end of file diff --git a/iTunesSearch/iTunesManager.h b/iTunesSearch/iTunesManager.h index c0e366b..405caf5 100644 --- a/iTunesSearch/iTunesManager.h +++ b/iTunesSearch/iTunesManager.h @@ -7,6 +7,7 @@ // #import +#import @interface iTunesManager : NSObject @@ -16,6 +17,6 @@ */ + (iTunesManager*)sharedInstance; -- (NSArray *)buscarMidias:(NSString *)termo; +- (NSArray *)buscarMidias:(NSString *)termo andMedia:(NSString*)media; @end diff --git a/iTunesSearch/iTunesManager.m b/iTunesSearch/iTunesManager.m index e2babda..17e2c03 100644 --- a/iTunesSearch/iTunesManager.m +++ b/iTunesSearch/iTunesManager.m @@ -24,46 +24,54 @@ + (id)sharedInstance isFirstAccess = NO; SINGLETON = [[super allocWithZone:NULL] init]; }); - return SINGLETON; } -- (NSArray *)buscarMidias:(NSString *)termo { +- (NSArray *)buscarMidias:(NSString *)termo andMedia: (NSString *)media { + if (!termo) { termo = @""; } - - NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/search?term=%@&media=movie", termo]; - NSData *jsonData = [NSData dataWithContentsOfURL: [NSURL URLWithString:url]]; - - NSError *error; - NSDictionary *resultado = [NSJSONSerialization JSONObjectWithData:jsonData - options:NSJSONReadingMutableContainers - error:&error]; - if (error) { - NSLog(@"Não foi possível fazer a busca. ERRO: %@", error); - return nil; + @try { + NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/search?term=%@&media=%@", termo, media]; + NSData *jsonData = [NSData dataWithContentsOfURL: [NSURL URLWithString:url]]; + NSError *error; + NSDictionary *resultado = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; + if (error) { + NSLog(@"Não foi possível fazer a busca. ERRO: %@", error); + return nil; + } + + NSArray *resultados = [resultado objectForKey:@"results"]; + NSMutableArray *filmes = [[NSMutableArray alloc] init]; + + + for (NSDictionary *item in resultados) { + + Filme *filme = [[Filme alloc] init]; + [filme setMidia:media]; + [filme setNome:[item objectForKey:@"trackName"]]; + [filme setTrackId:[item objectForKey:@"trackId"]]; + [filme setArtista:[item objectForKey:@"artistName"]]; + [filme setDuracao:[item objectForKey:@"trackTimeMillis"]]; + [filme setGenero:[item objectForKey:@"primaryGenreName"]]; + [filme setPais:[item objectForKey:@"country"]]; + [filmes addObject:filme]; + } + + return filmes; } - NSArray *resultados = [resultado objectForKey:@"results"]; - NSMutableArray *filmes = [[NSMutableArray alloc] init]; - for (NSDictionary *item in resultados) { - Filme *filme = [[Filme alloc] init]; - [filme setNome:[item objectForKey:@"trackName"]]; - [filme setTrackId:[item objectForKey:@"trackId"]]; - [filme setArtista:[item objectForKey:@"artistName"]]; - [filme setDuracao:[item objectForKey:@"trackTimeMillis"]]; - [filme setGenero:[item objectForKey:@"primaryGenreName"]]; - [filme setPais:[item objectForKey:@"country"]]; - [filmes addObject:filme]; + @catch (NSException *exception) { + UIAlertView *alerta = [[UIAlertView alloc]initWithTitle:@"caraca deu ruim" message:@"mano faz alguma coisa" delegate:self cancelButtonTitle:@"CANCELAA "otherButtonTitles:nil]; + [alerta show]; + return nil; + } - - return filmes; -} - +} #pragma mark - Life Cycle diff --git a/iTunesSearch/pt.lproj/Localizable.strings b/iTunesSearch/pt.lproj/Localizable.strings new file mode 100644 index 0000000..e1ccf9d --- /dev/null +++ b/iTunesSearch/pt.lproj/Localizable.strings @@ -0,0 +1,10 @@ +/* + Localzable.strings + iTunesSearch + + Created by Matheus Amancio Seixeiro on 3/11/15. + Copyright (c) 2015 joaquim. All rights reserved. +*/ + + +"pesquisar"= "pesquisar"; \ No newline at end of file