Effizienzsteigerung in der App-Entwicklung durch spezialisierte, wiederverwendbare Libraries

3. June 2024 - from Maximilian Lemberg

Editor's Note: As part of his studies in iCompetence (Computer Science, Design & Management) at the University of Applied Sciences Northwestern Switzerland FHNW, our iOS developer Maximilian Lemberg wrote about the use of libraries in the development of native apps. In the following, we are making the article - minimally edited and supplemented - available to the general public. It provides a brief overview of the opportunities and challenges of using libraries, i.e. reusable and modular parts of code in app development. If you have any questions or exciting input on this or other app development topics: We always have open ears or inboxes for them.

And now enjoy reading!

Abstract

The constant demand for efficient and innovative software solutions presents app developers with enormous challenges. This article examines the importance of specialised, reusable libraries in app development. It describes the initial situation at Apps with love and the current challenges in software development, especially for recurring functionality. It explains how libraries can promote code reuse, simplify maintenance and reduce costs thanks to their modular structure. It also explains how an existing authentication library has significantly reduced the number of lines of code to be written in projects, saving time and resources.

The importance of efficiency in app development

Efficiency in software development, especially for mobile applications, is a key success factor. Developers must meet ever-increasing demands for functionality and quality, while resources such as time and budget are often limited. An effective approach to overcoming these challenges is the use of specialised, reusable libraries. They accelerate development processes and ensure higher quality and maintainability of applications.

The challenges of recurring functions in app projects

Many app projects require recurring functions that nevertheless often have to be implemented from scratch. A classic example of this is logins or the password recovery function - in principle, they always fulfil the same function, but due to specific requirements, they still often have to be customised. 

This leads to redundant work and a high level of shared code. Developers are forced to deal with similar tasks instead of being able to focus on innovative features. These recurring tasks diminish creative freedom and reduce efficiency. 

The use of standardised, reusable libraries helps to simplify some of these recurring tasks so that you don't have to start from scratch every time.

What makes specialised, reusable libraries?

Specialised, reusable libraries are collections of routines or functions that solve specific tasks efficiently. They offer standardised, proven methods for solving recurring problems without having to rewrite code for each project. In an analysed paper, important principles for the development of libraries are highlighted:

  • Generalisation and variability: Libraries should be developed in such a way that they cover general use cases and remain flexible enough to support specific requirements.

  • Design principles: Clear design principles ensure efficiency and maintainability of the libraries. This includes, for example, a consistent and meaningful naming scheme for functions, classes and variables. Precise documentation and standardised interface conventions are also crucial to ensure the user-friendliness of a library.

However, further work also emphasises the challenges of reuse:

  • Poor maintenance or unclear documentation: This often leads to libraries not being used. Developers should carry out a careful review to avoid re-implementation.

  • Complex dependencies: These make developers reluctant to use libraries. Libraries should therefore be kept modular and simple.

Increased efficiency through standardised libraries

The reuse of code through specialised libraries saves development time and minimises errors. The use of libraries significantly reduces development time and increases quality at the same time. In addition, libraries improve the scalability and maintenance of applications through standardised methods for recurring functions. The resulting cost efficiency leads to significantly reduced overall costs. Provided, of course, that the above-mentioned principles are taken into account when developing the libraries.

Use of authentication libraries at Apps with love

For example, the Apps with love development team has developed a specialised authentication library to simplify the authentication process. This library was designed to standardise and optimise recurring login processes, ensuring a reliable and secure user experience. The graphical representation shows that this library significantly reduces the number of lines of code to be written in projects by providing reusable routines that do not have to be rewritten in every project.

Graphic showing the average number of lines of code written with and without libraries on the y-axis and the number of projects on the x-axis
Graphic showing the average number of lines of code written with and without libraries on the y-axis and the number of projects on the x-axis

Strategic development of future libraries

Apps with love  plans to develop additional libraries that optimise certain recurring tasks. A planned error handling library will standardise error logging and management. An expanded localisation library will centralise the management and updating of multilingual content in order to simplify the handling of translations. Such libraries can make the entire development process smoother and more scalable by ensuring consistent error handling and localisation for all projects.

The standardisation and simplification that can be achieved through the strategic development of libraries should enable developers to focus more on the development of innovative features that highlight the unique selling points of the apps.

Overall savings through reusable libraries

The targeted use of reusable libraries has significantly increased efficiency at Apps with love. By reducing redundant lines of code and reusing modular building blocks, developers can focus their creative energy on sophisticated features and innovations. This underlines the strategic importance of specialised libraries in modern development practices, as they reduce costs, improve scalability and optimise development processes.

Challenges and limits

Despite the obvious benefits, libraries are not without their limitations. Challenges include specific project requirements, the complexity of large libraries, and reliance on outdated or poorly maintained tools. Compatibility issues with existing systems or dependency conflicts can also limit flexibility. Careful evaluation of libraries and their strategic use is therefore critical. Another challenge is to ensure that libraries are regularly updated and do not become obsolete. Development teams need to strike a balance between using established libraries and avoiding dependencies that could constrain the whole project.

The future of specialised libraries in app development

Specialised, reusable libraries are key tools in modern software development. They offer immediate benefits such as increased efficiency and cost reduction, but also enable sustainable and future-proof development practices. The future of app development will be characterised by an increasing specialisation of these libraries. Development companies such as Apps with love will be able to react more quickly to market requirements and deliver high-quality products.

Sources

1. «Principles for writing reusable libraries», ACM SIGSOFT Software Engineering Notes.

2. A. Lampropoulos, «Mobile Application Development with reusable code».

3. «Why reinventing the wheels? An empirical study on library reuse and re-implementation», Empirical Software Engineering, Jan. 01, 2019.  

4. "Code reuse", Wikipedia.

5. «Library (computing)», Wikipedia

We just noticed that you surf with Internet Explorer. Unfortunately, our website does not look so nice with it.

You want to know why that is?
We have written about it.

Blog

You need help with the changeover?
Get in touch. We are happy to help

Contact

Install a new browser?
There's lots of choice.

Browser