7.1. Limited Device Hardware7.1.1. Lightweight Libraries7.1.2. Reduce Application Footprint7.1.3. Minimize the Garbage Collector7.1.4. Use Mobile Portals7.1.5. Use Design Patterns Judiciously7.2. Slow, Unreliable Networks7.2.1. Support the Offline Mode7.2.2. Use Remote Facades7.2.3. Place Portals Locally7.2.4. Buffered I/O7.2.5. Encrypt Your Data7.2.6. Obtain Server Status Efficiently7.3. Pervasive Devices7.3.1. Protect On-Device Data7.3.2. Synchronize Often7.3.3. Optimize for Many Devices7.3.4. Centralized Provisioning7.4. Ubiquitous Integration7.4.1. Proprietary Binary Protocols7.4.2. Use Mobile RPC Frameworks7.4.3. Messaging Is Our Friend7.4.4. XML and Web Services7.5. The Impatient User7.5.1. Take Advantage of the Rich UI7.5.2. Use Threads Judiciously7.5.3. One Screen at a Time7.5.4. Store User Preferences7.5.5. Use Deployment Descriptors7.6. SummaryResources