Chapter 4 – Determining Your App’s Components
Provides a list of the different kinds of technologies, libraries, features and functionalities that are commonly used in mobile apps and explains what each is and why you might want to include it in your app
- Dealing with Devices
- Choosing Your Mobile Platforms
- Exit Strategy Platform Selection
- Platform Selection for the Rest of Us
- Finding a Starting Point
- Form Factor
- Rotation
- Supporting Older or Future Devices
- Supporting Older Hardware
- Supporting Older Software Versions
- Supporting Newer Software Versions
- Device Sensors and Capabilities
- Native, Web, and Hybrid Apps
- HTML5 Apps
- Mobile Web Apps
- Native Apps
- Hybrid Apps
- “Write Once, Wrong Everywhere”
- Situations Where Hybrid App Frameworks Make Sense
- Rapid Development for Market Validation
- Reusing Existing Web Resources
- Leveraging Existing Development Talent
- Could Your Idea Be Done in a Website?
- Discoverability
- Monetization
- Dealing with Third-Party Frameworks
- Better, Faster, Easier, Cheaper
- Bugs
- Correlating Quality with Popularity
- Getting Locked In
- Finding Developers Experienced with the Component
- Abandoned, Fractured, or Rewritten Component Fates
- Poor Documentation
- Adapting to New Features (e.g., New Processors)
- Licensing
- Mitigation
- Game Engine Apps
- OpenGL
- Unity
- SpriteKit and Cocos2D
- Still Third-Party Frameworks, But Better
- Corner Cases and None of the Above
- Dealing with Analytics
- Services
- What to Collect
- Dealing with Video and Audio
- Dealing with Peripherals
- Bluetooth
- Keyboards
- Wi-Fi (802.11)
- Dealing with Accessibility
- Dealing with Custom or Complex Animations
- Dealing with Conditional Formatting
- Dealing with Localization
- Dealing with User Preferences
- Dealing with Data Storage
- What Data Do You Need to Keep?
- How Big Will It Get?
- How Does It Need to Be Accessed?
- Structured or Relational Data
- Direct Queries or Mapped Objects
- Whole Screen Data Files
- Document Format Apps
- Full Text Search
- All of the Above
- How Secure Does It Need to Be?
- How Fast Does It Need To Be Displayed?
- How Often Does It Change?
- Dealing with Servers
- Writing Your Own Server
- Platform-as-a-Service (PaaS)
- Social Media and Other Third-Party Services
- Dealing with Syncing
- Dealing with Push Notifications
- Dealing with Background Tasks
- Wrapping Up