<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Beiträge von Lisa-Maria Polena - Mobile USTP MKL</title>
	<atom:link href="https://mobile.fhstp.ac.at/author/it211509/feed/" rel="self" type="application/rss+xml" />
	<link>https://mobile.fhstp.ac.at/author/it211509/</link>
	<description>Die &#34;Mobile Forschungsgruppe&#34; der USTP, sie  sammelt hier alles zu den Themen Design, UX und Entwicklung mobiler Applikationen</description>
	<lastBuildDate>Tue, 04 Jul 2023 19:38:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://mobile.fhstp.ac.at/wp-content/uploads/2025/03/icon-120x120.webp</url>
	<title>Beiträge von Lisa-Maria Polena - Mobile USTP MKL</title>
	<link>https://mobile.fhstp.ac.at/author/it211509/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Muscle Hustle &#8211; Finale Version</title>
		<link>https://mobile.fhstp.ac.at/development/muscle-hustle-finale-version/</link>
		
		<dc:creator><![CDATA[Lisa-Maria Polena]]></dc:creator>
		<pubDate>Tue, 04 Jul 2023 19:38:33 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Studium]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=11020</guid>

					<description><![CDATA[<p>Dieses Semester habe ich wieder an meiner Fitness App weitergemacht. Das Ziel war es, dass am Ende dieses Semesters die Beta-Version veröffentlicht wird. Dieses Ziel wurde erreicht. Der Hauptfokus war es die wesentlichen Funktionen umzusetzen, das Deployment einzurichten und in das Thema End-2-End Tests einzulesen. </p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/muscle-hustle-finale-version/">Muscle Hustle &#8211; Finale Version</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Dieses Semester habe ich wieder an meiner Fitness App weitergemacht. Das Ziel war es, dass am Ende dieses Semesters die Beta-Version veröffentlicht wird. Dieses Ziel wurde erreicht. Der Hauptfokus war es die wesentlichen Funktionen umzusetzen, das Deployment einzurichten und in das Thema End-2-End Tests einzutauchen. </p>



<p></p>



<h2 class="wp-block-heading">Planung &amp; Technologien </h2>



<p>Bereits im letzten Semester habe ich angefangen die App in NextJs zu entwickeln. Als Datenbank wird Firebase verwendet und zur Authentifizierung wird Next-Auth eingesetzt. Für das Deployment wurde &#8216;Vercel&#8217; verwendet, zumal dies für NextJS Applikationen entwickelt wurde und auch sehr &#8216;straight-forward&#8217; bezüglich der Einrichtung und Konfiguration ist. Für die End-2-End Tests wurde &#8216;Cypress&#8217; verwendet. Außerdem habe ich mich im Zuge der Tests und des Deployment mit GitHub Workflows beschäftigt. </p>



<p></p>



<h2 class="wp-block-heading">Umsetzung</h2>



<p>Die Beta-Version von Muscle Hustle umfasst folgende Funktionen: </p>



<h3 class="wp-block-heading">Registrierung / Login </h3>



<p>Der User muss sich zuerst registrieren, um die App benutzen zu können. Die Notwenigkeit für diese Funktion ist ziemlich selbsterklärend. Für die Registrierung und den Login wird next-auth verwendet. In weiteren Schritten soll es auch ein Social-Login geben. Dies wird aber erst in ferner Zukunft umgesetzt werden. </p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1280" height="800" data-id="11043" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljodzrq2-1280x800.jpg" alt="" class="wp-image-11043" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="1280" height="800" data-id="11036" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljodzfrg-1280x800.jpg" alt="" class="wp-image-11036" /></figure>
</figure>



<h3 class="wp-block-heading">Workouts </h3>



<p>Der User kann beliebig viele Workouts erstellen, welche dann auf der Home-Seite angezeigt werden. Bei den Workouts kann ein Titel, eine Beschreibung, die Muskelgruppe, welche trainiert wird, und beliebig viele Übungen angegeben werden. Bei den Übungen können dann beliebig viele Sets hinzugefügt werden. Es besteht auch die Möglichkeit das erste Set als &#8220;Warm-up&#8221;-Set zu kennzeichnen. Bei den Sets können dann die kg und die Wiederholungen angegeben werden. </p>



<p>Bei den Workouts gibt es außerdem einen &#8216;Rest-Timer&#8217;, welcher für die Pausen zwischen den Sets gedacht ist. Wie lange der Rest-Timer läuft, kann jeder User individuell einstellen. (Per default sind es zwei Minuten.)</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="1280" height="800" data-id="11039" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljoe1klp-1280x800.jpg" alt="" class="wp-image-11039" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1280" height="800" data-id="11041" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljoem1pd-1280x800.jpg" alt="" class="wp-image-11041" /></figure>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="770" height="400" data-id="11040" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljoeniuc-770x400.jpg" alt="" class="wp-image-11040" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1280" height="800" data-id="11037" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljoesb3i-1280x800.jpg" alt="" class="wp-image-11037" /></figure>
</figure>



<h3 class="wp-block-heading">Exercises </h3>



<p>Der User hat einerseits eine große Auswahl an bereits verfügbaren Übungen, welche von der App bereitgestellt werden. Andererseits hat der User die Möglichkeit eigene Übungen zu erstellen und auch diese bei den Workouts hinzuzufügen. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Disclaimer</strong></p>
<cite>In der Beta-Version werden die Beschreibungen und Bilder zu den Übungen laufend ergänzt und sind noch nicht vollständig.</cite></blockquote>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1280" height="800" data-id="11042" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljoe1cd0-1280x800.jpg" alt="" class="wp-image-11042" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1280" height="800" data-id="11038" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2023/07/smartmockups_ljoe13t9-1280x800.jpg" alt="" class="wp-image-11038" /></figure>
</figure>



<h3 class="wp-block-heading">Profil</h3>



<p>Auf der Profil-Seite werden die Daten des Users, sowie die Einstellungen (Sprache und Dauer des Rest-Timers) angezeigt. Von hier aus gelangt der User zu den Einstellungen. </p>



<h3 class="wp-block-heading">Einstellungen </h3>



<p>Bei den Einstellungen hat der User die Möglichkeit seine Profil-Angaben zu ändern, den Account zu löschen, die Sprache der App zu ändern, die Dauer des Rest-Timers einzustellen und eine Bug-Report abzuschicken. </p>



<p>Der Bug-Report ist für die Verbesserung der App gedacht. Hier kann der User einen Fehler melden, welcher vielleicht auftritt, damit ich die App laufend anpassen und verbessern kann. Das Besondere an dem Report ist, dass beim Abschicken keine E-Mail oder dergleichen verschickt wird, sondern es wird in dem Github Repository von meiner App direkt ein Issue erstellt. Dies wurde über die Github API mit der Library &#8216;<a href="https://github.com/octokit/octokit.js/" target="_blank" rel="noreferrer noopener">Octokit</a>&#8216; umgesetzt. </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
const octokit = new Octokit({
  auth: &#039;YOUR-TOKEN&#039;
})

await octokit.rest.issues.create({
    owner: &quot;YOUR-OWNER&quot;,
    repo: &quot;YOUR-REPO&quot;,
    title: &quot;Issue Title&quot;,
    body: &quot;Issue Body Text&quot;,
    labels: &#x5B;&#039;bug&#039;],
    assignees: &#x5B;&#039;maxMustermann&#039;],
})
</pre></div>


<h2 class="wp-block-heading">Testing &amp; Deployment </h2>



<p>Wie bereits erwähnt wurde das Deployment mit Vercel umgesetzt. Zuerst wurde das Deployment automatisch angestoßen, wenn auf den jeweiligen Branch gepusht wurde (dev: Preview Deployment, main: Production Deployment). Im Zuge der End-2-End Tests habe ich mich Github Workflows auseinander gesetzt, zumal ich die Tests laufen lassen wollte, wenn auf den Branch gepusht wird. Nachdem das funktioniert hat, musste ich das Deployment auch anpassen, da es keinen Sinn ergibt, dass ich die Tests nach dem pushen laufen lasse und parallel direkt das Deployment läuft. Somit war der neue gewünscht Workflow: 1. pushen 2. Tests laufen lassen 3. wenn die Tests durchgelaufen sind, deployen, wenn nicht, dann nicht deployed</p>



<p>Dies wurde dann auch so umgesetz. Hierfür werden die sogenannte &#8220;Deploy Hooks&#8221; von Vercel verwendet und das automatische Deployment in der vercel.json deaktiviert. Beim Erstellen der Deploy Hooks muss man angeben für welchen Branch diese gebraucht werden und bekommt dann eine eindeutige URL. Bei der Github Action wird dann ein Post Request auf die jeweiligen URL geschickt, um das Deployment anzustoßen. </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; title: ; notranslate">
      - name: Deploy Staging
        if: github.ref == &#039;refs/heads/dev&#039;
        run: curl -X POST &#039;YOUR-DEPLOY-HOOK-URL&#039;
</pre></div>


<h2 class="wp-block-heading">Herausforderungen </h2>



<p>Obwohl ich am Anfang des Semesters dachte, dass mir das Deployment Probleme machen wird, ging das überraschend einfach und reibungslos. Die erste Herausforderung hatte ich als plötzlich nichts mehr funktioniert hat, was bisher schon reibungslos funktioniert hat (z.B. die Registrierung)&#8230; Nach etlichen Stunden Debugger und verzweifeln, bin ich irgendwann draufgekommen, dass es die .env Datei war&#8230; Es waren (warum auch immer) Beistriche nach den Variablen. Diesen Fehler werde ich nie wieder machen! </p>



<p>Weitere Herausforderungen kamen dann bei den End-2-End Tests, zumal ich mich damit noch nie beschäftigt habe und die ersten Schritte echt eine Herausforderung für mich waren. Als ich es dann geschafft habe zwei Tests zum Testen zu schreiben und manuell durchlaufen zu lassen, kam dann die Herausforderung ein GitHub workflow zu schreiben. Dies war auch nicht ganz einfach, da meine Recherche ergeben hat, dass es hundert verschiedene Varianten und Versionen gibt, wie ich den Workflow schreiben kann. Schlussendlich habe ich es dann geschafft und musste dann noch herausfinden, wie ich das Deployment nun auch über den workflow regeln kann. </p>



<h2 class="wp-block-heading">Learnings </h2>



<p>Mein Nummer Eins Learning ist definitiv: wenn aus heiterem Himmel nichts mehr funktioniert, schau ob in der .env Datei Beistriche sind. 😀 </p>



<p>In dem Semester habe ich definitiv meine Fähigkeiten in NextJs verbessert, zumal ich auch endlich mich mit den globalen States auseinander gesetzt habe (was ich bis jetzt nicht verstanden/hinbekommen habe). Zusätzlich habe ich mich zum ersten Mal mit dem Deployment, mit End-2-End Tests und mit Github Workflows auseinandergesetzt und habe definitiv in diesen Bereichen einiges dazugelernt. </p>



<h2 class="wp-block-heading">Beta-Version</h2>



<p>Die Beta-Version ist unter folgenden Link erreichbar: <a href="http://muscle-hustle.vercel.app" target="_blank" rel="noreferrer noopener">MuscleHustle</a></p>



<p><strong>Bitte beachten, dass die App eine PWA für mobile Geräte ist und die Beta-Version auch dafür optimiert ist. Die App sollte definitiv installiert werden, um das beste Ergebnis zu bekommen! </strong>(Am Laptop im Browser kann sie auch über die Smartphone-Simulation laufen.)</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/muscle-hustle-finale-version/">Muscle Hustle &#8211; Finale Version</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Muscle Hustle – Back To the Start</title>
		<link>https://mobile.fhstp.ac.at/development/muscle-hustle-back-to-the-start/</link>
		
		<dc:creator><![CDATA[Lisa-Maria Polena]]></dc:creator>
		<pubDate>Fri, 10 Mar 2023 19:09:26 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=10961</guid>

					<description><![CDATA[<p>Bereits seit 2 Semestern entwickle ich meine eigene Fitness-App „Muscle Hustle“ im Zuge meiner Masterklasse „Mobile“. Dieses Semester wollte ich sie so gut wie fertig stellen und die Beta-Phase erreichen. Allerdings habe ich mir dann eingebildet doch wieder zurück an den Anfang zu gehen.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/muscle-hustle-back-to-the-start/">Muscle Hustle – Back To the Start</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bereits seit 2 Semestern entwickle ich meine eigene Fitness-App „Muscle Hustle“ im Zuge meiner Masterklasse „Mobile“. Dieses Semester wollte ich sie so gut wie fertig stellen und die Beta-Phase erreichen. Allerdings habe ich mir dann eingebildet doch wieder zurück an den Anfang zu gehen.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-embed is-type-wp-embed is-provider-mfg wp-block-embed-mfg"><div class="wp-block-embed__wrapper">
https://akirchknopf-21110.php.fhstp.cc/studium/studium-projekte/fitness-app-ws21/
</div></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-embed is-type-wp-embed is-provider-mfg wp-block-embed-mfg"><div class="wp-block-embed__wrapper">
https://akirchknopf-21110.php.fhstp.cc/development/fitness-app-ss21-muscle-hustle/
</div></figure>
</div>
</div>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Planung</h2>



<p>Da die App schon fortgeschritten ist bezüglich ihrer Funktionsweisen, war der Plan, dass ich etwaige Bugs fixe, ein paar kleinere Funktionen noch einbaue und die App fertig mache, um die Beta-Phase rauszubringen und die App zu testen. Allerdings wurde dieser Plan im Laufe des Semesters um den Haufen geworfen. Der neue Plan war es dann die App auf einem neuen Technologie-Stack aufzusetzen. Wieso, weshalb, warum wird im Abschnitt „Technologie- Wechsel“ erläutert.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Entwicklungsphase 1.0 </h2>



<p>In der ersten Entwicklungsphase habe ich zuerst die groben Bugs, die unbedingt gefixed werden mussten, beseitigt und die App durchgehend getestet, um alle Bugs zu finden und zu fixen. Außerdem habe ich auch kleine Funktionen ergänzt, die noch gefehlt haben, wie zum&nbsp;Beispiel der „Plate Calculator“.</p>



<p>Bei dieser Funktion geht es darum, dass bei einer Übung die eine ‚Barbell‘ (Langhantel)&nbsp;verwendet, ausgerechnet wird, welche und wie viele Platten pro Seite verwendet werden müssen, um das gewünschte Gewicht zu erreichen. Um dies individueller zu machen, gibt es auch die Möglichkeit anzugeben, welche und wie viele Platten der User zur Verfügung hat.&nbsp;Zusätzlich muss/kann auch das Gewicht der ‚Barbell‘ angegeben werden, da dies auch in der&nbsp;Kalkulation berücksichtigt werden muss.</p>



<p>Ebenfalls in der ersten Entwicklungsphase habe ich die Funktionen, welche nicht für die Beta- Phase notwendig sind und auch noch nicht fertig sind, ‚ausgeblendet‘, um mich auf die&nbsp;wesentlichen Funktionen zu konzentrieren und nicht an den Funktionen hängen bleibe, da ich bis zum Ende des Semesters die Beta-Phase erreichen wollte.</p>



<p>Außerdem habe ich viel Refactoring betrieben, da teilweise viel Spagetti-Code vorhanden war oder Funktionen ausgelagert werden konnten, oder Funktionen generell entfernt werden konnten, etc.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Technologie-Wechsel</h2>



<p>Wie bereits im Abschnitt „Planung“ erwähnt, habe ich meinen ursprünglichen Plan im Laufe des Semesters um den Haufen geworfen und die App mit einem neuen Technologie-Stack aufgesetzt. Dieser Plan ist daraus resultiert, da ich damals Ionic nur gewählt habe, weil wir es in der Masterklasse gelernt haben und ich so noch mehr dazulernen konnte. Allerdings wusste ich damals so gut wie nichts über das Framework und konnte demnach damals nicht sagen, ob die Technologie das Richtige für mich ist. Wie sich herausgestellt hat, war sie es nicht. Im Großen und Ganzen habe ich nichts gegen Ionic, aber es ist nicht das Framework, mit dem ich gerne arbeite und für meine App, welche ich auch nach dem Master weiterentwickeln will, verwenden will. Es hat lange gebraucht bis ich ein Framework gefunden habe, wo ich wirklich sagen kann, dass es Potential hat, mein ‚Go-To‘-Framework zu werden. Nun bin ich der Meinung, dass ich es gefunden habe und wollte deswegen meine App neu mit „NextJS“ aufsetzen.</p>



<p></p>



<p>Alter Technologie-Stack: NestJS, Ionic, MySQL, JWT </p>



<p>Neuer Technologie-Stack: NextJS, Firebase, NextAuth</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Entwicklungsphase 2.0 </h2>



<p>In der zweiten Entwicklungsphase habe ich mal damit begonnen die Next-App aufzusetzen, Firebase einzurichten und in der App integrieren. Danach habe ich begonnen das Grunddesign zu implementieren und die ersten Seiten zu erstellen. Anschließend habe ich das Login und die Registrierung umgesetzt, mit Next-Auth und begonnen die ersten Funktionen einzubauen.</p>



<p>Da ich vor dem Technologie-Wechsel noch vor hatte zwei neue Funktionen einzubauen, habe ich, bevor ich die vorhandenen Funktionen weitereingebaut habe, begonnen diese zu entwickeln.<br>Zum einen war das die Mehrsprachigkeit, zumal die App ursprünglich nur Englisch war, aber ich auch Freunde habe, welche die App auch verwenden wollen und auch die Möglichkeit</p>



<p>haben wollen die App auf Deutsch zu verwenden. Die Logik hierbei ist, dass zuerst die Standardsprache, welche im Browser bzw. auf dem Gerät eingestellt ist, verwendet wird und wenn der User dann eingeloggt bzw. registriert ist, kann dann zwischen den Sprachen gewechselt werden.</p>



<p>Zum anderen wollte ich die Möglichkeit haben den Usern E-Mails zu schicken, was aber nicht nur „Marketing“-Gründe hat, sondern auch verwendet wird, um das Passwort zurückzusetzen, Bugs zu melden und generell Feedback zu geben.<br>Zu guter Letzt habe ich mir Zeit genommen, um den bereits vorhanden Code zu refactoren und die Struktur zu überarbeiten und anzupassen, damit ich nicht wieder das gleiche Problem habe, wie davor.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Herausforderungen </h2>



<p>Eine Herausforderung war es die endlosen Zeilen an Code gescheit zu refactoren. Ich bin kein&nbsp;Fan davon zu früh den Code zu refactoren und „over engineering“ zu betreiben. Meistens&nbsp;schaue ich, dass die Funktion, welche ich gerade entwickle, im Großen und Ganzen funktioniert und dann Refactoring betreibe. Allerdings passiert es mir leider oft, dass ich dann zu enthusiastisch bin und gleich die nächste Funktion entwickeln will und somit dann das Refactoring immer mehr nach hinten verschoben wird.</p>



<p>Zusätzlich hatte ich einen innerlichen Kampf, ob ich wirklich neu beginnen soll, da ich somit wieder viele Schritte zurück gegangen bin in meinem Fortschritt. Allerdings habe ich eingesehen, dass es auf längere Sicht viel Sinn ergibt.<br>Zusätzlich sind auch Probleme mit Next-Auth aufgekommen, welche ich leider bis jetzt noch nicht lösen konnte. Der normale Login mit Benutzerdaten funktioniert, aber mit der Registrierung/Login über Google macht mir ein paar Probleme. Ein paar andere kleine Next- Probleme sind auch aufgetaucht, aber die konnten durch Recherche und mit bisschen Geduld behoben werden.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Meine Learnings</h2>



<p>In diesem Semester bestehen meine Learning nicht so viel aus neuen technologischen Fähigkeiten, sondern eher aus Erkenntnissen über die Planung und das Vorausdenken bei Projekten.</p>



<p>Zum einen ist ein großes Learning, dass ich mit dem Refactor früher beginne, wobei ich das aber bei der zweiten Entwicklungsphase eh schon umgesetzt habe. Zusätzlich ist mir beim Neuaufsetzen aufgefallen, dass sich an der Struktur, egal ob Datenbank oder Generell, viel während dem Projekt geändert hat und somit viele Stellen angepasst werden mussten und demnach nicht die beste Lösung bzw. die beste Struktur für die App gegeben war. Aufgrund dessen ist ein weiteres Learning, dass der Anfang des Projektes wirklich wichtig ist und man sich genügend Zeit nehmen sollte das Konzept zu entwickeln und 0gut durchzudenken. Dies betrifft auch den Technologie-Stack, damit man nicht während des Projektes einen Technologie-Wechsel vornehmen muss.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">So geht es weiter </h2>



<p>Ich werde an der App weiterarbeiten, alle Funktionen einbauen und hoffentlich bis Herbst die Beta-Phase erreichen und das Live-Testing beginnen. </p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/muscle-hustle-back-to-the-start/">Muscle Hustle – Back To the Start</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projektwebsite &#8211; Animationsfilm</title>
		<link>https://mobile.fhstp.ac.at/studium/projektwebsite-animationsfilm/</link>
		
		<dc:creator><![CDATA[Lisa-Maria Polena]]></dc:creator>
		<pubDate>Wed, 31 Aug 2022 14:20:47 +0000</pubDate>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Studium]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=10193</guid>

					<description><![CDATA[<p>Im Zuge der Lehrveranstaltung "Tun-Forschen-Gründen" habe ich im Tun-Zweig einen Job angenommen, bei welchem die Aufgabe war eine Website zu ihrem Projekt zu gestalten und entwicklen. Bei dem Projekt handelt es sich, um einen Animationsfilm mit dem Titel "The Binaries". </p>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/projektwebsite-animationsfilm/">Projektwebsite &#8211; Animationsfilm</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Im Zuge der Lehrveranstaltung &#8220;Tun-Forschen-Gründen&#8221; habe ich im Tun-Zweig einen Job angenommen, bei welchem die Aufgabe war eine Website zu ihrem Projekt zu gestalten und entwicklen. Bei dem Projekt handelt es sich, um einen Animationsfilm mit dem Titel &#8220;The Binaries&#8221;. </p>



<h2 class="wp-block-heading">Jobbeschreibung </h2>



<p>In der Jobbeschreibung wurde angegeben, dass die Masterklasse AVE im 2. Semester einen Animationsfilm erstellen wird und sie hierfür eine Website benötigen, welche den Projektverlauf dokumentiert und in Breakdown visualisiert. Hierfür werden von den Mitarbeiter und den Mitarbeiterinnen Bilder, Videos ,Renderings, etc. zur Verfügung gestellt. </p>



<p>Das Hauptkriterium, zur Erfüllung der Jobausschreibung, war es eine Website zu designen und zu programmieren, welche den Projektverlauf dokumentiert und visualisiert. Das Design der Website sollte dem Look des Animationsfilmes entsprechen. </p>



<p>Ein Nebenkriterium war es einen Vorher-Nachher-Slider einzubauen, um den Fortschritt und den Verlauf besser visuell darzustellen.  </p>



<h2 class="wp-block-heading">Umsetzung </h2>



<p>Ich habe die Website mit WordPress umgesetzt, da dies die einfachste und schnellste Lösung war, um die Website umzusetzen. Zusätzlich hat die Website keine hohen technischen Anforderungen, weshalb sich WordPress gut dafür eignet. </p>



<p>Im ersten Schritt habe ich das Grundkonzept erstellt, wo die Farbpalette, die Schriften, die Sitemap, etc. definiert und dargestellt war. Im Weiteren habe ich nach einem passenden Template gesucht, welches zu dem Projekt und dem Theme passt. </p>



<p>Im zweiten Schritt habe ich das Template nach dem Grundkonzept angepasst und die verschiedenen Seiten angelegt. Danach habe ich die verschiedenen Areas erstellt und designed. </p>



<p>Im dritten Schritt habe ich ein paar Beiträge für die Making-Of-Seite erstellt, um ersten Content zum Testen zu kreieren und zweitens damit die Mitarbeiter und Mitarbeiterinnen des Animationsfilms ein Gefühl dafür bekommen, wie so ein Beitrag ausschauen kann. Zwischendurch habe ich ebenfalls immer wieder Anpassungen bei der mobile Version vorgenommen. </p>



<p>Nach Absprache mit meiner Kontaktperson habe ich noch Anpassungen gemacht, wie eine neue Kategorie hinzufügen, die Teams-Seite entfernen und das Team nur auf der Home-Seite darstellen, usw.. Danach habe ich noch an dem Layout und dem Design herum probiert und diverse Animationen eingebaut. </p>



<p>Die Website ist noch nicht fertig, da ich bis heute leider noch keinen Content von den Mitarbeitern und Mitarbeiterinnen bekommen habe und deswegen die Website nicht mit echten Content befüllen konnte. </p>



<h2 class="wp-block-heading">Zukunftsaussichten </h2>



<p>Ich habe die Absicht, dass ich die Website noch fertig stelle, sofern ich Material zur Befüllung zur Verfügung gestellt bekomme. Der weitere Plan ist dann, dass sie die Website auf eine eigene Domain geben. </p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1540" height="800" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.10-1540x800.jpg" alt="" data-id="10200" data-full-url="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.10-scaled.jpg" data-link="https://akirchknopf-21110.php.fhstp.cc/?attachment_id=10200" class="wp-image-10200" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.10-1540x800.jpg 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.10-770x400.jpg 770w" sizes="auto, (max-width: 1540px) 100vw, 1540px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1540" height="800" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.25-1540x800.png" alt="" data-id="10201" data-full-url="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.25.png" data-link="https://akirchknopf-21110.php.fhstp.cc/?attachment_id=10201" class="wp-image-10201" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.25-1540x800.png 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.25-770x400.png 770w" sizes="auto, (max-width: 1540px) 100vw, 1540px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1540" height="800" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.47-1540x800.jpg" alt="" data-id="10202" data-full-url="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.47-scaled.jpg" data-link="https://akirchknopf-21110.php.fhstp.cc/?attachment_id=10202" class="wp-image-10202" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.47-1540x800.jpg 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.47-770x400.jpg 770w" sizes="auto, (max-width: 1540px) 100vw, 1540px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1540" height="800" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.57-1540x800.jpg" alt="" data-id="10203" data-full-url="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.57-scaled.jpg" data-link="https://akirchknopf-21110.php.fhstp.cc/?attachment_id=10203" class="wp-image-10203" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.57-1540x800.jpg 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.15.57-770x400.jpg 770w" sizes="auto, (max-width: 1540px) 100vw, 1540px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1540" height="800" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.45-1540x800.png" alt="" data-id="10204" data-full-url="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.45.png" data-link="https://akirchknopf-21110.php.fhstp.cc/?attachment_id=10204" class="wp-image-10204" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.45-1540x800.png 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.45-770x400.png 770w" sizes="auto, (max-width: 1540px) 100vw, 1540px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1540" height="800" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.52-1540x800.jpg" alt="" data-id="10205" data-full-url="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.52-scaled.jpg" data-link="https://akirchknopf-21110.php.fhstp.cc/?attachment_id=10205" class="wp-image-10205" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.52-1540x800.jpg 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.16.52-770x400.jpg 770w" sizes="auto, (max-width: 1540px) 100vw, 1540px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1540" height="800" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.14.50-1540x800.jpg" alt="" data-id="10199" data-full-url="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.14.50-scaled.jpg" data-link="https://akirchknopf-21110.php.fhstp.cc/?attachment_id=10199" class="wp-image-10199" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.14.50-1540x800.jpg 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/08/Bildschirmfoto-2022-08-31-um-16.14.50-770x400.jpg 770w" sizes="auto, (max-width: 1540px) 100vw, 1540px" /></figure></li></ul></figure>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/projektwebsite-animationsfilm/">Projektwebsite &#8211; Animationsfilm</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Travel Diary &#8211; SS22</title>
		<link>https://mobile.fhstp.ac.at/development/travel-diary-ss22/</link>
		
		<dc:creator><![CDATA[Lisa-Maria Polena]]></dc:creator>
		<pubDate>Wed, 22 Jun 2022 21:23:36 +0000</pubDate>
				<category><![CDATA[Cross Plattform]]></category>
		<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=10140</guid>

					<description><![CDATA[<p>Eine App, um Reisen zu dokumentieren. Die App funktioniert offline und kann so ganz einfach in anderen Ländern verwendet werden. Es können Texte, Fotos und Informationen über die Reise hinzugefügt werden. </p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/travel-diary-ss22/">Travel Diary &#8211; SS22</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Meine Mutter führt gerne ein Tagebuch, wenn sie eine größere Reise macht. Früher hat sie dies in einem Notizbuch per Hand geschrieben und nach der Reise die Fotos ausgedruckt und eingeklebt. Dies wurde ihr aber zu mühsam und deswegen wollte sie sich eine passende App dafür runterladen. Allerdings ist sie schnell draufgekommen, dass die Apps am Markt nicht das Wahre sind oder kostenpflichtig sind. Deswegen hat sie mich gefragt/gebeten, dass ich ihr eine Travel-Diary App programmieren soll. Und das habe ich getan bzw. bin ich noch dabei. </p>



<p>Die Grundfunktionen stehen mal im Großen und Ganzen, wobei allerdings noch einiges an Error-Handeling fehlt. Das Design ist noch ganz am Anfang und braucht definitiv noch Arbeit. </p>



<h2 class="wp-block-heading">Konzept </h2>



<p>Das Konzept der App ist sehr simple gehalten. Der User kann ein &#8216;Tagebuch&#8217; erstellen bzw. die Reise, der er/sie machen wird. Dort kann der Titel, eine Beschreibung, das Start- und Enddatum, das Land und ein Coverimage angegeben werden. Wenn der Trip erstellt ist, können Einträge erstellt werden. Hierzu muss der Trip von der Liste auswählt werden. Beim Eintrag kann man dann ebenfalls einen Titel vergeben, eine Beschreibung schreiben, das Datum, das Land und die Stadt angeben. Der Text wird mithilfe eines Rich-Editor erstellt, wo es verschiedene Einstellungen gibt, um den Text anzupassen. Überschriften, Schriftgröße und -farbe, Ausrichtung, Listen, etc.. Außerdem können auch direkt im Text Foto und Videos hinzugefügt werden. Es besteht aber auch außerhalb des Editors die Möglichkeit weitere Bilder hinzuzufügen. </p>



<h2 class="wp-block-heading">Technologien </h2>



<p>Für die Umsetzung dieser App habe ich mich für Flutter und Dart entschieden, zumal ich meine Fähigkeiten mit Flutter und mit der Programmiersprache Dart verbessern wollte und dies eine gute Gelegenheit war. Für die Datenbank habe ich mich für HiveDB entschieden, da diese auch offline funktioniert (was bei der App essentiell ist). </p>



<h2 class="wp-block-heading">Lesson Learned </h2>



<p>Ich habe bei der Umsetzung definitiv einiges gelernt, zumal alle verwendeten Technologien Neuland für mich waren. Die größten Probleme die ich bei der App hatte, waren zum Einen, dass Flutter bzw. Dart noch relativ jung sind und es nicht für alle Fehler bereits eine Lösung im Internet gibt und somit die Fehlerbehebung teilweise länger dauerte. Zum Anderen habe ich für das Projekt definitiv weniger Zeit eingeplant, als ich investiert habe. Ich habe unterschätzt, dass ich mich erst mit den neuen Technologien beschäftigen muss und somit mehr Zeit für die Umsetzung der Grundfunktionen gebraucht habe.</p>



<h2 class="wp-block-heading">Zukunftsausblick  </h2>



<p>Wie man sieht, ist die App noch nicht fertig und wird im Sommer weiterentwickelt, damit meine Mutter die App im September verwenden kann. Ich bin gespannt, wie viel Zeit ich noch investieren muss, damit die App einwandfrei einsatzbereit ist. Auf jeden Fall habe ich gelernt, dass ich nicht unterschätzen sollte, wie viel Zeit eine App (auch wenn sie nur einen kleinen Funktionsumfang hat) zum Entwickeln braucht. </p>



<p></p>



<p></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/travel-diary-ss22/">Travel Diary &#8211; SS22</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fitness-App &#8211; SS22 (Muscle Hustle)</title>
		<link>https://mobile.fhstp.ac.at/development/fitness-app-ss21-muscle-hustle/</link>
		
		<dc:creator><![CDATA[Lisa-Maria Polena]]></dc:creator>
		<pubDate>Wed, 22 Jun 2022 20:55:21 +0000</pubDate>
				<category><![CDATA[Cross Plattform]]></category>
		<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=10126</guid>

					<description><![CDATA[<p>Bereits im Wintersemester 2020 habe ich im Zuge der Masterklasse begonnen eine Fitness-App zu entwickeln. Der Hintergrund dieser App war folgender: Als mein Hobby gehe ich regelmäßig ins Fitness-Studio und durch die verschiedenen Workouts mit den verschiedenen Übungen habe ich nach einer App gesucht, wo ich diese tracken kann, zumal die Übersicht in meinen Notizen oft unübersichtlich und unbefriedigend ist. Leider musste ich schnell feststellen, dass keine App auf den Markt meine Anforderungen erfüllt oder ab einem (viel zu frühen) Zeitpunkt kostenpflichtig ist. </p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/fitness-app-ss21-muscle-hustle/">Fitness-App &#8211; SS22 (Muscle Hustle)</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bereits im Wintersemester 2021 habe ich im Zuge der Masterklasse begonnen eine Fitness-App zu entwickeln. Der Hintergrund dieser App war folgender: <em>Als mein Hobby gehe ich regelmäßig ins Fitness-Studio und durch die verschiedenen Workouts mit den verschiedenen Übungen habe ich nach einer App gesucht, wo ich diese tracken kann, zumal die Übersicht in meinen Notizen oft unübersichtlich und unbefriedigend ist. Leider musste ich schnell feststellen, dass keine App auf den Markt meine Anforderungen erfüllt oder ab einem (viel zu frühen) Zeitpunkt kostenpflichtig ist. </em></p>



<p>Dadurch, dass ich die App selber im Alltag nutzen möchte, habe ich die Möglichkeit ergriffen die Fitness-App im Sommersemester weiterzuentwickeln, zu verbessern und meinen Bedürfnissen anzupassen. </p>



<p> </p>



<h2 class="wp-block-heading">Technologien </h2>



<p>Die App verwendet im Backend NestJS in Verbindung mit TypeORM und MySQL als Datenbank. Zusätzlich werden JSON Web Token für die Autorisierung und Authentifizierung verwendet. Im Frontend wird Ionic Angular verwendet. </p>



<h2 class="wp-block-heading">Bisheriger Stand </h2>



<p>Im Wintersemester wurden die Grundfunktionen umgesetzt. Unter Anderem konnte ein Workout erstellt werden, Übungen und Sets mit den jeweiligen Gewichten und Wiederholungen hinzugefügt werden. Das Workout konnte gestartet und die Sets als &#8216;erledigt&#8217; markiert werden. Es gab eine Liste an Übungen mit der jeweiligen Kategorie und Muskelgruppe und es konnten eigene Übungen erstellt werden. </p>



<h2 class="wp-block-heading">Design </h2>



<p>Für das Design habe ich mir Hilfe von einer anderen Studentin im Zuge der Lehrveranstaltung &#8216;Tun, Forschen, Gründen&#8217; geholt. Am Anfang des Semesters habe ich ihr meinen aktuellen Stand gezeigt, die Funktionen der App erklärt und ein Board erstellt, wo ich Farbpaletten und andere App-Design eingefügt habe, damit sie die Design-Richtung erkennt, in welche ich gehen wollte. Als erstes musste ich mich auf einen Namen festlegen, da sie für mich ein Logo gestaltet hat. Der Name der App wurde: <strong>Mustle Hustle</strong>. Ich bin wirklich sehr zufrieden mit dem Design und habe es auch Großteils bereits umgesetzt. Ein paar Kleinigkeiten fehlen noch oder müssen noch angepasst werden.</p>



<p>(Der Kalendar ist noch nicht an dem Design angepasst, da es ein Package ist und ich noch bisschen damit kämpfe.) </p>



<h2 class="wp-block-heading">Neue Funktionen </h2>



<p>Die neuen Funktionen, welche ich in diesem Semester entwickelt habe, sind unter Anderem: </p>



<ul class="wp-block-list"><li>Ein Rest-Timer für die Pausen zwischen den Sets </li><li>Die Übungen können durchsucht und nach Kategorie oder Muskelgruppe gefiltert werden </li><li>Bei den Einstellungen kann die Zeit des Rest-Timer individuell angepasst werden.</li><li>Ebenfalls bei den Einstellungen kann der Wirkout-Split (an welchem Tag, man welches Workout machen will) eingegeben werden. </li><li>Der Workout-Split wird dann in einem Kalendar angezeigt. Wenn man allerdings doch nicht dazu kommt das geplante Workout zu machen, kann man es einfach überspringen oder auf den nächsten Tag verschieben. Der gesamte Kalendar passt sich dann daran an. </li><li>Ebenfalls werden die Workouts, welche erfolgreich gemacht wurden, in dem Kalender angezeigt. </li><li>&#8230;</li></ul>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/06/deviceframes-5-1540x800.jpg" alt="" class="wp-image-10135" width="651" height="339" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/06/deviceframes-5-1540x800.jpg 1540w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/06/deviceframes-5-770x400.jpg 770w" sizes="auto, (max-width: 651px) 100vw, 651px" /></figure></div>



<h2 class="wp-block-heading">Lesson Learned </h2>



<p>Ich habe definitiv ein besseres Verständnis für NestJS und Ionic bekommen. Allerdings mehr für Ionic, zumal das Backend schon ziemlich fertig war und dort nicht mehr viel angepasst/verändert/hinzugefügt werden musste. Mein Problem dieses Semester war es, dass ich immer fünf Schritte vorausgedacht habe. Während ich dabei war eine Funktion umzusetzen und die Bugs zu fixen, kam mir gleich eine Idee für eine Erweiterung oder eine neue Funktion, welche ich dann direkt begonnen habe einzubauen. An einem gewissen Punkt hatte ich dann fünf angefangene, unfertige Funktionen und keine Zeit mehr alle ordentlich umzusetzen. Ich habe dann Prioritäten gesetzt und ein paar der Funktionen für die Zukunft geplant. </p>



<h2 class="wp-block-heading">Zukunftsausblick </h2>



<p>Ich habe definitiv vor, dass ich an der App weiterarbeite. Da mittlerweile die wichtigsten Funktionen eingebaut sind und auch ohne Bugs funktionieren, ist der nächste Schritt, dass ich das Design komplett fertig mache und dann geht es ans testen in der Praxis. Mein Plan ist es, dass ich spätestens im Herbst die App einwandfrei bei meinem Training verwenden kann. Wenn das der Fall ist, werde ich erst die nächsten Funktionen und Verbesserungen einbauen. </p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/fitness-app-ss21-muscle-hustle/">Fitness-App &#8211; SS22 (Muscle Hustle)</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Flutter &#8211; Vorstellung des Frameworks</title>
		<link>https://mobile.fhstp.ac.at/development/flutter-vorstellung-des-frameworks/</link>
		
		<dc:creator><![CDATA[Lisa-Maria Polena]]></dc:creator>
		<pubDate>Wed, 22 Jun 2022 17:29:27 +0000</pubDate>
				<category><![CDATA[Cross Plattform]]></category>
		<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=9887</guid>

					<description><![CDATA[<p>Heutzutage reicht es oft nicht mehr aus, die App für eine einzige Plattform zu programmieren, um erfolgreich zu sein. Am besten sollte die App auf allen Geräten und in allen Umgebungen verwendet werden können. Damit die Entwickler und Entwicklerinnen aber nicht den Code für jede Umgebung und für jedes Betriebssystem anpassen müssen, gibt es die Lösung von Cross-Plattform-Entwicklung, wie Flutter. </p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/flutter-vorstellung-des-frameworks/">Flutter &#8211; Vorstellung des Frameworks</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn eine Idee für eine neue App entstanden ist, stellt sich nun die Frage: Wird es eine Web-App, eine native App oder eine hybride App?&nbsp;</p>



<p>Heutzutage reicht es oft nicht mehr aus, die App für eine einzige Plattform zu programmieren, um erfolgreich zu sein. Am besten sollte die App auf allen Geräten und in allen Umgebungen verwendet werden können. Damit die Entwickler und Entwicklerinnen aber nicht den Code für jede Umgebung und für jedes Betriebssystem anpassen müssen, gibt es die Lösung von Cross-Plattform-Entwicklung, wie Flutter.&nbsp;</p>



<h2 class="wp-block-heading">Was ist Flutter? </h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;<em>Flutter ist ein Software Development Kit für mobile Apps, mit dem sich leistungsstarke und realitätsnahe Apps für iOS und Android aus einer einzigen Codebasis erstellen lassen.&#8221;</em></p><cite>—&nbsp;flutter.io</cite></blockquote>



<p>Flutter ist ein Open-Source-Framework von Google zur Entwicklung von Apps auf unterschiedlichen Plattformen aus einer einzigen Codebasis. Mit Flutter können Apps für Android- und iOS-Geräte entwickelt werden, aber auch Web-Apps oder native Anwendungen für Windows, Linux und MacOS. Die entwickelte App in Flutter kann somit mit einer einzigen Codebasis auf vielen verschiedenen Zielplattformen laufen, ohne dass Entwickler und Entwicklerinnen größere Anpassungen durchführen müssen.&nbsp;</p>



<p>Die Apps, welche in Flutter, in der Programmiersprache Dart, entwickelt werden, sehen aus wie native Apps und verhalten sich auch wie jene. Dadurch, dass sie vor der Veröffentlichung für die jeweilige Plattform kompiliert werden, benötigen sie weder ein Runtime-Modul noch einen Browser. Laut Google fokussiert sich Flutter auf eine kurze Entwicklungszeit, schnelle Geschwindigkeit bei der Ausführung und ‚nativer User Experience‘. Flutter wird von Google selbst unter anderem für verschiedene Module des Google Assistant und für die Benutzeroberfläche des Google Home Hubs verwendet.&nbsp;</p>



<div class="wp-block-cover aligncenter has-background-dim has-custom-content-position is-position-top-left"><img loading="lazy" decoding="async" width="1920" height="1080" class="wp-block-cover__image-background wp-image-9910" alt="" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/05/flutter-dash.png" data-object-fit="cover" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/05/flutter-dash.png 1920w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/05/flutter-dash-1536x864.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
<p class="has-text-align-left has-large-font-size">Dash</p>



<div style="height:212px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Das Maskottchen von Flutter</p>
</div></div>



<h3 class="wp-block-heading">Flutter SDK </h3>



<p>Das Flutter Software-Development-Kit beinhaltet alle wichtigen Bibliotheken und Kommandozeilentool zur Entwicklung, hat aber jedoch keine eigene grafische IDE. Die Entwicklung kann in jedem beliebigen Texteditor gemacht werden, wobei die Entwickler Android Studio oder Visual Studio Code empfehlen. Flutter stellt passende Plug-Ins für die IDEs zur Verfügung, um die Bibliotheken einzubinden und Auto-Complete für die Syntax zu ermöglichen.&nbsp;</p>



<h3 class="wp-block-heading">Wofür wird Flutter eingesetzt? </h3>



<p>Flutter wird hauptsächlich zur Entwicklung von Android- und iOS-Apps verwendet, wobei für die unterschiedlichen Systeme nur eine Codebasis geschrieben werden, muss. Die Apps werden vor der Veröffentlichung für die entsprechende Plattform kompiliert und laufen als native Apps auf den Endgeräten. Zugleich können aus der gleichen Codebasis auch native Desktop-Anwendungen für Windows, Linux und MacOS oder Web-Apps für den Browser erstellt werden.&nbsp;</p>



<p>Flutter wird zum Beispiel von Google selbst, für verschiedene Module des Google Assistant, oder von, dem bekannten E-Commerce-Anbieter, eBay verwendet.&nbsp;</p>



<h3 class="wp-block-heading">Key Features von Flutter </h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading">Cross-Platform Development</h4>



<p class="has-text-align-center">Eine Codebasis für verschiedene Plattformen</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading">Accessible Native Features</h4>



<p class="has-text-align-center">Ganz einfach auf die nativen Funktionen sowohl auf Android- als auch auf iOS-Plattformen zugreifen</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading">Widgets</h4>



<p class="has-text-align-center">Alles ist ein Widget! Objektorientierte Programmierung bis in das User-Interface</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading">Native Feel and Features</h4>



<p class="has-text-align-center">Zugang zu den nativen Funktionen der iOS- und Android-Plattformen</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading">Minimal Code</h4>



<p class="has-text-align-center">Kompilierung zur Verbesserung der gesamten Startzeit und der Funktionsweise</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading">Hot Reload</h4>



<p class="has-text-align-center">Die vorgenommenen Änderungen, von den Entwicklern, sind mit HotReload sofort sichtbar</p>
</div>
</div>



<h2 class="wp-block-heading">Aufbau von Flutter </h2>



<figure class="wp-block-image size-full"><a href="https://docs.flutter.dev/assets/images/docs/arch-overview/archdiagram.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1836" height="1506" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/05/archdiagram.png" alt="Architektur von Flutter" class="wp-image-9920" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2022/05/archdiagram.png 1836w, https://mobile.fhstp.ac.at/wp-content/uploads/2022/05/archdiagram-1536x1260.png 1536w" sizes="auto, (max-width: 1836px) 100vw, 1836px" /></a><figcaption>(Quelle: https://docs.flutter.dev/assets/images/docs/arch-overview/archdiagram.png)</figcaption></figure>



<p>Im Generellen ist Flutter in Schichten konzipiert. Jede Ebene baut auf der vorherigen auf und ist erweiterbar. Die Schichten bestehen aus unabhängigen Bibliotheken, welche von der unteren Schicht abhängen.&nbsp;Um näher ins Detail einzugehen, werden die verschiedenen Schichten genauer beschrieben, wobei ganz oben, beim Dart-Framework, begonnen wird, dann kommt die Engine, welche von einem Embedder veraltet wird.</p>



<h3 class="wp-block-heading">Framework</h3>



<p>In der Regel interagieren die Entwickler und Entwicklerinnen mit Flutter über das Framework. Hier werden Organisations- und Technologieentwicklungen miteinander verbunden. Das Framework von Flutter ist in Dart geschrieben und beinhaltet eine Reihe an grundlegenden Bibliotheken, aber auch Plattform- und Layout-Bibliotheken.</p>



<p>Ganz unten befindet sich die grundlegende Basisklassen (‚Foundation‘), welche die Funktionen beinhaltet, die von allen anderen Schichten des Frameworks verwendet werden. Danach kommen die Block-Services wie Animation, Painting und Gestures, welche die Bausteine für die Implementierung von Animationen, für die Painting-API und für die Gestenerkennung.&nbsp;</p>



<p>Die nächste Schicht ‚Rendering‘ ist der Flutter-Rendering-Baum und ist für den Umgang mit dem Layout zuständig.&nbsp;Mit dieser Schicht kann ein Baum von renderbaren Objekten aufgebaut werden. Die Objekte können dynamisch manipuliert werden, wobei der Rendering-Baum das Layout automatisch aktualisiert, um die Änderungen widerzuspiegeln.&nbsp;</p>



<p>Die ‚Widget‘ Schicht ist das Flutter-Widget-Framework und hier wird das&nbsp;reaktive Programmiermodell eingeführt. Jedes Rendering-Objekt in der Rendering-Schicht hat eine entsprechende Klasse in der Widgets-Schicht.</p>



<p>Die Material- und Cupertino-Bibliotheken bieten eine Reihe an Steuerelementen. Die Bibliotheken verwenden die Kompositionsprimitive der Widget-Schicht, um die Material- oder iOS-Designsprachen zu implementieren.&nbsp;</p>



<h3 class="wp-block-heading">Engine</h3>



<p>Die Engine von Flutter ist zum größten Teil in C++ geschrieben und unterstützt die Funktionalitäten, welche zur Unterstützung aller Flutter-Anwendungen erforderlich sind.&nbsp;&nbsp;Die Engine stellt die Low-Level-Implementierung der Kern-API von Flutter bereit, inklusive Grafiken, Textlayout, Unterstützung für Barrierefreiheit, Plugin-Architektur, etc.&nbsp;</p>



<h3 class="wp-block-heading">Embedder</h3>



<p>Für das Betriebssystem werden die Anwendungen von Flutter, wie jede andere native Anwendung verpackt. Der Embedder wird in einer Programmiersprache geschrieben, welche für die jeweilige Zielplattform geeignet ist und bietet einen Einstiegspunkt für die Anwendung. Zusätzlich kordiert er den Zugriff auf die Dienste und verwaltet. Die Nachrichten-Ereignisschleife.&nbsp;</p>



<h2 class="wp-block-heading">Programmiersprache von Flutter </h2>



<p>Flutter verwendet die Programmiersprache Dart, welche ebenfalls von Google entwickelt wurde und 2013 veröffentlicht wurde. Dart soll eine moderne Alternative zu JavaScript sein und einige grundsätzliche Probleme lösen,  welche -laut den Entwicklern von Dart- nicht durch eine Weiterentwicklung von JavaScript behoben werden können. </p>



<div class="wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center" style="grid-template-columns:35% auto"><figure class="wp-block-media-text__media"><a href="https://de.m.wikipedia.org/wiki/Datei:Dart-logo-wordmark.svg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1280" height="340" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2022/05/Dart-logo-wordmark.svg_.png" alt="Dart Logo " class="wp-image-9928 size-full" /></a></figure><div class="wp-block-media-text__content">
<p>Dart ist ähnlich zu den Programmiersprachen Swift, C# und Java und ist, unteranderem deswegen, sehr einfach für Umsteiger zu lernen. Das Ziel der Entwickler ist es, dass Dart die produktivste Programmiersprache für die Cross-Plattform-Entwicklung wird. Laut den Herstellern liegt der Fokus hierbei auf kurze Entwicklungszeiten, schnelle Ausführungsgeschwindigkeit und &#8216;nativer User Experience&#8217;. </p>
</div></div>



<h2 class="wp-block-heading">Widgets &#8211; Das Prinzip von Flutter</h2>



<p>Bei Flutter lautet die Strategie „Alles ist ein Widget!“. Das Framework setzt sie objektorientierte Programmierung bis in die Benutzerfläche um. Eine Anwendung besteht aus verschiedenen Widgets, welche ineinander verschaltet sein können. Jeder Button, jeder Text, jeder Container, etc. ist ein Widget. Ein Widget beinhaltet die gesamte Logik, Interaktion und Darstellung innerhalb eines Objektes. Zusätzlich haben sie unterschiedliche Eigenschaften, welche sich verändern lassen, sie können sich gegenseitig beeinflussen und auf Statusänderungen reagieren.&nbsp;</p>



<p>In Flutter gibt es bereits eine große Anzahl an vorgefertigten Widgets, welche die bekanntesten und am häufigsten benötigten Interaktionen abdecken, wie z.B. Buttons, Listen, Checkboxe, etc. und den Designvorgaben entsprechen und den jeweiligen Richtlinien der jeweiligen Zielplattform folgen. Die vorhandenen Widgets können erweitert bzw. verändert werden oder es können auch eigene Widgets erstellt werden, welche sich einfach mit den bereits Bestehenden kombinieren lassen.&nbsp;&nbsp;</p>



<h2 class="wp-block-heading">Vor- und Nachteile von Flutter </h2>



<p>Jedes Software-Development-Kit und jede Programmiersprache hat sowohl Vorteile, als auch Nachteile. Ein paar der Vor- und Nachteile von Flutter sind hier dargestellt.&nbsp;</p>



<figure class="wp-block-table alignleft is-style-stripes"><table><tbody><tr><td class="has-text-align-left" data-align="left"><strong>Vorteile</strong></td><td class="has-text-align-left" data-align="left"><strong>Nachteile</strong></td></tr><tr><td class="has-text-align-left" data-align="left">&#8211; eine Codebasis für alle Plattformen</td><td class="has-text-align-left" data-align="left">&#8211; Code wird schnell unübersichtlich durch die Widgets</td></tr><tr><td class="has-text-align-left" data-align="left">&#8211; Dart ist leicht zu erlernen (vor allem für Umsteiger)</td><td class="has-text-align-left" data-align="left">&#8211; Noch junge, wenig verbreitete Sprache; bis jetzt kleine Community</td></tr><tr><td class="has-text-align-left" data-align="left">&#8211; vielfältige Möglichkeiten und Flexibilität durch die Widgets</td><td class="has-text-align-left" data-align="left">&#8211; Die App ist größer als native Apps wegen den Widgets&nbsp;</td></tr><tr><td class="has-text-align-left" data-align="left">&#8211; performante Ausführung der nativen Apps</td><td class="has-text-align-left" data-align="left">&#8211; Im Funktionsumfang noch eingespannter als andere Programmiersprachen</td></tr><tr><td class="has-text-align-left" data-align="left">&#8211; viele Komponenten vorhanden</td><td class="has-text-align-left" data-align="left"></td></tr><tr><td class="has-text-align-left" data-align="left">&#8211; Hot-Reload</td><td class="has-text-align-left" data-align="left"></td></tr><tr><td class="has-text-align-left" data-align="left">&#8211; Flexibles, individuelles Design</td><td class="has-text-align-left" data-align="left"></td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Installation von Flutter </h2>



<p>Um mit Flutter entwicklen zu können, wird das Flutter-SDK benötigt, welche kostenlos zur Verfügung steht. Zuerst muss das Software-Development-Kit für das jeweilige Betriebssystem installiert werden. Um während der Entwicklung auch die App simulieren zu können, muss dies auch eingerichtet werden. Wie bereits erwähnt gibt es keine eigne IDE für Flutter und somit kann dies frei entschieden werden. Dennoch bietet Flutter für Android-Studio und VSCode Plug-Ins, welche die Entwicklung vereinfachen. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading">macOS</h3>



<p><a href="https://docs.flutter.dev/get-started/install/macos#get-sdk" target="_blank" rel="noreferrer noopener">SDK Installation</a></p>



<p><a href="https://docs.flutter.dev/get-started/install/macos#ios-setup" target="_blank" rel="noreferrer noopener">iOS Setup</a></p>



<p><a href="https://docs.flutter.dev/get-started/install/macos#android-setup" target="_blank" rel="noreferrer noopener">Android Setup</a></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading">Windows</h3>



<p><a href="https://docs.flutter.dev/get-started/install/windows#get-the-flutter-sdk" target="_blank" rel="noreferrer noopener">SDK Installation</a></p>



<p><a href="https://docs.flutter.dev/get-started/install/windows#android-setup" target="_blank" rel="noreferrer noopener">Android Setup</a></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading">Linux</h3>



<p><a href="https://docs.flutter.dev/get-started/install/windows#get-the-flutter-sdk" target="_blank" rel="noreferrer noopener">SDK Installation</a></p>



<p><a href="https://docs.flutter.dev/get-started/install/linux#android-setup" target="_blank" rel="noreferrer noopener">Android Setup</a></p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading">Android Studio</h3>



<p><a href="https://docs.flutter.dev/get-started/editor?tab=androidstudio" target="_blank" rel="noreferrer noopener">Setup</a> </p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading">Visual Studio Code </h3>



<p><a href="https://docs.flutter.dev/get-started/editor?tab=vscode" target="_blank" rel="noreferrer noopener">Setup </a></p>
</div>
</div>



<h2 class="wp-block-heading">Quellen </h2>



<p><a href="https://flutter.dev" target="_blank" rel="noreferrer noopener">https://flutter.dev</a></p>



<p><a href="https://de.wikipedia.org/wiki/Flutter_(Software)" target="_blank" rel="noreferrer noopener">https://de.wikipedia.org/wiki/Flutter_(Software)</a></p>



<p><a href="https://de.wikipedia.org/wiki/Dart_(Programmiersprache)" target="_blank" rel="noreferrer noopener">https://de.wikipedia.org/wiki/Dart_(Programmiersprache)</a></p>



<p><a href="https://dev.to/sudarasach/intro-to-flutter-2odk" target="_blank" rel="noreferrer noopener">https://dev.to/sudarasach/intro-to-flutter-2odk</a></p>



<p><a href="https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-flutter/" target="_blank" rel="noreferrer noopener">https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-flutter/</a></p>



<p><a href="https://www.tenmedia.de/de/glossar/flutter" target="_blank" rel="noreferrer noopener">https://www.tenmedia.de/de/glossar/flutter</a></p>



<p><a href="https://docs.flutter.dev/resources/architectural-overview" target="_blank" rel="noreferrer noopener">https://docs.flutter.dev/resources/architectural-overview</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/flutter-vorstellung-des-frameworks/">Flutter &#8211; Vorstellung des Frameworks</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fitness-App &#8211; WS21</title>
		<link>https://mobile.fhstp.ac.at/studium/studium-projekte/fitness-app-ws21/</link>
		
		<dc:creator><![CDATA[Lisa-Maria Polena]]></dc:creator>
		<pubDate>Thu, 24 Feb 2022 12:27:19 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Dokumentation]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Studium]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=9799</guid>

					<description><![CDATA[<p>Als mein Hobby gehe ich regelmäßig ins Fitness-Studio und durch die verschiedenen Workouts mit den verschiedenen Übungen habe ich nach einer App gesucht, wo ich diese tracken kann, zumal die Übersicht in meinen Notizen oft unübersichtlich und unbefriedigend ist. Leider musste ich schnell feststellen, dass keine App auf den Markt meine Anforderungen erfüllt oder ab <a class="read-more" href="https://mobile.fhstp.ac.at/studium/studium-projekte/fitness-app-ws21/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/studium-projekte/fitness-app-ws21/">Fitness-App &#8211; WS21</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Als mein Hobby gehe ich regelmäßig ins Fitness-Studio und durch die verschiedenen Workouts mit den verschiedenen Übungen habe ich nach einer App gesucht, wo ich diese tracken kann, zumal die Übersicht in meinen Notizen oft unübersichtlich und unbefriedigend ist. Leider musste ich schnell feststellen, dass keine App auf den Markt meine Anforderungen erfüllt oder ab einem (viel zu frühen) Zeitpunkt kostenpflichtig ist. </p>



<p>Deswegen habe ich die Möglichkeit des Semesterprojektes (WS21), der Masterklasse Mobile, genommen, um meine eigene Fitness-App zu programmieren, welche alle, für mich, essenzielle Funktionen enthält und ich in meinem Alltag verwenden kann.&nbsp;</p>



<h2 class="wp-block-heading">Konzept</h2>



<p>Im Allgemeinen soll es eine Fitness-App werden für „Fortgeschrittene“. Für Menschen, die schon länger trainieren und eine App suchen, wo sie ihr Workout festhalten können, eigene Workouts und Übungen erstellen können, die Fortschritte verfolgen können, etc.&nbsp;&nbsp;Die App ist für das Fitness-Studio ausgerichtet oder kann auch für Home-Workouts angewandt werden. Der Kern des Konzeptes ist, dass verschiedene Workouts für die verschiedenen Muskelgruppen erstellt werden können.&nbsp;</p>



<h2 class="wp-block-heading">Backend</h2>



<p>Für die Umsetzung des Backends habe ich mich für NestJS entschieden in Verbindung mit TypeOrm und MySQL als Datenbank. Die Relations zwischen den Workouts, Exercises und Sets war am Anfang ein bisschen herausfordernd und hat ein paar Trail-and-Error Versuche benötigt. Die Logik wurde besser, wie die Bibliothek der vorgefertigten Übungen eine eigene Entity und in einer eigenen Datenbank-Tabelle gespeichert wurden. Die Autorisierung und Authentifizierung wurden mit JSON Web Token umgesetzt.&nbsp;</p>



<h2 class="wp-block-heading">Frontend</h2>



<p>Für die Umsetzung des Frontends habe ich mich für Ionic Angular entschieden. Die Umsetzung wurde ebenfalls ein bisschen komplizierter, als zuvor gedacht, zumal es viele verschiedene Unterseiten gibt, welche Daten austauschen müssen. Der aktuelle Stand umfasst eine Übersichtsseite, welche die verschiedenen Workouts anzeigt und wo neue Workouts erstellt werden können, wobei sich hier eine neue Unterseite öffnet. Auf der Übersichtsseite öffnet sich bei Klick auf ein Workout die Details mit Übungen. Von dieser Detailseite aus können Aktionen, wie Start, Bearbeitung oder Löschung des Workouts, ausgeführt werden. Zusätzlich gibt es eine Übersichtsseite für die Übungen mit einem Button zur Erstellung von neuen Übungen. Bei der Übersicht wird zwischen den vorgefertigten Übungen und den angelegten von dem User unterschieden, wobei die eigenen Übungen bearbeitet und gelöscht werden können.&nbsp;</p>



<h2 class="wp-block-heading">Lesson Learned</h2>



<p>Ich habe das Projekt allein durchgeführt und musste mich somit mit allen Teilen des Projektes intensiv auseinandersetzen. Dies hat Vor- und Nachteile, wobei hier für mich der große Vorteil, dass ich meine Kenntnisse im Back- und Frontend weiterentwickeln konnte, definitiv gewinnt.&nbsp;</p>



<p>Für die Zukunft habe ich gelernt, dass ich mit viel mehr Zeit für das Konzept nehmen sollte und im Detail die Logik vor der Implementierung überlegen und durchspielen sollte, zumal hier einige Probleme aufkamen und ich öfters die Logik und Struktur deswegen ändern musste.&nbsp;</p>



<h2 class="wp-block-heading">Zukunftsausblick</h2>



<p>Mir war am Anfang des Projekts schon klar, dass ich die App im nächsten Semester weiterentwickeln möchte, da ich die App irgendwann im Alltag verwenden will und mir bewusst war, dass dies nach einem Semester noch nicht möglich sein wird. Neben der Verfeinerung der bisherigen Funktionen habe ich vor noch einige andere essenzielle Funktionen einzubauen. Geplant ist eine Kalenderübersicht, eine Fortschrittsansicht des Workouts, ein Protein-Tracker, ein Rest-Timer und noch einiges mehr. So Stay Tuned!&nbsp;</p>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/studium-projekte/fitness-app-ws21/">Fitness-App &#8211; WS21</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
