% standard
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{titlesec}

\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}

\titleformat{\paragraph}
{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
\titlespacing*{\paragraph}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}

% geometry
\usepackage{geometry}
\geometry{ headsep=20pt,
headheight=20pt,
left=21mm,
top=15mm,
right=21mm,
bottom=15mm,
footskip=20pt,
includeheadfoot}

% header and footer
\usepackage{datetime}
\newdateformat{dmy}{%
\THEDAY.~\monthname[\THEMONTH] \THEYEAR}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{Noah Vogt \& Simon Hammer}
\chead{}
%\rhead{\dmy\today}
\lfoot{}
\cfoot{Gymnasium Kirschgarten}
\rfoot{Seite \thepage}
\renewcommand{\footrulewidth}{.4pt}

% fix figure positioning
\usepackage{float}

% larger inner table margin
\renewcommand{\arraystretch}{1.4}

% no paragraph indent
\setlength{\parindent}{0em}

% graphics package
\usepackage{graphicx}

\usepackage{multicol}

% use sans serif font
\usepackage{tgheros}
\usepackage{mathptmx}

% don't even ask what this is for, I have no idea (noah)
\usepackage{bm} %italic \bm{\mathit{•}}
\usepackage[hang]{footmisc}
\usepackage{siunitx}
\usepackage[font={small,it}]{caption}
\sisetup{locale = DE, per-mode = fraction, separate-uncertainty,   exponent-to-prefix, prefixes-as-symbols = false, scientific-notation=false
}
\newcommand{\ns}[4]{(\num[scientific-notation=false]{#1}\pm\num[scientific-notation=false]{#2})\cdot\num[]{e#3}\si{#4}}

% show isbn in bibliography
\usepackage{natbib}

\begin{document}

\begin{titlepage}

\vspace*{1cm}
	\centering
	
	{\huge\bfseries Eine Email-Client-App entwickeln \par}
	\vspace{0.5cm}
	{\Large Noah Vogt \& Simon Hammer\par}
	\vspace{17cm}

	{\large Geschrieben im Jahr 2021\par}
	
\end{titlepage}

\tableofcontents
\pagebreak

\section{Vorwort}
\section{Einleitung}
\subsection{Ideenfindung}

\section{Ziel der Arbeit}

 was, wie und warum [machen wir das?]

\section{Konzept der Arbeit}

\subsection{Funktionsweise}
\subsubsection{Vergleich mit Konkurrenz}
\subsection{Quellcode Modell}
\subsection{Philosophie (suckless)}
\subsubsection{Hintergründe, Technologisch, UNIX, KISS}
\subsection{Lizensierung}
\subsubsection{Hintergründe, philosophisch, technologisch}

\section{Arbeitsprozess}

\subsection{Hardware}

\subsubsection{Smartphones}
für testing
\subsubsection{PC / Laptop}
für programmierung selber

\subsection{Software}

Aufgrund dessen, dass ein umfassendes Programm entstehen soll, wird auch Gebrauch von einigen anderen Programmen gemacht. In den nachfolgenden Seiten wird beschrieben welche Programme genutzt
werden, wieso diese ausgewählt wurden und wie der Umgang mit Ihnen war.  


\subsubsection{Programme}

\paragraph{Version Control System}
\subparagraph{Git}


Git und GitHub sind wohl die wichtigsten Programme die genutzt wurden. Sie sind Systeme, welche Fileordner (repository) verwalten können und sie für mehrere Computer zur verfügung stellen, 
wobei sie sehr viele praktische Funktionen mit sich bringen. Mit Git können repositorys local auf Computer oder Hardware geteilt werden, mit GitHub könne die repositorys auch 
über das Internet geteilt werden. Der einfachheitshalber wird nicht zwischen Git und GitHub unterschieden. 




\subparagraph{Github}

\paragraph{IDE}
android studio
\paragraph{Texteditor}
vim

\paragraph{Android Emulator(s)}

\paragraph{Compiler}
gradle, maven

\paragraph{Installer / Packaging}
erklären

\subparagraph{signing keys}
\subparagraph{Android Debugging Bridge}


\paragraph{Open Source Programme}

Beim Programmieren kann es sehr Hilfreich sein Programme zu haben welche, ähnliche Funktionen haben wie das Programm welches entstehen soll. 
Solche Vorlagen können beliebig getestet und verändert werden. Simon hatte zu beginn Schwierigkeiten Java zu nutzen, um Programme zu schreiben, da er noch nicht viel 
Erfahrung mit dem Programmieren hatte. Um sich mit der Art der Sprache und des Programmierens vertieft auseinander zu setzen, begann er Email-Apps, welche Open Source
waren, genauer zu Betrachten. Im folgenden Text werden wir diese Programme aufführen und zeigen für was wir sie gebraucht haben. 

\subsubsection{Librarys}

\paragraph{RecyclerViewer}

Der Recyclerviewer ist ein Behälter in welchen Daten gepackt werden. Er wird dem Layout hinzugefügt und hat eine grossen Vorteil gegenüber Listen. 
Eine Liste wird einmalig erstellt und komplett generiert. Das heisst es gibt Behälter, welche existieren, aber nicht auf dem Bildschirm angezeigt werden. 
Diese Behälter brauchen aber dennoch Speicherplatz, sind aber sinnlos. Hingegen der Recyclerviewer generiert nur so viele Behälter wie auf dem Bildschirm angezeigt werden können. 
Die Behälter, welche beim Scrollen am Bildschirm ende ankommen werden sogar wieder verwendet, mit neuen Information gespeist und am anderen Ende des Bildschirms angezeigt.

Bild von RecycleView

Ich (Simon) habe viel Zeit in einem template für den Recyclerviewer verbracht, da mir viele Internetseiten nicht helfen konnten. Es waren die ersten Schritte um 
richtig zu verstehen wie eine App funktioniert und wie sie Aufgebaut ist. Ich habe mich davor schon informiert jedoch wurde es mir dort richtig klar. Ich habe gelernt
wie Behälter über einen Key von Java Files aufgerufen werden und mit Daten gespeist werden. Ebenso habe ich verstanden, weshalb in Programmen, basierend auf Java, viele 
Klassen erstellt erstellt werden müssen, weil jeweils nur einmal die Variablen, Funktionen und Konstruktor einer andere Klasse implementiert werden können. Das heisst, 
wenn eine Klasse zwei Funktionen aus zwei unterschiedlichen Klassen verwendet werden soll, muss eine der beiden Klassen die andere Klasse implementieren. 

\subsection{Recherche Tools / Quellen}
\subsubsection{Internet}
duckduckgo, arch wiki, stackoverflow
\subsubsection{Bücher, Artikel}

\subsection{Dokumentation(-stools)}
\subsubsection{Latex}
\subsubsection{Pandoc}

\section{Programmstruktur}

\subsection{Sicherheit / Security (Features)}
\subsubsection{PRIVATE MODE, Sandbox}

\subsection{Code Kompaktheit}
\subsubsection{Maintaining}
\subsubsection{less bug/error-prone}

\section{Umsetzung}

\subsection{neutraler Bericht}
verweis texdiary
\subsection{Beispiele aus der Umsetzung}
\subsubsection{Bugs}
erklärung woher, warum falsch, wie gelöst

\subsubsection{Probleme / Hiccups}
Gründe

\subsubsection{Kommunikation}

\section{Einschätzung / Schlussfolgerung}

\subsection{Fremdeinschätzung}
\subsection{Selbsteinschätzung}
\subsubsection{was lief gut}
\subsubsection{was lief schlecht}
\subsubsection{was würden wir gleich machen}
\subsubsection{was würden wir anders machen}
\subsubsection{abschliessende persönliche Schlussfolgerung}

\section{Danksagung}


\end{document}
