Design patterns within an augmented reality mobile application

Robert Berkelmans
9 min readJun 20, 2021

Abstract

Many consumers find physical instruction manuals that accompany products they purchase difficult to follow. This has resulted in purchased goods being sent back without the consumers knowing how to use them properly. In our personal opinion, a viable replacement for physical instruction manuals would be digital augmented reality (AR)-based manuals that can be viewed on a mobile app. Further analysis has shown that consumers who follow AR-based manuals over traditional instructional manuals have a better overall experience. Additionally, AR-based manuals come with the benefit of efficient editability. It has been concluded that creating a mobile app that allows consumers to follow manuals with the help of augmented reality, is a viable solution for both consumers and manual manufacturers.

Additionally, when creating an augmented reality-based app, it is crucial to consider the use of design patterns, since they play an important role in making software applications more future-proof. Therefore, in our professional opinion, it is difficult to create a future-proof software application without the correct implementation and use of design patterns. Three research papers, our own experiences, and opinions on the topic are used to discuss the topic and reach a conclusion. The conclusion suggests that it is not possible to create a future-proof application without the use of design patterns. However, using design patterns if unnecessary might be more damaging than not implementing a design pattern. Therefore, risks will appear in the long run when incorrectly using or implementing a design pattern.

This article discusses

  • Problems consumers face while using traditional instruction manuals.
  • Converting physical instruction manuals to digital augmented reality-based manuals.
  • Approaches of implementing an application for visualizing augmented reality-based manuals.
  • Whether augmented reality-based manuals are a viable replacement for traditional instruction manuals.
  • The advantages of applying design patterns to make software applications more future-proof.
  • The risks when choosing to implement a design pattern for a problem when this is unnecessary.
  • The difficulties of choosing the right design pattern and risks when choosing the wrong design pattern for a situation.

Keywords

Augmented reality, Mobile applications, Digital instruction manuals, Physical manuals, Design Patterns, Software Applications, Future-Proof, Maintainability, Extensibility.

Introduction

Augmented reality manuals

It has been observed that consumers have difficulty following the physical instruction manuals that accompany the products they purchase. According to research by Novick and Ward (2006), many consumers find paper manuals to be cumbersome, hard to navigate, and difficult to understand, which is why they are often neglected. Consequently, consumers often send back purchased goods without knowing how to use them correctly. In our professional opinion, this could be prevented by replacing traditional manuals with augmented reality (AR)-based mobile applications that display instructions more straightforwardly. This could make manuals more accessible and engaging for consumers. To determine the viability and effectiveness of AR-based manuals, various solutions from studies together with our personal experience regarding this matter will be analyzed and compared.

Design patterns and future-proofing

Design patterns were introduced in the 1990s and are considered the standard of “best” software design. This is one of the reasons why design patterns are a fundamental concept within object-oriented programming (Professor, Jekese, & Hwata, 2015). Another important reason for using design patterns is creating flexible, scalable, and maintainable applications. These applications can be seen as future-proof software applications, as they can be easily maintained and expanded with new functionalities (Professor et al., 2015). Many studies have been conducted to measure the effectiveness of using design patterns in application development. In our professional opinion, it is difficult to create a future-proof software application without the correct implementation and use of design patterns. This paper sets out to explain why using design patterns in application development is essential for creating future-proof software applications. This article is composed of scientific research, professional experiences, and opinions. The reason behind this research article is that design patterns play an increasingly important role in application development, and it is important to highlight the advantages and disadvantages of applying design patterns, as they have a major impact on the long-term development process.

Related work

Augmented reality manuals

A study by Gattullo et al. (2019) discusses several advantages to AR-based manuals over traditional technical instruction manuals, such as real-time adaptability and extensibility. In our professional opinion, these advantages could be beneficial for both consumers and manual manufacturers. However, the study does not focus on mobile compatibility to ensure that a broad target audience can be reached. From a more practical perspective, an article by Müller et al. (2013) discusses a realized prototype of an application that visualizes AR-based manuals. In our personal opinion, this prototype is a substantial improvement over traditional paper manuals which consumers find difficult to follow.

Design patterns and future-proofing

According to research from Professor et al. (2015), the use of design patterns provides flexibility and extensibility to software applications. As a result, this will enhance the structure of software, speed up the implementation of additional features and simplify maintenance. Prechelt, Unger, Tichy, Brossler, & Votta (2001) mention that applying a design pattern may, on the one hand, be a good idea because of the advantages of common terminology, proven solutions and best practices. However, on the other hand, it might be a bad idea because the solution applied may be more complicated than necessary and consequently, make understanding and maintaining the code more difficult. In another research by Sahly, & Sallabi (2012), the authors describe that the use of design patterns leads to improved software quality, lower development costs, and easier maintenance. However, these advantages are only gained when the correct design pattern is chosen for the problem.

Analysis

Augmented reality manuals

A research article by Gattullo et al. (2019) introduces an approach to converting physical technical manuals to virtual AR-based manuals. The goal is to minimize the amount of text a user has to read, which will reduce cognitive load. Additionally, all manual data would be stored in a database, which is editable in real-time to ensure manuals can be translated and improved dynamically. Besides this, steps are explained in simplified technical language and visual elements are displayed to guide the user. Gattullo et al. (2019) propose to visualize these on a head-mounted display, which in our personal opinion is not a viable option as not every consumer owns such expensive equipment.

An approach to deploy AR-based manuals is discussed in an article by Müller et al. (2013) which talks about a tablet application prototype named GuideMe that assists consumers in using appliances. The application scans QR codes through the tablet’s camera and places annotations, arrows, and frames on the specified elements through the camera screen. In our professional opinion, this approach is clever as it essentially gives the user live visual instructions, which would be simple to follow. Moreover, a group of 10 participants completed several tasks with instructions from GuideMe, and other similar tasks using printed manuals. The participants’ performances were compared and in general, significantly more time was needed to complete the tasks using GuideMe. However, 90% of participants still preferred using GuideMe over following printed manuals, because they enjoyed the AR experience more (Müller et al., 2013).

In our professional experience, our project team has built a minimum viable mobile application that utilizes AR to assist users in performing DIY repairs. Similar to the prototype discussed by Müller et al. (2013), elements that the consumer needs to interact with will be highlighted and described through a live camera stream on the mobile device. Additionally, all data the AR-based manuals require is stored in a database to make real-time updates possible, like Gattullo et al. (2019) discussed previously. However, what makes the DIY repair assist app stand out is that it does not require the use of QR codes to recognize certain elements. Instead, the entire scene displayed by the live camera feed is recognized, allowing the virtual elements to be shown instantaneously. In addition, manuals in this application utilize a decision tree that consumers can go through by answering questions. Consequently, the manuals become interactive and engaging as the consumer’s feedback will have an impact on which steps will be displayed. Furthermore, the application is available on mobile devices, which guarantees considerable accessibility since nearly all persons carry a mobile device with them.

Design patterns and future-proofing

Future-proof software applications are perceived as flexible, scalable, and easily maintainable. An important aspect in achieving this flexibility, scalability, and maintainability is by applying design patterns.

The effect of design patterns on the flexibility of software applications is characterized by Professor et al. (2015) as to how design patterns help improve the structure of the software, speed up the implementation of new features and simplify maintenance. In our professional experience, the implementation of design patterns in complex software applications increases the flexibility, scalability, and maintainability of these systems, making them more future-proof. The reason for this is that design patterns add modularity, and improve the architectural structure to software applications (Professor et al., 2015).

As mentioned by Professor et al. (2015), applying a design pattern has its advantages, and if implemented correctly, increases the flexibility and extensibility of a software application. However, this does not mean that a design pattern has to be implemented if a problem occurs. On the contrary, Prechelt et al. (2001) mention that selecting a design pattern might be a bad choice, as the solution applied is most likely to be more complicated than necessary and therefore, make understanding and maintaining the code more difficult. Implementing a design pattern for every problem will only make a software application less future-proof, as the software application will become more complex and therefore, harder to maintain and makes it more difficult to add additional features. This makes it particularly harder for new developers to work on a software application, as they need to spend more time understanding the application and the applied design patterns. As a result, new developers might find it difficult to expand or maintain the application (Sahly & Sallabi, 2012).

Sahly & Sallabi (2012) state that choosing the correct solution for a problem proves to be difficult, as one needs to assess a situation correctly to gain the most out of it. Therefore, only software engineers with a solid understanding of design patterns are likely to correctly identify an appropriate design pattern for a problem, whereas inexperienced software engineers will find this more difficult. This statement is correct in our professional opinion, as there are several design patterns, some of which slightly overlap with one another and share overall similarities. In our professional opinion, selecting an incorrect design pattern for a problem leads to unwanted problems in the future. It makes a software application more complex and harder to maintain and therefore, making it less future-proof. However, there are many tools and online sources in this era to help developers determine the appropriate design pattern for a problem.

Conclusions and recommendations

Augmented reality manuals

It can be concluded that the replacement of physical instruction manuals with AR-based manuals would rectify the issues consumers currently encounter. Additionally, the theoretical and practical analysis shows that the development of an AR-based mobile application for interactive manuals is feasible, as it has been implemented before. In addition, test results compiled by Müller et al. (2013) indicate that most users prefer the AR experience rather than following traditional paper manuals. However, it is crucial that a solution for visualizing AR-based manuals is compatible with accessible devices like mobile phones to ensure the vast majority of people will be able to use them. Nevertheless, the ease of updating existing AR-based manuals, makes the solution also viable for manual manufacturers.

Currently, the limitation for deploying an AR-based manual to different mobile devices has not been considered. Therefore, the possibility exists that the solution may not run well performance-wise on lower-end devices. When manual manufacturers consider releasing a fully featured app for AR-based manuals, it is imperative that further research is conducted regarding the capability of running AR software on various mobile devices.

Design patterns and future-proofing

From the information gathered in the analysis, it can be concluded that it is difficult to create a future-proof software application without the correct implementation and use of design patterns. Correctly implementing design patterns increases the maintainability of software applications and allows additional features to be added quickly, with only minor changes to the existing codebase.

Major issues will occur when a design pattern is implemented incorrectly, which negatively impacts the maintainability of a software application. Besides, it is not always necessary to implement a design pattern, as it may make the application more complex. Therefore, it is recommended to investigate a problem thoroughly before choosing and implementing a design pattern, as it might be unnecessary.

References

Gattullo, M., Scurati, G. W., Fiorentino, M., Uva, A. E., Ferrise, F., & Bordegoni, M. (2019, April 1). Towards augmented reality manuals for industry 4.0: A methodology. ScienceDirect.
https://www.sciencedirect.com/science/article/abs/pii/S0736584518301236

Müller, L., Aslan, I., & Krüßen, L. (2013, January 1). GuideMe: A Mobile Augmented Reality System to Display User Manuals for Home Appliances. ResearchGate.
https://www.researchgate.net/publication/264422739_GuideMe_A_Mobile_Augmented_Reality_System_to_Display_User_Manuals_for_Home_Appliances

Novick, D. G., & Ward, K. (2006, October 18). Why don’t people read the manual? ScholarWorks.
https://scholarworks.utep.edu/cgi/viewcontent.cgi?article=1010&context=cs_papers

Prechelt, L., Unger, B., Tichy, W. F., Brossler, P., & Votta, L. G. (2001, December 1). A controlled experiment in maintenance: Comparing design patterns to simpler solutions. IEEE Journals & Magazine | IEEE Xplore. https://ieeexplore.ieee.org/document/988711

Professor, R., Jekese, G., & Hwata, C. (2015, March 30). Impact of object-oriented design patterns on software development. ResearchGate. https://www.researchgate.net/publication/273457811_Impact_of_Object_Oriented_Design_Patterns_on_Software_Development

Sahly, E., & Sallabi, O. M. (2012, December 18). Design pattern selection: A solution strategy method. ResearchGate. https://www.researchgate.net/publication/261335857_Design_Pattern_Selection_A_Solution_Strategy_Method

--

--