Design Considerations and Best Practices for Mobile Applications David E. Figley, Jr Programmer, C2 Technologies, Inc.
Patriot Missile System Training Apps Connecting Soldiers to Digital Applications Deployed on iPhone 4 and desktop web browsers Runs on iPad 2, new iPad, select Android devices Developed in Unity
Design Considerations
Considerations Platform (iOS, Android, Blackberry OS, etc) Different development environments Device diversity Device Limitations Memory and storage Accelerometer, gyroscope, camera, multitouch
Considerations (cont.) Target Audience ‘App’titude Accessibility, 508 Compliance Deployed Environment Network availability Device management / updates
Platforms
Predictable hardware configurations Relatively few resolutions and aspect ratios: (480x320, 960x640, 1024x768, 2048x1536) Closed platform
Ios Resolutions
Diverse hardware (CPU, GPU, memory, storage) Numerous device resolutions and aspect ratios: (240x300, 320x240, 320x480, 360x640, 480x640, 480x800, 480x854, 540x960, 640x960, 800x400, 800x600, 1024x600, 1024x768, 1280x720, 1280x800) Disparate UI experiences & limitations
Android Resolutions
Audience
Considering The User ‘App’titude Gamer’s instincts “Hold my hand” Feedback fallbacks
Deployment Network availability Updates Device management Testing
Best Practices
Development Approach Core Framework Base classes (UI screen, controlled obj, utils) Interaction behaviors (character controls) Content management (Scenarios, activities) Bundled assets Externalized content
Framework Modular design Reusable chunks Encapsulated behaviors (independent code) Objects inherit attributes Applies to graphical assets
Framework (cont) Interactive elements Character controls (joystick, touchpad, hybrid) Touches and collisions Camera controls (followers, look at objects) Create realistic models, figuratively and literally Open-ended, immersive environments
Framework (cont) Content Management Scenarios Activities Steps
Asset Workflow Bundled assets Core framework separate from scenes Load as needed, reduce load times Scalability Reusability
Asset Workflow (Cont) Future-proofing for new devices Scaling assets Levels of detail Working in percentages, not pixels Polygons vs. Textures
Content Externalized, editable, extensible Runtime content building and testing Push & pull content from a database Create an activity and test without rebuilding Eliminate guesswork
Thank you