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 10: Error Retrieving Chapter 10

PreviousTypes of data pipelinesNextEventual Connectivity on Mobile Apps

Last updated 1 year ago

(By Camilo Escobar-Velásquez)

_(Free image by Fancycrave on [Unsplash](https://unsplash.com/photos/mIPu1hzjkZQ))_


Have you ever found yourself fighting with a mobile app because it is not able to publish your last status or picture? or maybe you are not able to send that waited message to your crush? Have you ever found out that some important work you have done was lost due to a connection error? I think we have all found errors like "An error ocurred:java.net.UnknownHostException ..." while using our cellphones. Or maybe, one of your parents has called you because "that thing doesn't work" referring to a mobile app they are trying to use. Well, let me tell you about connectivity errors on mobile apps.

Since smartphones are having a fundamental role in common life, we are relying on these devices (truly on mobile apps) to ease our daily tasks. However, these mobile devices are not always connected to the internet, and that is why you, as a developer, need to solve all the problems that might occur due to a lack of connectivity.

Let just imagine the next case. You work as a technician for an air conditioning company. Your boss has told you that the air conditioner on professor Mario Linares-Vásquez's office is not working, and you need to go to the Mario Laserna building's basement to check the pipelines that supply the cold air to the professor's office. When you arrive at the basement you realize that there are several broken tubes and decide to redact an email on your tablet to start a service order. You add a lot of pictures to the email and add a detailed description of the type of tubes and the correct procedure the next technician must follow to solve the problem. After 3 hours of work, you send the report via email to your boss, but when the app tries to send the email it shows a message that says: "There is an error sending the email" and then it closes. You try to open the app again and it starts showing a message that says: "Download process failed. This app will close". After the 20th try, the app opens but there isn't any saved draft of your email or the pictures you took. You run to your boss's office to tell him what happened and try to send an email in his office to show him that it was a problem from the email app. Unfortunately, when you send the email from your boss's office it all works fine. Overwhelmed by this behavior, you realize that the source of the problem is that there wasn't an active internet connection in the basement while there was one in your boss's office.

I don't know about you, but I would definitely uninstall that email app and start using another as soon as possible. But there is one main question that is important for you to get from this example ...

How can I avoid providing this awful experience to my users ?