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;