Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tips and Tricks for Productive Mobile Development

Tips and Tricks for Productive Mobile Development

Talk from The Assembly event in Dubai on June 18th, 2022. This version is more intended for managers and team leads.

Ahmed El-Helw

June 18, 2022
Tweet

More Decks by Ahmed El-Helw

Other Decks in Programming

Transcript

  1. Factors affecting Speed Things to Consider • Distractions • Communication

    Problems • Con fl icting Priorities • Technical Debt
  2. Factors affecting Speed Things to Consider • Distractions • Communication

    Problems • Con fl icting Priorities • Technical Debt • Production Fires
  3. Factors affecting Speed Things to Consider • Distractions • Communication

    Problems • Con fl icting Priorities • Technical Debt • Production Fires • Hardware
  4. Process Bottlenecks Mobile Bottlenecks • Company release process • Application

    store review process • Application store rejections • Adoptions take time
  5. Ask the Customer Running Customer Studies • You are not

    your customer • Wireframes and discussions • Prepare • Question • Understand
  6. Customer Behavior Understanding and Monitoring Customer Behavior • Dashboards •

    critical business statistics • conversion funnels • Slice by application version • Alerts
  7. Dealing with Problems How to React to Problems • Ignore

    it for now • Hot Fix in Production • Release takes time • Adoption takes time • Risky
  8. Other Considerations Things to Keep in Mind • Be mindful

    about: • The e ff ect of experiments on each other • The e ff ect of feature fl ags on each other • Dead Experiments increase Technical Debt
  9. Data Some odds and ends about Data • Building trust

    with Customers • Compliance • App Stores • Governments
  10. Structuring Teams How to Structure Teams • Single full stack

    vertical teams • Separate splits between frontend and backend
  11. Frameworks that Handle Everything Sharing Code Between Platforms • Pros

    • Potentially easier to hire for • Write once, use everywhere • Faster development (hot reload, etc) • Potential for hot loading code
  12. Frameworks that Handle Everything Sharing Code Between Platforms • Cons

    • Need to explicitly separate UI for iOS and Android • Doesn’t “feel” native irrespective • New platform features are di ffi cult to adopt - need to wait • Overhead on binary size • Rejections Likely
  13. C/C++ Sharing Code Between Platforms • Cons • Di ffi

    cult • Still have to handle di ff erences between platforms • Custom development environment
  14. Kotlin Multiplatform Sharing Code Between Platforms • Pros • Completely

    native • Easy to learn for engineers writing Swift • Lots of third party libraries • Backed by JetBrains and Google • Supports a plethora of platforms
  15. Kotlin Multiplatform Sharing Code Between Platforms • Cons • iOS

    inter-op with Objective-C instead of Swift • Convincing iOS Engineers is Di ffi cult • Tooling • Still in the process of maturing
  16. Benefits and Costs Sharing Code Across Platforms - KMP •

    Pros: • Keeps iOS and Android consistent • Maintenance is cheaper • In the long run, development may become cheaper
  17. Benefits and Costs Sharing Code Across Platforms - KMP •

    Cons: • Might be more expensive initially • Di ffi cult to get buy in from iOS engineers • Inter-op with Objective-C instead of Swift
  18. Tests Catching Issues Early • Tests • Unit Tests •

    Integration Tests • On-Device Integration Tests (“UI Tests”) • Screenshot Tests