matur.tex 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. % standard
  2. \documentclass[a4paper,11pt]{article}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage[ngerman]{babel}
  5. % geometry
  6. \usepackage{geometry}
  7. \geometry{ headsep=20pt,
  8. headheight=20pt,
  9. left=21mm,
  10. top=15mm,
  11. right=21mm,
  12. bottom=15mm,
  13. footskip=20pt,
  14. includeheadfoot}
  15. % header and footer
  16. \usepackage{datetime}
  17. \newdateformat{dmy}{%
  18. \THEDAY.~\monthname[\THEMONTH] \THEYEAR}
  19. \usepackage{fancyhdr}
  20. \pagestyle{fancy}
  21. \lhead{Noah Vogt \& Simon Hammer}
  22. \chead{}
  23. %\rhead{\dmy\today}
  24. \lfoot{}
  25. \cfoot{Gymnasium Kirschgarten}
  26. \rfoot{Seite \thepage}
  27. \renewcommand{\footrulewidth}{.4pt}
  28. % fix figure positioning
  29. \usepackage{float}
  30. % larger inner table margin
  31. \renewcommand{\arraystretch}{1.4}
  32. % no paragraph indent
  33. \setlength{\parindent}{0em}
  34. % graphics package
  35. \usepackage{graphicx}
  36. \usepackage{multicol}
  37. % use sans serif font
  38. \usepackage{tgheros}
  39. \usepackage{mathptmx}
  40. % don't even ask what this is for, I have no idea (noah)
  41. \usepackage{bm} %italic \bm{\mathit{•}}
  42. \usepackage[hang]{footmisc}
  43. \usepackage{siunitx}
  44. \usepackage[font={small,it}]{caption}
  45. \sisetup{locale = DE, per-mode = fraction, separate-uncertainty, exponent-to-prefix, prefixes-as-symbols = false, scientific-notation=false
  46. }
  47. \newcommand{\ns}[4]{(\num[scientific-notation=false]{#1}\pm\num[scientific-notation=false]{#2})\cdot\num[]{e#3}\si{#4}}
  48. % show isbn in bibliography
  49. \usepackage{natbib}
  50. \begin{document}
  51. \begin{titlepage}
  52. \vspace*{1cm}
  53. \centering
  54. {\huge\bfseries Eine Email-Client-App entwickeln \par}
  55. \vspace{0.5cm}
  56. {\Large Noah Vogt \& Simon Hammer\par}
  57. \vspace{17cm}
  58. {\large Geschrieben im Jahr 2021\par}
  59. \end{titlepage}
  60. \tableofcontents
  61. \pagebreak
  62. \section{Ideenfindung}
  63. \section{Werkzeuge}
  64. 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
  65. werden, wieso diese ausgewählt wurden und wie der Umgang mit Ihnen war.
  66. \subsection{Git/GitHub}
  67. 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,
  68. 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
  69. über das Internet geteilt werden. Der einfachheitshalber wird nicht zwischen Git und GitHub unterschieden.
  70. \subsection{Open Source Programme}
  71. Beim Programmieren kann es sehr Hilfreich sein Programme zu haben welche, ähnliche Funktionen haben wie das Programm welches entstehen soll.
  72. 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
  73. 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
  74. waren, genauer zu Betrachten. Im folgenden Text werden wir diese Programme aufführen und zeigen für was wir sie gebraucht haben.
  75. \subsubsection{RecyclerViewer}
  76. 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.
  77. Eine Liste wird einmalig erstellt und komplett generiert. Das heisst es gibt Behälter, welche existieren, aber nicht auf dem Bildschirm angezeigt werden.
  78. 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.
  79. 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.
  80. Bild von RecycleView
  81. 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
  82. 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
  83. 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
  84. Klassen erstellt erstellt werden müssen, weil jeweils nur einmal die Variablen, Funktionen und Konstruktor einer andere Klasse implementiert werden können. Das heisst,
  85. wenn eine Klasse zwei Funktionen aus zwei unterschiedlichen Klassen verwendet werden soll, muss eine der beiden Klassen die andere Klasse implementieren.
  86. \subsection{AndroidStudio}
  87. \subsection{Librarys}
  88. \end{document}