Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions Localizable.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
Localizable.strings
iTunesSearch

Created by Rafael Hieda on 11/03/15.
Copyright (c) 2015 joaquim. All rights reserved.
*/

/* English */
/* Send */
"sendKey" = "Search";


/* Português */
/* Send */
"sendKey" = "Buscar";

/* French */
/* Send */
"sendKey" = "Recherche";

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
###2) Adicione no cabeçalho da tabela um campo de texto e um botão para que o usuário escolha o termo a ser procurado.
###3) Use os recursos de internacionalização para permitir que o botão exiba a palavra Buscar, Search e Recherche para os idiomas Português, Inglês e Francês

##Desafio Prata
##Desafio Pratakljdfkldmnldknvddklzmnkz;

###1) Busque outros tipos de mídias (música, podcast, ebook);
###2) Mostre o resultado separado em sessões dentro da UITableView, as quais são identificadas pelo tipo da mídia.
Expand Down
41 changes: 37 additions & 4 deletions iTunesSearch.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@
92C21CC11AAE757A0052ABE6 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 92C21CC01AAE757A0052ABE6 /* Images.xcassets */; };
92C21CD01AAE757A0052ABE6 /* iTunesSearchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CCF1AAE757A0052ABE6 /* iTunesSearchTests.m */; };
92C21CDB1AAE75B30052ABE6 /* iTunesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CDA1AAE75B30052ABE6 /* iTunesManager.m */; };
92C21CDD1AAE75DC0052ABE6 /* TableView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 92C21CDC1AAE75DC0052ABE6 /* TableView.xib */; };
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 */; };
E359CCA71AB37939002488AE /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E359CCA51AB37939002488AE /* DetailViewController.m */; };
E359CCA81AB37939002488AE /* DetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E359CCA61AB37939002488AE /* DetailViewController.xib */; };
E3CD94341AB0A7F60054848C /* Data.m in Sources */ = {isa = PBXBuildFile; fileRef = E3CD94331AB0A7F60054848C /* Data.m */; };
E3CD94371AB0E1BC0054848C /* TableView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E3CD94391AB0E1BC0054848C /* TableView.xib */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All @@ -43,12 +46,20 @@
92C21CCF1AAE757A0052ABE6 /* iTunesSearchTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTunesSearchTests.m; sourceTree = "<group>"; };
92C21CD91AAE75B30052ABE6 /* iTunesManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iTunesManager.h; sourceTree = "<group>"; };
92C21CDA1AAE75B30052ABE6 /* iTunesManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTunesManager.m; sourceTree = "<group>"; };
92C21CDC1AAE75DC0052ABE6 /* TableView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TableView.xib; sourceTree = "<group>"; };
92C21CDE1AAE76930052ABE6 /* TableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewCell.h; sourceTree = "<group>"; };
92C21CDF1AAE76930052ABE6 /* TableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewCell.m; sourceTree = "<group>"; };
92C21CE01AAE76930052ABE6 /* TableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TableViewCell.xib; sourceTree = "<group>"; };
92C21CE61AAE858E0052ABE6 /* Filme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Filme.h; path = Entidades/Filme.h; sourceTree = "<group>"; };
92C21CE71AAE858E0052ABE6 /* Filme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Filme.m; path = Entidades/Filme.m; sourceTree = "<group>"; };
E359CCA41AB37939002488AE /* DetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailViewController.h; sourceTree = "<group>"; };
E359CCA51AB37939002488AE /* DetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailViewController.m; sourceTree = "<group>"; };
E359CCA61AB37939002488AE /* DetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DetailViewController.xib; sourceTree = "<group>"; };
E3CD94321AB0A7F60054848C /* Data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Data.h; sourceTree = "<group>"; };
E3CD94331AB0A7F60054848C /* Data.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Data.m; sourceTree = "<group>"; };
E3CD94381AB0E1BC0054848C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TableView.xib; sourceTree = "<group>"; };
E3CD943A1AB0E1C20054848C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TableView.xib; sourceTree = "<group>"; };
E3CD943B1AB0E1D60054848C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/TableView.strings; sourceTree = "<group>"; };
E3CD943C1AB0E1DE0054848C /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/TableView.strings; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -96,9 +107,12 @@
92C21CB81AAE757A0052ABE6 /* AppDelegate.m */,
92C21CBA1AAE757A0052ABE6 /* TableViewController.h */,
92C21CBB1AAE757A0052ABE6 /* TableViewController.m */,
92C21CDC1AAE75DC0052ABE6 /* TableView.xib */,
E3CD94391AB0E1BC0054848C /* TableView.xib */,
92C21CD91AAE75B30052ABE6 /* iTunesManager.h */,
92C21CDA1AAE75B30052ABE6 /* iTunesManager.m */,
E359CCA41AB37939002488AE /* DetailViewController.h */,
E359CCA51AB37939002488AE /* DetailViewController.m */,
E359CCA61AB37939002488AE /* DetailViewController.xib */,
92C21CC01AAE757A0052ABE6 /* Images.xcassets */,
92C21CB31AAE757A0052ABE6 /* Supporting Files */,
);
Expand Down Expand Up @@ -146,6 +160,8 @@
children = (
92C21CE61AAE858E0052ABE6 /* Filme.h */,
92C21CE71AAE858E0052ABE6 /* Filme.m */,
E3CD94321AB0A7F60054848C /* Data.h */,
E3CD94331AB0A7F60054848C /* Data.m */,
);
name = Entidades;
sourceTree = "<group>";
Expand Down Expand Up @@ -232,7 +248,8 @@
files = (
92C21CC11AAE757A0052ABE6 /* Images.xcassets in Resources */,
92C21CE21AAE76930052ABE6 /* TableViewCell.xib in Resources */,
92C21CDD1AAE75DC0052ABE6 /* TableView.xib in Resources */,
E3CD94371AB0E1BC0054848C /* TableView.xib in Resources */,
E359CCA81AB37939002488AE /* DetailViewController.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -253,7 +270,9 @@
92C21CBC1AAE757A0052ABE6 /* TableViewController.m in Sources */,
92C21CDB1AAE75B30052ABE6 /* iTunesManager.m in Sources */,
92C21CB91AAE757A0052ABE6 /* AppDelegate.m in Sources */,
E359CCA71AB37939002488AE /* DetailViewController.m in Sources */,
92C21CE81AAE858E0052ABE6 /* Filme.m in Sources */,
E3CD94341AB0A7F60054848C /* Data.m in Sources */,
92C21CE11AAE76930052ABE6 /* TableViewCell.m in Sources */,
92C21CB61AAE757A0052ABE6 /* main.m in Sources */,
);
Expand All @@ -277,6 +296,20 @@
};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
E3CD94391AB0E1BC0054848C /* TableView.xib */ = {
isa = PBXVariantGroup;
children = (
E3CD94381AB0E1BC0054848C /* en */,
E3CD943A1AB0E1C20054848C /* Base */,
E3CD943B1AB0E1D60054848C /* fr */,
E3CD943C1AB0E1DE0054848C /* pt */,
);
name = TableView.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
92C21CD11AAE757A0052ABE6 /* Debug */ = {
isa = XCBuildConfiguration;
Expand Down
4 changes: 3 additions & 1 deletion iTunesSearch/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
#warning Adicionado codigo para iniciar com a interface do TableView
// TableViewController *tvc = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil];
TableViewController *tvc = [[TableViewController alloc] init];
[self.window setRootViewController:tvc];
[tvc setTitle:@"iTunes Search"];
UINavigationController *nvc = [[UINavigationController alloc]initWithRootViewController:tvc];
[self.window setRootViewController:nvc];
[self.window makeKeyAndVisible];
return YES;
}
Expand Down
117 changes: 117 additions & 0 deletions iTunesSearch/Base.lproj/TableView.xib
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6751" systemVersion="14C1510" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6736"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TableViewController">
<connections>
<outlet property="segControl" destination="Kj1-gZ-MYa" id="bbY-vl-cHB"/>
<outlet property="tableview" destination="Kbg-Yq-5W3" id="2th-UP-OP0"/>
<outlet property="textField" destination="YiY-fE-jmA" id="Bwg-IQ-yTY"/>
<outlet property="view" destination="Iut-wB-jb7" id="upb-6Z-WZv"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="Iut-wB-jb7">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" ambiguous="YES" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="Kbg-Yq-5W3">
<rect key="frame" x="55" y="103" width="490" height="497"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<connections>
<outlet property="dataSource" destination="-1" id="CMk-ng-Nod"/>
<outlet property="delegate" destination="-1" id="shb-eA-EId"/>
</connections>
</tableView>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="YiY-fE-jmA">
<rect key="frame" x="52" y="19" width="495" height="30"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
<connections>
<outlet property="delegate" destination="-1" id="f4U-iE-Dkv"/>
</connections>
</textField>
<button opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qZq-0V-4yg">
<rect key="frame" x="276" y="65" width="43" height="30"/>
<state key="normal" title="Enviar">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="searchButton:" destination="-1" eventType="touchUpInside" id="0s6-Sy-yS5"/>
</connections>
</button>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="Kj1-gZ-MYa">
<rect key="frame" x="-61" y="-14" width="123" height="29"/>
<segments>
<segment title="All"/>
<segment title="Music"/>
<segment title="Movie"/>
<segment title="E-Book"/>
</segments>
<connections>
<action selector="segControlClicked:" destination="-1" eventType="valueChanged" id="aus-zg-Oki"/>
</connections>
</segmentedControl>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="Kbg-Yq-5W3" secondAttribute="bottom" constant="59" id="1UL-L0-Gio"/>
<constraint firstItem="qZq-0V-4yg" firstAttribute="top" secondItem="YiY-fE-jmA" secondAttribute="bottom" constant="29" id="G9F-Py-aOk"/>
<constraint firstItem="Kbg-Yq-5W3" firstAttribute="leading" secondItem="Iut-wB-jb7" secondAttribute="leading" constant="23" id="JAN-12-SuK"/>
<constraint firstAttribute="trailing" secondItem="qZq-0V-4yg" secondAttribute="trailing" constant="129" id="JIe-Kv-2VN"/>
<constraint firstAttribute="trailing" secondItem="Kbg-Yq-5W3" secondAttribute="trailing" constant="23" id="S0f-Uq-3nx"/>
<constraint firstAttribute="trailing" secondItem="Kj1-gZ-MYa" secondAttribute="trailing" constant="23" id="SOt-R6-jPC"/>
<constraint firstItem="Kj1-gZ-MYa" firstAttribute="leading" secondItem="Iut-wB-jb7" secondAttribute="leading" constant="23" id="ajR-7y-EJV"/>
<constraint firstItem="YiY-fE-jmA" firstAttribute="leading" secondItem="Iut-wB-jb7" secondAttribute="leading" constant="23" id="f0F-ut-rzm"/>
<constraint firstAttribute="trailing" secondItem="YiY-fE-jmA" secondAttribute="trailing" constant="23" id="hkg-PI-ih3"/>
<constraint firstItem="Kj1-gZ-MYa" firstAttribute="top" secondItem="qZq-0V-4yg" secondAttribute="bottom" constant="21" id="lyc-c1-ZO7"/>
<constraint firstItem="Kbg-Yq-5W3" firstAttribute="top" secondItem="Kj1-gZ-MYa" secondAttribute="bottom" constant="29" id="opp-fa-d0c"/>
<constraint firstItem="qZq-0V-4yg" firstAttribute="leading" secondItem="Iut-wB-jb7" secondAttribute="leading" constant="129" id="q4y-PS-blW"/>
<constraint firstItem="YiY-fE-jmA" firstAttribute="top" secondItem="Iut-wB-jb7" secondAttribute="top" constant="48" id="wNH-Mt-epG"/>
</constraints>
<variation key="default">
<mask key="subviews">
<exclude reference="Kj1-gZ-MYa"/>
</mask>
<mask key="constraints">
<exclude reference="SOt-R6-jPC"/>
<exclude reference="ajR-7y-EJV"/>
<exclude reference="lyc-c1-ZO7"/>
<exclude reference="f0F-ut-rzm"/>
<exclude reference="hkg-PI-ih3"/>
<exclude reference="wNH-Mt-epG"/>
<exclude reference="1UL-L0-Gio"/>
<exclude reference="JAN-12-SuK"/>
<exclude reference="S0f-Uq-3nx"/>
<exclude reference="opp-fa-d0c"/>
<exclude reference="G9F-Py-aOk"/>
<exclude reference="JIe-Kv-2VN"/>
<exclude reference="q4y-PS-blW"/>
</mask>
</variation>
<variation key="heightClass=regular-widthClass=compact">
<mask key="subviews">
<include reference="Kj1-gZ-MYa"/>
</mask>
<mask key="constraints">
<include reference="SOt-R6-jPC"/>
<include reference="ajR-7y-EJV"/>
<include reference="lyc-c1-ZO7"/>
<include reference="f0F-ut-rzm"/>
<include reference="hkg-PI-ih3"/>
<include reference="wNH-Mt-epG"/>
<include reference="1UL-L0-Gio"/>
<include reference="JAN-12-SuK"/>
<include reference="S0f-Uq-3nx"/>
<include reference="opp-fa-d0c"/>
<include reference="G9F-Py-aOk"/>
<include reference="JIe-Kv-2VN"/>
<include reference="q4y-PS-blW"/>
</mask>
</variation>
<point key="canvasLocation" x="543" y="273"/>
</view>
</objects>
</document>
19 changes: 19 additions & 0 deletions iTunesSearch/Data.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// Data.h
// iTunesSearch
//
// Created by Rafael Hieda on 11/03/15.
// Copyright (c) 2015 joaquim. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Data : NSObject
@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSString *title;
@property(nonatomic, strong) NSString *price;
@property(nonatomic, strong) NSString *mediaType;
@property(nonatomic, strong) NSString *currency;
@property(nonatomic, strong) NSString *country;

@end
13 changes: 13 additions & 0 deletions iTunesSearch/Data.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// Data.m
// iTunesSearch
//
// Created by Rafael Hieda on 11/03/15.
// Copyright (c) 2015 joaquim. All rights reserved.
//

#import "Data.h"

@implementation Data

@end
21 changes: 21 additions & 0 deletions iTunesSearch/DetailViewController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//
// DetailViewController.h
// iTunesSearch
//
// Created by Rafael Hieda on 13/03/15.
// Copyright (c) 2015 joaquim. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "Data.h"

@interface DetailViewController : UIViewController

@property (weak, nonatomic) IBOutlet UILabel *artistLabel;
@property (weak, nonatomic) IBOutlet UILabel *mediaLabel;
@property (weak, nonatomic) IBOutlet UILabel *priceLabel;
@property (weak, nonatomic) IBOutlet UILabel *countryLabel;

@property(strong, nonatomic) Data *data;

@end
48 changes: 48 additions & 0 deletions iTunesSearch/DetailViewController.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
//
// DetailViewController.m
// iTunesSearch
//
// Created by Rafael Hieda on 13/03/15.
// Copyright (c) 2015 joaquim. All rights reserved.
//

#import "DetailViewController.h"

@interface DetailViewController ()

@end

@implementation DetailViewController
@synthesize data;

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

[_artistLabel setText: [data name]];

[_mediaLabel setText:[data mediaType]];

[_countryLabel setText: [data country]];

[_priceLabel setText: [NSString stringWithFormat: @"%@: %@", [data currency], [data price]]];


}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/

@end
Loading