10 nach 10 Podcast

SDE: Mobile App Development

June 25, 2021 Sigrid Schefer-Wenzl and Igor Miladinovic
10 nach 10 Podcast
SDE: Mobile App Development
Show Notes Transcript

Als mobile Apps bezeichnet man Anwendungssoftware, die speziell für Mobilgeräte und mobile Betriebssysteme entwickelt werden. Somit erweitern Apps die Funktionalität eines Smartphones oder Tablets. Es gibt Apps zum Kommunizieren, Navigieren, Spielen, Informieren und vieles mehr. Mit einer Mobile App können Sie aus einer Idee relativ rasch etwas Nützliches machen.

In unserem Masterstudium SDE können Studierende  Mobile App Development aus mehreren Spezialisierungsfächern wählen. In dieser Lehrveranstaltung beschäftigen Sie sich mit der Entwicklung von iOS Applikationen, im Unterschied zur gleichnamigen Lehrveranstaltung in unserem Bachelor, wo es um Android Applikationen geht. In dieser Folge stellen wir Ihnen gemeinsam mit dem Vortragenden die Inhalte, Ziele und die Organisation dieser Lehrveranstaltung vor.

00:00:05
 Intro Speaker: JWissenswertes und Wissen. News aus den Studiengängen der Technik an der FH Campus Wien.

00:00:22
 Sigrid Schefer-Wenzl: Als mobile Apps bezeichnet man Anwendungs Software, die speziell für Mobilgeräte und mobile Betriebssysteme entwickelt werden. Somit erweitern Apps die Funktionalität eines Smartphones oder Tablets. Es gibt Apps zum Kommunizieren, Navigieren, Spielen, Informieren und vieles mehr. Mit einer Mobile App können Sie aus seiner Idee relativ rasch etwas Nützliches machen. In unserem Masterstudium Software Design and Engineering können Studierende Mobile App Development aus mehreren Spezialisierungen wählen. In dieser Lehrveranstaltung beschäftigen sie sich mit der Entwicklung von iOS Applikationen. Im Unterschied zur gleichnamigen Lehrveranstaltung in unserem Bachelor, wo es um Android Applikationen geht. In dieser Folge stellen wir Ihnen gemeinsam mit den Vortragenden die Inhalte, Ziele und die Organisation dieser Lehrveranstaltung vor.

00:01:20
 Igor Miladinovic: Die Entwicklung der Informatik und digitalen Kommunikation war nie so schnell wie heute

00:01:25
 Sigrid Schefer-Wenzl: und sie wird nie so langsam sein.

00:01:32
 Igor Miladinovic: In diesen Podcast stellen wir wichtige Themen rund um unsere Informatik Studiengänge der FH Campus Wien vor,

00:01:40
 Sigrid Schefer-Wenzl: die Sie optimal für diese Entwicklung vorbereiten werden.

00:01:46
 Igor Miladinovic: Willkommen zu dieser Folge von unserem Podcast 10 nach 10. Mein Name ist Igor Miladinovic und ich bin der Studiengangsleiter von den Studiengängen Computer Science and Digital Communications und Software Design and Engineering

00:01:59
 Sigrid Schefer-Wenzl: Willkommen auch von meiner Seite. Mein Name ist Sigrid Schefer-Wenzl und ich unterrichte in diesen beiden Studiengängen.

00:02:05
 Igor Miladinovic: Das Thema heute ist Mobile Web Development In unserem Masterstudium Software Design and Engineering und zu Gast haben wir den Vortragenden von dieser Lehrveranstaltung Alexander von Franque und am Anfang würde ich Alexander bitten, dass er sich kurz vorstellt.

00:02:21
 Alexander von Franque: Ja also wie gesagt mein Name ist Alexander von Franque, Hallo. Ich bin seid ja bissl mehr als 10 Jahren in der Softwareentwicklung tätig, meistens im Bereich Mobile Development, also vielleicht z.B. eines meiner letzten großen Projekte: das war eine Indoor Navigations Lösung, quasi Google-Maps in großen Gebäuden, zum Beispiel am Flughafen oder so. Und zusätzlich noch mit Augmented Reality. Wir haben dann quasi Pfeile, die dann am Boden angezeigt werden, die einem dann den Weg zum Ziel zeigen z.B. oder auch Schilder, die man dann übersetzen kann oder sowas in die Richtung. Das war ein ziemlich spannendes Projekt. Ja und jetzt gerade bin ich auch hauptberuflich Lehrender in einer kleinen Non-Profit Organisation, die heißt Everyone Codes. Da helfen wir Berufseinsteigern dabei, programmieren zu lernen. Das sind meistens Leute, die aus anderen Bereichen kommen und sich neu orientieren wollen. Und die können dann bei uns programmieren lernen und wir helfen ihnen dann auch dabei, am Ende in einem Unternehmen Fuß zu fassen. Ja und nebenbei interessiere ich mich total generell für den Software Bereich. Ich habe auch ein Buch geschrieben über das Thema, wie man als Unternehmen Softwareentwickler finden kann und an sich binden kann. Und da gibt's auch einen Blog, den kann man sich anschauen, wenn man sich dafür interessiert. Der ist auf der Website, die heißt hiringengineersbook.com. Das ist mein persönlicher Blog, den kann man sich anschauen. Ja, das sind so die Sachen, die ich mache.

00:03:43
 Sigrid Schefer-Wenzl: Dankeschön. Die Veranstaltung ist ja ein Wahlpflichtfach in unserer Master-Studium. Die Studierenden können dieses Fach bei Interesse wählen. Kannst du uns so kurz die Inhalte dieser Lehrveranstaltung vorstellen?

00:03:59
 Alexander von Franque: Also ganz am Anfang gibt's mal einen kurzen Überblick. So was gibt's überhaupt in Mobile Development? Was gibt's für Platformen, was gibt's für Ansätze? Also kann z.B. sollte man jetzt Cross Platform Development machen oder sollte man Hybrid Apps schreiben oder gleich Web Apps schreiben? Oder Native Apps? Wo sind die Vorteile und wo sind die Nachteile von jedem dieser Ansätze? Das ist aber nur ziemlich kurz. Und dann tauchen wir gleich ein in die native Entwicklung mit iOS, mit Swift und mit UI-Kit. Warum gleich in das? Grundsätzlich ist es einfach so, dass mobile Development ein unheimlich breites Feld ist. Es gibt einfach riesig viel, dass man wissen muss. Selbst wenn man jetzt nur eine Plattform macht Android oder iOS, ist es einfach total viel, dass man wissen muss. Und es ist nicht so, dass die einzelnen Konzepte für sich gesehen besonders schwierig sind zu verstehen.

00:04:52
 Igor Miladinovic: Es ist einfach nur sehr, sehr viel. Und um aus diesem Dilemma rauszukommen, habe ich mir halt überlegt. Quasi Was ist die Baseline? Was ist das, was jeder können muss, um in diesem Bereich arbeiten zu können? Und da hab ich mich halt dann eben für iOS entschieden und für für iOS mit Swift und UI-Kit. Und grundsätzlich ist es so: ich habe mir drei Grundpfeiler überlegt, die einfach jeder kennen muss. Und zwar der erste Pfeiler ist quasi UI Entwicklung also User Interfaces bauen. Zweite Pfeiler ist mit dem Netzwerk interagieren, also meistens mit REST API's. Der dritte Pfeiler ist, dass man Daten auf dem Gerät speichern kann und lesen kann. Also quasi Persistenz mobile Datenbanken, das sind die Grundlagen, die man eben in dieser Lehrveranstaltung lernt. Und da aber eben das ist ein breites Feld ist, wäre das relativ fad, wenn man jetzt nur das lernt. Und da hab ich mir gedacht Okay, dann gibt's für die Übung mehr Freiheit. Da kann man sich im Prinzip selber aussuchen, was man gerne nach arbeiten möchte. Natürlich in einem gewissen Rahmen. Und es funktioniert grundsätzlich so, dass jeder Student und jede Studentin ein eigenes Projekt hat. Da muss man vorher dann ein Proposal ausarbeiten mit Mock ups, dann kriegt man Feedback von mir und dann kann man das implementieren. Und das sind in der Vergangenheit auch ziemlich spannende Sachen entstanden, also z.B. kombiniert auch mit anderen Lehrveranstaltungen mit IoT glaub ich z.B. mal, wo die Leute dann was gebaut haben, was Bluetooth Verbindungen zum Gerät, zum iOS Gerät aufbaut oder auch ein anderes Projekt, zum Beispiel mit Machine Learning, wo die Leute dann die Machine Learning Modelle aus einer anderen Lehrveranstaltung, die sie in einer anderen Lehrveranstaltung trainiert haben, dann bei mir hergenommen haben und ein UI drumherum gebaut haben und da dann eine App draus gebaut haben. Und so hat man quasi eben diese Kombination aus diesen drei Gundpfeilern und auch das, was einen selber interessiert in diesem sehr breiten Feld von von Mobile Development.

00:06:46
 Igor Miladinovic: Dankeschön! Sehr interessant. Und es ist jetzt so, dass wir Studierende haben, die schon Vorerfahrungen mit Morell App Development haben, aber auch einige, die keine Erfahrung haben. Und wir bekommen immer wieder Fragen, ob man gewisse Lernveranstaltung oder Wahlpflichtmodule wählen darf oder kann, selbst wenn man keine Vorkenntnisse hat. Deswegen meine nächste Frage: Was sind die Vorkenntnisse für diese Lehrveranstaltung? Was muss man schon können, um da gut mitkommen zu können?

00:07:19
 Alexander von Franque: Ja, das ist eine super Frage, weil ja, es ist eine sehr technische Lehrveranstaltung mit starkem Fokus auf Programmieren. Also man sollte einfach auf jeden Fall schon Grundkenntnisse oder eigentlich gute Kenntnisse im Programmieren mitbringen. Vor allem objektorientierte Programmierung und auch Concurrency, also Multi-Threading Programming und auch REST. Also es ist gut, wenn man schon mal mit REST APIs gearbeitet hat. Ich erwarte keine Vorkenntnisse schon im Mobile Development und auch Swift muss man noch nicht kennen. Man lernt nicht programmieren. Ich bau auf schon vorhandenen Programmier Kenntnissen auf und ich weiß auch, dass die FH ziemlich Java lastig ist, d.h. gerade am Anfang, wenn es um Swift geht, baue ich auch auf, auf diesen Java Kenntnissen. Grundsaetzlich: vielleicht auch, Weil manche ein bisschen eingeschüchtert sind. Swift zu lernen würde ich gern dazu auch noch sagen. Swift ist eine super moderne Sprache, die sehr schnell ist und die auch kompiliert ist und inzwischen auch schon Open Source ist schon länger, die auch nicht nur fürs iOS Development gebraucht wird. Also auch in anderen Bereichen wird sie immer interessanter, z.B. auch bei serverseitiger Programmierung. Eine Zeitlang war das auch fürs Machine Learning interessant. Leider hat Google jetzt das TensorFlow für Swift wieder gecancelt. Aber ich kann mir vorstellen, dass es auch in dem Bereich interessant wird, vor allem wenn jetzt Windows und Linux Support ausgebaut wird und wenn man später auch mal Kotlin lernen will, vielleicht bei Android Development, ist es auch cool, wenn man Swift kann, weil es da ziemlich viele Überschneidungen gibt. Ja, also insofern lasst euch nicht einschüchtern von von Swift. Aber quasi Grundkenntnisse im Programmieren oder wirklich gute Kenntnisse schon im Programmieren sind sehr wichtig.

00:09:05
 Sigrid Schefer-Wenzl: Dankeschön. Deine Lehrveranstaltung besteht ja aus einer Vorlesung und einem Übungsteil. Kannst uns vielleicht kurz erklären, wie du deine Lehrveranstaltung organisierst?

00:09:14
 Alexander von Franque: Also die diese Trennung ist bei mir jetzt nicht ganz so scharf. Grundsätzlich ist es so, dass bei mir alles sehr, sehr praxisorientiert ist. Ich finde Programmieren lernt man vor allem durch Programmieren. Deswegen gibt es auch keine Prüfung, sondern es gibt nur Programmier Aufgaben. Und zwar ich habe eben vorhin schon erwähnt, es gibt diese Teilung zwischen den drei Grundsäulen, also Programmierung, Networking und Persistenz und dafür gibts sogenannte fixed exercises also fixe Programmier Aufgaben. Die sind relativ strikt, die sind so ein bisschen wie Tutorials nur ohne Lösung. Die kann man sich auch wenn man mag jetzt schon auf der Lehrveranstaltungshomepage anschauen. Die können wir dann vielleicht verlinken in dem Podcast. Der zweite Teil, also das ist eben der erste Teil sind diese fixen Programmier Aufgaben und der zweite Teil sind Projekt. Auch da gibt's auf der Lehrveranstaltungshomepage schon ein paar Beispiele dafür, was ich ungefähr erwarte. Das habr ich vorher schon kurz erklärt, dass man am Anfang gibt man ein Proposal ab, dann kriegt man Feedback von mir und dann muss man das implementieren und da kann man sich ziemlich frei selber aussuchen, woran man gerne arbeiten würde. Ich schaue dann immer, dass es halt vom auch vom Zeitaufwand ungefähr passt und dass man sich nicht übernimmt oder auch nicht vielleicht zu wenig macht. Das sind alles Einzelaufgaben. Grundsätzlich gibt's keine Gruppenübungen in der Lehrveranstaltung und was vielleicht auch noch wichtig ist zu erwähnen: Es gibt am Ende gibt's immer Abgabe Gespräch, also Code Reviews nenne ich die, wo ich dann ziemlich intensiv mir das anschaue mit mit den Studierenden dann auch Feedback dafür gebe. Und mir ist auch ganz wichtig, dass ich bei diesen Code eben auf das Verständnis gehe. Mir ist es wichtig, dass die Leute wirklich verstehen, was sie abgeben. Ich sage immer der schönste Code bringt nicht so viel, wenn man eigentlich nicht wirklich verstanden hat, was im Hintergrund passiert. Ja, das ist der Aufbau.

00:11:07
 Igor Miladinovic: Vielen Dank! Es geht auch um das Verständnis von Code und nicht nur darum, Irgendetwas zum laufen zum Laufen zu bringen. Unsere nächste Frage: Was sind so die Berufe, auf die diese Lehrveranstaltung vorbereitet? Ich nehme an, dass es nicht nur Development von mobilen Applikationen, sondern das ist doch etwas breites, wie du das bis jetzt erzählt hast.

00:11:33
 Alexander von Franque: Also das Haupt Ding, was man damit machen kann ist natürlich mobile Apps programmieren. Also wenn man nachher z.B. in einer Agentur arbeiten will, wo mobile Apps programmiert werden oder auch in einer Firma, die als Hauptprodukt mobile Apps programmiert, dann dann ist man dafür natürlich am besten gewappnet. Also ich hab mich auch sehr bemüht das das das Wissen was man da lernt auch für andere Bereiche relevant ist. Also z.B. gerade kann Concurrency, also Multy Threaded Programming. Das kann man in sehr vielen Bereichen brauchen, genauso wie Datenbanken. Das sind halt alles Konzepte, die die auch in anderen Bereichen wichtig sind. Und generell ist Mobile Development ziemlich nahe an Web Frontend Development würde ich sagen. Also man baut halt im Endeffekt hauptsächlich User Interfaces bzw. Client Applikationen. Also wenn man sich für Web Frontend Development interessiert, dann gibt's das sicher sehr viele Überschneidungen, die in beiden Bereichen helfen.

00:12:29
 Sigrid Schefer-Wenzl: Dankeschön. Und wenn du dir jetzt drei Sachen aussuchen könntest, die dir besonders wichtig wären, dass die Studierenden aus deiner Lehrveranstaltung mitnehmen, was wären es für drei Sachen?

00:12:40
 Alexander von Franque: was mich persönlich glaub ich am meisten freuen würde, ist, wenn die Leute eine Freude oder irgendwie ein Interesse an der Programmiersprache Swift entwickeln. Weil ich finde, dass Swift eine wirklich gut designte, gut durchdachte Programmiersprache ist, die die auch in vielen anderen Bereichen echt gut anwendbar wäre. Und ich glaube auch in Zukunft immer relevanter werden wird. Einfach weil sie schnell ist und weil sie performant ist und weil sie wie gesagt gut durchdacht und gut designt ist. Ja, und auch Freude am Bauen von mobilen Applikationen. Also ich glaube, es macht durchaus auch Spaß, solche Apps zu bauen und man kann spannende Dinge damit machen. Also Mobilgeräte sind ja unheimlich vielseitig. Die haben so viele Sensoren und so viele Dinge eingebaut, die man machen kann. Damit vielleicht auch privat oder was einen interessiert, kann man vielleicht auch für sich mal eine App bauen oder so. Ich finde, da kann man einfach total viel machen. Und deswegen ich versuche halt in der Lehrveranstaltung wirklich die Leute soweit zu bringen, dass sie echt selbstständig Apps bauen können. Ja, vielleicht gibt's dann auch coole Ideen, die dadurch entstehen.

00:13:46
 Igor Miladinovic: Vielen Dank Alexander für diese Antworten. Jetzt kommen wir zu dem Teil, wo du eine andere Art von Fragen bekommst, wo es mehr um dich geht oder um deine Einstellungen. Und die erste Frage ist keine Frage, sondern ich werde einen Satz anfangen und du machst weiter. Ich unterrichte an der Fachhochschule Campus Wien, weil...

00:14:10
 Alexander von Franque: ...es mir Freude macht, mit motivierten Personen zusammenzuarbeiten und Wissen zu vermitteln.

00:14:17
 Sigrid Schefer-Wenzl: Welche App verwendest du am häufigsten?

00:14:20
 Alexander von Franque: YouTube. Ja, ich finde YouTube ziemlich genial, also den Service. Die App ist eigentlich furchtbar, aber der Service YouTube an sich ist ist einfach genial, weil man total viel lernen kann und halt auch Entertainment zum großen Teil aber kann einfach irrsinnig viel lernen und spannende Sachen sich anschauen. Also definitiv Youtube.

00:14:44
 Intro Speaker: Ok und unsere letzte Frage: Was waren die größten Herausforderungen für dich bei einer Entwicklung von irgendeiner Mobile App? Wo hast du die größten Schwierigkeiten gehabt? Wie hast du sie gelöst?

00:15:01
 Alexander von Franque: Ich glaube, die größten Herausforderungen sind eigentlich immer zwischenmenschlich einfach weil es viel komplexer ist als das Technische. Aber ich sage mal auf technischer Ebene, da fällt mir gleich etwas ein. Ich hatte einmal einen Bug in einer iOS App. Das war eh diese Software, von der ich erzählt habe, mit Augmented Reality und es war ein Performance Problem, das aber die App komplett eingefroren hat. Und ich glaubte in netto Zeit: ein gutes Monat würde ich sagen, ein gutes Monat Entwicklungszeit. Natürlich nicht alles in einem Monat, aber aufgeteilt auf mehrere Monate. Ein gutes Monat Entwicklungszeit darin investiert habe nur diesen Bug. Die Ursache dieses bugs zu finden war was ganz was wildes. Ja wo verschiedene Systeme zusammen interagiert haben. Also auf iOS gibts AR-Kit die Augmented Reality Schiene der Augmented Reality SDK ist das auf iOS und der hat zusammen gearbeitet mit der OpenGL Rendering API auf iOS und nur wenn man diese zwei APIs kombiniert hat, dann gabs einen Bug der die App eingefroren. Wie gesagt, ich hab ewig lange versucht überhaupt die Ursache des des Bugs zu finden. Wir hatten einen Kontakt zu Apple und wir haben uns sogar schon mit Apple gesprochen, ob die uns helfen können und ob es Bug im System ist. Und das war extrem chalanging, weil dieser Bug ist immer wieder nur einmal aufgetreten, aber er hat die App dann quasi unbenutzbar gemacht für unsere Kunden. Und es war wirklich ein Show Stopper für uns. Das Beispiel ist für mich deshalb und das ist vielleicht auch die zweite Komponente, die ihm die persönliche Komponente oder die zwischenmenschliche Komponente gibt. Für mich ist es so passend, weil es für mich ein Beispiel davon ist, dass man in der Softwareentwicklung fast nie wirklich schätzen kann, wie lange etwas dauert. Und wir haben es einfach nicht geschafft, das zu beheben. Es war ein Show Stopper Bug und gleichzeitig haben wir aber davor für dieses Feature nur sehr, sehr wenig Zeit eingeplant. Und dann hatten wir auf einmal monatelang Schwierigkeiten damit. Und das ist für mich und ich habe jetzt doch schon ziemlich viel Erfahrung im Software Bereich. Das ist für mich inzwischen nicht mehr die Ausnahme, sondern die Regel. Die Sachen dauern einfach immer viel, viel länger als man denkt. Und meiner Meinung nach. Das ist quasi das Fazit, das ich daraus ziehe. Schätzungen im Software Bereich sind immer nur Best Guesses und mehr nicht. Und das aber dann auch den Stakeholdern, also dem Management, dem Kunden, allen Investoren, anderen Interessenten zu erklären, dass eben diese Schätzungen nur wirklich nur ganz ganz grobe Annäherungen sind. Das ist, das ist für mich einer der größten Challenges, weil es glaube ich auch irgendwie in den Köpfen der Leute noch nicht so drinnen ist, dass eben Schätzungen wirklich, wirklich schwierig sind oder sogar unmöglich sind. Ja ich tendiere dazu zu sagen: Schätzungen sind unmöglich im Software Bereich, einfach weil quasi durch die durch die Natur der Sache wir ja eigentlich immer etwas neues machen. Weil sonst könnten wir ja einfach eine vorhandene Lösung nehmen und die dort anwenden. Aber meistens geht es eben nicht.

00:18:27
 Igor Miladinovic: Vielen Dank, Alexander, dass du heute bei uns warst und so interessante und ausführliche Antworten gegeben hast. Ich bin davon überzeugt, dass diese Antworten die Wahl für unsere Studierenden zwischen verschiedenen Wahlpflicht Modulen etwas erleichtern. Danke auch an unsere Zuhörerinnen und Zuhörer. Alles Gute und bis zum nächsten Mal.

00:18:52
 Sigrid Schefer-Wenzl: bis zum nächsten Mal.

00:18:53
 Alexander von Franque: Dankeschön!