[Musik]
Nico, es ist schon wieder soweit.
Mit was denn?
Apple hat die WWDC angekündigt.
Nein.
Doch.
WWDC, ja.
Herzlich willkommen zum App Store der Woche.
Ähm, App Store Tagebuch der Woche, tschuldigung.
App Store der Woche gleich.
So heißt das im Song aufgespielt.
Wir machen jede Woche einen neuen App Store.
Ähm, ja, WWDC 2021.
Was wissen wir eigentlich?
Macht gar nichts.
Also heute, heute am Tag der Aufnahme, am 30.
März, ähm, wurde halt gesagt, die WWDC ist im Juni.
Correct.
Und das war's, also fast war's das eigentlich schon, oder?
Also das, was an News rausgekommen ist.
Man kann ja häufig so ein bisschen rauslesen aus dem, was Apple veröffentlicht.
Veröffentlicht wurde ein Bild von, oder ich glaube zwei Bilder veröffentlicht von so
Memoji-Gesichtern, die in ein MacBook reingucken, was eigentlich viel zu weit zugeklappt ist,
um es zu benutzen.
Ähm, und in der Brille von dem Memoji spiegelt sich einmal ein Kalender, worauf steht hier
"7.
Juni".
Und einmal in dem anderen Bild ein Swift-Icon.
Ja, du hast doch vergessen, dass da auf dem Kalender-Icon 21 Kalendereinladungen sind.
Also in der Version sollte man auf jeden Fall den Eindruck checken.
Genau, sollte man auf jeden Fall ein bisschen aufräumen.
Ich hasse es ja, wenn so rote Bobbel an irgendwelchen Appstronzen sind.
Aber die kann man zum Glück per App ausschalten.
Nein, die muss man anhaben, aber man muss sie wegmachen.
Ja, ich kenne das aus einem Barbeitskalendern, die haben so 1400 E-Mails, und ich denke, klick
doch einmal auf "Reward".
Warum, was bringt ihr diese imaginäre Zahl, die wird jetzt ein bisschen mehr oder ein bisschen
weniger.
Ähm, ja.
Ne, ähm, also das Gesicht, was in das Speed so gut zugeklappt ist, im MacBook anguckt,
ich meine das Gesicht hängt ja auch auf Höhe der Tastatur, also das passt schon so, glaube
ich.
So für jemand, der im Bett liegt und programmiert vielleicht dann noch richtig.
Ja, stimmt.
Ja, schon so, Betthaltung.
Corona, also Entwickler bewegen sich gar nicht mehr aus der Wohnung, sondern auch gar nicht
mehr aus dem Bett raus.
Der Pizza-Dienst kennt schon, nein, das ist so, das ist nicht, nicht das, was ich sagen
wollte.
Ähm, es gibt eine Student-Challenge, irgendwie eine Swift Student-Challenge, bis zum 18.
April können dort Leute Swift Sachen einreichen.
Ja, das gilt, glaube ich, auch einfach für jeder, der sich Student nennt.
Ich meine, man kann ja auch mit 50 noch studieren, man muss sich da nur anmelden.
Ich glaube, bei der, wenn man das bei der WBC macht, muss man schon irgendwie eine Uni
Einschreibung haben, aber dann wird man halt mit den ganzen, sag ich mal, Scholars heißen,
zusammengeworfen und kommt dann auch ein bisschen extra Gourdis und eigene Lounge und ja, dann
auch mit dem Guck und Händchen schütteln.
Aber gefühlt sind dann schon eher die sehr jungen Leute oder jungen Entwickler.
Ich glaube, ich sollte da nicht mehr mitmachen.
Ja, kannst du mitmachen.
Musst du nicht, aber es gibt auf jeden Fall Bekleidung und ein Set von Pins, die natürlich
wertvoll sein oder werden können.
Gerade letztes Jahr jedenfalls, genau diese kleine Pins.
Die gibt's ja auch so immer live auf der WBC.
Ich hab ja auch als ich 2019 da war in San Jose die letzte, die letzte WBC vor Corona.
Ja, da konnte man auch schon den Pins abstauben und dann kriegt man eine Jacke und so.
Da hab ich mir dann auch mal hier Pins geholt, als man vielleicht sollte und hab den auch
in meinen Secret Stash mit.
Na ja, vielleicht werden die aber irgendwann mal zu erd.
Ja, ich war ja noch nie vor Ort auf der WBC, aber ich glaube auch für mich.
Also früher war das ja extrem teuer hinzufahren.
Jetzt sind ja die Tickets gar nicht mehr so teuer, aber trotzdem muss man ja noch hinfliegen,
Hotel und sowas.
Das ist halt schon ein bisschen nervig, also ein bisschen teuer, glaube ich.
Ja, aber es ist schon besser, wenn man dann irgendwie im Firmenkontext hinfliegt und die
Firma das einem genehmigt und ermöglicht.
Das ist natürlich immer toll.
Mir wurde das schon zweimal gewährt.
Ja, ist auf jeden Fall sehr cool.
Und dazu kam dann auch noch direkt die Nachricht von der AltKonf, die Alternative Conference
zur WBC, für alle, die kein Ticket bekommen, wo dann noch mehr Talks und über die Technologien,
die Apple vorstellt, gesprochen wird.
Die werden dieses Jahr auch wieder ausmachen.
Ich glaube, die letztes Jahr haben es komplett abgesagt.
Das verlinken wir, kann man sich natürlich auch noch reinziehen, ist wie immer gratis.
Genau, gibt's auch auch mal nette Sachen zu hören.
Natürlich nicht den neuen heißen Scheiß von Apple, aber andere interessante Sachen.
Ja, das kommt dann auch auf Podcasts, da werden Podcasts unten gemacht und dann werden
auch die neuen Sachen besprochen.
Also da findet man alles möglich.
Genau.
Und was also auch bei der WBC im Juni zu sehen wird, das werden wir wahrscheinlich
in den nächsten anderthalb Monaten, zwei Monaten nochmal, da werden Details rauskommen und wir
werden darüber sprechen.
Ja.
Und dann kommen wir gleich nochmal zum Leitthema des DTKs.
Das ist weg.
Der hat es geschafft, das abzuholen.
Mit Label oder ohne Label?
Nein, nein, der Typ hatte danach am vierten Mal endlich ein Label dabei, hat mir das auch
einfach unterschrieben, wo ich mir auch dachte, so, ja, den Zettel hätte ich mir auch selber
ausdrucken können und einfach selber unterschreiben können hätte, aber wir können jetzt
halt jemanden abholen.
Na ja, okay.
Auf jeden Fall ist es weg.
Apple hat dann nochmal angerufen, hätte gefragt, ob ich dem mein DTK schon abgegeben hätte,
dann hätte er gesagt, ja, das ist abgeholt.
Dann war die Dame am Telefon und hat gesagt, okay, vielen Dank, alles gut, schön, haben
noch.
Ich so, okay, gut.
Also auch.
Wunsch an kommt irgendwann.
Genau, habe ich jetzt auch schon nachgeguckt, ist da, ich glaube, 411 oder 413 Euro, ich weiß
nicht.
Was hast du jetzt im Endeffekt dafür bezahlt, ursprünglich 500 irgendwas?
500 Euro glaube ich.
Wann ist es gelaufen?
500 Euro?
Ich meine, ja.
Aber ja, gut.
Also sind es keine Ahnung, 80, 90 Euro Verluste.
Gut, ja.
Verluste, Miete für das DTK.
Ja, das ist ganz ehrlich, hast du selber noch mal Gewerbe angemeldet für deine eigene App?
Nee, habe ich nicht.
Weil ich habe das gemacht und jetzt wollen die, dass ich jeden Monat Umsatzsteuer vorhabe.
Ja, ja, ja.
Jeden Monat ist noch bekloppt.
Da rufe ich aber mein Finanzanwalt an und cancelt die ganze Scheiße wieder.
Das ist genau aus dem Grund, dass ich das noch nicht gemacht habe, weil bist du unter 20.000
Euro bist.
Ja bin ich, weit unter 20.000 Euro.
Ja, sollte es auch noch, sag ich mal, musst du oder ich glaube ab 20.000 Euro solltest du
es dann tun.
Du wolltest deine Metrokarte haben, jetzt musst du dafür monatlich was tun.
Nee, meine Metrokarte hatte ich schon vorher bei meinem normalen Arbeitgeber.
Der einzige Vorteil, den ich habe, ist, dass ich in Baumarkt kann, wenn Lockdown.
Ja, genau, jetzt ist mir gerade verfallen, was ich sagen wollte.
Wir wollen über Final Fantasy sprechen.
Ah ja, hast du das schon mal gespielt?
Nein.
Was?
Hast du Playstation Plus?
Ja.
Dann klick heute noch.
Ich habe es geklickt.
Ja, sehr gut.
Ich habe es geklickt, das ist natürlich eine absolute Gritze.
Und dann haben die Entwickler von Square Enix ein Remake gemacht.
Und zwar von der, so zu sagen, Spiel war damals auf drei CDs.
Da gibt es die erste CD in 90 GB mit kompletter Sprachausgabe in absolut geister Grafik.
Mit super geiler Story, die ganze Story nochmal neu überdacht und das ganze Kampfsystem überdacht.
Und man kriegt Zusatzinformationen, die man damals nicht bekommen hat.
Also im Prinzip ist es dieselbe Story in super schön.
Ich bin ja absolut kein RPG-Fan.
Probier es mal aus, es ist, dieses ganze Kampfsystem ist nicht mehr so hier rundenbasiert, sondern
wirklich mehr so auf Action getrimmt.
Wo manche Leute sagen, ja das ist irgendwie nicht so mein Ding, also meins finde ich auf
jeden Fall, du bist da voll mit drin, musst dein Schwert schwingen, Zauber auslösen.
Aber was es auf jeden Fall cool macht sind die ganzen Charaktere und die Story an sich.
Weiß nicht ob du die kennst, sonst kann ich dir noch was anreißen.
Im Prinzip geht es um...
Also ich habe Mystic Quest mal gespielt, was ich glaube Final Fantasy Adventure heißt im
Original in Japan.
Aber das ist alles, und ich habe natürlich Final Fantasy auf dem Super Nintendo Mini Original
Klassik-Dings, aber ich habe es eigentlich nicht gespielt.
Okay, dann wird deine Aufgabe sein Final Fantasy Remake, wenigstens gibt ihm mal drei Stunden
Zeit.
Ich bin gerade mit dem Borderlands 3 dabei.
Ich glaube mir, es lohnt sich, es lohnt sich.
Also es geht eigentlich darum, dass...
Ich habe schon Videospielaufgaben entwickelt.
Ja, ja, ein großer Konzern namens Shinra hat entdeckt, dass man dem Planeten seine Lebensenergie
entziehen kann und dann aus Strom machen kann.
Und das zerstört natürlich den Planeten und alles geht den Bach runter und dieser Konzern
bereichert sich, also im Prinzip, so wie es hier auf unserer Welt auch ist, bloß dass
diese Welt ein bisschen mehr Magie und magische Wesen, ein bisschen mehr unerklärliches Zeug
hat, aber im Prinzip sind es auch Menschen, die Dinge können oder Waffen benutzen, aber
halt auch Magie und so.
Und im Prinzip geht es darum, dass du Teil einer Terroristengruppe wirst namens Avalanche,
die gegen diesen Shinra Konzern kämpft.
Und ja, das ist ein sehr schon dunkles dystopisches Setting in dieser Stadt Midgar, die von den
Shinra Konzernen gebaut wurde oder wie man sagt, auf jeden Fall sehr cooles Spiel, was
nur ein bisschen störend ist.
Also was jetzt erstmal sehr geil ist, man kriegt ein 70-Jahre-Spiel gerade echt geschenkt
oder wenn man einmal den Monat abschließt für 8,99 gerade mit PlayStation Plus.
Deswegen habe ich ihn jetzt auch mal von Monat geholt und muss sagen, das hat sich wirklich
gelohnt.
Es ist ja auch ein ganz neues Spiel.
Also bei PlayStation Plus kriegst du ja normalerweise relativ ältere, ältere Spiele.
Und dieses Spiel ist jetzt neu, oder?
Das Remake ist jetzt gerade ein halbes Jahr alt.
Ich hatte das eh schon auf meiner Liste von Willi spielen.
Also es ist wirklich eine tolle Story, eine tolle Charaktere.
Komplett Schwachausgabe, man muss keinen Text mehr lesen.
Es ist wie ein cooler Film, in dem man noch selber spielen muss.
Es wird selten langweilig.
Es gibt mal so ein paar kleine Aufgaben, du musst halt irgendwie XP grinden und so weiter.
Aber selbst diese Sachen sind gut gemacht.
Würde ich auf jeden Fall empfehlen.
Werd ich mal gucken.
Gut, dann frage ich dich in zwei Wochen.
Und dann bin ich auch noch...
Frag mich in vier Wochen.
Okay, aber ich bin dann hoffentlich schon durch damit.
Und dann gibt es auch noch weiteres von PlayStation, und zwar die Stay-at-Home-Geschenke.
Das glaube ich hat das Anfang März angefangen.
Die wollen, dass du zu Hause bleibst und checken die Spiele und zwar nicht über PlayStation Plus, sondern sie checken sie komplett.
Das heißt, du musst einmal deine Kreditkarten wieder eingeben und dann kriegst du eine Rechnung über 0 Euro.
Da gibt es zwei Sachen, auf die ich, also bei der PlayStation VR-Geschichten, erweisen.
Und wenn man eine PlayStation VR hat, dann sollte man sich Astro-Bot runterladen.
Weißt du, wer das kennt?
Habt ihr das schon mal geredet?
Eigentlich das, das Super Mario.
Ich habe aber noch keine PlayStation VR, ne?
Ah, okay, aber das ist das Super Mario für PlayStation VR.
Ja, das habe ich auch schon erzählt.
Also hier auf jeden Fall mal klicken, das ist gratis.
Muss man eigentlich runterladen, aber man kann es auch in Zukunft irgendwann mal runterladen.
Und dann gibt es auch noch mehrere andere Titel und ich glaube, da kommen jetzt dann, muss man glaube ich gucken, ein paar verschwinden morgen übermorgen, ich glaube am 1. April bei uns. Also nochmal reingucken. Die sind nicht in den PlayStation Plus stehen, da muss man da in dieser Highlight im Store gucken, also ein klein bisschen scrollen.
Aber das sollten relativ schnell finden und da sind gerade sechs, sieben Spiele drin und was ich sogar dachte, sind die alle sehr gut.
Okay, ich habe gerade gesehen, also in einer Vorschau, Journey war da, ich weiß nicht, ob das tatsächlich verfügbar ist oder ob das nur Platzhalterbild war.
Aber Journey ist halt ein sehr gutes Bild, ein sehr gutes Spiel, das kann ich dir empfehlen.
Genau, da auf jeden Fall mal klicken, kriegt man geschenkt, kostet nichts, tut nicht weh.
Was anderes, was weh tut, ist, wenn man sich das Framework der Woche unterlädt und sich dadurch einen Virus einfangen könnte.
Oh, merkt doch keine Viren.
Ja, wir sind wie Entwickler, also nachdem wir ganzen Systeme so sicher sind, werden wir Entwickler das Ziel von angriffen.
Weil die kommen in den App Store rein, mit Signierter und gecheckter Software und so weiter.
Ja, man muss den Entwicklern halt irgendwas unterfügen.
Und da hat sich jetzt gezeigt, also in einem Apple Insider Artikel, dass teilweise Github Projekte, ich hoffe jetzt mal keins von denen, die wir empfohlen haben bis jetzt, ich gehe mal nicht davon aus.
Zwar diese Scriptphasen, wenn man ein Projekt baut davor oder danach, die Skripte ausgeführt werden können und dort sich schadhafte Code versteckt.
Ich benutze die ja immer gerne, diese Scriptphasen, um meinen Bild-Counter auch hoch zu ziehen.
Ja, ja, hatten wir schon mal geredet. Aber wenn man das selber macht, ist das ja völlig in Ordnung, aber man kann da Code ausführen.
Und wenn man da, sag ich mal, einen Framework unterlädt oder einfach nur ein Xcode Projekt, man wird ja schon von Xcode gemacht, hey, das ist ein Netzkontakt, pass auf, die ist das andere.
Ja, aber da hat sich gezeigt, man sollte auf jeden Fall das erste, was man macht, Projekt unterladen, gucken in diese Runscript-File, was steht da drin, ist da irgendwas fischig oder so.
Weil es wird halt einfach versucht über deine App, wo du dann erstmal gar nicht merkst, hey, meine App ist irgendwie gefallen und dann schibst du deine App raus und dann, weiß ich nicht, hast du so eine App wie ich zum Beispiel, die auch mal ein paar Millionen oder mindestens eine Million User hat.
Du bist dann schuld, dass dann eine Million User hat.
Die Frage ist halt, was infiziert, also ich weiß nicht, ob sie das Gerät groß beschädigen können, aber sie können halt Daten abgreifen und vielleicht auch aus der Sandbox ausbrechen, wer weiß das schon.
Normalerweise würde man ja davon ausgehen, dass Entwickler, die auch ein bisschen, so wie wir sich darum kümmern, ihre Apps hochzuladen ab und zu mal abzudaten, dass die sich über solche Sachen bewusst sind und nicht einfach was aus dem Internet herunterladen und ausführen.
Aber Entwickler sind halt auch, also dann nehme ich mich ganz explizit nicht von aus, sondern schieße mich ganz explizit ein, sind halt auch faul und nehmen halt auch einfach, wenn was da ist und funktioniert, dann nehmen sie es halt.
Das Projekt ja, das ist, also ich muss auch gestehen, dass ich jetzt erst darauf achten werde, was in diesen Runscript-Phrases drin ist. Natürlich ist es irgendwie klar, dass da Schildkuhler reinkommen kann.
Oftmals ist es auch bei größeren Githaprojekten, die dann irgendwie peer reviewed sind, da passiert sowas wahrscheinlich nicht.
Aber man sollte halt einfach aufpassen, was man sich von, sag mal, kleineren Dingen reinzieht oder was in die Untergiebel bekommt oder so.
Auf jeden Fall ein Angriffsektor, der sehr gefährlich werden kann.
Ein anderer Angriffsektor ist noch, dass man sich mal wieder über eine Webseite, und zwar das iPhone infizieren kann.
Das gab es ja damals schon bei den Ujuren, da steht wahrscheinlich die chinesische Regierung hinter, die haben Webseiten infiziert und konnten mit Zero Day Exploits, also Exploits, die dem Entwickler, also Apple, nicht bekannt sind und dort konnten sie dann sehr tief ins System rein.
Und da ging es davon, sie konnten alles tracken, Kamera anmachen, Ton aufnehmen, alles versenden und so weiter.
Sowas macht mir persönlich Angst, wenn du halt über eine kompromittierte Webseite wirklich ausschrieben werden kannst.
Und iOS ist nicht sicher vor sowas.
Ja, Apple versucht iOS sicher zu halten, aber wir wissen, bei jeder Software gibt es Probleme.
Und da gibt es Bugs, die von bösen Leuten ausgenommen werden können. Da sind wir nicht von geweft, da arbeiten auch nur Menschen.
Sie versuchen halt alles so mögliche in ihrer Macht stehende zu tun, das auszuschließen, aber alleine durch die Jailbreak Community, die halt immer wieder Möglichkeiten findet, das iPhone zu jailbreaken und das sind halt auch Schwachstellen, die sie ausnutzen.
Sie haben einen anderen Zweck, aber sie nutzen die halt aus und Apple versucht, die immer wieder zu schließen, da sieht man dieses Katzenmaus Spiel.
Und das hat auch mal wieder was Neues gefunden.
Ja, also auf jeden Fall vorsichtig sein im Internet. Ich glaube, das ist immer ein gutes Credo.
Ja, das war es zu den News und dann kommen wir heute zum heutigen Thema.
Beim heutigen Thema, ganz ehrlich, wir haben jetzt noch eine Datei, wo wir reinschreiben, über was wir reden wollen.
Und heute steht dann eine ganze Menge Code drin und ich habe keine Ahnung, worum es geht.
Okay, wir reden heute über den Result Type. Also es wird heute ein nicht so langes Thema.
Aber doch über ein sehr cooles neues Swift-Konstrukt, was mit Swift 5 kam.
Das nennt sich der Result Type. Also, du kennst ja bestimmt, man schreibt sich eine Funktion und die lädt irgendwas und die kann Daten zurückgeben oder die kann den Fehler zurückgeben.
Und dann macht man ja irgendwas wie...
Und dann macht man Fatal Crash, nee, wie heißt das noch?
Fatal Error, genau, macht man dann. Nein, macht man nicht.
Also im Prinzip bei solchen Funktionen macht man dann immer so einen Completion Block als Beispiel und der hat dann ein Data oder ein Error.
Aber beides ist ja optional, weil es hat ja vielleicht einen Daten oder vielleicht auch einen Error.
Und wahrscheinlich nicht beides zusammen, also es wird nicht Daten haben und einen Error oder keines von beiden, sondern du machst auf jeden Fall immer das Problem, dass du mit Option-Nets arbeiten musst und so einen Check machen musst, wie so if Error ungleich nil oder if let Error.
If let Error, genau, ich mach mal if let Error.
Genau, und Entwickler sind faul und schreiben dann if let Error return oder guard let Error return.
Nein, ich mach schon irgendwie if let Error NS-Log Error. Also ich schreib mir den Error, wenn ich das ins Log rein will.
Das ist schon mal ein kleiner Anfang, aber im Prinzip ist das ja nicht wirklich das Error Handling, sondern. Nein, das ist wirklich. Genau. Und der Swift Result hat hilft einem das besser zu machen.
Und zwar ist es Result hat das eigene Typ, also eigentlich ein Eno, bei dem das Result entweder ein Case Success mit einem Value hat, was dann zum Beispiel im Fall von du lädst irgendwas von der API runter, die Daten sind, oder das ist ein Failure mit einem Error.
Darüber kann man auch switchen, also man switch Result und dann Case Success, Case Failure.
Und du bekommst halt sozusagen, damit kannst du dir eine oder besser gesagt ist führt dazu, dass Swift oder das Konstrukt, das zwingt, Error Handling zu machen und du bekommst Compiler Time Safety dazu.
Und es führt im Endeffekt dazu, dass du eine bessere API dadurch bekommst. Also das heißt Compiler Compiler Zeit Safety.
Dass du bei Compiler Compiler schon vorher wieder findest, die sonst erst im Ablaufen des Programms, also beim User auftauchen würden.
Richtig, genau. Der Compiler hilft dir, während er das kompiliert sozusagen dein Code liest, kann dir schon sagen, ey, du das wird nicht funktionieren.
Und du hast halt sozusagen, du rufst jetzt eine Load Funktion auf mit deinem Completion Block, der das Result von zum Beispiel Data hat, dem Swift Datentyp und dem Error.
So dann kannst du sagen, ok, und jetzt Load meine gescheiterte Klammer auf, Weekself Result in und dann sagst du Switch Result.
Und dann sagst du, ok, Case Success, let Data und dann machst du irgendwas mit deinen Daten, lass es in irgendeinem Table View anzeigen, aufbereiten, schieß mich tot.
Und dann kannst du dir sogar den Error Typ spezifizieren, also mit Generics machen und dann kannst du dir einen eigenen Error erstellen.
Lass es sein, du hast einen Loading Error und dieser Loading Error hat mehrere verschiedene Cases oder kann zum Beispiel ein Network Unavailable Error oder ein Timeout Error oder ein Individual Status Code oder ein, was das nicht alles für Errors bei einem Bruderladen von Daten geben kann.
Zwing dich sozusagen dann gleich, ok, wenn du an deinem Failure Case bist und du möchtest deinen Error handeln, kannst du gleich Switch Error und dann sagst du, ok, hier Case Network Unavailable und dann sag ich, show mein Error hier, hey, mach mal dein, du hast kein Internet, mach mal Internet an oder mach mal WLAN an oder.
Also führt halt dazu, dass du am Schluss dem User bessere Fehlermeldungen geben kannst.
Also klar, könntest du auch schreiben, du kannst entweder bei dir silently fail und in deinem Lock den der User dann nicht sieht, der weiß dann nicht, ok, was passiert.
Du könntest natürlich auch nur den Error handeln und sagen, ok, hier hast du einen Fehler, ich hab keine Ahnung, was passiert ist, probier es später nochmal oder du sagst, ok, du hast deine Fehler separat aufgedröset und kannst da halt dann dem User ganz genau sagen, dass und das passiert.
Und beim Runterlagen von irgendwelchen Podcast Episoden in Podcast Player, da könnte man sagen, ok, wenn es nicht geklappt hat, dann packst du mal in die Queue und lad das mal in 10 Minuten nochmal runter, vielleicht klappt es ja dann.
Oder wenn der User drauf geklickt hat, manuell und es nicht geklappt hat, dann zeichne ich die Fehlermeldung. So was kann man alles manuell da eintragen.
Auf jeden Fall ist es dieses Konstrukt sollte man, wenn man eine Abi heute sein, die nicht machen, es wurde früher von vielen Leuten selbst implementiert.
Das ist jetzt in 5 definitiv angucken, wir haben auch einen Artikel dazu rein, da gibt es auch mehr, das ist jetzt von zwölf bei Sandel bestimmt, das ist komm
in der Beschäftigung in jedem neuen Zuhörer, da findet man auch das Beispiel, was wir besprochen haben, kann man sich dann mal angucken.
Hab ich auch schon Arbeitskontext benutzt und für definitiv dazu, also gerade auch mit Combine zusammen sollte man das benutzen.
In der letzten Folge, in der vorletzten Folge, also wenn modernes Swift, gutes Swift, altes Swift kann man machen, aber lieber modern.
Das ist eigentlich schon ganz krass, dass wir heutzutage, also als ich mit Egoist-Diable angefangen habe, da war Swift noch weit entfernt.
Jetzt reden wir von modernes Swift und altes Swift, also Swift ist halt, kann man jetzt 5 Jahre alt oder 6 Jahre alt, aber immer noch so in Erwandelung, dass man, dass sich da noch eine ganze Menge tut.
Durchaus, ja, also die Sprache, man ist so ein Sprachkomplett, ich meine, die Leute des Open Source Geschichten, da werden ja diese Proposals gemacht von Leuten, die sagen, ich hätte gerne das und das Feature aussehen und die gründen und die pitchen dann sozusagen ihre Feature und dann wird halt darüber entschieden, kommt das in Swift rein oder nicht oder in die Standard Library und man kann das auch alles nachlesen und da kommen immer sinnvolle Erweiterungen zu, es gibt ja andere Sprachen, die es vormachen und Apple macht halt auch dann über die Swift Geschichte nach und warum auch nicht, die sind ja auch nicht, sag ich mal, die Weisheit mit Löffeln gefressen, sondern gibt auch andere schlaue Leute, die was gut gemacht haben und da kann man auch ja gerne sich Dinge angucken.
Ja, auf jeden Fall.
Und da wird auch in Zukunft noch mehr dazu kommen.
Und ich glaube auch jetzt dann, wenn es in der nächsten Swift Geschichte sein wird, dass dieses Async Await, was in TypeScript oder in JavaScript so ein Ding ist, da lassen sich dann auch Konstrukte bauen, die vorher nicht möglich waren und, weiß ich nicht mehr, Readability rausholen und ja, das war ja jetzt heute aber mal echt ein kleines Thema.
Ja, aber wir sind fast bei der halben Stunde.
Aber ein interessantes Thema, also vor allen Dingen ein Thema, was wahrscheinlich zu wenig Aufmerksam bekommen, also wie gesagt dieses Error Handling, wenn man halt irgendwie was mit so Standardmäßig von Apple sich integriert, oder diese Code Completion von Apple, dann ist meist halt irgendwie so ein Fatal Error drin und dann Fatal Error oder Fatal Error heißt halt Programmstürz ab und gibt dir halt die Fehlermeldung in der Konsum.
Aus dem Entwickler, aber das heißt halt nicht.
Also bevor man ein Programm schützt, sollte man mal einmal Steuerung F machen und gucken, dass man F Kommand F machen und gucken, ob irgendwo noch Fatal Error drin steht und das eine mögliche Möglichkeit, sinnvoller sein zu wollen.
An solchen Stellen.
Es gibt auch Stellen, wo Fatal Error auch ein Production Code sind, macht keine Frage.
Angenommen Bilder von der Platte laden, die du sowieso haben musst, wenn die nicht da sind, dann solltest du die nach reinfügen.
Die sollten ja nicht irgendwann wegfliegen oder so.
Aber jetzt zu einer Geschichte, dass Apple natürlich die diese App wirklich vormacht, hängt halt dadurch dann, dass diese Frameworks von denen und die App ist halt auch oft mit älteren Code geschrieben wurden und du halt nicht immer die neuesten Features da drin findest.
Und ich glaube auch, dass dann diese Art Entwicklung, das ist natürlich meiner Dinge, die müssen aufpassen, was sie tun.
Und das ist glaube ich schon immer schwierig, so eine neue Art zu designen.
Ja, jetzt weiß ich, wir haben den Fügel, was so ein App hinzu, dann muss es ja irgendwie kann es nicht in den neuen Methoden auf einmal die heißen, scheißen Methoden und Konstrukte hernehmen.
Also kann ich mir vorstellen, dass es so läuft, dass dann nicht einfach wildes Kraut und rüben Pattern.
Ja, denke ich, denke ich, kann ich leben dran, aber wenn du jetzt immer schippen würde, was halt irgendwie die Hälfte von den Apps auf einmal kaputt machen würde und irgendwie die ganze Konkurrenz auch.
War schon scheiße.
Ja, also passiert auch, Google hat es jetzt auch schon geschafft. Vor kurzem mit dem AdMob Frameworks jetzt auf 14.4 Xcode kannst du gerade den App nicht archiven und hochladen, weil jetzt irgendwas rein im Betten.
Also ich muss halt aufwachsen. Ja, also das die großen Konzerne, das sind jetzt auch nur Menschen, die machen Fehler.
Okay, das wär's zu dem Thema und dann haben wir jetzt noch einen, unser allseits beliebter Framework.
Das Framework der Woche.
Wir brauchen noch mal so einen Chor, der uns das einsingen will. Nennt noch mal einen Chor kennt, der uns das Framework der Woche einsingen möchte.
Lebenslanger Dank.
Oh ja, oh ja, das spielen wir dann jedes Mal. Das wollen wir sowieso spielen, aber das wär richtig geil.
Also ich hätte das, ja, müssen wir mal gucken. Also wenn das jemand hinkriegt.
Klar, bei Corona ist es jetzt ein schwieriger. Die dürfen ja nicht alle zusammen sein. Aber wenn Corona vorbei ist und ihr seid in einem Mädchen, Knaben, Kirchen, sonst irgendwas Chor, dann sagt doch mal ein Kollegen, ey, ich hab mal kurz ein Mikro.
Zehn Kulmen, einmal das singen. Am besten mit 30 Stimmen oder so. Ja, das wär toll. Dann müsst ihr uns nicht mehr anhören.
Genau. So ein echter Chor kann euch besser singen als wir beide hier.
Wir machen das jetzt so lange, bis ihr uns das finanziert. So Crowdfunding. Hört auf zu singen.
Genau. Warum geht's denn heute ums Framework der Woche?
Du kennst doch bestimmt, man hat ein Foto und man möchte das croppen, also beschneiden.
Sonst was wie auf jeden Fall. Apple bietet da eigentlich Grütze an.
Also ich meine, ich hab das selber schon mal benutzt, was Apple anbietet und das ist alles nicht schön und nicht gut.
Da gibt's ein, ja, Guitarprojekt, das nennt sich TO Crop View Controller.
Und dieses Ding ist eigentlich ein View Controller, der all das kann und zwar in allen Lebenslagen mit Drehen, Beschneiden, grundgängig rund machen.
Also du kannst alles möglich machen, kannst einstellen, wird von vielen großen Firmen benutzt, unter anderem von Google, von Discord, von TikTok, von Adobe und was auch immer das fünfte Logo ist.
Kann ich nicht sagen. Ja, sollte man, wenn man so was macht, vielleicht Patreon.
Patreon ist es. Stimmt, ich hab mich letztens schon mal über das Patreon-Logo irgendwie gedacht, das sieht irgendwie kacke aus, aber gut.
Also das wird häufig benutzt, offensichtlich bei, so wenn du dein Userbild zum Erstellen möchtest, dein User-Icon.
Und dann hat er, hat er es bei, keine Ahnung, Google, immer ist es immer rund.
Und dann wollen ja, dass man das Bild rund beschneiden kann und dafür kann man halt diesen TO Crop View Controller benutzen.
Ist auf jeden Fall ein, sag ich mal, well maintained Projekt. Das hat sehr, sehr viele Releases, sehr, sehr viele Contributor, tolle Dokumentationen und so wie ich auch sehe, ist das sehr gut gemacht.
Ich glaube, wenn man sowas braucht, nimm das, machst lieber nicht selber.
81 Prozent Objective-C-Code sehe ich. Mit 17,2 Prozent Swift. Da gibt es nämlich einen Swift-Wrapper drüber, den Crop View Controller, der sogar noch ein bisschen natter klingt eigentlich.
Und der das Ganze halt für Swift-Programmierer noch ein bisschen nativer zu benutzen macht.
Naja, ist ja nicht schlimm, ich meine, das gibt es auch schon.
Finde ich gut. Und Ruby-Code ist auch drin.
Ja gut, das wird wahrscheinlich für CocoaPods sein oder für andere Geschichten. Ja, genau, nicht gut.
Interessant. Das war's auch schon für heute.
Vielleicht kann ich das in meinem nächsten, ich brauch aber eigentlich keine User-Accounts, aber eigentlich wär's lustig.
Naja, wenn wir ein Bild abschneiden, ist ein Task, der immer mal wieder hochkommt.
Ja, und dann sind wir jetzt auch schon am Ende unserer heutigen Folge.
Genau, wir beschneiden keine Bilder, wir beschneiden hier die Folge.
Richtig.
Und wünschen euch, was haben wir letztes Mal gesagt, wir schließen das Tagebuch.
Ja, wir klappen das Tagebuch zu und ich geh jetzt alle ins Bett.
Genau, bis zum nächsten Mal, tschüss.
Ciao.
Das Appstore-Tagebuch ist ein Projekt von Nico und Holger. Die Links zu dieser Sendung wie auch den Link zu dem Intro von Luke Hash findet ihr auf Appstore-Tagebuch.de.