Application Types

From Medien Wiki
Revision as of 13:45, 24 February 2010 by Mm (talk | contribs) (created)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Application Types

Native iPhone Applications:

  • based on Cocoa Touch
  • written in Objective-C

iPhone Web-based Apps:

  • Website optimized for iPhone
  • written in HTML, CSS, JavaScript(, PHP)
  • usable as App via "WebClip"

Hybrid Applications:

  • mixed Cocoa Touch & Web App



Application Styles

Apples Human Interface Guidlines beschreiben drei verschiedene Applikationstypen:


Productivity Apps

  • Hierarchical Info
  • Usually UITableView
  • extremely consistent with HIG
  • eg. Mail

Utility Apps

  • Specific info with as little interaction as possible
  • Usually using the small "i" to flip views
  • neater Design (eg. custom TableRows)
  • nevertheless very consistent with HIG
  • eg. Weather

Immersive Apps

  • Custom Interface
  • low inforcement of Apple's HIG
  • eg. Racing Game


Drawing Methods

Es gibt drei gundsätzlich verschiedene Methoden, um den "Anzeige-Part" in einer iPhone App darzustellen.


UIViews

  • Gewöhnliche Komponenten, die in Interface Builder arrangiert werden
  • z.B. UITableView, UIButtons, UITextField, UISlider, UIPickerView ...
  • z.B.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Create a detail view controller, set receipe, then push it
    RecipeDetailViewController *detailViewController = [[RecipeDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    detailViewController.recipe = (Recipe *)[fetchedResultsController objectAtIndexPath:indexPath];    
    [self.navigationController pushViewController:detailViewController animated:animated];
    [detailViewController release];
}



Quartz 2D

Beispiel:

- (void)drawRect:(NSRect)rect
{
    CGContextRef myContext = [[NSGraphicsContext
                                currentContext]graphicsPort];
   // ********** Your drawing code here **********
    CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);
    CGContextFillRect (myContext, CGRectMake (0, 0, 200, 100 ));
    CGContextSetRGBFillColor (myContext, 0, 0, 1, .5);
    CGContextFillRect (myContext, CGRectMake (0, 0, 100, 200));
  }



Open GL

Beispiel:

- (void) render {
    [EAGLContext setCurrentContext:context];

    glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);
    glViewport(0, 0, backingWidth, backingHeight);
    
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
    glTranslatef(0.0f, (GLfloat)(sinf(transY)/2.0f), 0.0f);
	transY += 0.075f;
	
    glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    
    glVertexPointer(2, GL_FLOAT, 0, squareVertices);
    glEnableClientState(GL_VERTEX_ARRAY);
    glColorPointer(4, GL_UNSIGNED_BYTE, 0, squareColors);
    glEnableClientState(GL_COLOR_ARRAY);
    
    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
    
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
    [context presentRenderbuffer:GL_RENDERBUFFER_OES];
}





Diese Seite ist Teil des Werkmoduls iOS Development von Michael Markert für Interface Design / Fakultät Medien an der Bauhaus-Universität Weimar.