AR Interior Design App PDF
AR Interior Design App PDF
AR Interior Design App PDF
Software Engineering
Final Year Project Report
By
Juan Armond
Tel. 075 1578-9552
Email: [email protected]
Table of Contents
Abstract ................................................................................................................................... 4
Acknowledgements.................................................................................................................. 5
Chapter 1 – Introduction .......................................................................................................... 6
1.1 Project Overview ..............................................................................................................................6
1.2 Problem to be Solved .......................................................................................................................6
1.3 Project Objectives ............................................................................................................................6
1.3.1 Project Objectives .......................................................................................................................7
1.3.1.1 Database ............................................................................................................................7
1.3.1.2 Scan and Detect Objects ....................................................................................................7
1.3.1.3 Add 3D Objects ..................................................................................................................7
1.4 Applied Efforts for Objectives Completion ......................................................................................8
1.4.1 iOS Application ............................................................................................................................8
1.4.2 Scan and Detect Objects .............................................................................................................8
1.4.3 Add 3D Objects ............................................................................................................................8
1.5 Project Beneficiaries.........................................................................................................................9
1.6 Report Summary ..............................................................................................................................9
1.7 Summary of Chapter 1 .....................................................................................................................9
Chapter 2 – Outputs Summary................................................................................................ 10
2.1 Software Requirements Analysis Document ................................................................................ 10
2.2 Swift Source Code ......................................................................................................................... 10
2.3 iOS Application .............................................................................................................................. 10
2.5 Summary of Chapter 2 .................................................................................................................. 10
Chapter 3 – Literature Review ................................................................................................ 11
3.1 Analysis of Existing Software......................................................................................................... 11
3.2 Project Planning and Design ......................................................................................................... 12
3.3 Tools and Libraries for Development ............................................................................................ 12
3.3.1 Apple’s Developer Tools ........................................................................................................... 12
3.3.4 Firebase SDK ............................................................................................................................. 12
3.3.5 SimplePDF API .......................................................................................................................... 13
3.3.6 CocoaPods ................................................................................................................................ 13
3.4 Third Party Resources ................................................................................................................... 13
3.4.1 YouTube.................................................................................................................................... 13
3.4.2 Stack Overflow ......................................................................................................................... 13
3.5 Summary of Chapter 3 .................................................................................................................. 13
Chapter 4 – Method ............................................................................................................... 14
4.1 Scrum Methodology ...................................................................................................................... 14
4.1.1 Pre-Game Phase ....................................................................................................................... 14
4.1.1.1 Planning .......................................................................................................................... 15
4.1.1.2 High-Level Design / Architecture .................................................................................... 15
4.1.2 Development Phase ................................................................................................................. 16
4.1.2.1 Sprint Backlog List ........................................................................................................... 16
4.1.2.2 Sprints ............................................................................................................................. 17
4.1.3 Post-Game Phase ..................................................................................................................... 20
4.2 Summary of Chapter 4 .................................................................................................................. 21
Chapter 5 – Results ................................................................................................................ 22
5.1 Pre-Game Phase ............................................................................................................................ 22
5.1.1 Interview................................................................................................................................... 22
5.2 Development Phase ...................................................................................................................... 23
5.2.1 Firebase Database .................................................................................................................... 23
5.2.2 Scan, Detect and Add 3D Object .............................................................................................. 24
5.2.3 User Interfaces with Navigability ............................................................................................. 25
5.2.4 Welcome Page Create Account, Login, Upload User Avatar and 3D Object file...................... 26
5.2.5 Browser, Refresh and Search/Filter Products List .................................................................... 27
5.2.6 Save and Share Photo ............................................................................................................... 28
5.2.7 Download Progression Bar ....................................................................................................... 28
5.2.8 Shopping List ............................................................................................................................ 29
5.2.9 PDF Invoice Generator ............................................................................................................. 30
5.2.10 Popup Messages ...................................................................................................................... 30
5.3 Post-Game Phase .......................................................................................................................... 31
5.3.1 Task Scenarios .......................................................................................................................... 32
5.3.2 Usability Questionnaire ............................................................................................................ 33
5.3.3 Evaluation Results .................................................................................................................... 33
5.3.3.1 Privacy ............................................................................................................................. 33
5.3.3.2 Simplicity ......................................................................................................................... 34
5.3.3.3 Technical Impact ............................................................................................................. 37
5.3.2.4 Free Form Question ........................................................................................................ 40
5.4 Summary of Chapter 5 .................................................................................................................. 40
Chapter 6 – Conclusion and Discussion ................................................................................... 41
6.1 Project Objectives ......................................................................................................................... 41
6.1.1 Database ................................................................................................................................... 41
6.1.2 Scan and Detect Objects .......................................................................................................... 41
6.1.3 Add 3D Objects ......................................................................................................................... 42
6.2 Future Work .................................................................................................................................. 42
6.2.1 Apple’s App Store ..................................................................................................................... 42
6.2.2 Capitalize .................................................................................................................................. 42
6.2.3 Support for Android Platform .................................................................................................. 43
6.3 Knowledge Gained ........................................................................................................................ 43
6.4 Project Management and Control ................................................................................................ 43
6.5 Conclusion ..................................................................................................................................... 43
Glossary................................................................................................................................. 45
References ............................................................................................................................. 46
Appendix A – PDD .................................................................................................................. 49
Appendix B – Code Lines ........................................................................................................ 67
Appendix C – Software Requirements Analysis Document ....................................................... 68
Appendix D – Gantt Chart....................................................................................................... 83
Appendix E – Feedback Reports .............................................................................................. 84
Appendix F – Agile Methods ................................................................................................. 116
Abstract
The purpose of this project was to successfully implement an open platform concept to customers,
professionals and decoration companies. That will allow customers to scan, detect 3D objects and
place them into the real world by using AR technology.
The application was created to solve the current problem whereby customers needed to go into
showrooms and try to imagine how each furniture would fit into their houses. The application built by
the author attempt to solve the problem by creating an augmented reality application which allows
customers to insert furniture that looks lifelike into their homes before buying the actual furniture.
Also, decoration companies and professionals will be able to promote their collection and services.
The following documentation will discuss in more detail how the author carried out the different
phases involved in carrying out a project of this scope.
Acknowledgements
Prima facie, I am grateful to the Lord our God for the strength, persistence and comfort that were
necessary to complete this dissertation.
I would like to express my sincere gratitude to my supervisor Dr. Ross Paterson for the constant
encouragement and support throughout the project. The meetings permitted me to not only make a
continuous improvement with the project but also negated having to reconsider sections at later
dates.
I place on record, my sincere thankfulness to Aravin Naren, Teaching Support Team Leader of the
Department of Computer Science, for the continuous encouragement.
Furthermore, I appreciate all the assistance from Kiranjit Singh Jorge Dogva Ferre in proofreading my
final year project report.
Finally, I must express my very profound gratitude to my parents Luis Armond, Lucinea Armond, to
my wife Vanessa Armond and my daughters Giovanna and Rafaella Armond for providing me with
unfailing support and continuous encouragement throughout my years of study and through the
process of researching and writing this project report. This accomplishment would not have been
possible without them. Thank you.
Author.
Juan Armond.
Chapter 1 – Introduction
The AR Interior Design project involved creating an open platform application for the iOS platform [1].
This chapter of the report gives an overview of the project to the reader containing the reasons behind
the project and the original problem that the author wished to solve. It also clarifies the project’s
objectives, the beneficiaries of the project and a short review of the upcoming chapters.
modifications have been made to further improve them to suitable the requirements of the end user
after multiple discussions. The full PDD has been included with this report in Appendix A.
“Design and build a mobile application for the iOS platform that would permit customers to scan and
identify and place 3D objects into the real world by using AR technology. Also, decoration companies
and professionals will be able to promote their collection and services.”
1.3.1.1 Database
To accomplish the main objective of the project, it was necessary to implement an account creation
and management system. Making all users of the application able to register an account with their
details and to login/logout securely. Also, it is important to manage the upload and download of image
files.
• Search / Filter – All customers could start typing the product name in the search bar and the
app would automatically filter and search for the correspondent item from the database.
• Pop Up Messages – The app displayed different types of quick messages to help users, like
inputting the wrong username and/or password, adding items to the shopping list, etc. This
will be covered in more details in chapter 4 and 5.
• Download Bar / Percent numbers – After customers selected the product which they wanted
to “add” into the real world, the app would display a download bar and percentage numbers
that will increase conform the download progresses.
• Photos / Share – Afters customers had created a completely new interior design they could
save and/or share that picture. Interior design could use these pictures to promote their
services to all customers.
• Shopping List – Customers were able to add/remove item/s from the shopping list.
• PDF Invoice – After customers added items to the shopping list, they could generate a PDF
invoice and send it to the company.
the different features required the research of the Swift library documentation and involved adding
and editing the different constraints to visualize all the information correctly on the iPhone screen.
This could be measured by feedback received through users of the AR Interior Design app.
As shown in table 3, Ikea Place lacked the features to a create user account, type of users, scan and
detect an object, user avatar, upload 3D object file, generate PDF invoice and displaying a download
bar progression. Houzz had the feature to create a user account, different types of users, user avatar
but unfortunately, don’t have the option to visualize and upload 3D objects, generate PDF invoice and
display download bar progression. However, AR Interior Design was expected to include all the Ikea
and Houzz features plus the features that they did not have.
Android, and JavaScript SDKs, all of your clients shared one Real-time Database instance and
automatically receive updates with the newest data.
3.3.6 CocoaPods
CocoaPods managed library dependencies for owes XCode projects. It had over fifty-eight thousand
libraries and was used in over three million apps. The project’s dependencies were specified in a single
text file called a Podfile. CocoaPods would resolve dependencies between libraries, fetch the resulting
source code, then link it together in an XCode workspace to build the project. CocoaPods was used to
install the Firebase SDK and SimplePDF [12].
3.4.1 YouTube
YouTube owned by Google, was the first large-scale video sharing site on the Web, and it is available
in nearly every country and in over fifty different languages. They have an extensive list of channels
that helped me to learn XCode, Swift and Firebase. These channels contain step by step video tutorials
along with the full code [13].
Chapter 4 – Method
This chapter aims to give a detailed overview of the project lifecycle, from initial analysis to finalizing
and evaluating the application. It explains the techniques used to analyse, design, implement and test
the application.
4.1.1.1 Planning
The planning of the project occurred in the early stages of the project which was stated in the Project
Definition Document see at Appendix A. The Product Backlog list was originated from an initial
discussion with end users’ as customers, professionals and manager of decoration company called
Sofa and More. This list contains all the requirements that were currently known. A work plan list was
produced based on the prioritized requirements and the assessed effort required for their
implementation. The Product Backlog list was constantly updated with new and more detailed items,
as well as the Gantt Chart attached with more accurate estimations and new priority orders, which
can be seen see at Appendix D. The work plan also includes the definition of the tool (XCode) and
other resources (APIs), training needs (learn a new language - Swift) and different types of user
interfaces and feature sets.
Figure 2 shows the high-level design of the AR Interior Design app. It has three components: User
Interfaces, Controller and Cloud Database. The user interfaces main purpose is to translate the tasks
of the controller into something that the user can easily understand and present options for the user
to interact within the application. These options are buttons, text fields, shopping list, search items,
swapping up, down or left, etc. We can see that the user interacts with the app by touching the user
interface. The controller, which was implemented using swift programme language, contains the
functional business logic decisions which process the application’s core commands. These core
commands are executing the user interaction through the user interface, download, upload images
and retrieving products and user details from the cloud dates. The controller moves and process data
between the user interface and cloud database. The cloud database stores all the data for the
application to execute and function. For AR Interior Design this comes in the Firebase Real-time
Database. Image, product and/or user data is inquired by the controller and passed back and forward
before eventually delivery to the user interface to display users. The user interfaces is a layer that
communicates with the controller and vice versa.
At this stage all the user story cards were produced and added together to the analysis and
requirements document with a complete design (Storyboard) that can be found in Appendix C. Story
cards were a very high-level definition of a requirement, which included ID number, As a (role) I need
(desire/goal), So that (receive benefit) and Acceptance Criteria (when testing the story card that
should have been the expected result to passes the test) so that the developers could implement and
test it later to see if it offered all of the agreed functionality with potential end users. The Storyboard
was a visual representation of the user interface of the iOS application, showing screens of content
and the connections between them. A Storyboard was composed of a sequence of scenes, each of
which represented a view controller and its views; scenes were connected by segue objects, which
represented a transition between two view controllers [15].
4.1.2.2 Sprints
1. Sprint |Story Card 15| – The CocoaPods was installed to manage all the libraries’ projects
dependencies. The Firebase API was installed through the CocoaPods, so the app could connect
to the Firebase database. After following the Firebase documentation [16], the Google project
called AR Interior Design was created and associated with the XCode project. To initiate Firebase
into AR Interior Design, Firebase was imported and the configure method was used into the Swift
code. The test can be found in Appendix C, under the section Agile User Story Cards Figure 16 –
with the application running, the Firebase console showed one active user.
2. Sprint |Story Cards 4 and 6| – The main features scan, detect and add a 3D object into the real
world were implemented by using Apple’s ARKit 2 API. After following the ARKit 2
documentation, ARKit library was imported and used the related methods to scan and detect,
add a 3D object. However, one problem occurred when downloading the 3D object file. That file
couldn’t be found. This problem was overcome by researching the Stack Overflow forum [17].
The test can be found in Appendix C, under the section Agile User Story Cards Figures 5 and 7 –
with the application running, it was able to download and insert a 3D object file into the real
world and was able to recognize a previously scanned object and display the corresponding
information.
3. Sprint |Story Card 16| – All users interfaces with the necessary navigability between them were
implemented. These included, welcome, sign up, sign in, profile, company account, try AR, try
Scan, item library, item description, shopping list and a thank for shopping. The method segue
was used to define the flow between each user interfaces. The test can be found in Appendix C,
under the section Agile User Story Cards Figure 17 – with the application running, navigability
between all the user interfaces as mention above (go forward and back), images were loading
and the correct validation to each text field.
4. Sprint |Story Cards 1, 2, 8 and 9| – The create a welcome, account, login, upload the user avatar
and the 3D object file were implemented. After following the Firebase Cloud Firestore
documentation [18] to read and write data from the database and Firebase Storage [19] to upload
files to on iOS, the author initializes both libraries and inserted the correct methods so the
application could save the user details and upload the user avatar and 3D object file. I had a
problem when downloading the user avatar, the picture came upside down. After researching, I
found that Apple’s iPhone saves all images with EXIF data information to rotate the image to be
displayed correctly. But when uploading the file to Firebase storage, the image was uploaded
without the EXIF data information. This problem was overcome by reusing code that rotated the
picture before uploading it to Firebase. The test can be found in Appendix C, under the section
Agile User Story Cards Figures 2, 3, 9 and 10 – with the application running, the welcome page
shows up, the user details were created and stored in the database. That user was able to login
by using his details and go to the related page (as a customer after logging in to browse
decoration collection, as a decoration company/professional the ability to insert the products
details, upload and download 3D object files). Also, the entries in both Firebase Cloud Firestore
and Storage were manually checked.
5. Sprint |Story Cards 3 and 10| –The search/filter, refresh and browse all products were
implemented. A method was code to retrieve all 3D object files name, sort and store them in a
dictionary. This list was displayed as a table. By inserting a complete word or just a letter into the
search bar, the code started to narrow down all the products names and showed only the
products that matched in the table. Also, the ability to swipe down to get new items from the
database by using the user interface refresh control was implemented. The test can be found in
Appendix C, under the section Agile User Story Cards Figures 4 and 11 – with the application
running and, in the products list, was able to start typing in the search bar and the list started to
get short every time another character was added. Also, one product was manually added to the
database and by swiping down the application was able to refresh and show all items plus the
new item.
Sprints one to five were successfully implemented the application’s connection with the database, the
AR features to scan and detect, virtually add 3D objects, all the interfaces needed with their
navigability, create a user account with their specific type, avatar and their login access. Figures 3
below shows the implementation code of adding a 3D object into the real world.
Figure 4 above shows the implementation code of the scan and detecting of a real object from the
real world.
6. Sprint |Story Cards 5 and 7| –the ability to save a photo of a 3D object in their desired place like
in their phone photo library and share it without leaving the application was implemented. After
reading the Quick Look preview documentation [20] from Apple’s Swift library, the method
QLPreviewController to save a photo and share it on social media was used. The test can be found
in Appendix C, under the section Agile User Story Cards Figures 6 and 8 – with the application
running and after selecting the 3D object, was able to take a picture and save into the photo
library and/or share it on social media without leaving the app.
7. Sprint |Story Card 11| – A download progression bar was implemented. The user interfaces
progress view from Apple’s Swift library was used and the method downloadTaks.observe from
the Firebase Storage library was called. This method allows on to observe the download file and
translate it into a percentage which was used to fill the download bar every time it increased. The
test can be found in Appendix C, under the section Agile User Story Cards Figure 12 – with the
application running and after selecting the 3D object, the progression bar got darker relative to
the download percentage of the file.
8. Sprint |Story Card 12| – A shopping list to hold the selected items and to remove these items
was implemented. The selected item was saved into a dictionary and showed in a table view.
Also, the ability to swipe left to delete a row from the shopping list was enable. The test can be
found in Appendix C, under the section Agile User Story Cards Figure 13 – with the application
running, all selected items were shown in the shopping list and removed by swiping left.
9. Sprint |Story Card 14| – A PDF invoice generator from the shopping list was implemented. The
SimplePDF library was added and the respective methods were used to set paper size, name,
insert name, company details and logo and items from the shopping list to generate PDF. The test
can be found in Appendix C, under the section Agile User Story Cards Figure 15 – with the
application running and the generate PDF invoice selected after having selected to buy the
shopping list items, all the items were shown in the PDF invoice and displayed by Quick Look
Preview to be saved and/or shared.
10. Sprint |Story Card 13| – Different types of Popup Messages was implemented. These were the
popup messages; wrong username and/or password, creating an account without filling all the
relevant fields, creating an account with an email address which is already in the database,
confirming that an item was added to shopping list, updating item quantity in the shopping list,
checking an empty shopping list, trying to add a duplicate item into the shopping list,
automatically displaying the total price of shopping list, uploading a product which is already in
the database, uploading a product without filling all the fields and terms and conditions
description. The user interface alert controller from Swift library was used. The test can be found
in Appendix C, under the section Agile User Story Cards Figure 14 – inputting wrong username
and/or password, no item selected and trying to go to the shopping list, selecting an item to be
added to the shopping list, selecting the item that was already in the shopping list, updating item
quantity, creating an account with an email address already in the database, creating account
with blank fields, uploading a product with blank fields, uploading a product that is already in the
database and terms and conditions description.
Sprint six to ten were successfully implemented the ability to save and share a photo, displaying the
download bar progression, shopping list, PDF invoice and the different types of popup messages.
After passing each test, the function was delivered and was moved to the next item in the Sprint
Backlog list. This was repeated until all the items in the list were implemented. In total, were ten
sprints consisting of eight to ten working hours before the system was ready for “distribution”.
system test was agreed with a decoration company called Sofa and More. This test was conducted
with eleven end-users, classified as customers, interior designers and the manager of the Sofa and
More, and involved using the application to carry out scenarios and also answering the usability
questionnaire. This group of end-users were aged from 20 to 55 years old, all of them knew how to
use a smartphone but had never heard about augmented reality which covers all the potential future
users of this application. Firstly, what augmented reality and how this interactive experience with
computer generated furniture could reside in the real world was explained, and then the consent form
which they needed to agree before taking part in the test was signed and finally, the questionnaire,
showing in Figure 5 below, that need to be answered after using the AR Interior Design application.
These answers were then gathered together and evaluated in chapter 5 Results in order to provide an
overall successfulness score for the project. After passing the final test the AR Interior Design was
ready to be released.
Chapter 5 – Results
This chapter presents detailed descriptions and outcomes gathered at each phase reported in the
previous chapter. Not only will It present an overview of the final application to the reader, but it will
also explicitly show the results of each of the three phases of the Scrum methodology.
5.1.1 Interview
As mentioned in chapter 4 section 4.1.1.1 of the document, the Backlog List, see Table 5 below, was
originated from the initial discussion with the end users. This involved questioning customers,
professionals and managers of Sofa and More a sequence of unrestricted questions about their needs
which allowed them to respond without restrictions so that the author could collect a wide variety of
feedback relating to all components of the application including both functionality and design. Figure
6 below, shows the key points collected from this initial discussion.
ID Backlog List
1 As an unauthorized user, I need to register for a new account.
2 As an unauthorized user, I need to login and access the options related to my privileges.
3 As an authorized user, I need to browse all the decoration collection.
4 As a customer, I need to virtually ‘place’ a decoration item in ‘my’ room.
5 As a customer, I need to save a photo.
6 As a customer, I need to scan and detect a decoration item.
7 As a customer, I need to share a photo.
8 As an authorized user, I need to save my avatar.
The Backlog list was the base to produce all user story cards which be found in Appendix C, under the
section Agile User Story Cards.
The feature, add a 3D object, uses the same library, the ARKit 2, to place a 3D object into the real
world. After the user selects an item of the product list, the application downloads the file from the
Firebase database. The application gives three options to the user, to just see the 3D object, to use
the augmented reality to add the 3D object in the real world or to share that 3D object file. By selecting
the AR option, the users’ camera is open to see the real world and it asks to move the iPhone to start
the environment detection. This detection gets the depth of the surface where the item will be placed.
The first test was a fail. The application downloaded the file, but it was not able to save it in the correct
path location. It gave a null pointer error. After researching and implementing how to store its
temporary file in the correct iPhone path, can be seen in Figure 10 below, the following test was
successful. Figure 11 shows that the application could download the file, store it in the correct path
and display the options to the user. The user could select the AR option and virtually place the object
into the real world. The class ARViewController.swift holds all the code to execute this feature.
The test was managed by navigating back and forth from all user interfaces, starting at the welcome
page up to the ending thanks for shopping. The successful test can be seen in Figure 13 below.
5.2.4 Welcome Page Create Account, Login, Upload User Avatar and 3D Object file
Once Initialized the database connection, the function to let users register for an account with their
specific type and avatar was written. The create account design can be seen in Figure 14 below. This
code can be found in the CreateAccountViewController.swift which gets the user name, surname
email, password and checks if the email is already in the database and if it is not it creates a unique
account. The next step was to submit the user avatar and specific account type which was handled by
the class TypeUserViewController.swift. This class got the user name, surname and email from the
database to be displayed and let the user choose the account type and upload an avatar. The avatar
could be sourced by either the user’s camera or photo gallery.
The test was managed by checking the database if the entries were correctly assigned to their pre-
defined location in the database. Figure 15 below shows the successful test result.
After the successful result to create a user account, the welcome and sign in pages were design and
implement, below in Figure 16. The welcome page was just a small introduction of the app, which can
be found in the class ViewController.swift. The sign in page connects to Firebase database to checks
if the email and password were correct, thus allowing the user to login to the application.
The sign in process was held by the SignInViewController.swift class and part of the code to
authenticate a user can be seen in Figure 17 below. The test was conducted after the user touched
the AR Interior Design icon and the welcome page first showed up. The sign in only authenticated the
user when he/she inserted the correct details.
searching as soon the user started typing inside the search bar. The successful test result can be seen
in Figure 20 below.
Figure 18 (a) Design of Browser, Refresh and Search/Filter, (b) Result Test of Refresh and (c) Search/Filter
product was revealed and the download of the files started. As the download increased the progress
of the progression bar filled up by becoming darker and the percentage number increased. The test
involved selecting a 3D object file and watching the progressing bar fill by becoming darker until 100%
of the file was downloaded. The successful result test can be seen in Figure 21 below.
Figure 22 Result Test of Adding an Item to the Shopping List and Remove it
the AR Interior Design app to virtually add furniture into their homes to improve the customer
experience. With all the information given, the testing was carried out and consisted of using the
application to follow through scenarios and later answer the usability questionnaire with a Likert scale.
A Likert scale is an approach to scaling responses with a level of agreement or disagreement in
questionnaire research which can be seen in Figure 25 below.
reality. They asked how they could place the 3D object into the real world. The person
conducting the test intervened and explained how to use this technology.
6. All the users were asked to use the scan and detect an object. As mention before with the use
of augmented reality, some did not quite understand how to achieve this, but after a short
demonstration, they easily used this feature.
The result from task five and six was not too positive. This was pretty understandable because
some user did not comprehend augmented reality and all of them had never used before. This
mean that the process to use augmented reality to add or to scan and detect were not too intuitive
and could be improved in future versions.
5.3.3.1 Privacy
To gain information about the permission request to use the camera was reasonable. The access to
the user camera was essential for the application to work properly, it is through the camera that the
application “sees” the world.
Figure 26 above, shows the result of the question about the permission to request access to the user’s
mobile camera. This question was designed to measure how intrusive it was to ask for permission to
use the user’s mobile camera. All participants either agreed or strongly agreed to allow the application
to use the mobile camera being reasonable. See Appendix E query one of the Feedback Reports
section.
5.3.3.2 Simplicity
These queries below were conceived to understand how intuitive to use the application’s interfaces
were. Intuitive user interfaces allowed the user to easily understand how the application could be
useful and create a great mobile experience.
Figure 27 above, shows the result of the question regarding how simple the sign-up process was. This
question was thought to measure how straightforward the sign-up process was. Out of all participants,
82% strongly agreed and 18% agreed that the sign-up process was simple. See Appendix E query one
of the Feedback Reports section.
10
10
8
2
1 0 0 0
0
Strongly Agree Agree Uncertain Not Disagree Strongly Disagree
Sure
Figure 28 above, shows the result of the question relating to how readable the product description
was. This question was made to measure how users efficiently read and take the product description.
Out of all participants, 91% strongly agreed and 9% agreed that the product description was readable.
See Appendix E query one of the Feedback Reports section.
5
5 5
4
1
1 0 0
0
Strongly Agree Agree Uncertain Not Disagree Strongly Disagree
Sure
Figure 29 above, shows the result of the question about how intuitive the user interface was. This
question was designed to measure how intuitive to use and navigate the user interface was. Out of
participants, 45.5% strongly agreed 45.5% agreed and 9% uncertain/not applicable that the user
interface was intuitive. See Appendix E query one of the Feedback Reports section.
Figure 30 above, shows the result of the question regarding how simple and sufficient the upload
process was. This question was thought to measure how simple and sufficient the upload process for
3D object files was. The only user account with the type of professional and company can upload 3D
object files. Out of participants, 100% strongly agree that the upload process is simple and sufficient.
See Appendix E query one of the Feedback Reports section.
Figure 31 above, shows the result of the question about finding the needed information with minimal
effort. This question was written to measure how intuitive the application was at finding the desired
information. Out of participants, 73% strongly agreed and 27% agreed that they found the information
needed with minimal effort. See Appendix E query one of the Feedback Reports section.
Figure 32 above, shows the result of the question relating how fast the login process was. This
question was designed to measure how long the application would take to log in. Out of participants,
64% strongly agreed and 36% agreed that the login process was fast. See Appendix E query one of the
Feedback Reports section.
Figure 33 above, shows the result of the question concerning adding a 3D object into the real world.
This question was thought to measure how successfully the feature functioned. Out of participants,
73% strongly agreed and 27% agreed that they could choose and insert a 3D object in the real world.
See Appendix E query one of the Feedback Reports section.
Figure 34 Result of Scan and Detect 3D Object from the Real World
Figure 34 above, shows the result of the question regarding scanning and detecting a 3D object from
the real world. This question was designed to measure how successfully the feature functioned. Out
of participants, 82% strongly agreed and 18% agreed that they could scan and detect a 3D object in
the real world. See Appendix E query one of the Feedback Reports section.
5
5
4
4
3
1
1 1 0
0
Strongly Agree Agree Uncertain Not Disagree Strongly Disagree
Sure
Figure 35 above, shows the result of the question concerning the intention to buy a piece of furniture
after trying it at their homes. This question was thought to measure how successful the whole
experience of using the application was. Out of participants, 45.5% strongly agreed, 36.5% agreed, 9%
uncertain/not applicable and 9% disagreed that they had the intention to buy a piece of furniture after
trying it at their homes. See Appendix E query one of the Feedback Reports section.
5
4
3 4
2
1
0 0 0
0
Strongly Agree Agree Uncertain Not Disagree Strongly Disagree
Sure
Figure 36 above, shows the result of the question about being able to buy an item and generate an
invoice at the end of using the application. This question was designed to measure how successfully
the feature functioned. Out of participants, 64% strongly agreed and 36% agreed, that they were able
to buy an item and generate an invoice at the end of using the application. See Appendix E query one
of the Feedback Reports section.
6
5
4
3
2 3
1
0 0 0
0
Strongly Agree Agree Uncertain Not Disagree Strongly Disagree
Sure
Figure 37 above, shows the result of the question about being able to logout of the application. This
question was thought to measure how successfully the feature functioned. Out of participants, 73%
strongly agreed and 27% agreed, that they were able to logout of the application. See Appendix E
query one of the Feedback Reports section.
“Great app.”
“Thank you, I believe this will be extremely useful for our company.”
“I found the app very good and easy to use. I would definitely use it.”
“Very interesting and easy to use. I would like to have it available in the future.”
“Great experience to show, another type of channel (e-commerce) that you can see your 3D products
to share a real idea with customers.”
From these comments, we could conclude that the application was successful in fulfilling the project’s
objective which was to create an easy and useful mobile platform that connected customers to
companies and professionals by using augmented reality in order to promote their products and
services.
6.1.1 Database
An essential feature of the project was a robust and fast database connection, using Google’s Firebase
provided a unique real-time database allowing users to seamless upload and download files through
an Internet connection. The implementation is detailed in chapter 4 Method and chapter 5 Results of
the report. To measure the success of the implementation of this feature, a series of queries were
inserted into the questionnaire as followed: ‘I found the login process to be fast’, ‘I was able to logout
of the app’ and ‘I found the sign-up process simple’. By asking participants these queries a deduction
can be made as to whether the database connection was fast and robust. The given queries resulted
in participants giving an average of eight votes that strongly agreed and three votes that agreed out
of eleven participants. This implies that the feature was successfully implemented.
inserted into the questionnaire as follows: ‘I could scan and detect 3D objects from the real world’.
The query resulted in nine votes that strongly agreed and two votes which agreed out of eleven
participants. This implies that the feature was successfully implemented.
6.2.2 Capitalize
The AR Interior Design could capitalize (on money) from advertising and sponsorship. In that case,
decoration companies and professionals could pay to promote their products and services. In the
application’s product list, their products and services would show up first. Also, the application could
add Search Ads [23] which is a banner usually at the bottom of the screen with advertisements. Search
Ads pay every time that a user clicks the banner and downloads that advertised app. Another way
could be that every time users finish using the AR feature, the application could show an
advertisement video, usually around 15 to 30 seconds.
6.5 Conclusion
The report started with a brief introduction of the project describing the problem to be solved,
challenges and the motivation underlying this project. Also, provides an explanation of all the project’s
objectives of and outlines the work accomplished to meet these objectives. It contains a list of the
outputs produced and a review of the literature undertaken to support the accomplishment of the
development of the project. This is followed by explaining the chosen method with all the
requirements analysis, design, implementation, testing and delivery process which the project
undertook. All the results that were produced while undertaking the project were presented in detail.
In the end, an evaluation of the project’s achievement, future work opportunities and considerations
1Port (verb) is to change an application program from an operating system environment in which it was
developed to another operating system environment so it can be executed there.
are discussed. In conclusion, the project’s objectives were achieved, and the end users were very
pleased with the AR Interior Design’s functionalities. It has been a remarkable experience to learn a
new programming language and to apply all which had been learnt so far at university to develop a
project of this size.
Glossary
Term Definition
Set of functions that allows persons to access
API / Library
features of a third-party application.
Apple’s operations systems that run in iPhone
iOS
and iPad.
OS Operation Systems
AR Augmented Reality.
Set of software development tools that support
SDK
in the creation of applications.
JSON JavaScript Object Notation.
References
[28] Schwaber, K. and M. Beedle (2002). Agile Software Development With Scrum. Upper Saddle
River, NJ, Prentice-Hall.
Appendix A – PDD
Comparing Figure 7 Original Gantt Chart and Figure 8 Updated Gantt Chart, Phase 1 Documentation
PDD was completed on the estimated time, draft project report was initiated two weeks before
scheduling and final project report is expected to be ready on the scheduled time. Phase 2 Coursework
and Exams was completed on the estimated time. Phase 3 Work Pre-Package was delivered with four
weeks before the estimated time. Phase 4 Work Package 0 was started one week late but was
delivered three weeks early. Phase 5 Work Package 1 was implemented two weeks early and finished
seven weeks before planned. Phase 6 Work Package 2 was expected to endure nineteen weeks but
was delivered on three weeks. Also, Phase 7 Work Package 3 was delivered in three weeks.
The Author was expecting a comprehensive amount of work since he didn’t have the knowledge
required to programming an iPhone application, and to not take any risks in delivery the project
behind schedule, the initial estimate to complete each deliverable was planned to be lasting longer.
As soon the author started researching, watching tutorial videos and reading the library
documentation each interaction of the project was updated to a more realistic time.
Extreme Programming (XP) – has developed from the problems caused by the extensive development
cycles of traditional development models. The term ‘extreme’ comes from taking these common-
sense principles and practices of the traditional development models to extreme levels [27]. Its life
cycle consists of five phases: exploration, planning, iterations to release, productionizing and death.
See page 20 of [4] for more details.
Scrum – development approach involves three phases (pre-game, development and post-game) that
provide methods, techniques and guidelines followed to release the system. It is an empirical
approach applying the ideas of industrial process control theory to systems development resulting in
an approach that reintroduces the ideas of flexibility, adaptability and productivity [28]. See page 29
of [7] for more details.
This was the chosen software development for this project. More details can be found in Chapter 4
Method.
Crystal Family of Methodologies – Crystal Clear and Crystal Orange are the two Crystal family
members that have been constructed and use. Depend on the project size each one is chosen. Each
member is marked with a colour indicating the heaviness of the methodology. Also, uses a scale to
indicates the criticality level: Comfort (C), Discretionary money (D), Essential money (E) and Life (L).
Criticality level C indicates that the system crash on defects causes a loss of comfort for the user where
defects in a life-critical system may literally cause loss of life. See page 38 of [7] for more details.
Feature Driven Development – is an adaptive approach for development systems as it covers all the
total software development process, but rather focuses on the design and build phases. It has been
designed to work with the other activities of software development and does not require and specific
process model to be used [29]. It consists of five sequential processes: Develop an Overall Model,
Build a Feature List, Plan by Feature, Design by Feature and Build by Feature. See page 49 of [7] for
more details.