Browse Source

Add section about the framework decision

Carsten Porth 5 years ago
parent
commit
4353a501cc

+ 3 - 0
thesis/abbreviations.tex

@@ -5,6 +5,7 @@
 	\acro{ACL}{Access Control List}
 	\acro{AES}{Advanced Encryption Standard}
 	\acro{API}{Application Programming Interface}
+	\acro{APK}{Android Package}
 	\acro{AWS}{Amazon Web Services}
 	\acro{CBC}{Cipher Block Chaining Mode }
 	\acro{CPU}{Central Processing Unit}
@@ -25,6 +26,8 @@
 	\acro{NFC}{Near Field Communication}
 	\acro{OSN}{Online Social Network}
 	\acro{P2P}{Peer-to-Peer}
+	\acro{PWA}{Progressive Web App}
+	\acro{SDK}{Software Development Kit}
 	\acro{TTL}{Time to Live}
 	\acro{W3C}{World Wide Web Consortium}
 \end{acronym}

+ 6 - 1
thesis/content/05-proof-of-concept/technology-decisions.tex

@@ -48,5 +48,10 @@ In the following, various P2P networks are considered and examined for their usa
 
 \subsection{Application Framework}
 \label{sec:application-framework}
+With the Android \ac{SDK} apps for Android can be written in Java, Kotlin, and C++. Tools of the Android \ac{SDK} compile code, data, and resource files to an executable \ac{APK}. This way, only device-specific applications for the Android operating system can be created.
 
-[Standard Android Java App vs. Ionic]
+The open source framework Ionic\footnote{https://ionicframework.com/} is used to create hybrid apps and \acp{PWA}. A hybrid app combines the advantages of a native app with those of web applications. With \ac{HTML}, \ac{CSS}, and JavaScript, this framework can be used to design platform-independent applications (including Android and iOS). The core of Ionic is based on the JavaScript Framework Angular and Apache Cordova, which serves as a bridge to access sensors and functions of the device. Ionic can be used free of charge and is published under the MIT license, so private and commercial use is permitted.
+
+Compared to the standard way of programming an Android app to the use of Ionic, the platform independence and the JavaScript language are the two main advantages. With Ionic, the same code can be used to create apps for the majority of mobile operating systems. Additionally, as \ac{PWA} the app runs also in every modern web browser. The previously defined requirements of a hybrid solution demanded this independence, so Ionic is a good match. Regarding the programming language JavaScript, many projects in the field of \acp{dApp} and decentralization in general provide only libraries for JavaScript (e.g., Gun). Besides, JavaScript is also the language to write add-ons for browsers. Even though Ionic cannot be used to create browser add-ons, the used JavaScript libraries can. So, the same technology could be used to deliver clients to all popular environments.
+
+With React Native\footnote{https://facebook.github.io/react-native/} and NativeScript\footnote{https://www.nativescript.org/} there are comparable frameworks to Ionic. They also use JavaScript and are used to create hybrid apps for several environments. But the provided components to create the user interface are most promising with Ionic and the initial learning barrier is low compared to the other two. Because of these advantages, Ionic was finally chosen for programming the Hybrid \ac{OSN} client app.