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