Many applications seem to have the potential to be able to solve many environmental, social, and educational problems. These apps, in theory, are well-oriented, target key issues, and have the support of both public and private organizations that provide budget and the know-how to make them a reality that can change millions of lives. This problem, according to Senior Software Engineer Ridhwana Khan, is especially common in Africa.
When these apps are published, they fall short in terms of performance and success. If everything was so well planned and the solutions offered were so meaningful, why don’t these projects reach their targets or the people that they were meant to benefit?
Khan, based on her experience on multiple education, inclusion, and sustainability projects in Africa, shares how app performance plays a fundamental role when launching a successful application in Africa.
Watch the video below:
The reasons
According to Ridhwana Khan, many developers and companies creating solutions for Africa don’t really know the African context and the challenges that it brings for app development: slow (and expensive) Internet connections, limited access, low-end smartphones, and computers are facts that every dev should take into account when designing an app for Africa.
In this context, Khan explains three points that are essential for not failing.
1) Sometimes, no app is best than an app. Does your solution really need to be on a smartphone? Isn’t maybe best to think of an alternative that can be used in lower-end phones?
2) With scarce connectivity, comes also scarce data and information. If your solution relies on data, then you have to find non-online methods of collecting this information.
3) Performance is key: with poor connections and low-end phones and computers, your app will definitely need to be lightweight if you don’t want it to fail.
App performance tips
Here are some tips and best practices for boosting app performance recommended by Ridhwana Khan in her video:
- Avoid client-side rendered apps: these can become super slow with bad connections.
- Choose server-side rendered apps: the server does most of the work and loading, so a user with a low-end computer or poor connection will experience better loading times.
- React Hydration: this method helps to reduce the amount of JavaScript needed to make pages interactive.
- Optimize your bundle: it’s vital to optimize all the client-side rendering because too much JavaScript can even crash web applications in low-end systems.
- Reduce libraries: many libraries can bloat JavaScripts with unnecessary dependencies. Don’t overuse libraries, choose high-performance ones and only when you really need them.
- Code Splitting: split JavaScript by page, root, or component. This helps to lazy load the needed parts of code only when needed.
More about the author
Ridhwana Khan is a senior software engineer at DEV where she is able to merge her passions for coding, building communities and learning and sharing. She is also an advocate for diversity and inclusion in the tech space and has co-founded a Non Profit Organisation called Kasi Maths which empowers students in under-developed areas to pursue an interest in STEM. When she’s not writing code, Ridhwana can be found curled up with a novel or booking her next travel expedition.