Browse Source

merge 'titelblatt' w/ 'resultate' + fix urls in lit/refs.bib

Noah Vogt 3 years ago
parent
commit
4b50a7f2ef

+ 1 - 0
.gitignore

@@ -20,3 +20,4 @@ Include/
 *.glg
 *.glo
 *.gls
+*.ist

+ 36 - 36
maturText/lit/refs.bib

@@ -3,7 +3,7 @@ author = {suckless.org},
 title = {software that sucks less | suckless.org software that sucks less},
 howpublished = {\url{https://suckless.org/philosophy/}},
 year = {2021},
-note = {(Accessed on 09/16/2021)}
+note = {(Accessed on 16/09/2021)}
 }
 @book{branch,
 author = {Scott Chacon and Ben Straub},
@@ -47,7 +47,7 @@ title = {The GNU General Public License v3.0 - GNU Project - Free Software Found
 howpublished = {\url{https://www.gnu.org/licenses/gpl-3.0.en.html}},
 month = {June},
 year = {2007},
-note = {(Accessed on 09/17/2021)}
+note = {(Accessed on 17/09/2021)}
 }
 @book{stallman2002,
   title={Free Software, Free Society: Selected Essays of Richard M. Stallman},
@@ -63,7 +63,7 @@ title = {Why I Use the GPL and Not Cuck Licenses – Luke Smith},
 howpublished = {\url{https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuck-licenses}},
 month = {April},
 year = {2021},
-note = {(Accessed on 09/19/2021)}
+note = {(Accessed on 19/09/2021)}
 }
 @misc{8chan.moe,
 author = {Anonymous},
@@ -71,7 +71,7 @@ title = {/t/ - Open Source Licenses},
 howpublished = {\url{https://8chan.moe/t/res/865.html}},
 month = {August},
 year = {2020},
-note = {(Accessed on 09/19/2021)}
+note = {(Accessed on 19/09/2021)}
 }
 @book{kumar2011,
   title={Welcome to the 'free' World: A Free Software Initiative},
@@ -107,34 +107,34 @@ note = {(Accessed on 09/19/2021)}
 @misc{gitflowBlog,
 author = {Prabhu Vignesh Kumar Rajagopal},
 title = {GIT Branch and its Operations. - An Easy Understanding - Digital Varys},
-howpublished = {\url{https://digitalvarys.com/git-branch-and-its-operations/}},
+url = {https://digitalvarys.com/git-branch-and-its-operations/},
 month = {},
 year = {},
-note = {(Accessed on 09/19/2021)}
+note = {(Accessed on 19/09/2021)}
 }
 @misc{githubRepoQuery,
 author = {github.com},
 title = {Code Search},
-howpublished = {\url{https://github.com/search?q=\&type=Repositories\&ref=advsearch\&l=\&l=}},
+url = {https://github.com/search?q=\&type=Repositories\&ref=advsearch\&l=\&l=},
 month = {September},
 year = {2021},
-note = {(Accessed on 09/19/2021)}
+note = {(Accessed on 19/09/2021)}
 }
 @misc{roomStructure,
 author = {Sagar Garg},
 title = {Room Persistence Library - DZone Database},
-howpublished = {\url{https://dzone.com/articles/room-persistence-library}},
+url = {https://dzone.com/articles/room-persistence-library},
 month = {},
 year = {},
-note = {(Accessed on 09/19/2021)}
+note = {(Accessed on 19/09/2021)}
 }
-@misc{appStructure,
-author = {vhaecky},
-title = {Android Room with a View - Java},
-howpublished = {\url{https://developer.android.com/codelabs/android-room-with-a-view\#0}},
+@misc{queryExpl,
+author = {Google Team},
+title = {Query syntax in Standard SQL  |  BigQuery  |  Google Cloud},
+url = {https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#order_by_clause},
 month = {},
 year = {},
-note = {(Accessed on 09/19/2021)}
+note = {(Accessed on 13/10/2021)}
 }
 @misc{appStructurePicture,
 author = {Android Developers},
@@ -142,7 +142,7 @@ title = {Android Room with a View - Java},
 howpublished = {\url{https://developer.android.com/codelabs/android-room-with-a-view\#15}},
 month = {},
 year = {},
-note = {Edited by Simon}
+note = {Edited by Simon, (Accessed on 19/09/2021)}
 }
 @misc{LayoutManagerPicture,
 author = {Anonoymous},
@@ -150,7 +150,7 @@ title = {LayoutManager | Android | myMusing},
 howpublished = {\url{https://mymusing.co/layoutmanager-android/}},
 month = {},
 year = {},
-note = {Edited by Simon}
+note = {Edited by Simon, (Accessed on 19/09/2021)}
 }
 @misc{roomApp,
 author = { Avatar Florina Muntenescu},
@@ -158,7 +158,7 @@ title = {GitHub - googlecodelabs/android-room-with-a-view},
 howpublished = {\url{https://github.com/googlecodelabs/android-room-with-a-view}},
 month = {},
 year = {},
-note = {Edited by Simon}
+note = {Edited by Simon, (Accessed on 19/09/2021)}
 }
 @misc{roomInfo,
 author = {Ashish Rawat},
@@ -166,21 +166,23 @@ title = {Using Room Database | Android Jetpack | by Ashish Rawat | MindOrks | Me
 howpublished = {\url{https://medium.com/mindorks/using-room-database-android-jetpack-675a89a0e942}},
 month = {Februar},
 year = {2019},
-note = {}
+note = {(Accessed on 11/10/2021)}
 }
 @misc{github,
 author = {Sebastian De Lima},
 title = {What Is GitHub?},
 howpublished ={https://medium.com/swlh/what-is-github-423f9049ab2d},
 month = {July},
-year = {2020}
+year = {2020},
+note = {(Accessed on 11/10/2021)}
 }
 @misc{android-studio,
 author = {Developers},
 title = {Meet Android Studio  |  Android Developers},
 howpublished = {\url{https://developer.android.com/studio/intro}},
 month = {},
-year = {}
+year = {},
+note = {(Accessed on 11/10/2021)}
 }
 @misc{recyclerViewRecycle,
 author = {Developers},
@@ -188,7 +190,7 @@ title = {Create dynamic lists with RecyclerView  |  Android Developers},
 howpublished = {\url{https://developer.android.com/guide/topics/ui/layout/recyclerview}},
 month = {},
 year = {},
-note = {}
+note = {(Accessed on 11/10/2021)}
 }
 @misc{materialDesigne,
 author = {Material Designe Team},
@@ -196,42 +198,40 @@ title = {Introduction - Material Design},
 howpublished = {\url{https://material.io/design/introduction}},
 month = {},
 year = {},
-note = {}
+note = {(Accessed on 11/10/2021)}
+
 }
 @misc{library,
 author = {Computer Hope},
 title = {What is a Library?},
-howpublished = {\url{https://www.computerhope.com/jargon/l/library.htm}},
+url = {https://www.computerhope.com/jargon/l/library.htm},
 month = {Februar},
 year = {2021},
-note = {}
+note = {(Accessed on 11/10/2021)}
 }
 @misc{view,
 author = {Developers},
 title = {View  |  Android Developers},
-howpublished = {\url{https://developer.android.com/reference/android/view/View}},
+url = {https://developer.android.com/reference/android/view/View},
 month = {},
 year = {},
-note = {}
+note = {(Accessed on 11/10/2021)}
 }
 @misc{dwm,
 author = {suckless.org},
 title = {dwm - dynamic window manager | suckless.org software that sucks less},
-howpublished = {\url{https://dwm.suckless.org}},
-year = {2021},
-note = {(Accessed on 10/13/2021)}
+url = {https://dwm.suckless.org},
+urldate = {2021},
 }
 @misc{plug,
 author = {Junegunn Choi},
 title = {vim-plug, a minimalist Vim plugin manager},
-howpublished = {\url{https://github.com/junegunn/vim-plug}},
-year = {2021},
-note = {(Accessed on 10/13/2021)}
+url = {https://github.com/junegunn/vim-plug},
+urldate = {2021},
 }
 @misc{thunderbird,
 author = {Mozilla},
 title = {Thunderbird - Make Email easier},
-howpublished = {\url{https://www.thunderbird.net/en-GB/}},
-year = {2021},
-note = {(Accessed on 10/13/2021)}
+url = {https://www.thunderbird.net/en-GB/},
+urldate = {2021},
 }

BIN
maturText/media/AppStructureFull.png


BIN
maturText/media/Gimp/AppStructure.xcf


+ 60 - 23
maturText/revisioned.tex

@@ -309,17 +309,28 @@ sorting=ynt
 \begin{titlepage}
 % TODO: weniger asketisch, «sexier»
 
-\vspace*{1cm}
 	\centering
 	
+    {\slshape\large snailmail \par}
+    \vspace{0.1cm}
 	{\huge\bfseries Eine Email-Client-App entwickeln \par}
 	\vspace{0.5cm}
-	{\Large Noah Vogt \& Simon Hammer Klasse 4cg\par}
+	{\Large Von Noah Vogt \& Simon Hammer \par}
+    {\Large Aus Klasse 4cg \par}
     \vspace{0.5cm}
-    {\Large Victor Yakhontov \& Daniel Bühler \par }
-	\vspace{17cm}
-
-	{\large Geschrieben im Jahr 2021\par}
+    %{\Large Victor Yakhontov \& Daniel Bühler \par }
+   
+    \begin{figure}[H]
+        \centering
+        \includegraphics[width=1\textwidth]{../logo/version3d.png}
+    \end{figure}
+   
+    \vspace{0.5cm}
+    {\Large Betruungslehrkraft: Victor Yakhontov \par }
+    {\Large Koreferent: Daniel Bühler \par}
+    \vspace{0.5cm}
+	{\large Geschrieben im Jahr 2021 \par}
+    {\large Im Gymnasium Kirschgarten \par}
 	
 \end{titlepage}
 
@@ -658,8 +669,8 @@ Es ist grösstenteils der suckless-basierten Codingphilosophie zu verdanken, abe
 \subsubsection{Hauptziele}
 Gemäss den Zielen soll die App eine Verbindung mit einem Server erstellen können und mit ihm Interagieren können. Heisst sie soll die Informationen über einen Account, die der 
 Nutzer eingibt überprüfen können und weiter die Emails die ein Nutzer auf einem \gls{server} hat herunterladen. Ebenso soll die App Nachrichten weiter über einen Server verschicken können. 
-Um das zu realisieren, haben sich die Autoren nach passenden \glspl{library} für Java umgeschaut. Zu ihrem bedauern gibt es nur zwei libraries die in Frage kommen. 
-%TODO: noah schrib wurum mir die libraries ned gange sind und wurum mir uf python umgstiege sind.
+Um das zu realisieren, haben sich die Autoren nach passenden \glspl{library} für Java umgeschaut. Das Resultat dieser Suche waren zwei Libraries. 
+%TODO: noah schrib wurum mir die libraries ned gange sind und wurum mir uf python umgstiege sind. 
 
 Weil nach dem herunterladen der Nachrichten vom Server viele Daten gespeichert werden müssen, muss eine Möglichkeit her, wie diese Daten möglichst schnell, 
 und der Einfachheit halber mit einer gewissen Abstraktion, in einer sinnvollen Datenstruktur gespeichert werden können. Dazu taugte eine \gls{database}. Um dies zu erreichen 
@@ -678,43 +689,69 @@ Den Autoren hat sie schlicht gefallen und sie ist nicht schwer zu benutzen, wesh
 und von Google erstellt worden um hochwertige Designs zu kreieren. \cite{materialDesigne}
 
 
-%\subsubsection{Aufbau}
+\subsubsection{Aufbau}
+
+Die App kann grob in drei Teile unterteil werden. In \textit{User Interface}, in \textit{Database} und in \textit{Serververbindung}. 
+
+\begingroup
+\setlength{\intextsep}{7pt}
+\setlength{\columnsep}{15pt}
+
+\begin{wrapfigure}{r}{10cm}
+\centering
+    \includegraphics[scale=.52]{media/AppStructureFull.png}
+\caption{Grob Aufbau der App}
+\end{wrapfigure}
+
+\nohyphenation
+
+Diese drei Komponenten bilden zusammen die App, wobei der Teil der Serververbindung nicht immer aktiv ist. Er wird von dem User Interface
+aufgerufen, wenn zum Beispiel sich ein neuer Nutzer mit einem Emailaccount anmelden möchte. Dann werden die Accountdaten an de Server geschickt und überprüft.
+Wenn diese korrekt sind werden alle Nachrichten, die dieser Nutzer auf dem Server hat, heruntergeladen und weiter an die Database gegeben. Abgesehen von dem 
+Speichern der Nachrichten die frisch vom Server kommen, macht die Database nur noch zwei dinge. Sie kann, durch das Interface entstandene, Nachrichten so abspeichern, dass sie 
+vom \textit{User Interface} im Ordner \textit{Draft} angezeigt werden. Und die \textit{Database} kann weiter gespeicherte Nachrichten bearbeiten so, dass sie vom 
+\textit{User Interface} in eine anderen Ordner angezeigt werden.
 
+\endgroup
 
+\newpage
 \subsubsection{Interface}
 
-Noah begann dann dieses Programm leicht auszubauen und fügte einige Interface Inhalte hinzu. 
 
 \begingroup
-\setlength{\intextsep}{10pt}
-\setlength{\columnsep}{15pt}
+\setlength{\intextsep}{1pt}
+\setlength{\columnsep}{12pt}
 
-\begin{wrapfigure}{r}{8cm}
+\begin{wrapfigure}{r}{6cm}
 \centering
 \includegraphics[scale=.15]{media/drawer.png}
 \caption{Drawer Navigation Menu}
 \end{wrapfigure}
 %I then made the app more functional, so that you have a base GUI with a drawer, a menu in the bottom and in the drawer navigation menu you can tap on the «Add Email» Button and a popup window will come up asking you for name, email and password. Even the save and cancel button work. Now we only need a functionality to save this information to a string somewhere in the main activity.\\
+Als erstes wurde das Interface angegangen mit dem Gedanke, dass die Funktionen sich dann an das Interface anpassen werden.
 
-Die App beinhaltete ein Hamburgermenü mit drei Ordnern und einem Knopf, welcher den Nutzer zu einem Popupwindow führte, in welchem es so aussah als würde es möglich sein sich anzumelden.  
-Die Basis für die App wurde gelegt und die beiden entschieden sich mit dem Interface anzufangen.
+Begonnen wurde mit einer Vorlage von Android-Studio. Diese beinhaltete ein Hamburgermenü mit drei Ordnern und einem Knopf, 
+welcher den Nutzer zu einem Popupwindow führte, in welchem es so aussah, als würde es möglich sein sich anzumelden.  
 
 \subsubsection{Recyclerviewer}
 % TODO: mehr allgemein erklären
 
-Simon begann mit der Recherche zum Recyclerviewer. Er war viel im Internet und fand schnell
-einige Beispiele, welche er ausprobierte und für seinen Nutzen gestaltete. Ein Recyclerviewer ist nicht sehr kompliziert
-hat aber gewisse Kniffe auf die Simon traf. \\
-
 Ein Recyclerviewer ist in fünf grundlegende Teile aufgeteilt. 
 
 \begin{enumerate}
 
-
+%TODO: dütsch? +Bild
     \item Das recyclerview Objekt, welches ein Container ist und in das User Interface eingebaut wird. 
 Es beinhaltet verschiedene Views, welche nochmals unterteilt werden können. In einer View wird in unserem 
 Fall eine Nachricht eingebaut mir dem Absender, der Absende Zeit und einem Betreff. 
 
+\end{enumerate}
+
+\endgroup
+
+\begin{enumerate}
+
+    \setcounter{enumi}{1}
     \item Der Layout manager. Er ist für die form einer einzelnen View verantwortlich. 
 Der Layout manager kann auch wieder in drei Arten unterteilt werden. Der Linearlayout Manager sorgt für eine 
 Horizontale oder vertikale unterteilung einer View. Hingegen führt der Gridlayout Manager zu einer horizontalen 
@@ -863,10 +900,10 @@ dennoch werden wir darauf eingehen.\\
 \end{lstlisting}
 
 \textit{Querys} sind anfragen an die Database nach Informationen. Sie können auf verschiedene \textit{tables} zugreifen und Informationen abgleichen und auswählen. 
-In einer DAO von Room werden die SQL-statements mit @Query markiert. SELECT heisst, dass etwas ausgewählt werden soll und mir * ist gemeint alles. Mit FROM wird nochmals angegeben von 
-welchem table, in diesem Fall vom message\_table. Die Entity die wir weiter oben schon erklärt haben. Mit WHERE können Spalten der Entity ausgewählt werden. Hier wird die \textit{folder} Spalte 
+In einer DAO von Room werden die SQL-statements mit @Query markiert. SELECT heisst, dass etwas ausgewählt werden soll und mit * ist gemeint alles. Mit FROM wird angegeben von 
+welchem table, in diesem Fall vom message\_table. Mit WHERE können Spalten der Entity ausgewählt werden. Hier wird die \textit{folder} Spalte 
 gewählt um mit LIKE ein Attribut zu bestimmen. So wird nun ein Attribut namens 'Draft' gewählt. Mit ORDER By kann die Ausgabe noch sortiert werden. So wird die Ausgabe anhand der Spalte 'date'
-nach dem ASC-code sortiert. \cite{appStructure}
+aufsteigen Sortiert. \cite{queryExpl}
 
 \subsubsection{Repository/ViewModel}