
Masaryk University Faculty of Informatics iOS app for bouldering gyms Bachelor’s Thesis Tomáš Bouma Brno, Spring 2020 Masaryk University Faculty of Informatics iOS app for bouldering gyms Bachelor’s Thesis Tomáš Bouma Brno, Spring 2020 This is where a copy of the official signed thesis assignment and a copy ofthe Statement of an Author is located in the printed version of the document. Declaration Hereby I declare that this paper is my original authorial work, which I have worked out on my own. All sources, references, and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Tomáš Bouma Advisor: doc. Ing. RNDr. Barbora Bühnová, Ph.D. Bc. Adam Konečný i Acknowledgements I Would like to thank both my advisors, doc. Ing. RNDr. Barbora Bühnová, Ph.D, and Bc. Adam Konečný as well as the whole Dactyl Group s.r.o. company for their invaluable help while writing the thesis and development of the application. Furthermore, I would not be able to do this without the support of my family and the climbing community. iii Abstract Smartphones and modern technologies became parts of ours day to day lives. Consequently, every successful business needs a modern application or web site, which will provide customers with a better experience. This thesis provides an implementation of such a solution for bouldering gyms. Using a QR-code scanner integrated into iPhones, it allows everyone to track their results easily, compare them with others, and find new climbing friends. Owners of the gyms cansee in-depth statistics as well as the problems currently occurring about their properties and have all the necessary data stored in a database. It is all accompanied by an intuitive UI, and UX arranged to satisfy even the pickiest users. iv Keywords iOS, Swift, iPhone, QR-Code, boulder, climbingg, app, UI, UX v Contents 1 Introduction 1 1.1 Thesis goal ..........................1 1.2 Structure of the thesis .....................1 2 Bouldering 3 2.1 Hangar Climbing playground by Adam Ondra .......3 3 Used software, libraries, and design patterns 5 3.1 iOS ..............................5 3.1.1 Apple ID . .6 3.2 Swift ..............................7 3.2.1 CocoaPods . .8 3.2.2 SnapKit . .9 3.2.3 PromiseKit . 10 3.2.4 R.swift . 11 3.3 XCode ............................. 11 3.4 Firebase Realtime Database .................. 12 3.5 Model View Controller pattern ................ 13 4 Development process 15 4.1 Coming up with the idea ................... 15 4.1.1 Similar Apps . 15 4.2 Functional and non-functional requirements ......... 16 4.3 Prototyping .......................... 17 4.4 UI and UX design ...................... 19 4.5 Back-end ............................ 20 4.5.1 Security rules . 22 4.6 Implementation ........................ 25 4.6.1 Building UI . 26 4.6.2 Firebase integration . 29 4.6.3 Applying MVC pattern . 30 4.6.4 QR Code scanning . 30 4.6.5 Communication between climbers . 30 4.7 Transformation of the data .................. 31 4.8 Testing ............................. 32 4.9 Impact of COVID-19 ..................... 32 vii 5 Conclusion 35 Bibliography 37 viii List of Figures 3.1 The lifecycle of an iOS app [3] 6 3.2 The lifecycle of a view controller in an iOS enviroment [4] 7 3.3 Rating of XCode on AppStore [8] 12 3.4 Model View Controller pattern [10] 14 4.1 The rating of Vertical-Life: Outdoor and Indoor Climbing [11] 16 4.2 Difference between a wireframe login page (left) andthe final look (right) 18 4.3 Icon representing boulders throughout the application with grade and color showed 19 4.4 Icon for indicating the evocation of QR-code scanner (left) and table cell for representing boulder (right) 19 4.5 Final screen showing a menu (left) and the selected item fetching the info from the website (right) 20 4.6 Model of a SQL database used for this app 21 4.7 Screen showing current rankings of the climbers always for certain category. MVC pattern was used 25 4.8 Screen showing an overview of climbers profile 26 4.9 Screen showing settings 27 4.10 Screen showing a single boulder (left) and saving ascent of boulder after the successful climb (right) 28 4.11 Screen showing all boulders currently available for climbing with a possibility for sorting and filtering 29 ix List of Listings 3.1 CocoaPod example 8 3.2 SnapKit example 9 3.3 PromiseKit pseudocode example 10 3.4 PromiseKit example 10 3.5 R.swift example 11 4.1 NoSQL Database example 21 4.2 Security rules example 22 xi 1 Introduction In today’s society, mobile phones became inevitable for a day to day use. They are used all the time, and in developed countries, about 75% of all people own smartphones [1]. People say that they are utilized too much, but it is clear that they help to save lives in areas such as healthcare and are making our lives easier in many ways, for example, tracking progress in individual sports. Mobile phones bring new opportunities for the development of applications. 1.1 Thesis goal The main goal of the thesis is to develop an iOS application for wide adaptation in bouldering gyms. During the development, the solution was consulted with the end-users to suit all their needs. The main functionality includes a QR Code scanner, an overview of the gym for both gym owners and climbers in the gym, provided with intuitive user interface(UI) and user experience(UX) design. 1.2 Structure of the thesis The text is structured into Introduction, after that an explanation of bouldering, and a short presentation of the gym who will be using it, its current solution, and the main advantages of using this product. The third chapter explains all the technologies and libraries used. In the fourth chapter, the whole development process is introduced from the initial idea through communication with the client and graphic design to the implementation process. After that, the process of trans- forming the data from Google spreadsheet to database is explained, and the impact of world pandemic COVID-19. In the last chapter, the conclusion is included with the description of the current state of the application. 1 2 Bouldering Bouldering is a type of climbing performed on small rock formations or indoor artificial walls not higher than 4-5 meters. Climbers donot need to use ropes or any other equipment besides climbing shoes and a chalk bag. If they fall, they land on a mattress. Lately, a lot of indoor bouldering walls are being built, and this sport is becoming more and more popular. The fact that contributed a lot to the bouldering’s popularity is, it will be part of the summer Olympics games for the first time. One route on a wall is called a boulder or a boulder problem. The boulder problems range from very easy to extreme, which only a few people in the world can climb. A specific grading system was developed, and although there are different types in Europe, the most widely used is called “Font grading“, where the most straightforward problem is grade 3. With increasing difficulty, the numbers increase. Starting from 5, each grade has its subgrade marked with capital letters A, B, C. An additional + sign may be added to show it is a little more complicated but not hard enough for the higher grade. The scale goes from 3, 4, 5A, 5B, 5C, 6A to 8C+, which is currently the hardest grade climbed. Routesetters build indoor boulders; each one has a specific color, type of holds, and a particular style. The styles include overhangs, slabs, or jumping from one hold to another, called dyno. 2.1 Hangar Climbing playground by Adam Ondra Hangar Climbing playground by Adam Ondra is the biggest and most modern bouldering wall in the Czech Republic, located in Brno, which will use this application in order to improve their customer service. Every month they put up 30 new boulders and competition is held through-out, it is called a Hangar-challenge. The gym has a hard time keeping track of the results as they keep them in Google spreadsheets. Users find it confusing as well, and anyone of the users can delete all the data. Information about all the boulders is on paper, and the papers can get lost or destroyed easily. Climbers now have minimal options of keeping track of which boulders they climbed and how many attempts it took them. Also, they cannot see if 3 2. Bouldering there are new boulders or their favorite ones have been put down. All these problems will be fixed once the gym opens after the COVID-19 lockdown and starts using the application. 4 3 Used software, libraries, and design patterns This chapter is dedicated to introducing all the technologies that have been used. Software from Apple Inc. and third-party libraries are included. It provides a brief description with simple examples. 3.1 iOS iOS (formerly iPhone OS) is a mobile operating system created and developed exclusively by Apple Inc. for its hardware. It is the operating system that presently powers all of the company’s mobile devices, including the iPhone and iPod Touch; it also powered the iPad before the introduction of iPadOS in 2019. It is the second most popular mobile operating system globally after Android [2]. It was introduced in 2007 for iPhones and in 2010 for iPads. Because the iOS phones are more expensive than Android phones, it is more prevalent in more developed countries, mainly in the USA. Its interface is based upon direct interaction with the user using touch gestures, many of them being multi-touch.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages56 Page
-
File Size-