Book
  • Introduction
  • Welcome !!
  • Chapter 1: The mobile ecosystem
    • Fragmentation is the devil
    • There is more than one type of mobile app
    • ... more than one type of app
    • ... one type of app
    • Under pressure (ee da de da de) !!
    • Further reading!!
  • Chapter 2: Let's start with design thinking
    • A taste of design thinking
    • The five steps
    • Design for everybody
    • Accessibility in mobile apps
  • Chapter 3: Give me a context and I will give you an app
    • Users
    • Personas? Users ? What is the difference?
    • Please, help me to model the context
    • The context canvas
  • Chapter 4: Powerful models
    • Data architecture is the foundation of analytics
    • From data to information and knowledge
    • Information/Knowledge in our mobile ecosystem
    • Questions to ask yourselves when building and classifying questions
    • The visualization-data map
    • On the scene: describing how personas interact with your app
  • Chapter 5: A GUI is better than two thousand words
    • 'Good to Go:' Let's explore the Design Systems
    • Designing GUI Mocks
    • No prototype... no deal
  • Chapter 6: About mobile operating systems ... and other deamons
    • The Android OS ... son of LINUX
    • iOS son of Darwin? or is it iOS son of UNIX?
    • Kernels
  • Chapter 7: Yes, software architecture matters !!
    • Self-test time
    • About design and design constraints
    • Architects' mojo: styles and patterns
    • What you need is a tactic !!
    • Self-test time 2 (for real)
    • Further reading
  • Chapter 8: Finally... coding
    • MVC, MVVM, MV*, MV...What?
    • Programming models: the Android side
    • Hello Jetpack, my new friend... An Android Jetpack Introduction
    • Programming models: the iOS side
    • Controllers and more controllers
    • Flutter son of... simplicity
    • Programming models: Flutter?
    • Flutter: State matters... Let´s start simple
    • Flutter: State matters... Complex stuff ahead
    • Micro-optimizations
  • Chapter 9: Data pipeline
    • Generalities data pipelines
    • Data storage types
    • Types of data pipelines
  • Chapter 10: Error Retrieving Chapter 10
    • Eventual Connectivity on Mobile Apps
    • How to handle it on Android
  • Chapter 11: The jewel in the crown: Performance
    • As fast as a nail
    • Memory bloats
    • Energy leaks
    • Final thoughts
  • Chapter 12. Become a performance bugs exterminator
    • Weak or strong?
    • Micro-optimizations
    • The single thread game !!
    • Using multi-threading like a boss !!
    • Caching
    • Avoiding memory bloats
    • Further readings
Powered by GitBook
On this page

Chapter 11: The jewel in the crown: Performance

PreviousHow to handle it on AndroidNextAs fast as a nail

Last updated 1 year ago

(By Mario Linares-Vásquez)

(Free image by Xuan Nguyen on )


The image by Xuan Nguyen captures a moment in a play (maybe a drama or a contemporary dance one) in which one of the characters shows its skills jumping on the stage (with style). The individual performance is everything for an actor or a dancer; but the success of the play also depends on the performance of all the components as a whole system. All the components should interact together (i.e., the actors, the musicians, etc.) smoothly, with aesthetics, and in a coordinated way for the amusement of the public.

Similarly to a play, a mobile app is a set of different components that interact together in order to provide users with beloved features that would make their life easier. However, there are several constraints that could be show stoppers and prevent the app for having a good performance... on the stage.

This chapter is about the performance bugs that are common in mobile apps. Performance matter`s a lot in mobile apps because the operating system, the devices, and the programming models impose several constraints on the apps, in terms of how the computing hardware resources can (and should) be used. Mobile apps are unique in terms of the scenarios and resources constraints that can directly impact apps' performance. Therefore, knowing typical performance bugs and the strategies to deal with them, is a MUST in mobile software engineer toolbox. Start reading the section and learn about GUI lags, ANRs and OOMs.

Unsplash