• No results found

Utvecklingsm¨ ojligheter

In document Utvecklande av träninsapp för iOS 7 (Page 21-115)

ar enkel och l¨attman¨ovrerad och har en m¨ojlighet att f¨ora statistik ¨over tr¨aning.

Dessa tv˚a egenskaperna var en stor del av vad unders¨okningen gav f¨or resultat.

6.2 Unders¨ okningen

Det fr¨amsta resultatet vid sammanst¨allningen av fr˚agorna i unders¨okningen, i m˚an om vad folk gillar i appar, ¨ar anv¨andarv¨anlighet. De svarande var enty-diga med att komplicerade funktioner och on¨odiga moment enbart gjorde dem mindre intresserade av att anv¨anda appen. Det beskrevs ocks˚a tydligt att de-signen och f¨argvalet skulle vara trevligt och vissa tyckte ¨aven att det skulle f¨olja operativsystemets design. I den andra delen av unders¨okningen fr˚agades det om olika funktioner i en tr¨aningsapp som kunde hj¨alpa anv¨andaren att mo-tiveras. H¨ar var det olika former av statistik som var mest eftertraktat s˚a som tr¨aningsfrekvens, viktkurva och styrkekurva. M˚anga gillade ¨aven id´een att ap-pen skickade ut s.k push notiser till anv¨andaren som p˚aminde denna om att tr¨ana.

6.3 Optimering

Det finns stora optimeringsm¨ojligheter i programkoden. F¨or optimering av ko-den kr¨avs dock ett stort arbete och mer kunskap, vilket p˚a grund av tidsbrist ej har hunnits med. Vid en eventuell lansering av appen hade vissa delar av koden beh¨ovt f¨orenklas eftersom appen drar on¨odigt mycket minne som det ser ut nu.

6.4 Utvecklingsm¨ ojligheter

F¨or att utveckla appen ytterligare, utifr˚an vad unders¨okningen gav, skulle dels vara att l¨agga in en funktion som g¨or det m¨ojligt f¨or anv¨andaren att planera sin tr¨aning samt l¨agga till funktionen push-up notiser som kan p˚aminna anv¨andaren om att tr¨ana.

Man hade kunnat skapa ett po¨angsystem f¨or anv¨andaren beroende p˚a hur dess tr¨aningsutveckling har g˚att samt om anv¨andaren f¨oljer sin tr¨aningsplanering.

Detta po¨angsystem hade man sedan kunnat f¨olja online d¨ar anv¨andaren t¨avlade mot andra anv¨andare.

En tredje nisch hade kunnat vara att fokusera p˚a kost och kalorier. D¨ar hade appen kunnat ha en kalorier¨aknare som dels r¨aknade ut hur mycket kalorier anv¨andaren stoppar i sig och hur mycket den f¨orbr¨anner. ¨Aven att appen kunnat tipsa om nyttiga och nyt¨ankande matr¨atter.

Referenser

[1] Apple, “Distribute.” https://developer.apple.com/programs/ios/distribute .html , 2014. (H¨amtad 23 maj, 2014).

[2] www.teknologin.se, “Svenskar anv¨ander smartphones mest.”

http://www.teknologin.se/index.php/artiklar/svenskar-anvander-smartphones-mest/ , 2013. (H¨amtad 23 maj, 2014).

[3] N. Ingraham, “Apple announces 1 million apps in the App Store.” http://www.theverge.com/2013/10/22/4866302/apple-announces-1-million-apps-in-the-app-store, Oktober 2013. (H¨amtad 23 maj, 2014).

[4] SCB, “Personer 16-84 ˚ar som p˚a fritiden ¨agnat sig ˚at tr¨anat p˚a gym, tr¨aningscenter, fitnesscen-ter under de senaste 12 m˚anaderna 2006-2007.”

http://webcache.googleusercontent.com/search?q=cache:2AtMS7xFQ9YJ:

www.scb.se/Statistik/LE/LE0101/ documents/Tabell , 2007. (H¨amtad 28 April, 2014).

[5] Apple, “cocoa touch frameworks.” https://developer.apple.com/technologies /ios/cocoa-touch.html , 2014. (H¨amtad 21 April, 2014).

[6] Apple, “About Objective-C.” https://developer.apple.com/library/mac/

documentation/cocoa/conceptual/ProgrammingWithObjectiveC/Introduction /Introduction.html , 2014. (H¨amtad 21 April, 2014).

[7] Apple, “Defining Classes.” https://developer.apple.com/library/mac/

documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/DefiningClasses/

DefiningClasses.html#//apple ref/doc/uid/TP40011210-CH3-SW1 , 2014.

(H¨amtad 21 April, 2014).

[8] Wikipedia, “Smalltalk.” http://en.wikipedia.org/wiki/Smalltalk , 2014.

(H¨amtad 21 April, 2014).

[9] John-Lluch, “John-Lluch/SWRevealViewController.”

https://github.com/John-Lluch/SWRevealViewController , 2014. (H¨amtad 14 maj, 2014).

[10] Apple, “NSUserDefaults Class Reference.”

https://developer.apple.com/library/mac/documentation/Cocoa/Reference /Foundation/Classes/NSUserDefaults Class/Reference/Reference.html#//

apple ref/occ/clm/NSUserDefaults/standardUserDefaults, 2014. (H¨amtad 22 maj, 2014).

[11] core plot, “core-plot/core-plot.” https://github.com/core-plot/core-plot , 2014. (H¨amtad 22 maj, 2014).

[12] Apple, “Quartz Core Framework Reference.”

https://developer.apple.com/library/mac/documentation/graphicsimaging /reference/QuartzCoreRefCollection/ index.html , 2014. (H¨amtad 22 maj, 2014).

7 Appendix

7.1 Meny

7.1.1 .h-fil

#import <UIKit/UIKit.h>

@interface SidebarTableViewController : UITableViewController

@property (nonatomic, strong) NSArray *menuItems;

@end

7.1.2 .m-fil

#import "SidebarTableViewController.h"

#import "SWRevealViewController.h"

@interface SidebarTableViewController ()

@end

@implementation SidebarTableViewController - (id)initWithStyle:(UITableViewStyle)style {

self = [super initWithStyle:style];

if (self) {

// Custom initialization }

return self;

}

- (void)viewDidLoad {

self.view.backgroundColor = [UIColor colorWithWhite:0.2f alpha:1.0f];

self.tableView.backgroundColor = [UIColor colorWithWhite:0.2f alpha:1 .0f];

self.tableView.separatorColor = [UIColor colorWithWhite:0.15f alpha:0 .2f];

_menuItems = @[@"title", @"New workout", @"profile", @"statistics"];

[super viewDidLoad];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

return 1;

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection :(NSInteger)section

{

return [self.menuItems count];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndex Path:(NSIndexPath *)indexPath

{

NSString *CellIdentifier = [self.menuItems objectAtIndex:indexPath .row];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier :CellIdentifier forIndexPath:indexPath];

return cell;

}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCe ll *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{

[cell setBackgroundColor:[UIColor colorWithWhite:0.2f alpha:1.0f]];

}

#pragma mark - Navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

UINavigationController *destViewController = (UINavigationController

*)segue.destinationViewController;

destViewController.title = [[_menuItems objectAtIndex:indexPath.row]

capitalizedString];

if ( [segue isKindOfClass: [SWRevealViewControllerSegue class]] ) { SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSeg ue*) segue;

swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {

UINavigationController* navController = (UINavigationControll er*)self.revealViewController.frontViewController;

[navController setViewControllers: @[dvc] animated: NO ];

[self.revealViewController setFrontViewPosition: FrontViewPos itionLeft animated: YES];

};

} }

@end

7.2 Profilsidan

7.2.1 .h-fil

#import <UIKit/UIKit.h>

#import "ViewController.h"

@interface ProfileViewController : UIViewController{

IBOutlet UIButton *plus;

int x;

int z;

int y;

int q;

int p;

int w;

IBOutlet UIButton *create1;

IBOutlet UIButton *create2;

IBOutlet UIButton *create3;

IBOutlet UIButton *create4;

IBOutlet UIButton *plus2;

IBOutlet UIButton *reset;

IBOutlet UIButton *save1;

IBOutlet UIButton *save2;

IBOutlet UIButton *save3;

IBOutlet UIButton *save4;

IBOutlet UIButton *save5;

IBOutlet UIButton *save6;

IBOutlet UIButton *save7;

IBOutlet UIButton *save8;

}

-(IBAction)plus:(id)sender;

-(IBAction)create1:(id)sender;

-(IBAction)create2:(id)sender;

-(IBAction)create3:(id)sender;

-(IBAction)create4:(id)sender;

-(IBAction)plus2:(id)sender;

-(IBAction)save:(id)sender;

-(IBAction)reset:(id)sender;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *rightSidebarButton;

@end

7.2.2 .m-fil

#import "ProfileViewController.h"

#import "SWRevealViewController.h"

@interface ProfileViewController ()

@end

@implementation ProfileViewController

-(IBAction)plus:(id)sender;{

if (x<5) {

UITextField *position = (UITextField*)[self.view viewWithTag: x-1];

CGRect labelFrame = CGRectMake( 20, position.frame.origin.y + 50, 189 , 20 );

UITextField* textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name workout session";

textField.textColor = [UIColor lightGrayColor];

textField.tag = x;

[self.view addSubview: textField];

switch (z) { case 2:

create1.hidden=YES;

create2.hidden=NO;

create3.hidden=YES;

create4.hidden=YES;

break;

case 3:

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=NO;

create4.hidden=YES;

break;

case 4:

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=NO;

break;

default:

break;

}

}

plus.hidden=YES;

x = x+1;

}

-(IBAction)plus2:(id)sender;{

if (y<13) {

UITextField *position = (UITextField*)[self.view viewWithTag: y -1];

CGRect labelFrame = CGRectMake( 20, position.frame.origin.y + 50, 189, 20 );

UITextField* textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = y;

[self.view addSubview: textField];

switch (y) { case 6:

save1.hidden=YES;

save2.hidden=NO;

break;

case 7:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=NO;

break;

case 8:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=NO;

break;

case 9:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=NO;

break;

case 10:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=NO;

break;

case 11:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=NO;

break;

case 12:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=YES;

save8.hidden=NO;

break;

default:

break;

}

y = y+1;

}

if (q<21) {

UITextField *position = (UITextField*)[self.view viewWithTag: q -1];

CGRect labelFrame = CGRectMake( 20, position.frame.origin.y + 50, 189, 20 );

UITextField* textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = q;

[self.view addSubview: textField];

switch (q) { case 14:

save1.hidden=YES;

save2.hidden=NO;

break;

case 15:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=NO;

break;

case 16:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=NO;

break;

case 17:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=NO;

break;

case 18:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=NO;

break;

case 19:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=NO;

break;

case 20:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=YES;

save8.hidden=NO;

break;

default:

break;

}

q = q+1;

}

if (p<29) {

UITextField *position = (UITextField*)[self.view viewWithTag: p -1];

CGRect labelFrame = CGRectMake( 20, position.frame.origin.y + 50, 189, 20 );

UITextField* textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = p;

[self.view addSubview: textField];

switch (p) { case 22:

save1.hidden=YES;

save2.hidden=NO;

break;

case 23:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=NO;

break;

case 24:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=NO;

break;

case 25:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=NO;

break;

case 26:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=NO;

break;

case 27:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=NO;

break;

case 28:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=YES;

save8.hidden=NO;

break;

default:

break;

}

p = p+1;

}

if (w<37) {

UITextField *position = (UITextField*)[self.view viewWithTag: w -1];

CGRect labelFrame = CGRectMake( 20, position.frame.origin.y + 50, 189, 20 );

UITextField* textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = w;

[self.view addSubview: textField];

switch (w) { case 30:

save1.hidden=YES;

save2.hidden=NO;

break;

case 31:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=NO;

break;

case 32:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=NO;

break;

case 33:

save1.hidden=YES;

case 34:

save1.hidden=YES;

case 35:

save1.hidden=YES;

case 36:

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=YES;

save8.hidden=NO;

break;

default:

break;

}

w = w+1;

}

plus2.hidden=YES;

}

-(IBAction)create1:(id)sender;{

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

plus.hidden = YES;

save1.hidden=NO;

reset.hidden=YES;

q=38;

p=38;

w=38;

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 90, 280, 30)];

UITextField *textFieldText = (UITextField*)[self.view viewWithTag:1];

label.text = [NSString stringWithFormat:@"\%@", textFieldText.text];

label.tag = 100;

[label setTextAlignment:NSTextAlignmentCenter];

[self.view addSubview:label];

for (int i = 1; i<x; i++) {

UITextField *hideField = (UITextField*)[self.view viewWithTag: i]

;

hideField.hidden=YES;

} y=5;

CGRect labelFrame = CGRectMake( 20, 180, 189, 20 );

UITextField *textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = y;

[self.view addSubview: textField];

y=y+1;

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableArray *array1 = [[NSMutableArray alloc] init];

[array1 addObject:[NSString stringWithFormat:@"%@", textFieldText .text]];

[defaults setObject:array1 forKey:@"array1"];

[defaults synchronize];

_rightSidebarButton = self.navigationItem.rightBarButtonItem =

[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemS tyleBordered target:self action:@selector(done:)];

for (int i = 201; i<221; i++) {

UILabel *label = (UILabel*)[self.view viewWithTag: i];

label.hidden=YES;

} }

-(IBAction)create2:(id)sender;{

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

plus.hidden = YES;

save1.hidden=NO;

reset.hidden=YES;

y=38;

p=38;

w=38;

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 90, 280, 30)];

UITextField *textFieldText = (UITextField*)[self.view viewWithTag:2];

label.text = [NSString stringWithFormat:@"\%@", textFieldText.text];

label.tag = 101;

[label setTextAlignment:NSTextAlignmentCenter];

[self.view addSubview:label];

for (int i = 1; i<x; i++) {

UITextField *hideField = (UITextField*)[self.view viewWithTag: i]

;

hideField.hidden=YES;

} q=13;

CGRect labelFrame = CGRectMake( 20, 180, 189, 20 );

UITextField *textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = q;

[self.view addSubview: textField];

q=q+1;

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableArray *array2 = [[NSMutableArray alloc] init];

[array2 addObject:[NSString stringWithFormat:@"%@", textFieldText .text]];

[defaults setObject:array2 forKey:@"array2"];

[defaults synchronize];

_rightSidebarButton = self.navigationItem.rightBarButtonItem =

[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemS tyleBordered target:self action:@selector(done:)];

for (int i = 201; i<221; i++) {

UILabel *label = (UILabel*)[self.view viewWithTag: i];

label.hidden=YES;

} }

-(IBAction)create3:(id)sender;{

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

plus.hidden = YES;

save1.hidden=NO;

reset.hidden=YES;

q=38;

y=38;

w=38;

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 90,

280, 30)];

UITextField *textFieldText = (UITextField*)[self.view viewWithTag:3];

label.text = [NSString stringWithFormat:@"\%@", textFieldText.text];

label.tag = 102;

[label setTextAlignment:NSTextAlignmentCenter];

[self.view addSubview:label];

for (int i = 1; i<x; i++) {

UITextField *hideField = (UITextField*)[self.view viewWithTag: i]

;

hideField.hidden=YES;

} p=21;

CGRect labelFrame = CGRectMake( 20, 180, 189, 20 );

UITextField *textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = p;

[self.view addSubview: textField];

p=p+1;

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableArray *array3 = [[NSMutableArray alloc] init];

[array3 addObject:[NSString stringWithFormat:@"%@", textFieldText .text]];

[defaults setObject:array3 forKey:@"array3"];

[defaults synchronize];

_rightSidebarButton = self.navigationItem.rightBarButtonItem =

[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemS tyleBordered target:self action:@selector(done:)];

for (int i = 201; i<221; i++) {

UILabel *label = (UILabel*)[self.view viewWithTag: i];

label.hidden=YES;

} }

-(IBAction)create4:(id)sender;{

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

plus.hidden = YES;

save1.hidden=NO;

reset.hidden=YES;

p=38;

y=38;

q=38;

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 90, 280, 30)];

UITextField *textFieldText = (UITextField*)[self.view viewWithTag:4];

label.text = [NSString stringWithFormat:@"\%@", textFieldText.text];

label.tag = 103;

[label setTextAlignment:NSTextAlignmentCenter];

[self.view addSubview:label];

for (int i = 1; i<x; i++) {

UITextField *hideField = (UITextField*)[self.view viewWithTag: i]

;

hideField.hidden=YES;

}

for (int i = 201; i<221; i++) {

UILabel *label = (UILabel*)[self.view viewWithTag: i];

label.hidden=YES;

} w=29;

CGRect labelFrame = CGRectMake( 20, 180, 189, 20 );

UITextField *textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name exercise..";

textField.textColor = [UIColor lightGrayColor];

textField.tag = w;

[self.view addSubview: textField];

w=w+1;

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableArray *array4 = [[NSMutableArray alloc] init];

[array4 addObject:[NSString stringWithFormat:@"\%@", textFieldText .text]];

[defaults setObject:array4 forKey:@"array4"];

[defaults synchronize];

_rightSidebarButton = self.navigationItem.rightBarButtonItem =

[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemS tyleBordered target:self action:@selector(done:)];

}

-(IBAction)save:(id)sender;{

plus2.hidden=NO;

UITextField *textFieldText;

if (y<38) {

textFieldText= (UITextField*)[self.view viewWithTag:y-1];

}

if (q<38) {

textFieldText= (UITextField*)[self.view viewWithTag:q-1];

}

if (p<38) {

textFieldText= (UITextField*)[self.view viewWithTag:p-1];

}

if (w<38) {

textFieldText= (UITextField*)[self.view viewWithTag:w-1];

}

NSMutableArray *array = [[NSMutableArray alloc] init];

[array addObject:[NSString stringWithFormat:@"\%@",textFieldText .text]];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableArray *array1 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array1"]];

NSMutableArray *array2 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array2"]];

NSMutableArray *array3 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array3"]];

NSMutableArray *array4 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array4"]];

UILabel *label;

switch (x) { case 2:

label = (UILabel*)[self.view viewWithTag:100];

break;

case 3:

label = (UILabel*)[self.view viewWithTag:101];

break;

case 4:

label = (UILabel*)[self.view viewWithTag:102];

break;

case 5:

label = (UILabel*)[self.view viewWithTag:103];

break;

default:

break;

}

NSString *labelName = label.text;

NSString *first1;

NSString *first2;

NSString *first3;

NSString *first4;

if ((![array1 count] ==0)) {

first1 = [NSString stringWithFormat:@"\%@", [array1 objectAtIndex :0]];

} else{

first1 = [NSString stringWithFormat:@" "];

}

if ((![array2 count] ==0)) {

first2 = [NSString stringWithFormat:@"\%@", [array2 objectAtIndex :0]];

} else{

first2 = [NSString stringWithFormat:@" "];

}

if ((![array3 count] ==0)) {

first3 = [NSString stringWithFormat:@"\%@", [array3 objectAtIndex :0]];

} else{

first3 = [NSString stringWithFormat:@" "];

}

if ((![array4 count] ==0)) {

first4 = [NSString stringWithFormat:@"\%@", [array4 objectAtIndex :0]];

} else{

first4 = [NSString stringWithFormat:@" "];

}

if ([first1 isEqualToString:labelName]) { [array1 addObject:array];

[defaults setObject:array1 forKey:@"array1"];

[defaults synchronize];

}

if ([first2 isEqualToString:labelName]) { [array2 addObject:array];

[defaults setObject:array2 forKey:@"array2"];

[defaults synchronize];

}

if ([first3 isEqualToString:labelName]) { [array3 addObject:array];

[defaults setObject:array3 forKey:@"array3"];

[defaults synchronize];

}

if ([first4 isEqualToString:labelName]) { [array4 addObject:array];

[defaults setObject:array4 forKey:@"array4"];

[defaults synchronize];

}

switch (y) { case 6:

save1.hidden=YES;

break;

case 7:

save2.hidden=YES;

break;

case 8:

save3.hidden=YES;

break;

case 9:

save4.hidden=YES;

break;

case 10:

save5.hidden=YES;

break;

case 11:

save6.hidden=YES;

break;

case 12:

save7.hidden=YES;

break;

case 13:

save8.hidden=YES;

plus2.hidden=YES;

break;

default:

break;

}

switch (q) { case 14:

save1.hidden=YES;

break;

case 15:

save2.hidden=YES;

break;

case 16:

save3.hidden=YES;

break;

case 17:

save4.hidden=YES;

break;

case 18:

save5.hidden=YES;

break;

case 19:

save6.hidden=YES;

break;

case 20:

save7.hidden=YES;

break;

case 21:

save8.hidden=YES;

plus2.hidden=YES;

break;

default:

break;

}

switch (p) { case 22:

save1.hidden=YES;

break;

case 23:

save2.hidden=YES;

break;

case 24:

save3.hidden=YES;

break;

case 25:

save4.hidden=YES;

break;

case 26:

save5.hidden=YES;

break;

case 27:

save6.hidden=YES;

break;

case 28:

save7.hidden=YES;

break;

case 29:

save8.hidden=YES;

plus2.hidden=YES;

break;

default:

break;

}

switch (w) { case 30:

save1.hidden=YES;

break;

case 31:

save2.hidden=YES;

break;

case 32:

save3.hidden=YES;

break;

case 33:

save4.hidden=YES;

break;

case 34:

save5.hidden=YES;

break;

case 35:

save6.hidden=YES;

break;

case 36:

save7.hidden=YES;

break;

case 37:

save8.hidden=YES;

plus2.hidden=YES;

break;

default:

break;

} }

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBund leOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization }

return self;

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

for (int i = 1; i<y; i++) {

[(UITextField*)[self.view viewWithTag:i] resignFirstResponder];

}

}

-(void)done:(UIBarButtonItem*)rightSidebarButton;{

self.navigationItem.rightBarButtonItem = nil;

for (int i = 5; i<37; i++) {

UITextField *hideField = (UITextField*)[self.view viewWithTag: i]

;

hideField.hidden=YES;

}

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=YES;

save8.hidden=YES;

plus2.hidden=YES;

plus.hidden=NO;

reset.hidden=NO;

for (int i=100; i<104; i++) {

UILabel *oldLabel = (UILabel *)[self.view viewWithTag:i];

oldLabel.hidden=YES;

}

NSMutableArray *array1 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array1"]];

NSMutableArray *array2 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array2"]];

NSMutableArray *array3 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array3"]];

NSMutableArray *array4 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array4"]];

CGRect labelFrame1;

CGRect labelFrame2;

CGRect labelFrame3;

CGRect labelFrame4;

UILabel *label1;

UILabel *label2;

UILabel *label3;

UILabel *label4;

switch (z) { case 1:

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=211;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtIndex:0]];

[self.view addSubview: label1];

x=2;

create1.hidden=YES;

break;

case 2:

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

labelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

label2 = [[UILabel alloc] initWithFrame: labelFrame2];

label2.tag=212;

label2.text=[NSString stringWithFormat:@"%@", [array2

objectAtIndex:0]];

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=213;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtIndex:0]];

[self.view addSubview: label1];

[self.view addSubview: label2];

x=3;

create1.hidden=YES;

create2.hidden=YES;

break;

case 3:

labelFrame3 = CGRectMake( 20, 144+100, 189, 20 );

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

labelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

label3 = [[UILabel alloc] initWithFrame: labelFrame3];

label3.tag=214;

label3.text=[NSString stringWithFormat:@"%@", [array3 objectAtIndex:0]];

label2 = [[UILabel alloc] initWithFrame: labelFrame2];

label2.tag=215;

label2.text=[NSString stringWithFormat:@"%@", [array2 objectAtIndex:0]];

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=216;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtIndex:0]];

[self.view addSubview: label1];

[self.view addSubview: label2];

[self.view addSubview: label3];

[self.view addSubview: label2];

[self.view addSubview: label1];

x=4;

labelFrame4 = CGRectMake( 20, 144+150, 189, 20 );

labelFrame3 = CGRectMake( 20, 144+100, 189, 20 );

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

labelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

label4 = [[UILabel alloc] initWithFrame: labelFrame4];

label4.tag=217;

label4.text=[NSString stringWithFormat:@"%@", [array4 objectAtIndex:0]];

label3 = [[UILabel alloc] initWithFrame: labelFrame3];

label3.tag=218;

label3.text=[NSString stringWithFormat:@"%@", [array3 objectAtIndex:0]];

label2 = [[UILabel alloc] initWithFrame: labelFrame2];

label2.tag=219;

label2.text=[NSString stringWithFormat:@"%@", [array2 objectAtIndex:0]];

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=220;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtIndex:0]];

[self.view addSubview: label4];

[self.view addSubview: label3];

[self.view addSubview: label2];

[self.view addSubview: label1];

x=5;

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

plus.hidden=YES;

break;

default:

break;

} z=z+1;

}

-(IBAction)reset:(id)sender{

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableArray *array1 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array1"]];

NSMutableArray *array2 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array2"]];

NSMutableArray *array3 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array3"]];

NSMutableArray *array4 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array4"]];

[array1 removeAllObjects];

[array2 removeAllObjects];

[array3 removeAllObjects];

[array4 removeAllObjects];

[defaults setObject:array1 forKey:@"array1"];

[defaults setObject:array2 forKey:@"array2"];

[defaults setObject:array3 forKey:@"array3"];

[defaults setObject:array4 forKey:@"array4"];

[defaults synchronize];

reset.hidden=YES;

create1.hidden=NO;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

plus2.hidden=YES;

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=YES;

save8.hidden=YES;

plus.hidden=YES;

for (int i = 1; i<231; i++) {

UIView *hideField = (UIView *)[self.view viewWithTag: i];

[hideField removeFromSuperview];

} x=1;

y=5;

z=1;

CGRect labelFrame = CGRectMake( 20, 144, 189, 20 );

UITextField *textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name workout session";

textField.textColor = [UIColor lightGrayColor];

textField.frame = labelFrame;

textField.tag = x;

[self.view addSubview: textField];

x=x+1;

}

- (void)viewDidLoad

{

create1.hidden=NO;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

plus2.hidden=YES;

save1.hidden=YES;

save2.hidden=YES;

save3.hidden=YES;

save4.hidden=YES;

save5.hidden=YES;

save6.hidden=YES;

save7.hidden=YES;

save8.hidden=YES;

plus.hidden=YES;

_sidebarButton = self.navigationItem.leftBarButtonItem = [[UIBarButto nItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self action:@selector(revealToggle:)];

_sidebarButton.target = self.revealViewController;

_sidebarButton.action = @selector(revealToggle:);

[self.view addGestureRecognizer:self.revealViewController.panGestureR ecognizer];

CGRect labelFrame1;

CGRect labelFrame2;

CGRect labelFrame3;

CGRect labelFrame4;

UILabel *label1;

UILabel *label2;

UILabel *label3;

UILabel *label4;

NSMutableArray *array1 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array1"]];

NSMutableArray *array2 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array2"]];

NSMutableArray *array3 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array3"]];

NSMutableArray *array4 = [NSMutableArray arrayWithArray:[[NSUserDefau lts standardUserDefaults]objectForKey:@"array4"]];

if ([array1 count]==0) {

x=1;

y=5;

z=1;

CGRect labelFrame = CGRectMake( 20, 144, 189, 20 );

UITextField *textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.borderStyle = UITextBorderStyleRoundedRect;

textField.text = @"Name workout session";

textField.textColor = [UIColor lightGrayColor];

textField.tag = x;

[self.view addSubview: textField];

x=x+1;

reset.hidden=YES;

}

else if ([array2 count]==0) {

CGRect labelFrame = CGRectMake( 20, 144, 189, 20 );

UITextField *textField = [[UITextField alloc] initWithFrame:

labelFrame];

textField.tag = 1;

[self.view addSubview: textField];

textField.enabled=NO;

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=201;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtInd ex:0]];

[self.view addSubview: label1];

x=2;

z=2;

create1.hidden=YES;

reset.hidden=NO;

plus.hidden=NO;

}

else if([array3 count]==0){

CGRect oldLabelFrame1 = CGRectMake( 20, 144, 189, 20 );

UITextField *oldTextField1 = [[UITextField alloc] initWithFrame:

oldLabelFrame1];

oldTextField1.tag = 1;

[self.view addSubview: oldTextField1];

oldTextField1.enabled=NO;

CGRect oldLabelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

UITextField *oldTextField2 = [[UITextField alloc] initWithFrame:

oldLabelFrame2];

oldTextField2.tag = 2;

[self.view addSubview: oldTextField2];

oldTextField2.enabled=NO;

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

labelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

label2 = [[UILabel alloc] initWithFrame: labelFrame2];

label2.tag=202;

label2.text=[NSString stringWithFormat:@"%@", [array2 objectAtIn dex:0]];

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=205;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtIn dex:0]];

[self.view addSubview: label1];

[self.view addSubview: label2];

x=3;

z=3;

create1.hidden=YES;

create2.hidden=YES;

reset.hidden=NO;

plus.hidden=NO;

}

else if ([array4 count]==0){

CGRect oldLabelFrame1 = CGRectMake( 20, 144, 189, 20 );

UITextField *oldTextField1 = [[UITextField alloc] initWithFrame:

oldLabelFrame1];

oldTextField1.tag = 1;

[self.view addSubview: oldTextField1];

oldTextField1.enabled=NO;

CGRect oldLabelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

UITextField *oldTextField2 = [[UITextField alloc] initWithFrame:

oldLabelFrame2];

oldTextField2.tag = 2;

[self.view addSubview: oldTextField2];

oldTextField2.enabled=NO;

CGRect oldLabelFrame3 = CGRectMake( 20, 144+100, 189, 20 );

UITextField *oldTextField3 = [[UITextField alloc] initWithFrame:

oldLabelFrame3];

oldTextField3.tag = 3;

[self.view addSubview: oldTextField3];

oldTextField3.enabled=NO;

labelFrame3 = CGRectMake( 20, 144+100, 189, 20 );

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

labelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

label3 = [[UILabel alloc] initWithFrame: labelFrame3];

label3.tag=203;

label3.text=[NSString stringWithFormat:@"%@", [array3 objectAtIn dex:0]];

label2 = [[UILabel alloc] initWithFrame: labelFrame2];

label2.tag=206;

label2.text=[NSString stringWithFormat:@"%@", [array2 objectAtIn dex:0]];

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=207;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtIn dex:0]];

[self.view addSubview: label1];

[self.view addSubview: label2];

[self.view addSubview: label3];

[self.view addSubview: label2];

[self.view addSubview: label1];

x=4;

z=4;

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

reset.hidden=NO;

plus.hidden=NO;

} else{

labelFrame4 = CGRectMake( 20, 144+150, 189, 20 );

labelFrame3 = CGRectMake( 20, 144+100, 189, 20 );

labelFrame1 = CGRectMake( 20, 144, 189, 20 );

labelFrame2 = CGRectMake( 20, 144+50, 189, 20 );

label4 = [[UILabel alloc] initWithFrame: labelFrame4];

label4.tag=204;

label4.text=[NSString stringWithFormat:@"%@", [array4 objectAtIn dex:0]];

label3 = [[UILabel alloc] initWithFrame: labelFrame3];

label3.tag=208;

label3.text=[NSString stringWithFormat:@"%@", [array3 objectAtIn dex:0]];

label2 = [[UILabel alloc] initWithFrame: labelFrame2];

label2.tag=209;

label2.text=[NSString stringWithFormat:@"%@", [array2 objectAtIn

dex:0]];

label1 = [[UILabel alloc] initWithFrame: labelFrame1];

label1.tag=210;

label1.text=[NSString stringWithFormat:@"%@", [array1 objectAtIn dex:0]];

[self.view addSubview: label4];

[self.view addSubview: label3];

[self.view addSubview: label2];

[self.view addSubview: label1];

x=5;

z=5;

create1.hidden=YES;

create2.hidden=YES;

create3.hidden=YES;

create4.hidden=YES;

reset.hidden=NO;

plus.hidden=YES;

}

UIImage *buttonImage = [[UIImage imageNamed:@"greyButton.png"]

resizableImageWithCapInsets:UIEdgeInsetsMake (18, 18, 18, 18)];

UIImage *buttonImageHighlight = [[UIImage imageNamed:@"greyButtonHigh light.png"]

resizableImageWithCapInsets:UIEdgeIn setsMake(18, 18, 18, 18)];

[create1 setBackgroundImage:buttonImage forState:UIControlStateNormal ];

[create1 setBackgroundImage:buttonImageHighlight forState:UIControlSt ateHighlighted];

[create2 setBackgroundImage:buttonImage forState:UIControlStateNormal ];

[create2 setBackgroundImage:buttonImageHighlight forState:UIControlSt ateHighlighted];

[create3 setBackgroundImage:buttonImage forState:UIControlStateNormal ];

[create3 setBackgroundImage:buttonImageHighlight forState:UIControlSt ateHighlighted];

[create4 setBackgroundImage:buttonImage forState:UIControlStateNormal ];

[create4 setBackgroundImage:buttonImageHighlight forState:UIControlSt ateHighlighted];

[reset setBackgroundImage:buttonImage forState:UIControlStateNormal];

[reset setBackgroundImage:buttonImageHighlight forState:UIControlStat

eHighlighted];

[save1 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save1 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[save2 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save2 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[save3 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save3 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[save4 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save4 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[save5 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save5 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[save6 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save6 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[save7 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save7 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[save8 setBackgroundImage:buttonImage forState:UIControlStateNormal];

[save8 setBackgroundImage:buttonImageHighlight forState:UIControlStat eHighlighted];

[super viewDidLoad];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

@end

7.3 Tr¨ aningssidan

7.3.1 .h-fil

@interface ViewController : UIViewController{

IBOutlet UIScrollView *scroller;

IBOutlet UIButton *newWorkout;

IBOutlet UIButton *workout1;

IBOutlet UIButton *workout2;

IBOutlet UIButton *workout3;

IBOutlet UIButton *workout4;

IBOutlet UILabel *noWorkout;

IBOutlet UILabel *workoutName;

IBOutlet UILabel *sets;

IBOutlet UILabel *reps;

IBOutlet UILabel *weight;

int l;

int m;

int n;

int r;

}

@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;

In document Utvecklande av träninsapp för iOS 7 (Page 21-115)

Related documents