199
■
A, B
Access control list (ACL), 187 Account category
favorites category lists, 4 orders category, 4 Account settings
notification, 5
sales and refund policy, 5 ACL. See Access control list (ACL) Add product brand selection, 174–176 controller, 169 EMABUserAccountTable ViewController, 168 EMABUser model, 167 name, price and
summary, 173–174
photo upload process, 169–173 product screen, 168 UI controls and properties, 169, 177 UINavigationBar cancel button, 177 save button, 176–177 UIScrollview, 173–174 UITextView, 173 “ADD TO CART” button, 3 AppDelegate.m file, 31 Apple Pay and stripe cloud function, 141 coding, 140 helper method, 139
mutable and container array, 139 PKPaymentAuthorization
ViewController, 138
PKPaymentRequest, 138 single-use token, 140 steps, 138
view controller’s delegate method, 140
charge process, 137 iOS developer, 137 Apple Store app
featured category, 2 iPod Touch, 1 shop category, 2–3 stores, 4
top-level content categories, 2 Arrays one-to-many relationships, 35 Product query, 35
■
C
Cart, 5 Chargecloud code logs, 145 cloud function, 147 cloud modules, 146 CLT, 144–145 coding, 148–149 createStripeCustomer, 146–147 creating customer, 143
Parse Cloud Code, 144 token, 149
Class-level permissions (CLP), 186 CLP. See Class-level permissions (CLP) CLT. See Command-line tool (CLT) Cocoapods, 49
Cocoa Touch Class, 30 Command-line tool (CLT), 144 Computer Programming
category, 34
Credit card payment controller authorization, 133 coding, 134–135 createStripeCustomer, 133 delegate/block method, 132 EMABBagTableViewController, 132 methods, 133 PTKView, 132 payment model, 129, 131 payment view, 131 Stripe iOS SDK, 129
■
D
DispatchViewController, 87■
E
EcommerceAppBook, 44 e-commerce mobile applicationiOS developer, 1 legal business, 1
EMABCategory header file, 54 EMABCategoryTableViewCell, 56–57 EMABConstants
Cocoa Touch Class file, 43 NSStrings, 43 EMABConstants.h, 44, 54, 65 EMABConstants.m, 55 EMABPaymentMethod model, 155–157 EMABProduct model, 65 EMABProductTableViewCell, 67 E-mail. See Charge
E-mail verification process analytics, 195
coding, 192–193 crash report, 196
e-mail template, 191–192 page URL, 192
verify user e-mail, 191
■
F, G, H
Facebook login, 47 coding, 103–104
FBRequest instance method, 102 iOS e-commerce app, 100
network request, 101 ParseFacebookUtilities SDK, 100 profile, 100 user_about_me, 101 -(void)updateIndicator, 101
■
I
iOS Developer Program, 7–8
■
J
Join tables method, 36
■
K
kOrder, 106
■
L
Live Secret Key, 46 Log in
EMABConstants, 97 e-mail and password, 97 e-mail verification method, 97 Facebook, 100–101, 103–104 implementation, 97–99
■
M, N, O
Mailgun APIs, 47 Model-View-Controller (MVC), 53 My Account creation contact info, 155 favorite products cell, 162 controller, 163–164 view, 162 my order history cell, 158 controller, 159–160, 162 view, 157–158 payment method addition, 157 PFQueryTableView Controller, 155–156 UITableViewCell, 155 UITableViewController, 151–152, 154 UITableView methods, 153–154■
P, Q
Parse App
e-mail address, 43 Parse relations, 36 Password reset
alertView delegate method, 194 e-mail template, 194 implementation, 194 Parse Dashboard, 193 URLs samples, 195 Payment model AppDelegate class, 129 credit cards, 129 EMABPaymentMethod, 129 implementation, 130–131 methods, 129 PFImageView, 39 PFObject JSON-compatible data, 29 subclasses, 32
objective-C class hierarchies, 29 Parse web site, 29
product class, 30 Product.m file, 31 Xcode, 30 PFQuery, 33 PFQueryTableViewController, 40–41, 58 PFTableViewCell, 39 PFUser class emailTextField, 37 PFAnonymousUtils method, 38 PFUser currentUser, 37 signUp method, 37 subclass, 39
username and password, 37 Podfile, 49
Pointers
one-to-one and one-to-many relationships, 34
ProductCategory class, 34 Programming Books, 34 Product Category model
EMABCategoryTableViewCell, 59 EMABConstants.h, 58
kCategory string constant, 54 kPFCachePolicyCache ThenNetwork, 58 NSString, 54 PFQueryTableViewController, 57 product brand, 53 Product controller
brand setter method, 69 coding, 70–71 EMABProductsTableViewController, 69 implementation, 70 PFQueryTableViewController custom method, 70 UITableView Datasource, 70
–(PFQuery *)queryForTable method, 69 –(void)awakeFromNib method, 69 Product detail screen
Add to Bag button, 81 coding, 80
EMABProduct property setter, 81 Favorites list
checkIfFfavorited method, 85 coding, 86
+(PFQuery *)basicQuery method, 84 PFQuery method, 83
PFUser and EMABProduct, 83 share option, 82–83
UIActivityViewController, 82 user interface, 79–80
-(void)viewDidLoad method, 81 Product model
custom static method, 66 EMABCategory, 65
EMABConstants helper class, 65 EMABProduct, 65
helper method, 66
-(NSString *)friendlyPrice method, 67 +(PFQuery *)basicQuery method, 66–67 UILabel, 66
Products screen filter options
EMABProduct model class, 75 IBAction method, 76–77 implementation, 75–78 interface properties, 75 ivars, 77 price, 74 snippet, 76 UIBarButtonItem, 78 UI elements, 74–75 –(void)viewDidLoad, 76
sampling data brand column, 71
Esta Louder products, 71 Pointer Type, 71
Xcode project, 72 searching feature
EMABProduct model class, 72 EMABProductsTableView
Controller, 72
implementation, 72–73 loaded data, 72 Night Repair string, 72
–(PFQuery *)queryForTable, 74 PFQueryTableViewController’s
method, 73 self.keyword, 74
UISearchBar delegate method, 73 UISearchBar delegate protocol, 73 Product view EMABProductTable ViewCell, 67–68 implementation, 68 product cell, 67 UI elements, 68 UITableView, 67 Promotion model EMABPromotion creation, 179–180 EMABPromotionView Controller, 181–182 promotion flyer view, 180 Prototype
Dispatch navigation controller, 28
DispatchViewController, 27 e-commerce iPhone app, 9 My Account MyAccountTableView Controller, 17–18 UserAddressTableView Controller, 18 UserOrderHistoryTable ViewController, 20 UserPaymentMethods TableViewController, 19 view controllers, 20–21 NSUserDefault, 27 shop FilterViewController, 15 ProductDetailViewController, 15–16 set Identifier, 13 static rows, 12 Subtitle style, 14 UISearchBar, 14 user interface, 12
user interface, products, 13 view controllers, 17
shopping bag, 21–23 sign up/log in, 23–26 UIStoryboard, 9
UITabBarControllerDelegates, 27 UITTabBarController-based user interface design pattern, 9 user experience
Apple Store iPhone app, 10 Simulated Metrics, 10
Tabbed Application template, 10 UINavigationControllers, 11 UITabBars, 12
■
R
Required features list (Apple Store app) commerce app, 6 e-commerce, 6 marketing campaign, 6
■
S, T
Security ACL, 187–188 admins, 187client class creation, 187 Cloud Code, 188–189 CLP, 186 FavoriteProduct class, 187 master key, 185–186 sessions, 189 “Settings” tab, 44 Shipping address controller -(BOOL)textFieldShould EndEditing, 127 customer, 123 Products screen (cont.)
data source, 124–125 EMABUser model, 125, 127 EMABUserProfileTable ViewController, 122 EMABUserProfile ViewController, 128 implementation, 127 interface, 123 NSDictionary, 123 static NSString, 123 UINavigationBar, 127 UITableViewCells, 123
UITextField Delegate method, 126 form, 119–120
model, 120 view, 121–122
Shipping address model, 120 Shopping bag controller Add to Bag, 109 bag screen, 112 coding, 110–111, 114–115 EMABOrder, 110 EMABProductDetail ViewController class, 110 -(IBAction)onStepper method, 116 implementation, 113, 116 logic sequence, 111 order status, 113 UI elements, 112 UILabel, 113 UIStepper, 116 use cases, 109 -(void)showDeleteAlert, 116 model EMABOrderItem, 105, 107 EMABProduct instance, 105 implementation, 107 item, 105 kOrder, 106 order status, 106 properties, 106 quantity, 105 views, 108 Sign up controller, 91–94 dispatch screen, 87–88 model, 88–89 view EMABEmailTextField class, 89 implementation, 90–91 UITableView, 89 UITextField, 89 Sign-up controller -(BOOL)isValidEmail method, 93 cells, 92 EMABConstants class, 92 implementation, 94–95
UITextField Delegate protocol, 91 -(void) viewDidLoad method, 91 Sign-up model, 88–89
Stripe
Account Settings, 45 “API Keys”, 46
Create New Account, 45 Sign Up button, 45
web and mobile payments, 45 SVProgressHud, 50