Scaling Mobile Apps

Parthasarathy S

February 24, 2021 -

  • 5 min read
  • Scaling Mobile Apps

    When we start with Mobile app development we focus on key features to be made available to users at first. However, we will keep adding more features to it on a regular basis. Its important that we must look at technical aspects especially on scalability, performance when the app grows in features as well as user base.

    Key Considerations & Best practices

    • Modular structure builtin in the code from groud-up. This makes it easy for any team to do changes and add features.
    • Have a common utility library in the code to have functions used by multiple other modules / features.
    • Source control with a proper versioning & release process like gitflow.
    • Keep a watch on app size and ensure there are no unwanted libraries, debug related code etc., exists. You can refer here on how measure and monitor app sizes on both Android and iOS.
    • Update the app only if necessary and when you are adding feature, fixing bugs. Keep a remote config / API based approach to update the following in background or while using the app with user content,
      • Logo, Colour palette, Label text
      • Menu / Tab related data with routing
      • Core Master Data, Seed Data
      • UI Styles, Icons
    • To improve performance seed master / static data during first load and sync it every time user opens the app. Keep such seed data minimal in ensuring it does not take too much time to fetch data from backend.
    • It's very important to spend good amount of time in choosing right 3rd party libraries as it directly impacts performance, usability and potentially scalability.
    • Prioritising the features to add in App by priority and criticality is necessary. However, its important to also consider the impact on app build as well.
    • Have a proper monitoring system in place for app crashes, app usage, time taken for critical pages to load
    • Apps with gallery view / having a lot of images must consider performance & scalability during build
      • Lazy loading of images
      • Having multiple sizes of images and showing them in appropriate view. (low resolution in gallery, list view and higher resolution in detail)
      • Use a dedicated CDN when dealing with a lot of images
    • Scaling app from User Interface (UI) is also important. The UI must be built as responsive from ground-up so that it can easily scale to multiple devices (Phone, Tablet, Large displays)
    • API layer must be robust and easily scalable w.r.to user load, adding features, development and integration. It must be designed and built for mobile apps.
    • It's important to have Product Management Approach than a traditional Project management. The thought process on building this a product brings in standards & process which will be helpful in scaling the app.
    • Consider Rapid Application Mobile Development aka RAMD tools (App dev, API, data fetch...) tools to fast track app development and scale in adding features faster.