[Musik]
Holger, Nico, ich glaube, das wird die angenehmste Folge für unsere Zugradi, die wir jemals hatten.
Wieso das denn?
Weil wir jemanden da haben, der besser als wir singen kann.
Wahrscheinlich nicht nur singen, sondern auch alles andere besser als wir, jedenfalls als ich.
Das weiß ich nicht, aber ich glaube es nicht. Du hast auch deine stärkenden Qualitäten.
Die hat jeder irgendwo. Und deine sind halt vielleicht nicht in dem, wo es deine Bereiche sind.
Genau, sagen wir doch erstmal Hallo.
Hallo, hallo, hey.
Stell dich doch mal vor.
Hi, also ich bin der singende G-Hard, so wie es aussieht.
Genau, ich bin selbstständiger App-Entwickler und freue mich hier dabei zu sein.
Also vielen Dank für die Einladung.
Das heißt, ich bin der Einzige, der morgen früh aufstehen muss?
Weil ihr beide...
Kann sein.
Ich bin heute blöderweise aufgewacht, weil mich der Postbote ausgeklangert hat.
Und ich dachte eigentlich, ich bekomme nichts.
Und habe dann einfach mich umgedreht und habe versucht weiterzuschlafen.
Ich konnte nicht weiter schlafen.
Weil ich eigentlich dachte, ich habe nichts bestellt und jetzt liegt halt doch irgendwie ein Zettel im Briefkasten.
Ich bin jetzt aber gerade so ein bisschen überrascht, was es denn sein könnte.
Es könnte sein, dass was aus China kommt.
Ich habe nämlich für mein...
Ich habe mir ein neues Leasing-Auto bekommen, wieder in so einem Elektrosmart.
Wie heißt es hier?
iPhone MagSafe Mount geholt.
Und den gibt es wirklich nur, aber ich habe ihn auf Aliexpress gefunden.
Und da stand eigentlich irgendwas von Mitte März.
Deswegen bin ich jetzt ein bisschen so, ob der wirklich schon da ist, das kann ich mir fast nicht vorstellen.
Aber ich werde es morgen Mittag sehen, weil dann werde ich es abholen können.
iPhone MagSafe, cool.
Ja, so ein K-Mount.
Und ja, muss ich das Kabel nicht mehr einstecken, das ist doch besser.
Okay, ist schon ein bisschen her, dass wir letztes Mal gepodgessert haben.
Was waren wir denn?
Mitte, Ende Dezember?
Ja, mit Folge 28.
Jetzt ist Folge 29.
Ich habe dir jetzt mal kratsch erzählt, und zwar habe ich behauptet, Swift Packages sind
Open Source sein.
Und da hat mich dann Jihad, als er unsere Folgen so ein bisschen nachgehört hat, auch
darauf hingewiesen, dass das nicht sein muss.
Und er darf natürlich auch noch gerne selber was zu sagen, weil er hat auch noch was rausgesucht
zu.
Ja, genau, also im Grunde ist es auch ein neues Feature, das ist auch völlig verständlich,
dass du es nicht gewusst hast, es ist relativ neu.
Seit Swift 5.3 ist es aber so, dass in Swift Package Manager auch sogenannte Binary Dependencies
tatsächlich referenzierbar sind.
Das heißt, eine Firma wie zum Beispiel Google für AdMob oder was auch immer, die jetzt entwickeln
an Packages oder Frameworks, das kann die komplett ihren Code in eine Binary verpacken und dann
eine Link reinstellen sozusagen, das ist dann eine JSON-Datei, eine Implementierung, und
diese JSON-Datei kann man dann einfach herunterladen, wenn man die Link in seine Package einbindet.
Und das sieht dann auch in den Swift Package Manager, in den Package Manager fährt es ganz
normal aus, wie in einer ganz normalen Library, und auf deren Seite ist es dann als Binary
verwendet.
Aber wenn das eine JSON-Datei ist, da ist ja kein Code drin, da ist ja nur Daten.
Genau, also die müssen eine JSON-Datei zur Verfügung stellen, wo für jede Version eine
Binary verlinkt wird.
Ach, die Binary verlinkt bei denen auf dem Server.
Vielleicht noch für den nicht allzu versierten Entwickler, kurz sagen, dass es eine Binary
ist.
Und dann gibt es dann auch ein vorbereitetes Paket, was die Maschine ausführen kann, man
sagt "executable" dazu, oder in der Windows Welt ist es die sogenannte Excel-Datei, die
man typischerweise kennt, und so etwas kriegt man, und da ist der Quellcode eben nicht mehr
drin, wodurch diese Firmen eben ihren Quellcode nicht auflegen müssen.
Genau.
Das war es auch schon zur Korrektur, wir sind auf jeden Fall ein bisschen schlau geworden,
und das ist immer gut.
Ja, und so wie Jihad jetzt seit Anfang des Jahres selbstständiger ist, bin ich jetzt seit
dieser Woche, seit dem ersten, wie viel Zeit?
Februar, 22, damit wir auch noch mal irgendwann das hier im Podcast sagen, und das auch zuordnen
kann, bin ich jetzt auch endlich selbstständig.
Und ich muss sagen, es fühlt sich sehr, sehr, sehr gut an.
Herzlichen Glückwunsch!
Ich habe mich heute gesehen, du hast schon im Swimmingpool wie so ein Profi, selbstständiger
Freelancer gearbeitet.
Ja, ich habe mir einfach gedacht, in meiner Bude habe ich die ganze Zeit immer gesessen,
wenn ich gearbeitet habe, und ich dachte, ich zoome in andere Orte, und ich war schon
in einem Café, in einem Studentencafé, am Dienstag oder Mittwoch, und jetzt heute
habe ich mir gedacht, also ich habe einen Tipp von einem Kollegen bekommen, der meinte,
hier im Olympiabad in München, da gibt es einen Café, da muss man rein, auch wenn man
nicht Eintrittshalt usw.
Und dann habe ich mir gedacht, ok, cool, dann habe ich mich da heute mal hingesetzt, und
es war schon eine interessante Arbeitsatmosphäre, mit dem schwimmbar geräuschenden Hintergrund,
das Rauschen, und alle Leute vor dir schwimmen, und du sitzt da und kautest ein bisschen.
Das Einzige, was mir ein bisschen war, war, es war mir zu warm, also es war sehr warm,
und dann irgendwie mit Pulli und Hose, und ich hätte irgendwie am liebsten mit T-Shirt
und kurzer Hose da gesessen, weil es hatte schon eher so tropisches Fiegel da drin.
Die Leute in den Badehose da rumlaufen, die müssen ja auch warm genug sein.
Genau.
Das Gefühl, das kenne ich, also diese Art von Arbeit, das habe ich während meiner Sabbatik
jetzt auch mal gemacht, vor allen Dingen, als ich die Zeit in Korea war, als meine Frau
damals noch verlobter arbeiten musste, da habe ich mich halt in irgendwelche Cafés gesetzt
und habe da rumgehippst und habe da entweder entwickelt oder ein Buch geschrieben oder geblockt
oder sowas.
Das ist schon ein ganz cooles Gefühl, wenn du morgens aufstehst und dir dann überlegst,
ok, wo arbeite ich jetzt, worauf habe ich Bock.
Genau, das ist jetzt auch das, was ich so machen werde und gucken.
Ich habe schon von ganz coolen Bibliotheken gehört, ich habe schon überlegt, vielleicht
nicht irgendwo eine Kunstgalerie setzen oder ein Museum, ich meine, da gibt es ja auch
Plätze, wo man sich auch hinsetzen kann.
Großstrom brauche ich nicht, ich brauche mein Handy, mein Laptop, die halten 2, 3, 4, 5
Stunden durch, das reicht mir vollkommen aus, mehr irgendwann habe ich dann nicht
mehr Bock mehr.
Und da werde ich jetzt regelmäßig auf Twitter natürlich immer wieder Fotos posten und
hat auch schon heute viel Zuspruch bekommen von Leuten, fand das alles cool.
Wie machst du das, mehr so zu Hause vom Greenscreen oder auch überall, wo du gerade Lust hast?
Also wenn ich unterwegs bin, tatsächlich, dann entwickle ich auch durchaus überall
mal und ich war tatsächlich im Olympiapark und habe im Olympiapark entwickelt.
Das ist nämlich eine richtig schöne Wiese vor so einem See in München und dann in München
gewesen, einfach Urlaub machen sozusagen und da hatten wir mal einen Tag frei und natürlich
nehme ich mein Laptop mit, wir gehen mal dahin und gucken, aber es war wirklich echt schön,
dort zu liegen.
Also wenn wir unterwegs sind, also du hast ja die Gräber, die ich auch richtig cool finde
und da würde ich auch kennenlernen, vielleicht im Nachhinein auch, aber ich bin sehr Japan-interessiert
auch, das sieht man auch, wenn man mir auch mein Twitter-Profil anguckt, da steht auch,
dass ich Japan-Enthusiast bin und ich war auch schon ein paar Mal dort und da hast du auch
richtig cool in so Cafés entdecken, das stimmt.
Japan war ich, meine Frau ist Koreanerin, deswegen habe ich da Verbindungen.
Und von mir ist es so, dass YouTube mir ständig Japan-Videos vorschlägt und ich irgendwie
Lust habe dahin zu fahren.
Japan ist halt auch ein Ort, wo man wirklich sehr schöne Videos und so weiter machen kann,
gibt es halt schöne interessante Sachen zu machen.
Und jetzt noch zur Selbstverständlichkeit, um dann noch kurz anzuklüpfen, bevor wir damit
erst mal kurz abschließen, eigentlich habe ich ja irgendwie am ersten Tag einen Poll reingetan,
so hey, was soll ich tun, soll ich meine Freiheit genießen, soll ich 10 Stunden arbeiten oder
soll ich Sport machen, im Endeffekt habe ich dann, ich glaube am ersten, zweiten, um kurz
nach Null Uhr angefangen zu arbeiten, weil ich irgendwie Bock drauf hatte, dann ist es glaube
ich 3 Uhr nachts geworden, also ich hatte dann schon 2,5 Stunden an diesem Tag gearbeitet,
bin dann in der Früh aufgewacht, hast du dir so eine Stempelung gekauft und dich mal eine
ausstempelte?
Nee, das ist mir eigentlich, ich will es gar nicht wissen, weil ich weiß, ich habe jetzt
gar nicht sagen will, ich habe das Gefühl, ich arbeite jetzt schon mehr irgendwie, weil
da hat irgendwie, ja da ist so viel Elan gerade da und ich denke mir irgendwie, ja, irgendwie
muss ich da auch gleich vorsichtig sein, dass ich nicht zu sehr übertreibe, ich war jetzt
auch da, vom Olympiabad heimgekommen, hab mit dem Essen gekocht, hab mit dem Heimgekommen
ein Laptop aufgeklappt und so weiter gemacht und dann sag ich dann, fuck noch, geht noch
Podcast und so weiter, ich muss noch kochen und dann, ja dann muss ich mich gleich ein
bisschen zurücknehmen, muss ich nicht zu sehr übertreiben, genau, so weit zur Selbstnichtkeit,
da wird in den nächsten Folgen noch mehr dazu kommen, aber ich habe ja auch mal über
Homekits geredet, über meinen LFC-Tag, Schloss Gdöns an meiner Tür, bei der ich das Problem
hatte, dass diese komischen, uns muss man immer Homekits bestätigen, dass man diese
machen will, weil Homekits so bei sicherheitsrelevanten Dingen wie Schlöttern, das nicht einfach
so ausführt, bei offenen Command von LFC oder von Sprache, da hab ich jetzt einen Workaround
gefunden und man nimmt nämlich einfach von Nuki selber, also dieses Nuki-Schloss, nimmt
man die Shortcut-Action und dadurch wird es dann nicht mehr abgefragt, das heißt ich
kann das an meine Tür gehen, halt mein Handy hin, es schließt ab, es schließt auf, ich
muss keine Bestätigung mehr bringen, ich bin wieder happy, was das angeht und alles
mit der Magie von LFC, genau, die Magie von LFC hat mir die Selbstnichtkeit gebracht,
ja, das war so ein kleines Follow-Up zu dem, da bin ich wieder glücklich, auch Homekit
ist jetzt wieder viel besser seit, das waren ja Riesenprobleme mit den kleinen Homepots
und iOS 14.2 und 1, Riesenprobleme mit all den Kram, das war echt anstrengend, wenn du
in deinem Homepod reinredest und du sagst, tut mir leid, keine Verbindung geht nicht,
schieß mich tot, also ja, das ist zum Glück Geschichte und ich hoffe, das bleibt auch so.
Ich hab nach unserer letzten Folge, ich bin ja nach jeder Aufnahme von uns, bin ich ja ein
bisschen mehr motiviert, mich wieder mit meinen Apps zu kümmern und ich bin mal meine Rezension
durchgegangen und hab festgestellt, dass ich eine 1-Sterne-Rezension hatte für meine Fotosortier-App,
weil man nichts zurückgängig machen konnte und also die Person, die mir da ein Sterne
gegeben hat, hat das Andu-Feature nicht gefunden, was ich implementiert habe, ist auch sehr unsichtbar
implementiert, es ist nämlich einfach mit diesem Shake-to-Andu implementiert, wie man das halt eigentlich standardmäßig
in iOS hat, fast überall, aber keiner weiß es. Es ist so, ne, so viele dieser kleinen Features, die sind unsichtbar
und normal benutzt, da kennt ihr gar nicht. Das ist auch der Grund, warum Forstard gestorben ist.
Apple versucht natürlich für jeden, den zu Recht zu machen und sind halt aber Dinge, die dann so versteckt sind,
gerade dieses Shake-to-Andu ist halt schon wirklich grundlegend und auch diese Forstard-Gesicht, das hätte man UX-mäßig
also auch visualisieren können, die man irgendwie Buttons oder Elementen, die fest drückbar sind,
in irgendeinem, was weiß ich wie machen könnte, ja, das ist, ja. Ich werde jetzt vielleicht noch einen Andu-Button mit einbauen müssen,
also nicht müssen, aber machen, damit es halt offensichtlich ist.
Genau, also Explorierbarkeit von UI ist das ja letztlich und ich glaube, da macht Apple auch einiges nicht so gut.
Und deswegen, also ich denke, wenn ich da was dazu sagen kann, ich denke, man sollte grundsätzlich mal versuchen,
auch darauf zu achten, von den Sachen, die Apple gemacht hat, was davon tatsächlich von Apple selber
Explorierbar umgesetzt wird, das heißt, das was die Leute gar nicht übersehen können. Und dann gibt es die Features,
die die Leute übersehen können, die nur pro User sozusagen kennen, und die darf man sich eben nicht verlassen.
Ich glaube, so, Shake-to-Andu gehört dazu inzwischen, aber Shake-to-Andu hat ja auch das Problem, dass man ja auch nicht mehr schütteln kann.
Und deswegen ist es immer gut, da noch eine Alternative anzuwenden. Vielleicht ein Stern wegen diesem Featuren ist einfach immer... - Fand ich auch seltsam. Ähnliche Sache, die ich bei meiner Videospiel-Subtitel-App darin habe,
ist, dass man Elemente löscht, indem man den Table-Row zur Seite schiebt. Das kennen auch viele nicht.
Also das habe ich heute von meiner Frau festgestellt, die wollte was löschen, und sie meinte, "Kann man nicht löschen, ich soll doch hier zur Seite schieben."
Ja, das kenne ich auch nicht, ich habe es bei mir so gelöst, dass ich oben in meiner LFC-App habe, hier so einen Mülleimer, der sagt dann,
"Hey, du bist direkt gerade dabei, alles zu löschen. Du kannst aber auch einzel löschen, indem du von rechts nach links wischst."
Also das ist... - Du machst das doch nicht selber über den Edit-Button, dann zeigst du ja noch diese kleinen "Gelöscht"-Eigenschaften. - Richtig, richtig, richtig. Das ist dann so für den technisch unversierten Nutzer.
Jetzt noch kurz zu Fotosort, aber du hattest ja im Hintergrund mit der UI die Idee, Tinder zu kopieren. - Genau, bei Tinder kann man auch nicht nur ein und ein machen.
Doch, wenn man zahlt schon... - Ah, vielleicht sollte ich das machen. - Ja, das sind so Paid-Features.
Genau, lass dich da bezahlen. Achso, und du willst nicht bezahlen? Okay, Force-Delete. - Genau. Alle deine Fotosorten.
Der Witz ist ja mit der Art, ich hab ja mit der Ausstellung gespielt. Du löscht sie ja nicht effektiv, du legst sie ja in den Ordner gelöscht und dann liegen sie da 30 Tage rum. - Und selbst dann, das mach ich ja nicht. Ich liege sie in ein extra Album gelöscht und dann hab ich da oben ein Mülleimer und erst wenn man da drauf löscht, dann werden die wirklich in den gelöschten Ordner gepackt.
Oder in das, was Fotos mit der Wand hat, als Gelöscht.
Ja, bei Zweitur und Du kann ich quasi nur das gleiche Video holen, da gibt's auch ein paar Apps, die das machen. Die sagen quasi, wenn du den Skin zum ersten Mal öffnest, die animieren das einfach kurz so ein bisschen an.
Das ist kein kompletter Zweifel, aber du siehst so ein bisschen, wie es schon aufgeht und dann ist es so, dass man sich denkt, okay, man kann wohl da so eine Aktion ausführen. So was würde ich mir natürlich von erbilden. Weil ganz ehrlich, das ist so ein Entwicklungsaufwand, den kannst du dann als einzelner, weißt du, letzten UI-UX-Schweinschliff, der braucht halt dann schon einige Leute und ein ganzes Team, die sich so was ausdenken. Vielleicht eine Idee für eine cooles UI-Library, die das einfach schon kann.
Und manchmal wandern ja solche Sachen, die sich Entwickler ausdenken dann auch ins Betriebssystem oder in die APIs, wie zum Beispiel das Pull-to-Refresh. Das kam ja von Tweety, wie gesagt der Twitter-Klein-Tweety, ist der, oder? - Ist schon lang her. - Ja, das weiß ich nicht.
Der, der jetzt der original Twitter-Klein ist, den man kauft. Na ja, kaputt gemacht. Egal. Du hast dir doch ein iPhone gekauft.
Ich hab mir jetzt das iPhone 13 Pro Max geholt, weil natürlich muss ich natürlich alle meine Test- und Arbeitsgeräte abgeben und hab jetzt einen 13 Pro Max. Bin sehr, sehr zufrieden damit.
Ich weiß noch, da bin ich in den Apps-Store reingelaufen. Aber im Moment fangen wir mal so an. Ich hatte ein riesen, schlimmes UPS-Desaster, die sollten mir dieses Paket bringen. Sie haben es mir drei Tage lang nicht gebracht.
Dann hab ich mit Apple telefoniert und nochmal mit Apple telefoniert und die haben mit UPS geredet und dann irgendwann am Schluss hab ich gesagt, weißt du was, behaltet es, ich geh fahr jetzt selber in den Laden, in einer halben Stunde hol ich es mir selber.
Dann hab ich es dann gemacht und dann kommst du in den App und denkst dir so, warum sehen die so gut aus, was stimmt mit den Geräten?
Dann haben die schon wieder so was in iOS eingebaut, dass dein Gerät malig aussieht.
Turns out, es ist 120 Hertz Display und das merkst du sofort. Und das ist so krass, dass du das merkst.
Und seitdem, wenn ich alte iPhones jetzt in die Hand nehme, dann hab ich so ein Gefühl, so eine Aversion irgendwie, ach, das kann ich benutzen.
- Ja, so war es mit Full HD so gewesen, ne? - Ja.
- Vor Full HD da war, dachte man so, ist doch okay und dann so weit man sich dran gewinnt, kann man nicht mehr zurück.
Genau, das hab ich mir geholt und ich war auch eine Woche im Urlaub damit und hab schön Fotos gemacht. Ich war auf Madeira, die ich mir dann, weil ich einen Urlaub verbrauchen musste und jetzt auch schon fast zwei Jahre nicht weg war und irgendwie auch mal wieder echt Lust hatte, irgendwo anderes was anderes zu sehen.
Bisschen Sonne und schöne Temperaturen im Winter zu haben.
- Bei Unge auf einer, im Hotel? - Genau, ich hab auch schon Unge gelebt, der ja auch aus Steuerflucht oder sonst was.
Oder der hat ja sein Unternehmen gegründet, sonst hat er keine Steuerflucht, ist alles legal.
Genau, ich hab mir auch mal die Insel angeguckt und war da schön wandern und hab mit dem Handy echt tolle Fotos gemacht.
Das Einzige was ich an den Pro Max nicht mag ist echt schwer, es ist fast so schwer wie ein iPad. Das ist als wenn du ein iPad in der Hand hast und ich spiele auch noch Pokemon und dann hast du dieses Ding in der Hand, du merkst es im Handgelenk.
- Wenn es so schwer ist, ich tausch das gegen so ein 3G. - Ja genau.
Wenn ich ein Brief beschwere, aber auch leichtes.
Ich hab ja auch das 12 Pro Max, ich hab es auch tatsächlich genau gekauft, weil ich in die Selbstständigkeit wollte, damit ich dann noch ein Handy hab, weil ich mein abgeben musste und das ist auch genau bei schwer.
Aber du hast wenigstens den nahen Fokus, also wenn du ganz nah, also den Makro Modus bei der Kamera, den find ich ja richtig geil.
Gut, dass du sagst, das hab ich noch gar nicht wirklich ausprobiert.
Wenn ich tatsächlich immer zum Beispiel Produktfotos machen will, um etwas auf Ebay zu stellen oder so, dann nervt es schon manchmal ein bisschen, dass er nicht fokussieren kann.
Ich würde gerne mal deine Ebay anzeigen, wie toll du dich so megatoll aufgemacht hast.
Ich versuch's einfach sichtbar zu machen, wie es einfach aussieht.
Genau, und jetzt hab ich mir das Teil gekauft und dann hab ich mir jetzt auch noch mein iPhone 7, was ich mir vor x Jahren mal gekauft, da war ich ein Kumpel weiterverkauft, der hat jetzt auch ein neues iPhone und das lag noch bei ihm in der Schublade.
Und dann hab ich mir gedacht, ha, ich brauch noch ein Testgerät, weil für Apptesting-Geschichten ein nicht-notch-Device, was NFC kann, plus was auch nicht in meiner iCloud hängt, damit ich so andere Sachen noch in meiner App auszutesten kann. Ich kann den auch gleich wieder verkaufen. Ja, deshalb kein NFC, tut mir leid. Für NFC? Auch nicht, auch kein NFC. Alles ab 7 hat NFC. Ja, genau, das hab ich mir zurück gekauft so zusammen und so kam dieses Gerät wieder zurück in mein Mist.
Auch ganz cool. Und mein Kollege, der mir das Gerät dann auch gestern gebracht hat, hat mich auf eine App hingewiesen, die ich mir schon mal runtergeladen hatte, die nennt sich Obsidian und Obsidian ist ein Markdown, Moment, jetzt muss ich mal ganz kurz den...
A second brain for you forever. Genau, es ist a powerful knowledge base on top of a local folder, auf Plain Text Markdown files. Im Prinzip kann man sich eine knowledge base oder generell für Projektmanagement und alles mögliche Dinge, die man irgendwie verlinken möchte.
Was ist, ich hab jetzt da so ein Ding gebaut, mit hier mein Projekt, also mein Arbeitsfolder, mit meinem Projekt, da hab ich die Bugs, da hab ich generelle Ideen, technische Ideen, Marketingideen, Dinge, die ich lesen muss und so weiter in verschiedene files gepackt.
Das Tool, sag ich mal, bereitet die Markdown files in eine visuell schönere Form auf. Da kann man Bilder anhängen, da kann man all mögliche Dinge machen, da kriegt man so einen Graph mit Notes raus und so weiter.
Also ein sehr, sehr mächtiges Tool ist auch für personal use kostenlos und man legt prinzipiell diesen Folder, der eigentlich nur aus Folder und Datei besteht, in seinen iCloud Drive und hat damit auch Sync, der zwischen iPhone und Mac zum Beispiel funktioniert.
Die haben Mac und iOS Apps, das ist zwar alles nicht nativ und man merkt das auch stark, aber es ist soweit schon alles gut benutzbar und ja, sag ich mal, powerful und mir gefällt das ganz gut.
Ich guck mal, wie ich damit so zurechtkomme, weil ich hab jetzt auch immer alles in Notizen und Erinnerungen gemacht und das ist halt auch irgendwann sehr müll, alles zu und unübersichtlich und ja, irgendwie bisschen...
Ich glaub, da kann man eigentlich auch einiges zu sagen, der ist ja ganz besser organisiert als ich. Das sind so Dinge, die ich mir abschauen kann und sollte. Wie händest du das so?
Du meinst du mich, meine Gedanken organisieren und alles klar und so? Ich benutze tatsächlich ein tool, das nennt sich Notion, also Notion.so und das ist auch für personal use, das ist auch komplett kostenlos und das arbeitet mit sogenannten Blöcken.
Da gibt es dann Blöcke und jeder Block kann umgewandelt werden, das ist zu starten mit dem Text und dann kannst du da quasi, du kannst auch Markdown reinkopieren, der wandelt das automatische Blöcke um, du kannst auch Texte daraus kopieren und der wandelt den Markdown um, was ganz nice ist.
Also man kann sozusagen auch als Markdown-Converter oder so verwenden, aber es hat auch viel mehr Funktionen, da kann man Links einbinden, da kann man Bilder einbinden und das haben die Markdown gar nicht kann, wie z.B. Tabellen und das finde ich besonders stark. Also wenn man anfängt, da gibt es auch sehr viele Templates zu, da kann man sich anschauen.
Ich würde vorschlagen, also so ein bisschen Einstiegs-Erleichterung, man sollte einfach verstehen, dass es eigentlich noch zwei Typen von so einer Pages gibt, also Dokumente, einmal Textdokumente und dann Tabellen-Dokumente und die Tabellen-Dokumente kann man auch in andere Views darstellen, z.B. als Kalenderansicht, als Ansicht, wo man so einzelne Karten hin und her schiebt, also typisches Kanbarnbord.
Also man kann fast alles damit machen und das coole ist auch, man kann da Public Links erstellen. Also ich habe da auch meine Privacy-Polices dran und die verlinke ich dann einfach in meinen Apps, also das ist ganz nice. Das ist praktisch. Ich habe das auch nur jetzt ein paar Mal in YouTube-Werbungen von diversen YouTubern gesehen, also die machen da auch mal wieder Werbung und die schwärmen da auch immer ganz von, ja, keine Ahnung, ich gucke jetzt erstmal mir auf Zitin an und dann vielleicht auch mal Ocean. Ja, wie machst du das, Olga? Gar nicht.
Also für eine App, die auch Open Source ist, also für meinen Podcast-Player, da habe ich tatsächlich alles in GitHub gehabt, als öffentliche GitHub-Dings, also alle Ideen habe ich eingeschrieben, Leute Back-Reports schicken für Sachen, die ich schon geplant habe und für meine Apps, die die anderen Apps hier halt nicht Open Source sind, da habe ich tatsächlich ganz einfach Notzweils von Apple in Apple Notes und das ist nicht so organisiert natürlich dadurch, aber es reicht noch für mich, glaube ich. Ja, und da haben wir doch auch noch anderes, was sehr organisiert ist für uns jetzt, das ist nicht so so. Ja, ich bin zufällig draufgestoßen, weil du schwärmst ja immer so von SwiftUI. Ja, man muss vorher sagen, das ist eigentlich so ein Monster-Kill-Framework, der war auch schon so.
Monster kill Framework oder es ist eigentlich ein Framework, sondern es ist eine. Irgendwer hat sich die Mühe gemacht, eine Liste von allen möglichen.
Libraries zusammenzustellen und es wird auch dauernd erweitert und kann man jetzt aller Art machen.
Möchtest du halt drei verschiedene Libraries die dir helfen, Alerts zu machen oder keine Ahnung, wenn du Charts darstellen möchtest, gibt es hier vielleicht zehn, zehn verschiedene Libraries, das ermöglichen.
Und es ist ganz nett, weil häufig ist es ja so, dass man halt irgendwie was machen möchte, ist aber nicht selber machen möchte und dann tatsächlich in der Library einbinden, obwohl ich ja nicht so der Fan davon bin.
Aber dann hat man das Ding mal so vielleicht nicht alles, aber eine kuratierte Liste, wo man mal reingucken kann von Sachen, die jemand mal getestet hat.
Ich finde ja auch einfach als Inspiration zu so, wie hat das jemand umgesetzt und so weiter und das will man ja gar nicht so die ganzen overhead von der Library reinziehen.
Das sind immer Dinge, die kaputt gehen können über die Zukunft und dann lieber holen sich Inspirationen und muss ja nicht eins zu eins kopieren sein, das soll man ja eh nicht so machen, aber dass man halt guckt, wie das gemacht und versteht und so weiter.
Das ist meistens schneller als irgendwie die Doku zu lesen.
Ja, je nach Lizenz ist es eigentlich gar nicht so schlimm, wenn man die Code einfach kopiert.
Also wenn es eine MIT-Lizenz hat, ist es ja schon dazu gedacht, dass man das einfach kopieren und weiterverwenden kann.
Also ich denke da eine ganze Library immer einzubinden.
Die Frage braucht man viele Videos der Library oder eben eigentlich nur eine Datei.
Wenn man nur eine Datei braucht, spricht eigentlich nichts dagegen, es ist einfach so, wie es ist zu kopieren. Also, ich weiß nicht was dagegen spricht.
Na ja gut, es geht ja auch darum, bei MIT-Lizenz musst du ja auch jemanden referenzieren oder sagen, heimlich.
Ja, dann musst du glaube ich niemanden referenzieren.
Achso, dann mache ich es trotzdem einfach.
Also was viele machen, ist, die haben dann in ihren Apps so eine Credits-Section, wo sie dann einfach alle Libraries auflösen, die sie verwenden und du kannst dir in der Datei oben einfach deine Origin Source, wo du her hast, als Kommentar reinmachen und dann kannst du es einfach in die Credits erwehen, wenn du so wolltest.
Warum ist das so?
Das ist interessant, weil das machen ja eigentlich alle Firmen immer, ich sehe auch immer genug MIT-Lizenz zu streamen in dem ganzen, da steht ja mal hier "Free of charge of use", bla bla bla, "No liability", aber da steht doch auch immer unten drin, man soll diesen Text irgendwo stehen haben oder?
Das ist bei Creative Commons, da musst du es immer dran haben.
Ich machs einfach trotzdem, weil, warum nicht?
Erstmal, wenn man sich das angewöhnt hat, dass man jede Library einfach da reinhaut, kann man nichts vergessen und keinen Fehler machen.
Man muss ja auch mal gucken, die ganzen Subdependencies, zum Beispiel, wenn man sich Google AdMob reinzieht, die haben ja unter Subdependencies, die du referenzieren musst, weil du nutzt sie ja quasi.
Ja, hat ich auch mal vergessen, ist mittlerweile drin.
Solange sich niemand beschwert, ist das okay.
Derum referenzen sind aber wahrscheinlich auch nicht alle MIT, deswegen muss man das nicht.
Richtig, deswegen lieber mehr machen als nötig, weil dann kann nichts passieren.
Das Schlimme ist, im Prinzip interessiert das ja auch nicht wirklich jemand oder auf jemanden, aber wenn man dann so ein vollidoten Ding wie die Luca-App ist, wo einfach wild Code irgendwo rauskopiert wird und irgendwelche Copyright-Geschichten entfernt werden und sagen, hey, das ist unser Code, und der Entwickler kam mir dann auf die zu und hat gesagt, hey, ich hab mein Zeug geklaut.
Und ihr referenziert mich nicht, was soll das?
Ich glaub, es war eine Android-Version von der App, eine QR-Code-Geschichte oder so.
Ja, also dann...
Sollten wir schon doppelt prüfen auf jeden Fall.
Ja, das ist eine echte G-Geschichte. So, jetzt haben wir mal alles allgemein so abgefrischt. Kommen wir mal zu ein paar News, oder?
Ja.
Was ist auch mal passiert?
Genau, und zwar hab ich gesehen, es gibt ja bei Xcode, oder ist es Xcode oder ist es Swift?
Auf jeden Fall gibt es so eine Funktion, ifavailable, dann wird halt Code eingeladen, also kann man sagen ifavailable iOS 15, dann wird Code geladen, der nur unter iOS 15 läuft.
Und das benutze ich jedenfalls ab und zu, wenn ich Backup-Solutions habe für Sachen, die halt nicht verfügbar sind, wenn man keinen iOS 15 hat, dann passiert das ab und zu, dass man schreibt ifavailable iOS 15, dann kommt nix, else, und dann kommt der Backup-Code.
Und dieses Problem ist Apple jetzt angegangen und hat ein ifavailable eingefügt, womit man genau diese, die es vermeiden kann, sondern tatsächlich nur diesen Backup-Code reinschreiben kann und nicht mehr das, eine leere Klammer quasi extra.
Und das fand ich ganz nett, das ist eine neue Funktion von Xcode 13.3, glaube ich.
Ja.
Swift 5.5, glaube ich, auf 5.6 sogar. Also tatsächlich, ganz korrekt, macht Xcode öffentlich, das ist zwar, das heißt, es steht in den Xcode-Listnoten drin, aber es ist tatsächlich ein neues Feature, ein Swift, jetzt Teil von Swift.
Genau, und man kann das auch immer nachschauen, den Link würde ich auch gerne mal erwähnen, das ist eigentlich ziemlich interessant, nämlich auf apple.github.io/swift-evolution.
Da kann man nämlich alle Anträge, die in die Swift-Sprache gestellt werden, und ich hab ja vorhin schon das mit den binary dependencies beim Swift-Package-Manager angesprochen, die werden da alle von der Community quasi gestellt, damit die diskutiert, beschlossen und in Swift eingebaut.
Und das hast du gerade erwähnt, das ist auch tatsächlich da eingebaut worden, das ist nämlich die Swift-Evolution Nummer 290.
Okay.
Und das mit den Swift-Package-Managers bei mir ist vorher die Nummer 272, weiß ich nicht, ob man das sieht.
Jetzt hab ich mal eine kurze Frage, weil eigentlich ist ja dieses Hashtag, ist ja im Xcode-Zone diese Pre-Processor-Macros, wenn du sagst #if debug, dann wird das in den debug-Codes wirklich reinkompliziert.
Ja.
Ist das ein Pre-Processor-Macro?
Das ist keiner, also den hier kannst du ja verwenden mit einem normalen if, das was du meinst, im Xcode, das machst du mit einem #if. Das hier, das #unavailable, da ist dieses Hashtag vor dem unavailable, aber nicht vor dem if.
Ah, okay, okay, okay, okay, verstehe.
Das ist tatsächlich ein Swift-Feature und das andere ist glaube ich sogar ein C-Feature oder sowas.
Ja, das kenne ich auch noch aus C++ und so weiter. Aber im Moment war das dann aber trotzdem nicht mit der Available-Funktionality, war da nicht if-add-available oder irgendwas?
Jetzt gibt es auch noch eine Funktion, wenn du das definierst, dann kannst du noch mal sagen, dass diese Funktion jetzt ab high-waist-sdk-sumso-Version definiert werden soll, das ist dann dieses add-available.
Und dann gibt es noch das #available, womit du noch was anderes prüfst, zum Beispiel die high-waist-version und so weiter. Das ist ein verschiedener Available, aber das ist ein bisschen kompliziert.
Ja, ja, ich sehe es auch, also das if-hashtag-available gab es ja schon und jetzt gibt es das if-hashtag-unavailable dazu gekommen und, okay, verstehe, aber das heißt ja trotzdem, die Sachen werden ja reinkompliziert.
Nicht wie bei den Pre-Processor-Macros, die werden ja auch in Xcode anders geheilertet, also bei mir in meinem Team sind die immer so goldfarben oder so, orangefarben und die...
Genau, also bei dem einen wird gar nichts reingebildet sozusagen, sondern wenn du dieses debug drin hast, dann kannst du dann auch alle mögliche Sachen laden, die sind dann, wenn du das archivierst für deine Release, nicht mehr drin.
Und das bei unavailable ist ja quasi, der archiviert das für iOS 15 anders als für iOS 13 zum Beispiel. Und dann ist es aber in der App-Bain-Reader so, diese App-Bain-Reader ist dann trotzdem enthalten.
Mit dem #debug, da packe ich mir immer meinen Pro-Features-Enable-Switch rein, wo ich mir selber meine In-App-Käufe aktiviere, damit das einfach geht.
Richtig, dann mache ich auch so, ich habe auch so extra Settings in meinem, ganz unten bei meiner Settings-View, die wird auch nur in debug reinkompliziert und dann habe ich halt quasi nicht irgendwie Force-Crash, also dann kann ich meine App zum Crash bringen, um mein Crash-Log-Zeug auszuwerten oder meine Werbung anzuschalten oder so.
Ich mache dieses #debug auch, wenn ich einen 2.2i entwickele, immer für diese Previews. Also ich stande an diesem, ich werde die einfach so im Code angezeigt, ich bin auch sicher, er beinhaltet die irgendwie, aber um sicher zu gehen, mache ich da nochmal ein #debug drum herum, weil ich brauch die eigentlich nur mal entwickeln, diese Previews von 2.2i, dann habe ich auch die Möglichkeit, dass ich Extensions bauen kann für Sachen, die ich in meine Previews dann einbauen will, die mache ich dann auch #debug und dann kompiliert das in meinen Previews noch. Also das klingt ein bisschen kompliziert, aber ich benutze das einfach für die Software-Pieces.
Klingt schon okay, aber mir wäre das zu viel overhead, da über diese #debug-Dinger drin zu haben, also finde ich so ein bisschen Coats-Modell, den ich mich haben wollen würde.
Ich vertraue lieber darauf, dass es nicht reinkompiliert wird, aber ehemalig ist es auch egal, ob da jetzt vielleicht dein Minary 7 Kilobyte größer ist oder so.
Proposal #329, verlinken wir alles in den Show notes, absolute-tagebuch.de.
Dann kriegt iOS 15.4 Face ID mit Masken-Support, aber nur auf neuen iPhones, also nicht mehr auf meinem iPhone XR.
Genau, ich meine auch, dass ab iPhone 12 und iPhone 13, glaube ich, kriegen sie noch. Wahrscheinlich ein bisschen harte Limiterungen, kann ich mir gut vorstellen.
Was ich vorhin gehört habe, ist, dass die Secure End-Clave bei den Geräten größer ist und die deswegen mehr Abfaktionen des Gesichtes dort drin speichern können.
Ja, macht Sinn.
Also das war eine Theorie.
Ja, für Apple Watch ist das sowieso wurscht, weil Apple Watch sperrt das iPhone sowieso auf. Aber ja, für die, die keine haben, definitiv cool.
Die Frage ist nur, wie sehr sich das austricksen lässt, ob man jetzt wirklich mit Maske und, weil im Prinzip sie hatten ja behauptet,
ja Face ID ist so was, eins zu einer Million musst du irgendwie haben, damit du das zufällig klacken kannst, ob das dann jetzt leichter möglich ist.
Ich meine, du bietest ja auch, sag ich mal, Beladen oder so, und man weiß, wenn man irgendwie zu viel Gerät bei FBI oder sonst was, die versuchen halt dann Dinge, ne?
Also ich weiß, als das iPhone X neu war, das erste mit Face ID, da habe ich mit meinem Bruder so einen kleinen Workshop in den USA gemacht und er hatte das halt.
Und nach zwei Tagen hat das iPhone X gedacht, wir werden die gleiche Person und dann konnte ich sein Gerät entsperren.
Also nach ein paar Mal, ich gucke rein, es geht nicht, er gibt den Code ein und dann irgendwann hat es mich gelernt. - Gut, das ist aber das, was das tut, das lernt ja auch dazu.
Da haben sie das Lernen wahrscheinlich falsch umgesetzt. Ich hoffe, dass du das gefixt hast.
Es gab ja viele Zwillinge oder Geschwister, die tatsächlich gegenseitig entsperren konnten, was vielleicht nicht ganz so schlimm ist, aber...
Apple sagt auch, dass es jetzt mit nur, wo es nur diesen Augenbereich stärker scant mit diesem Face ID, mit Maske, dass es auch unsicherer sei und dass man entsprechend halt, ich weiß nicht, ob es standardlich aktiviert sein wird.
Das muss du auch explizit anmachen, du wirst auch gar nicht erst darauf hingewiesen, also ich meine auch, du musst da explizit hingehen, sagen, hier anmachen. Und dann musst du auch noch der U-Rand PIN eingeben und dann sind die sozusagen gepaart.
Das ist positive Neuerung von Apple und eine andere positive Neuerung, die kommt ist, dass Apple in mehr Ländern jetzt dazu gezwungen wird, alternative Payment Provider anzubieten zu müssen.
Oder auch, weiß ich nicht, es gibt jetzt auch schon wieder immer mehr Klagen in Amerika, um den ganzen Markt zu öffnen, für Side-Loading, für...
Was ja Side-Loading, hab ich gestern einen lustigen Tweet gelesen, ist, Side-Loading ist eigentlich nur Downloading.
Side-Loading hat irgendwie so diese böse Konnotation, aber im Prinzip lädt sie dir halt was runter.
Side-Loading haben wir auf dem Mac schon immer gehabt und da musst du halt nur Identified Developer werden und musst Notarized werden und dann drückst du halt auf den Knopf und sagst noch, ja ich möchte das ausführen und ist auch gut dann.
Ja ich finde das interessant mit den zusätzlichen Payment Methoden, jetzt nicht für mich, weil mir das einfach zu viel Aufwand wäre, das auch noch in meine App einzubauen.
Und ohne dir jetzt nahe zu treten, wenn wir uns nicht kennen würden, würde ich meine Kreditkarten auch nicht einfach in NFC von iPhone eintragen, um dir Geld zu überweisen.
Richtig.
Also wenn jetzt Visa dann eine Funktion anbietet, die dann bei allen einmal gleich aussieht und verifiziert ist, dass das echt ist und nicht, dass jemand das nachgebaut hat, dann könnte man dem vielleicht vertrauen. Aber ich glaube, worum es ja hauptsächlich geht, ist, dass so große Anbieter wie Disney Plus, wie Netflix, dass die halt gerne ihren eigenen Bezahldienst einbauen würden und deswegen für die würde das sicherlich Auswirkungen haben.
Richtig, aber du sagst, wenn du jetzt über Payment Provider redest, wenn du als Entwickler irgendwie die Möglichkeit hättest, hier Paypal Framework einzubinden und dann "Hey mach die Zahlung über Paypal", dann würdest du auch genauso vertrauen.
Dann kommst du ja auch über eine Webseite auf Paypal und da authentifizierst du dich und hast dann auch noch deinen Käufer-Schutz und alles, was du hier sagst. Das wäre gut passieren. Natürlich, wenn du sagst, hier mein eigener gebautes Sex-Held mit "Hey, hier trag mal deine Kreditkartennummer ein" und deine CVC und so weiter, da würde ich auch sagen, so "Mmm, nee".
Ja, aber Paypal ist ein Beispiel, ja.
Übrigens, würde ich auch bei dir meine Kreditkartennummer nicht in deine Apps einbauen.
Ist auch besser so.
Genau, weil der Heuger, der kauft sich dann nur wieder Süßigkeiten davon.
Kauft dann wieder 40 Kilo Videospiele aus dem Jahr abhangen.
Ja genau, Videospiele und Süßigkeiten.
Wenn Apple das wirklich erlauben wollte, dann können sie einfach Paypal-Provide zertifizieren zum Beispiel und dann die Zertifizierten dürften mal in seine Apps einbauen und so weiter. Aber die wollen das offensichtlich, aber nicht.
Ja natürlich, weil es Machtverlust ist. Ich meine jetzt auch, weil wir hier über die Paypal-Provide reden, es geht eigentlich darum, dass hier große Dating-App-Geschichten, das ist ja auch nur für Dating-Apps in Holland, ich weiß nicht, wie die Bude heißt, müssen wir selber nochmal nachgucken.
Tinder?
Die haben geklagt und haben in Holland Recht bekommen und die sollen jetzt, dürfen das dürfen, da will es nur Apple anscheinend so beschissen umgesetzt, dass die jetzt schon wieder klagen und dass sie auch sagen, ja ihr könnt das machen, aber ihr zeigt trotzdem Provision an uns. Also im Prinzip haben sie nichts wirklich Großes gewonnen, aber mal gucken, wie es sich auswirkt in Zukunft. Also wir werden sehen, ich bin mir ziemlich sicher, wir werden in den nächsten zwei Jahren höchstwahrscheinlich Dinge sehen, die diesen ganzen Markt weiter öffnen werden.
Ja, das spielt ja auch ein bisschen in den lawsuit, die Klage von Epic und mit Google. Also es ist ja nicht nur Apple, die das verhindern, das Google ist ja genauso mit rein. Also da bin ich nochmal gespannt, das ist auch noch nicht entschieden, ob Epic seinen Entwickler-Account zurückbekommen darf.
Ja, ich würde es Ihnen wünschen, weil das ist der Quatsch. Das ist halt, weiß es ist so wie im Sandkasten mit Sand dem anderen Kind ins Auge schmeißt, in die Auge schmeißen, bloß in ganz ganz groß.
Da fällt mir noch eine kleine Anekdote ein, was nämlich genauso mit dem Sandkasten und Sand ins Gesicht schmeißen ist, dass ja diese in Amerika mit war, dass wenn du Android User in iMessage-Chat drin war, dass die, ja hier du bist ja mit der grünen Speechbabel und wir müssen jetzt dafür zahlen, dass deine SMS bei dir ankommt.
So, dann wird natürlich gegen, ist das ja so ein Bashing gegen Android, was dann da losgeht und jetzt kam so ein Bashing zurück von YouTube, von Google besser gesagt auf iOS. Da war ja das Picture in Picture fürs iPad oder fürs iPhone, wenn du das nutzen wolltest, musstest du dir erstmal in so einem versteckten Beta-Feature anmelden.
Dann kam jetzt immer die Nachricht so, hey, übrigens so kurz vor Ende Januar, zum 31. Januar, so in sieben Tagen, werden wir dieses Feature wieder entfernen. So, hier kannst du uns Feedback geben.
Ich war so, ich war so, was, warum, was soll dieser Quatsch, welcher Idiot kommt auf diese Idee, ein Core Feature wirklich aus dem System, was du eigentlich von Tag 1 unterstützt hast als so eine große Firma, wieder rauszunehmen. Hab ich natürlich auf Twitter auch mit geschaut, dass ich noch mehr Leute draufklicke, die diese Umfrage ausfüllen und ja, dazu stimmen, dass, den konnte man Text einführen und ich hab gesagt, hey bitte entfernt das nicht, ich kündige mein Abo und sonst all die schlimmen Sätze, die man sonst so bringt.
Das Feature war ja auch nur für Leute, die eh schon bezahlen, freigeschalten. Also es kann ja auch nicht in der Sache sein, dass die Leute Angst haben, dass sie jetzt in YouTube als Billing Spotify, Spotify heißt das jetzt, Spotify Ersatz benutzen, sondern...
Ganz zu ja, ich meine, du hast ja YouTube Music, da ist alles drin. Da muss man sagen, also für das Geld, das du da zahlst, ist YouTube Music am besten. Du hast ja YouTube, du kriegst viel mehr als bei den anderen dafür.
Das sind selben Content. Also das einzige, was ich vielleicht geil, das ist die Recommendations.
Ja, das war noch die kleine Anleitung dazu zum Thema Sandkasten.
Was jetzt noch letztens sehr interessant war, ist, dass Provider, und zwar jetzt so was wie die Telekom in USA, hat nämlich damit angefangen, das Apple Private Relay zu blocken.
Weil, das ist ja diese Daten, die dadurch ins Netz gehen, weil sie sind ja eigentlich nur doofes Kabel, aber Netzbetreiber haben ja entdeckt, man kann diese Daten ja schön verauswerten und verkaufen.
Und dank Apple Private Relay sehen die nämlich nichts mehr und dann haben sie jetzt anscheinend an irgendwelche Switches umgelegt und wahrscheinlich auch mit Apple geredet, dass dieses Ding nicht mehr erlaubt ist.
Ähm, kritisch finde ich.
Ja, ich finde das auch, ja.
Weil einerseits muss ich sagen, bin ich froh, dass da dieses Private Relay da ist und man zahlt ja auch viel, wenn man irgendwie sein teures iPhone kauft oder ein iCloud-Speicher kauft.
Dass da jetzt geinterveniert wird und die natürlich da weiter mit Datengeld machen wollen, ich kann es verstehen, aber im Prinzip finde ich es gut, dass in der Saft abgedreht wird.
Private Relay finde ich eigentlich eine sehr coole Funktion, vor allem weil wahrscheinlich sehr viele automatisch aktivieren und das wirklich aktiv auch zu wissen, indem sie einfach dieses iCloud-Abo haben und dann profitieren sie einfach davon und das finde ich eigentlich ganz nett.
Ich meine, du musst das aber aktiv gerade ansteigen.
Ja, das ist ja auch noch offiziell, glaube ich, ein Beta, weil ich glaube, die haben auch ein paar Webseiten, wo sie noch Probleme lösen müssen.
Ich weiß nicht, bei mir war es irgendwie gefühlt immer andauernd, vielleicht habe ich es auch reingeschaltet, keine Ahnung.
Man sieht es auch immer wieder, wenn man in irgendwelchen öffentlichen Weblands geht, dann kommt so eine Notification, so hey, irgendwie klappt gerade nicht, ist jetzt nicht aktiviert und dann, sobald du dann auch so als Bezweifler aktiv wirst, gehst du auf deine Notification.
Und warum braucht man jetzt für Japan eine VPN?
Also wenn du unterwegs bist und du willst einfach nur ADZF, den deutschen Fußball schauen oder so, dann geht das ohne VPN gar nicht.
Und auch anderswo, wenn ich hier irgendwelche Sachen in Japan schauen will, die es nur dort gibt.
Ich habe gerade nur in Richtung China gedacht und Sensoe und sonst irgendwer dachte so.
Ah ja, hier in Japan sind sie tatsächlich nicht.
So, dann gab es noch einen schönen Bug in der Apple Welt, der eigentlich schon länger bekannt war, aber man weiß ja, Apple, wenn man denen das irgendwie schreibt und sagt, hey, ihr habt hier einen Bug, macht mal was, der ist gefährlich, dann machen die nichts, machen wieder nichts.
Und dann sagen die anderen, das geht bloß nicht in die Presse, dann geht man in die Presse und das passiert, das wird gefixt.
Hat nämlich jemand rausgefunden, wenn man eine halbe Million Zeichen in sein Homegift irgendwo reinschmeißt und zwar in seine Home-Namen oder sonst irgendwie, dann führt das dazu, dass deine ganzen Apple, die weiß es nicht, selbst abhalten und abstürzen und crashes.
Also über deine ganzen Home-Eiklaut, die mit deiner Verbundenssinn, riesen Probleme gemacht werden können.
Ja und Apple hat das jetzt gefixt.
Eine halbe Million Zeichen ist ja erstmal eine ganze Menge und auch eine komische Zahl, also, ich glaube das waren nur die Testzahlen.
Ich stand nur in dem Artikel, deshalb ist die Testzahl wahrscheinlich, der Wert irgendwo drunter wahrscheinlich.
So, so.
Das ist meine Sportänderung.
Sportänderung, ja, nee, jetzt nicht.
Aber im Moment bist du eigentlich auf nicht stören gestaltet, das ignoriert dieses.
Das ist eine Wecker tatsächlich, deswegen geht alles.
Okay, okay.
Ich zwing mich wirklich, das zu machen.
So, dann hätten wir noch das letzte Ding zu den News.
Ich hatte ja letztes Mal, glaube ich, über die Facebook-Design-Dinger geredet, über die Device-Bezels.
Kurz danach hat Apple jetzt endlich mal selber was raus gemacht.
Sieht sehr toll aus, ist natürlich alles, alle möglichen Geräte, Größen, aber leider keine Sketch-Dateien, sondern nur Photoshop-Dateien, was ein bisschen doof ist.
Man kann zwei Photoshop-Dateien auf dem Sketch aufmachen.
Ich bin halt Sketch-User und man kann sie als PMG sich runterladen.
Ja, würde ich nur anhängen als Follow-Up zu dem letztes Mal.
Es gibt sogar Kino-Dateien, sehe ich gerade.
Ja, einfach mal reinziehen.
Ich denke mal, die sind vielleicht von den Facebook-Dingern wahrscheinlich nicht viel groß Unterschied.
Facebook hat dann noch mehr, die weiß es als das.
Und auch ältere, ne?
Genau, ältere und hier sind glaube ich nur die Neuesten dabei.
Von iPhone 11 und 13.
Genau.
Aber ich meine, für Product-Shots kann man es irgendwo nochmal nutzen.
Deswegen ist die Facebook-Variante wahrscheinlich noch die TicBest-Regale.
Aber schön zu sehen, dass da auch mehr vorangeht.
Alright, da waren die News.
Wir haben jetzt schon gut was voll gemacht.
Ich glaube, es wird auch noch eine lange Folge.
Weil wir haben jetzt auch, wir reden ja auch mal über, die ich jetzt hier habe.
Wir reden jetzt erstmal darüber, wir haben uns kennengelernt über, ich bin ja einer deiner größten Fans.
Du hast ja Buddycrunch entwickelt.
Da habe ich jetzt schon zwei, dreimal hier drüber geredet.
Und ja, da bin ich kurz vor Weihnachten.
Ich habe gesagt, geht auf GitHub, schmeißt dir Geld hinzu.
Das habe ich dann auch endlich gemacht und habe noch eine kurze Nachricht eingefügt.
Und dann, ich weiß gar nicht, wie es war.
Und dann haben wir uns irgendwie über Twitter ausgetauscht und dann auch einen Facetime-Call gemacht.
Weil wir festgestellt haben, hey, wir sind ja beide so bald selbstständig.
Bist du jetzt?
Buddycrunch, kurz zusammengefasst, das ist ein Dienst, das ermöglicht die schnelle Übersetzung der Apps.
In allen möglichen Spaten.
Lass doch mal, ich glaube, wir haben da eine Oberfläche geklappt.
Lass doch mal Diat genau sagen.
Diat, jetzt erzählst du uns, was ist Buddycrunch?
Okay, also die Grundidee von Buddycrunch, auch wie es gestartet ist, war im Grunde nur, ein paar Probleme oder fehlende Funktionen von Xcode zu vervollständigen.
Und das war in erster Linie für mich als allererster Schritt gewesen, dass ich im Interface Bilder, also wenn man so ein Storyboard oder so eine Nipp- oder Zip-Datei erstellt hat und da Texte wie Labels eingefügt hat und man die Datei lokalisiert hat, dann kann Xcode tatsächlich lokalisierte Dateien, also diese Swings-Dateien erstellen, die alle übersetzbaren Teile dieses User-Interfaces da drin haben mit Keyes.
Was das aber nicht kann, ist, wenn man danach nachdem man es lokalisiert hat, neue Labels hinzufügt, dann passiert das sich gar nichts mehr.
Und man muss alles manuell selbst machen.
Und wenn man 30 Sprachen hat zum Beispiel, dann muss man in 30 verschiedenen Sprachen diese Keyes hinzufügen. Und das war der erste Schritt, und das ist was Buddycrunch kann, ist es kann automatisiert diese neuen hinzugefügten Labels und so weiter erkennen und in diese String-Dateien einfach neu hinzufügen.
Das ist so dieser Interface-Bilder-Feature.
Und dann hat sich mit der Zeit noch mehr dazu entwickelt und inzwischen kann es noch viel mehr.
Ich sag mal, ein weiteres Feature ist das Buddycrunch jetzt auch im Code, der sogenannte NS-Localized-String, ist ja wie man früher zumindest in UI-Gezeiten, aber auch jetzt kann man das eigentlich auch verwenden, wie man Texte übersetzt in Swift-Code oder auch in Object-FC-Code.
Und Apple bietet tatsächlich selbst Tools dafür an, das nennt sich Gen-Strings oder eine neue Version davon heißt Extract-Log-Strings. Das sind Tools von Apple, die werden mit Expo geschippt, aber Apple führt sie eben nur aus in dem Moment, wo man diesen Set-Defile lokalisiert und diese NS-Localized-String führt Apple praktisch nie aus. Man kann aber mit diesen Tools aus Code und auch aus Interface-Bildern eben diese localizable Strings lesen und Buddycrunch macht nichts anderes als dieses Gen-Strings-Tool auszuführen und sagt dann eben dafür, dass nichts gelöscht wird, also da werden nur Sachen, die neu gefunden werden, da gefunden und Buddycrunch führt das dann zusammen mit den bestehenden Strings, falls man in seinem Projekt hat. Das sind so die Grundfeatures.
Dann hast du letztes Mal schon gemeint, dass du das für die Übersetzung verwendest deiner Apps.
Das war dann ein Feature, das später dazu kam. Ich hatte eine App entwickelt, da hab ich das dann benutzt.
Diese App wollte ich dann in vielen Sprachen lokalisieren. Es waren 33 Sprachen, glaube ich, die ich da hinzugefügt hatte.
Ich dachte, so ja, Machine Translations sind eigentlich gut genug für die erste Version davon.
Wenn ich schon mal watte, dachte ich, das könnte ich eigentlich auch verwenden.
Ich habe ja schon diese Spring-Zarteien gelesen, also ich hatte schon Code, wo ich so einen ARRI hatte von allen Spring-Zarteien.
Da dachte ich, das verbinde ich jetzt einfach mit deinem Translator. Ich hatte damals den Microsoft-Translator zuerst angebunden,
weil er damals als einziger kostenlos war. Ich meine, dass Google Translator nicht kostenlos war und die Welt gab es da keine API dazu damals. So ist eben noch ein Translationsfeature dazu gekommen. Ich habe auch gearbeitet in einer App-Agentur, da hatten wir sehr viele Apps. Ich habe praktisch jede Woche eine neue App gehabt, an der ich etwas machen musste.
Dann gab es auch andere Probleme mit Übersetzungen. Da gab es dann fehlende Übersetzungen zum Beispiel.
Das gab in einer Sprache, in der Sprache Englisch zum Beispiel, zehn Keys und in der Sprache Deutsch fehlten zwei.
Dann wollte ich auch, dass die Keys immer gleich sind. Das heißt, Badger hat dann noch Funktionen dazu bekommen, um empty values zu erkennen in Strings, also fehlende Übersetzungen.
Das hat dann noch eine Funktion bekommen, um automatisch mit einer Sprache, mit einer Ursprungssprache, das kann zum Beispiel Englisch sein, das kann man konfigurieren, die Keys zu synchronisieren in einer Sprache, dass man überall die gleichen Keys hat, dass man einfach vergessen kann, etwas zu übersetzen. Und genau, so hat es sich entwickelt.
Und dann war der letzte Schritt, ein Funktionen zugefügt, dass ich das verbunden habe mit einem anderen Tool, das nennt sich SwiftGen. Darüber kann ich mehr oder weniger interessiert.
Aber es gibt da am Grunde nur, okay, SwiftGen ist ein Tool, womit man Referenzen zu Assets, die man hat zum Beispiel zu Farben oder zu Bildern, zu Images und so weiter. Man gibt ja diese Image Assets-Folder, die man hat.
und die referenziert man ja in der Regel im Code, mit "UI-Image" oder auch in "SwiftUI-Image" und dann ergibt man einfach die Namen als String ein.
Aber was wenn man sich da vertippt zum Beispiel?
Oder man kriegt auch keine Autocompletion da, man muss das irgendwie selber rauskoppieren und SwiftJen löst eben dieses Problem.
Es bildet quasi eine Enum, wo dann alle Fälle drinnen sind, man hat eine Autocompletion, man hat auch...
Der Compiler erkennt das dann auch, wenn man etwas vergessen sollte, man kann auch keine Typos haben usw.
und es hat einfach eine Funktion für Übersetzungen. Also es kann Swings-Dateien lesen, daraus ein Enum erstellen
und dann kann man auch die sicher referenzieren und das man vertippen kann im Key usw. und hat auch Autocompletion.
Und dann gibt man dann den Key noch dazu ein, den man als Localization Key haben will, man kann sogar mehrere Übersetzungen gleich mit angeben oder eben nur eine
und dann wenn man ein Bild macht, wenn man "BartyCrush" als Bildscript in sein Projekt einbindet und dazu gibt es auch eine Anleitung auf "BartyCrush" in dem ReadMe
wenn man das macht, dann bildet man einfach und "BartyCrush" ersetzt dann diesen Code "BartyCrush.Translate" mit dem Call zu der SwiftJenEnum.
Dann muss man nie seinen Datei verlassen und hat es in mindestens ein oder zwei Sprachen, die man selbst angegeben hat, übersetzt.
Plus wenn man die Translation Funktion verwendet hat, hat es dann auch automatisch schon den Translater, Microsoft Translator, DeepL oder sonst was benutzt
und dann hat man den Code nie verlassen und sozusagen einen neuen Key hinzugefügt in allen Sprachen mit Übersetzung.
Geilste Tool überhaupt. Also sowas würde ich mir von Apple wünschen, dass einfach die vor den nächsten Code drin ist.
Ja, sowas müsstest du eigentlich machen. Gibt es da Leute, die sich einen Job bei irgendeiner Firma geholt, sind dann nach zwei Wochen gearbeitet, haben den BartyCrush fixt, haben die Kündigung hingelegt, so, jetzt tschüss.
Dann haben wir mal BartyCrush in den Innen gut einbauen. Genau. BartyCrush empfehle ich vor allem zusammen mit SwiftJen. Das ist besonders gut.
Ich habe was lustiges tatsächlich entdeckt. Und zwar, irgendwie vor zwei Wochen hat jemand auf Twitter angefangen zu sagen, ich möchte eine App live auf SwiftJen entwickeln und ich habe gedacht, hey, das müssen wir doch in den News erwähnen.
Und das warst auch du. Du entwickelst live im Stream. Das stimmt, ja, das ist auch wahr.
Also mir persönlich wäre das zu peinlich, weil ich nicht gut genug bin. Aber ich habe die letzte Folge, wo du an BartyCrush gearbeitet hast, mir angesehen.
Und du bist ja wirklich sehr, sehr strukturiert und ordentlich, finde ich das.
Ja, höre ich tatsächlich öfter, aber ich selber fühle mich nicht so aus. Ich habe immer noch das Gefühl, dass ich den ganzen Sachen hinterhabe, dass es viel mehr strukturiert sein könnte, viel mehr durchdacht sein könnte. Aber es geht wahrscheinlich immer mehr.
Und wie bist du dazu gekommen, das live zu streamen, wie du entwickelst?
Also im Grunde war der Grundgedanke, als ich mich entschieden habe für meine Selbstständigkeit. Ich habe eigentlich zu der Zeit schon bevor ich als ich vor zwei Jahren gearbeitet habe, immer gerne oben so Sachen entwickelt, ich bin auch ein BartyCrush, das ist komplett oben so aus meiner Freizeit entstanden.
Und es hat mir einfach Spaß gemacht, weil letztlich gibt man ja was zurück. Ich habe sehr viele Framer selber benutzt von der Community und ich fand es immer cool auch und finde es einfach nett da was zurückgeben zu können. Und mein Gedanke war dann, wenn ich selbstständig werde, dann will ich auch einen Teil meiner Arbeitszeit einfach dafür verwenden, Open Source zu entwickeln.
Und dann habe ich mich festgelegt, als ich angefangen habe, ich will einen Tag pro Woche, also 20% meiner Arbeitszeit mehr oder weniger, investieren in Open Source Entwicklung.
Und ich habe auch einen Plan tatsächlich, weil ich immer wieder in meine Umgebung gefragt werde, einen iOS Kurs für YouTube zu machen, auch komplett kostenlos, komplett einsteigen, also Leute die überhaupt noch nicht entwickelt haben.
Also meine Verwandte und so weiter, mein Bruder auch, die wollen das alle haben und die finden ich erklär das immer ganz gut oder so wie sie es gut verstehen kann. Und mit dem Hintergrund habe ich gedacht, ja wenn ich schon öffentlich gehen will und ich will auch Open Source Entwicklung machen, warum komme ich nicht? Und mache einfach diesen Open Source Teil pro Woche einfach in einem Livestream.
Und so ist es dann dazu gekommen, dass ich eben Twitch aufgesetzt habe. Also meine Frau hat dann einfach gesagt, warum machst du es nicht einfach jetzt und legst einfach direkt mit Twitch los, bevor du diesen YouTube Kurs hast und dann habe ich es einfach gemacht.
Ja sehr cool, sehr sehr cool.
Ja und dann entwickelst du einmal BartyCrush und eine komplett neue App von Anfang an.
Genau, also im Grunde entwickle ich dort, also meine Idee ist, für meine Firma auch, ich will alles was mir fehlt selbst entwickeln und ich brauche für meine Arbeitszeit einen Focus Timer, davon gibt es schon ganz viele, aber es gibt keinen der genau das macht was ich brauche, ich will da so eine Zusammenfassung machen kann, alle 25 Minuten was ich gemacht habe, was ich vielleicht gelernt habe und so. Und diese App, also einen Focus Timer, der heißt auch Open Focus Timer, den entwickle ich gerade im Stream. Und dann habe ich auch ab und zu Streams, wo ich einfach Open Source Mente mache. Ich habe zum Beispiel, Nico hatte ein paar Features hatten ihm gefehlt in BartyCrush, die sozusagen noch nicht perfekt waren, dann habe ich gedacht ich mache die einfach im Livestream und habe auch ein paar andere Bugs gefixte im Wortet waren.
Ich glaube ich habe gesehen, wo du, wie heißt das, Path die Ignored werden sollen oder sowas, Path to be Ignored den Teil.
Genau, das war das was ich angemerkt hatte, dass irgendwer mal eine Issue gehabt hat und sagt hier ich möchte nicht dass meine Infopiles Strings übersetzt werden, dann habe ich gedacht warum eigentlich so, ich hätte das jetzt gerne übersetzt, jetzt gibt es ein Zettel dafür.
Tatsächlich war das ein Missverständnis für Infopiles, es ist nämlich so in dieser Infopiles, da gibt es diese Keys, die heißen dann keine Ahnung sowas wie, warum brauchst du jetzt Zugriff für einen Push-Navigation, da kann man dann ein Key dazu machen und tatsächlich ist das so, Apple hat manchmal in manchen Versionen von Xcode keine Anführungszeichen ohne Key herum gemacht, was aber für die Strings-Datei eigentlich invalid ist.
Und mein Pasa hat es dann nicht verstanden, dass es ein Key ist, weil da eben keine Gänseflüßchen drum herum ohne Key waren, aber Apple versteht das, also es funktioniert dann.
Und es gab halt jemanden der diese nicht hatte, die ganze Füße nicht hatten und ich habe gedacht irgendwas stimmt da nicht mit Infopiles, ich hatte auch nicht viel Zeit da rein zu gucken, also es war wahrscheinlich ein bisschen nachzunehmen gemacht und dann haben die einfach ignoriert.
Die Infopiles, obwohl es kein Grund dafür gab, es war einfach ein Missverständnis.
Genau, also nur diese Infopiles Strings sind zum Beispiel wie NS Camera User-Skriptions, das sind immer diese Pop-ups die kommen für hey ich möchte deine Kamera benutzen und dann kannst du als Entwickler noch einen kurzen Text unter schreiben, hey weil ich dich nackt sehen will zum Beispiel.
Genau das.
Ich meine, okay du bist selber schuld, also meine Leute zahlen auch einen Zehner für ein dummes Abo die Woche.
Und dann gucke ich sie mir manchmal an und versuche auch ein bisschen zu helfen, gerade bei Anfängern und da gab es eine Idee auf einen App Review zu machen und dann habe ich das eingebaut und das kam jetzt sehr gut an, das heißt ich mache jetzt in meinen Strings am Anfang von Indie-Entwicklern, also von Leuten die jetzt nicht groß Unternehmen sind, da will ich das nicht machen, die können sich das kaufen, aber ich mache für die Kosten noch einfach einen App Review und ich versuche dann einfach wenn ich die App zum ersten Mal öffne laut zu denken, dass die einfach so ein bisschen sehen können wie ein Erstnutzer vielleicht an die App rangeht und auch als Entwickler sich dann ein bisschen zu testen.
Ich gucke dann auch auf die Accessibility und so und vergebe dann auch Punkte und dann gibt es auch schon eine Zertifikat was man dann auf Social Media teilen kann.
Genau das habe ich jetzt gestartet und es kam sehr gut an. Es gab sogar Anfragen für ein Code Review, es gibt auch Leute die mir einen Code teilen wollen, da kann ich mir beitragen.
Also ich habe jetzt auch die unverblühte Meinung, das haben wir jetzt auch nicht mehr gemacht, wir experimentieren ja auch in diesen Podcast einfach nur herum, gucken wir was sich gut anfühlt und gut funktioniert.
Also ich habe in einer App-Agentur gearbeitet in Karlsruhe und ich war auch in der Führungsposition dort, ich war der Head of iOS, wie ich das dort angetan habe und habe sehr viele Apps dort mitentwickelt, aber ich wollte immer so Richtung, mir war die App Qualität immer sehr wichtig und irgendwann habe ich dann auch gesagt, das kann ich nur machen wenn ich selbstständig werde und soll ich mich entschieden selbstständig werden, aber da ich geheiratet habe, ich weiß nicht ob man das so kennt, aber türkische Hochzeiten sind manchmal sehr groß und zwar vor der Pandemie deutlich und das war eine sehr tolle Hochzeit sagen wir mal und davon waren noch Sachen übrig geblieben die ich abzahlen musste.
Im Rahmen findet sich eine türkische Hochzeit so finanziell? Kleingwagen?
Ja das geht schon in die Richtung.
Wir waren auf einer mexikanischen Hochzeit davon 600 Gäste, kommt das ungefähr in die Größenabhängigkeit?
Wir waren doppelt so viele.
Also es war wirklich groß, es ist auch nicht so, ich bin auch persönlich kein großer Fan von riesen Hochzeiten, ich will gerne alle Leute kennen, aber das ist einfach auch was traditionelles, auch was kulturelles und da muss man eben auch die Familie mit bedenken, also das ist auch teilweise die Hochzeit der Eltern, das ist dann nicht nur unsere Hochzeit und deswegen war das dann meine Großzeit.
Und jedenfalls musste ich erstmal das abzahlen, also finanziell war es schwierig und ich hatte einfach nicht geschafft zeitlich nebenher eine App aufzusetzen und zu entwickeln, da finde ich es auch wichtig, dass man sich für sein Privatleben einfach Zeit nimmt und wenn man verheiratet ist braucht man auch ein bisschen Zeit, kannst du dich auch verstehen holger?
Ja, jedenfalls habe ich mich dann entschieden selbstständig zu werden und bin dann dafür in eine andere Firma gewechselt um auch dafür ein bisschen Erfahrung zu sammeln. In einer anderen Firma bin ich gestartet, da gab es keine App Abteilung und da habe ich quasi eine Mobile Abteilung komplett selbst aufgebaut und habe auch entsprechend dann eben einen guten Lohn bekommen, wodurch ich was auf die Seite legen konnte. Das habe ich jetzt zwei Jahre lang gemacht und dann habe ich quasi Ende des letzten Jahres gesagt, ok jetzt ist es so weit, genug auf der Rundkante und jetzt lege ich einfach los. Und ich gebe mir sozusagen mein Zielplan ist, ich gebe mir zwei Jahre, wenn es in den zwei Jahren nicht klappt, dann kann ich wieder in eine Firma gehen, aber in den zwei Jahren habe ich eigentlich vor, eine Cashcow mindestens eine zu entwickeln.
Und tatsächlich arbeite ich das, um deine Frage zu beantworten. Aktuell, also meine erste App soll ein Nachfolger oder eine Weiterentwicklung von Bahti Crouch tatsächlich sein. Passt auch jetzt ins Thema rein, es wird nicht so sein, dass ich Bahti Crouch nicht mehr kostenlos oder so was mache, sondern es ist wirklich eine Weiterentwicklung, in dem Sinne, dass alles das Bahti Crouch konnte bleibt auch da drin und auch kostenlos, aber es wird dann noch viel mehr können und einige der neuen Features werden auch kostenlos sein. Also ich will eigentlich, dass diese neue App so der Standard für alle Entwickler wird, ob das klappt, mal gucken, aber am liebsten ist es mir, es benutzen bis viele Leute und dafür ist es größtenteils kostenlos und ich mache dann genug Geld damit, dass ich weiter selbstständig bleiben kann und weitere Apps entwickeln kann.
Ich kann dir jetzt schon sagen, das wird funktionieren. Und ich mache das ja eh schon, ich retwitte dich immer regelmäßig. Das machen wir, das macht das auch Holger bestimmt jetzt auch, weil jetzt kennt er dich ja. Es ist auch immer wichtig, dass wir das alle gegenseitig machen, auch wenn man sich denkt, das ist schön für den anderen, es ist immer die Reichweite, die uns wirklich dazu bringt, dass man da vorankommt und das ist auf jeden Fall sehr wichtig. Ich finde, man ist vergessen, viele Leute auf Twitter sind nicht nur lesen, sondern auch liken und retweeten, damit das funktioniert.
Obwohl, ich muss sagen, diese komische Startseite auf Twitter macht es ja schon ein bisschen selber, wenn viele Leute liken, dann wird es auch schon anderen Leuten angezeigt. Was eigentlich nicht die Idee von Twitter war, aber ich habe diesen Start hier auch nicht an, weil oft kommen mir Sachen gar nicht sehen. Ich will Texte absehen und nicht irgendwie, was weiß ich.
Ja, ich habe auch das erfolgt, gerade weil du so eine schöne Nische gefunden hast, die aber halt von vielen gebraucht wird.
Es geht ja nicht um die selbe Richtung, wie es fast ist. Ich meine, wenn du Glück hast, muss es ja nicht sein, dass du mit einzelnen Usern was verdienst, aber dann kommt eine Bude wie Google auf dich zum "Gib uns mal dein Projekt". Dann kannst du es wirklich machen, wo du es überkommst.
Ja, mal schauen, ob das dazu kommt. Die größte Gefahr ist immer noch, dass Apple dieses Problem, das erkennen wir jetzt an und wir haben es jetzt in Expo selber gefext. Das wäre auch nicht so schlimm für mich, weil letztlich das Problem gelöst ist, dann hätte ich ja noch genug andere Ideen, an denen ich arbeiten kann.
Und selbst, wie ich Apple kenne, dann werden sich vielleicht ein, ein, einstelle der vielen Probleme, die du gerade löst, lösen und dann vielleicht auch nur so halb gar. Also da würde ich mich nicht so groß Angst machen. Ich meine, Apple hat eine Taschendampe auf den Log-Screen gelegt, Leute, da haben wir noch Taschendampe-Apps runter, also sehe ich nichts Problem.
Ja, ich hoffe aufs Beste, mal schauen, wie es läuft. Muss erst mal fertig werden, bin ja noch in der Entwicklung.
Wie bist du zum Programmieren gekommen? Hast du es nicht richtig studiert?
Um auf Folge 1 von "Apps der Tagebuch" zurückzukommen.
Ah ja, das war quasi die Methode, die immer komplett in den Start zu fallen. Also im Grunde, ich fang mal in der Schulzeit an, aber kurz, niemand dachte, ich würde Informatik oder so studieren oder irgendwas. Also technisch war ich schon immer, aber die meisten dachten, ich will Journalist werden oder vielleicht auch Filmemacher. Ich hab auch gerne Filme gemacht, Videos gemacht, komme jetzt auch wieder ein bisschen darauf zurück. Aber ich war eher gesellschaftlich interessiert und wollte immer, ich fand alles cool, was letztlich viele Leute erreicht hat. Also Filme erreicht viele Leute, Journalismus schreibt einen Text, du reißt viele Leute. Und ich hab dann aber irgendwann gemerkt, ich bin mal der Problemel.
Komm, später, später.
Ich schreibe die Artikel, da sieht man mich ja nicht, weil ich mache den Film, ich schaue spiele nicht mit. Aber der Gedanke war dann irgendwann, ich bin jemand, der die Probleme lösen will, ich sehe überall Probleme, ich laufe quasi durch die Welt, sehe Probleme und analysiere sie und ich habe Ideen, die man sich verbessern könnte.
Das betätig auf alles, auf unser Wirtschaftssystem, unser politisches System und so weiter. Und das sind halt große Fragen, aber ich hab dann irgendwann gedacht, wie kann man eigentlich als Einzelner am meisten in der Welt bewirken, und möglichst viele Leute möglichst groß erreichen.
Und irgendwann habe ich erkannt, das geht am besten indem man Software schreibt.
Denn Software kann man nicht nur Texte, denen niemand versteht, oder einen Film, wo dann jemand Gefühle hat und so, vielleicht etwas lernt.
Sondern man kann tatsächlich ganze Konzepte da einarbeiten. Man kann ganze Probleme in den Software lösen.
Und so habe ich mich dann entschieden quasi in der Schulzeit. Ich wollte Probleme lösen und wenn so in die Softwareentwicklung kommen, dann habe ich tatsächlich Informatik studiert.
Und zwar in K2M, K2M Institute für Technologie.
Und in der Zeit habe ich auch, weil ich so problemlösungsorientiert war, alles geil gefunden, was so Richtung künstliche Intelligenz ging.
Und damit mache ich gar nicht unbedingt Maschinelearning, sondern wirklich so die größeren Themen dort und alles, was so in Richtung was so direkt verwenden kann und das war dann Appentwicklung.
Und sobald das iPhone rauskam, Appentwicklung, eine große Sache wurde, 2010 glaube ich oder 2011 habe ich dann, glaube ich, gestartet mit der iOS-Entwicklung. Aber im Anfang habe ich zuerst eine Android-App entwickelt. Das war meine erste App, eine Android-App. Und iOS habe ich damals nicht so ganz kapiert.
Da war diese ganze Model-View-Controller und vor allem diese UI-Table-View-Delegate, UI-Table-View-Data-Source, war mir zu kompliziert ganz am Anfang.
Und dann war Android mit Java, was ich vom Studium kannte, tatsächlich einfach.
Das war am Anfang aber auch extrem kompliziert. Vor allem das erste Mal mit Zertifikaten, die man sich irgendwie besorgen musste und Code-Signing hatte ich das erste Mal auch Kontakt mit.
Also ich habe mit iOS 2, glaube ich, angefangen zu programmieren, also für iPhone zu programmieren und es war nicht schön.
Ich bin ja wirklich erst mit iOS 7 eingestiegen. Noch die letzte Objective-Sia. Und ich weiß, und da gab es schon viele Schmerzen noch.
Aber ich meine, wenn man jetzt von heute zurückguckt, wie geil sind die Dinge mit Zürich, die man kann, wie gut aussehen und wie die Schmerzen da mit sind oder immer noch mit UI-Create aussehen, das ist schon echt brutal.
Ich habe gerade mein Coco-Programming-Buch von 2008. Wow, ja krass. Wahrscheinlich habe ich dieses Buch auch gelesen. Es gab einen, der hieß Aaron Hillegraves. Aaron Hillegraves habe ich genau hier. Genau, genau.
Genau dieses Buch habe ich in der Uni, in der Bibliothek habe ich das auch gesuchtet, komplett durchgearbeitet. Und auch zu Core Data und so.
Hat am Ende trotzdem nichts gebracht, die ersten zwei, drei Anläufe haben alle zu keinem Erfolg geführt.
Jetzt, wo du Core Data ansprichst. Kommst du wieder so, wie ein Nameflashbackst bei mir hoch.
Ja, so, wir haben jetzt, glaube ich, dich ganz gut interviewt, oder? Ich weiß nicht, hast du noch irgendwas, was du mitgehen willst?
Also ich kann vielleicht die Links erwähnen, also wie man mich auf Twitch findet, wenn man mir da folgen will und ich freue mich natürlich, wenn man mir da folgt, z.B. twitch.tv/jeehat
Wie man mich auf Twitter findet, schreibt man jeehut.
Genau, und ich habe auch einen YouTube-Channel. Auch in den schonen. Genau, einen YouTube-Channel habe ich auch, da heiße ich FlineDev. FlineDev.
Fline, genau, wie auch dein Gitar-Ding, oder? Genau, das ist das, was ich vorhabe, wie meine Firma vielleicht irgendwann heißen soll.
Aber du bist ja auch als Freiberufler gemeldet, ja? Genau, ich bin noch komplett selbstständig, gewerbetreibende Offiziell.
Ach du hast ein Gewerbe? Ich habe schon seit 2012 ein Gewerbe, ich habe ja damals schon ein bisschen mehr Apps entwickelt, ich habe auch ein paar Apps schon im Store, die sich auch verkauft haben, die meisten haben viel aufhängengestellt und alles. Ja, das verstehe ich eigentlich. Nee, weil im Prinzip du brauchst kein Gewerbe als Software-Entwickler.
Dann sparst du dir nämlich ein paar Steuern und overhead. Ja, da bin ich überfraglich nicht aus, da habe ich auch ein paar Steuern und overhead.
Wenn du Software machst, dann bist du im ersten Step selbstständiger, das geht nämlich dann, wenn du irgendwie deinen Job mit deinem Gerät machen kannst und gar nicht irgendwie auf Mitarbeiter oder sonstige Gerätschaften angeriesen bist.
Dann sollte man mal nachgucken, der Schwerpunkt ist auf der Entwicklung auf jeden Fall drunter. Ich muss jetzt auch sagen, damals, als ich angefangen habe, 2011, das wussten auch nicht viele, wie man das offiziell richtig macht, auch viele Steuerberater, die wussten es nicht so genau, weil es relativ neu war, wie Apple das alles gemacht hat. Inzwischen ist das glaube ich deutlich bekannter.
Gut, kommen wir jetzt zu Corlator Flashbacks. Ich habe jetzt mal die NFC-ViPhone News ein bisschen hingeschoben, da gibt es jetzt wieder, da ist auch viel passiert.
Das erste Ding war, ich hatte eigentlich über Weihnachten 3 Wochen Urlaub und ich habe die ersten 1,5 Wochen gearbeitet an meinem eigenen Projekt und irgendwie wollte ich eigentlich nur ein kleines Feature machen und ich dachte, fuck jetzt muss ich doch endlich diesen großen Batzen angehen. Und habe jetzt einmal diesen NFC Read&Write Screen Unified und ähnlich gemacht zu dem, wie es mit den QR Codes ist, also dass man diese ganzen Einträge auch mit dem Titel versehen kann und so was.
Es sieht jetzt alles mehr streamlined aus, daran habe ich gearbeitet, da habe ich viel umgebaut, viel mehr 50i gebaut, viel alten Code rausgeschnissen und mich auch um Accessibility gekümmert. Da kann man auch einen schönen kleinen Twitter-Thread verfasst, wie man, ich hatte zum Beispiel Dinge wie das blinde Leute meine App benutzen, hatte ich glaube ich schon erzählt mit der Schaltplattensammlung und da bin ich so auf Dinge gekommen und habe natürlich auch mal wieder den Screenreader angeschaltet und habe gesehen, auch wenn du in 50i Elemente versteckst oder auf jeden Stelle, dann sind sie trotzdem für den Screenreader da, was ich so ein bisschen seltsam fand. Und da habe ich so einen kleinen Twitter-Thread mal gemacht mit meinen Findings, die ich über Accessibility gefunden habe.
So wie dass man zum Beispiel mein Hintergrundbild, das ist ja so ein NFC-Logo mit dem Bild und so weiter und das ist eigentlich für einen blinden, ich finde es völlig irrelevant, dass dieses Bild da ist und wenn du da drüber gehauen hast, hat der halt vorgelesen, wie der Datei damit das Bild ist.
Und dann kannst du dann einfach mal sagen, ok, in 50i sagst du dann wie Stackpunkt, also dein Modifier sagst Accessibility, Accessibility hinten, Doppelpunkt True und dann ist das Ding weg.
So und dann kommt der Screenreader, kannst du da mal screenwischen und es passiert nichts mehr. Und auch so Geschichten wie, ich habe mir so ein bisschen Customers gebaut, weil ich mit diesem Navigation-Link, der in 50i drin ist ein bisschen schlecht ist, das lässt dich schlecht customisieren und ich habe so sehr viel Themeability in meiner App drin mit Farben machen und so weiter.
Und dann kannst du so Dinge wie, dass du auch wenn du über einen, kannst du mit dem Finger über diese Dinger drüber wischen und dann zeigt er dein einzelnes Element an. Aber was du eigentlich haben willst ist als nichtsehender, du möchtest ja eigentlich haben, dass dieses eine Element als eines Element angezeigt wird und das auch nur wirklich den relevanten Text vorliest und nicht unerledigte Sachen wie Hated und das Bild heißt so.
Da kannst du sowas machen wie nennst du dich, ich glaube Group, und dann kannst du auch so sagen, ok, das ist jetzt ein Element, sagst du so sagst du deinem Accessibility Element, Children, das kommt ein, also du sagst auf einem V-Stack und sagst kombiniert bitte und dann siehst du auch, wenn man das sieht man dann schon in dem Video, wie dann dieses, diese Tablet-Zelle auf einem einen Element ist nicht mehr 4 oder 5.
Ja, da hab ich noch so ein bisschen mehr über die Accessibility, was man noch so machen kann.
Genau, kann man sich mal gucken, das ist ganz cool, auch über den Accessibility Inspector, der in Xcode drin ist.
Ja und auch das Accessibility bedeutet ja nicht nur, dass man was für nicht sehen macht, sondern auch für Andersprachige.
Oder auch wie wir auch schon nicht mit dir darüber geredet haben, ist auch Werbung ist eine Form von Accessibility. Du machst eine App kostenlos und sie ist dadurch accessible für Leute, die sich das nicht leisten können und damit halt auch cool sind und sagen, ja ok, ich schau mir die Werbung an und dafür darf ich deine Saft benutzen.
Das war so weit zu Accessibility und dann, ich hatte ja schon, oh jetzt kommt die Core Data Schmerzen, ich hatte ja, wie fang ich da jetzt an, ich hatte ja erzählt, ich hatte irgendwann richtig, wir hatten ja schon über Core Data Heavy Migration geredet, du weißt genau, dann hab ich immer so toll erzählt und hier und hier und hier und hier funktioniert alles, richtig, aber ich hab einen großen Fehler gemacht, ich hab nachdem ich meinen Mappingmodel gemacht hab und sozusagen hab ich noch weiter was in mein Core Data Modell eingefügt und hab gedacht, ja das passt schon, hab ja getestet und haja cool hat alles funktioniert und dann irgendwie halt dann doch nicht nochmal getestet, was man natürlich tun sollte. Hab ich aber irgendwie nicht gemacht, ich hab mich zu sicher gefühlt, ich hab, ja was hab ich gemacht, stellt sich raus für viele, viele, viele Leute hat meine App gecrashed.
Ich immer zugeschrieben. Ich auch so fack keine Ahnung wo es liegt. Ich immer zugeschrieben, ja shit, tut mir leid, installier mal neu.
Was hab ich jetzt, weiß ich nicht, zwei Wochen gemacht, bis mir dann zu viel wurde, weil ich hab echt zu viele User.
Und dann, ich hab dann glücklicherweise, sage ich mal, ein Großteil, viele Leute, lasse es runter. Und ich meine, dann liegt die App auch teilweise bei Leuten ein, zwei, drei, vier Wochen, auch mal Monate rum.
Und dann machen sie dann irgendwann wieder auf und sehen, oh, crash. Und dann hab ich natürlich mal Crash Reporting drin und ich krieg' E-Mails. Und das wurde wirklich mit E-Mails fast überhäuft.
Also es waren schon mal so zehn, zwanzig E-Mails am Tag, die immer nur mit dem selben Crash Report. Und das ist natürlich keine Lösung, den Leuten zurückzuschreiben.
Ja, dann hab ich auch, die hat mal gefragt, wie er das denn lösen würde. Und da hat er mich auf vier Progressive Migrations hingewiesen. Also dass man diesen Migration Prozess sozusagen selber macht.
Und das Problem an diesem Core Data Heavy Migrations, dass du dein Migration Model, ja zum Beispiel, wie es bei mir war, von Version 3 auf Version 4, hast du ein Migration Model.
Du musst dieses Migration Model, oder dieses Mapping Model, musst du dir von, wenn du Model 5 hast, musst du von Model 3 auf Model 5 eins machen.
Wenn du mit Model 6 anfängst, musst du von Model 3 auf Model 6 machen. Das skaliert natürlich überhaupt nicht.
Und dann wird immer am Schluss immer mehr Arbeit. Und dann gibt's, hab ich einen schönen Artikel übergefunden, nennt sich Progressive Core Data Migrations.
Und da nimmst du sozusagen Core Data alles ab und musst aber auch alles selber machen. Da ist hier in diesem Ding, ist ein L-Langer Artikel mit Beispielprojekten und Githubprojekten und so weiter.
Also sehr, sehr, sehr ausführlich und sehr gut gemacht auch. Auf jeden Fall mal angucken, ist interessant.
Der Outcome von dem, was ich da gemacht hab, ist, schau einfach, dass du keine Heavy Migrations hinkriegst.
Also nicht einfach, dass du ein weiterer Core Data Modell umstrukturierst, sondern lieber einfach neue Sachen dranhängen und dann hoffen, dass alles zusammen bleibt.
Genau, das war nämlich auch das Jahr, wo ich eigentlich das machen wollte. Ich wollte ja eigentlich nur ein String gegen ein Endstate austauschen.
Ich hatte ja irgendwie dummerweise mal in meiner Jugendlichen Leisten irgendwie mein Date als String in Core Data abgespeichert, obwohl Core Data diesen Datentyp selber kann.
Und ich hab mir gedacht, okay, das löse ich jetzt und mach's mit einem Mappingmodell.
Aber der viel einfache Trick ist einfach, dass man zwei Modellversionen macht, wie die hier dann erklärt hat.
Und ich hab mir gesagt, man löscht in einer Version das und man fügt in einer Version das wieder hinzu mit einem anderen Datentypen und hast dann zwei Mal Lightweight Migrations anstatt eine Heavyweight Migration.
Ja, das hat dann dazu geführt, dass es teilweise funktioniert hat, aber teilweise bei Usern auch wieder nicht.
Bis ich dann zu dem Punkt gekommen bin, dass ich gesagt hab, ich dann noch mal dir in einem Emergency Call dazu gebracht, um dir noch mal zu helfen, wo ich auch immer sehr, sehr dankbar bin.
Dann hat er gesagt, okay, dann hab ich gesagt, okay, fuck it, wir schmeißen das alles weg, wir machen eine neue Datenbank auf, lösen die alte oder wir lösen sie noch nicht, sondern lassen die alte noch liegen.
Und das hat dann alles noch funktioniert, dass es erstmal wohl ist, dass keine Crashreports mehr kommen, das natürlich bei einigen Leuten, ich glaube, ich hab zwei, drei Bugreports bekommen, so ja, wo sind meine Daten?
Hab ich gesagt, pass auf, wir kommen bald wieder, deine Datenbank ist nicht weg, also diese alte Datenbank lag ja da noch.
Dann bin ich auf wirklich Handyschirmagration gegangen und hab gesagt, ich mach jetzt diesen SQL-Container, was der Core Data drunter hat, mach ich jetzt auf und hol mir das Zeug manuell daraus.
War jetzt, keine Ahnung, nach 3, 4 Stunden hatte ich dann, ist nicht so schwierig, kann man gut googeln, gibt es eigentlich oft Stack Overflow und dann zieht man sich halt seine Daten daraus und schmeißt sie in sein neues Modell rein.
Was wirklich im Emergency Fall natürlich nicht der schönste Fall ist, funktioniert einfach, das ist gut und bin jetzt auch ganz glücklich, dass ich eine funktionierende Datenbank wieder hab.
Das die Moral von der Geschichte ist, testen, testen, testen, testen, testen, testen und nochmal testen und vor allem auch, wie wir schon mal darüber geredet haben, aus den alten Archives, alte Archives nicht wegschmeißen.
Man kann dann alte App-Versionen, im Organizer kann man sagen exportieren und dann ad hoc exportieren und diese dann über Xcode über diese Log-Konsole kann man sich die wieder aufs Grid installieren, dann hab ich zurück bis Version, klar, wieder ural Version bei mir gehabt draufgespielt.
Dann kannst du deine Migration machen, also auch mit der Test-Version oder mit dem Dings, deine Migration machen und sehen, ob es wirklich funktioniert hat und dann natürlich solltest du dann wirklich von mehreren Versionen probieren, musst gucken, auch in deinem Gitkleid, am besten immer schreiben, wann hast du was mit Core Data gemacht, dann siehst du es auch immer, okay, an der Version hat dich vielleicht mit Core Data was gemacht und da, ja.
Also testen, testen, testen und happy-mate Migrations einfach vermeiden.
Soll ich noch kurz dazu sagen, dass Core Data basiert ja im Grunde einfach auf SQLite, also dadurch kannst du es auch leichter auslesen, also es ist einfach nur SQLite-Datum darunter und wenn du testen sagst, meinst du eigentlich dann manuelles Testen, also nach jeder Änderung selber nochmal durchtesten funktioniert oder meinst du auch automated Testen?
Ich weiß, worauf du genau willst, natürlich sollte man auch test schreiben, wenn möglich, aber ich meine jetzt schon selber, ich würde sagen einfach beides, wenn man Zeit für beides hat, beides machen, wenn man Zeit für eines hat, dann immer mindestens mit Gerätentesten und Versionentesten.
Ich glaube allgemein bekannt ist auch, dass Migrations einfach wirklich schwer sind, richtig umzusetzen, also Migrations sind so ein Thema, wo man immer vorsichtig sein sollte.
War mir eine Lehre, passiert auch nicht mehr, aber immerhin, positiverweise, ich hab was gelernt und ihr hoffentlich auch.
Das lustige war, dass ich auch in die Fehler reingelaufen bin, ich benutze sie ja sehr selten, weil ich meist zu Hause bin und keine Core-Ekos lese und auch keine NFC-Text lese, aber das eine war, wo ich sie benutze, weil ich sie abgestürzt habe.
Konnte man zum Glück durch neu installieren, dann an der Stelle fixen, aber ich hatte auch keine Daten, die wichtig waren hinterliegen, deswegen war das für mich der Fix.
Ich würde auch vielen sagen, ich meine das sind jetzt nicht die allerwichtigsten Daten, aber es mag halt den einen oder anderen geben, der sich dann halt schon irgendwie genervt ist, so oh, jetzt muss ich nochmal zu viel, jetzt hab ich meine History weg.
Also, wenn du so ein Heavy-User bist und da irgendwie 100 NFC-Text drin hast oder QR-Code...
Ja, ich meine, mit meiner App geht ja noch mehr, außer dass man auch quasi nicht mit Zertifikate sich auf den Romscreen legt oder mit dem QR-Code, es nervt halt dann, wenn du das alles wieder neu erstellen.
Was sollte man jetzt schon tun, liegt vermeiden, mich hat natürlich, oder was heißt natürlich, zum Glück niemand groß angeschrieben, mich hat ganz vortrun, und auch, dank, dank, ich muss sagen, dank meines Crash-Reportings, dass Leute wissen, hey, ich kann meinen Crash-Report rausschicken, ich hab auch immer zeitnah geantwortet, hey, tu mal like, installier mal bitte neu.
Ich hab eigentlich fast keine schlechte Beratung bekommen, ich hab niemanden, der sagt, äh, die schütze ab funktioniert nicht, so ne Kacke, weil du auch keinen Shake-to-Andu benutzt. Ja, also du musst dich selber schütteln und versuchen, ob es Andu-en kann.
Das ist ja wichtiger, dass die abcrashen oder dass man keinen Andu findet.
Ja, lieber nicht crashen. Shake-to-Crash, ah, das wär erst mal... Shake-to-Crash-Report ist ja recht bekannt, nein.
Ja, das kenn ich, das kenn ich hier von mir, das ist Instagram, das haben wir im Syntheskontext benutzt. Shake-to-Crash. So, hey, ich bin grad gestorben und die hat das auch gecrashed.
dann zu den filmen natürlich auch was neues gebaut und alles mir zu die
idee gekommen ich wollte neu von aus 15 nutzen und ich supporte das wird das
mal die zappen ich noch nicht abschneiden und irgendwie wollte ich noch
benutzen habe ja ja das ist die Idee man kann sich die ssg aus diesem ssg
exportieren zu sagen jedes ssg fadler dann alle dinge drin sind und die
sind einfach in deinem catalog und schon hast du dieses ein essendung kann es
dadurch sagen hier es ist einfach so im zentrum der leitenden aber das ist es
zum was du das neu ist kannst du auf dein altes benutzen was nach live herkunft
5000 ist weil du bist halt nicht darauf ab also diese selbst so wertvoll und dass
man da sagt ja jetzt auf alles 15 auch nicht man so viel zappen für ein bild ist halt auch zu viel
habe ich gesagt es schreibt nach einer library also vielleicht wird es eine library draus machen könnte man eigentlich auch mal interessieren
könnte man machen ich habe auch ein schönes schöne mk ab dazu gefunden und zwar
nimmt die sich jetzt noch eines habe ich natürlich nicht aufgeschrieben aber wenn man in
den apps doch ssg symbols eingibt dann kommen ist nicht so von ssg symbols eine app wo man alle symbols sieht
ja ja das ist schon aber es gibt eine app mit der du die ssg symbols selber machen kannst und zwar du gibst dem einfach ein ssg ssg
fall also du machst dir dein symbol wie du es brauchst und dann drops du das in die app rein ich muss jetzt einfach nur finden wie
diese app heißt weil ich sehe sie immer noch nicht auf dem ersten blick die war doch hier
custom reichlich nach jetzt custom symbols und du er stellt die ssg wo dann wirklich die sind in allen grüßen und allen stärken
das ist wenn du es behandelt machst sehr sehr sehr sehr fiddlig und ja diese app macht es für dich ist ein subscription gibt
glaub ich der waage kosten muss kost 10er im monat was bisschen ne 1349 ok war es doch übertrieben also dann ist der ist leider gut du bist halt du
legst dich halt auf den jahr fest man kann es ausprobieren und ich denke ich weiß auch noch ausprobieren ich hab es noch nicht ausprobiert ich hab es nur erstmal du geguckt den gratis monat
oder die gratis wochbewerbe ich mal anfangen soweit ich weiß ok ich hab jetzt ein symbol und dann will ich es umkonvertieren
weil sonst komm ich da irgendwie und schau mal wie es funktioniert wenn jemand Lust hat kannst du es natürlich sofort ausprobieren
zum thema symbols hätte ich tatsächlich auch noch einen kleinen tipp und zwar gibt es da einen framework es nennt sich ssg symbols das ist auch von einem kumpel von mir entwickelt
frederik pittschman heißt er schaut dazu hin auf jeden fall ist es was ähnliches wie swiftgen das heißt es sorgt dafür dass man referenzen zu ssg symbols machen kann
ohne diesen string eingeben zu müssen wo man sich wieder vertreten kann so sondern es bietet dann auch noch ein ganzer in und für alle es ist ein problem aber für alle die ssg
kann man benutzen das ist eine sichere mit oder ist quasi sicher zu verenden ja die habe ich auch schon irgendwann mal wahrgenommen man hat ja man hat das glück wenn man einfach
ssg symbols einen falschen namen eingibt also es ist halt einfach kein bild angezeigt aber autoforstückend immer gut sich auch so verstehe ich auch nicht warum apple das einfach nicht macht
so low hanging fruits die die jetzt gibt es ein string ein aber andere geschichte genau das war so weit so ssg symbols und jetzt kommen wir noch zu erdmob experimenten und das ist meiner mein nach fast das
spannendste weil ich über die drauf gestoßen und zwar wie maximiert man seinen outcome aus erdung und da habe ich ein bisschen um recherchiert und es gibt verschiedene möglichkeiten zum
beispiel dass man mediation benutzt und mediation ist was wie dass du ganz viele werbenetzwerke was was facebook werbenetzwerke oder was weiß ich ad colony und wie sie alle heißen gibt es hunderte jedes ding habe ich eigentlich nicht die frameworks haben unterschiedliche mit den details und sonst irgendwas viel viel overheads da gibt es mediation und zwar wie du sozusagen kannst du sagen ich möchte facebook werbung über mein google ads rein bekommen und dieses ding machst du dir natürlich einen account auf facebook ads manager und so weiter ich muss mal wieder
alles von facebook ist nicht hart gestört hat aber das macht man nicht alles also zwar experiment was ich ausprobiert habe und habe diesen versucht mediation aufzusetzen und es ist alles ein bisschen konfus bei facebook hab es im endeffekt ist laut dem was ich da installiert habe alles hat alles funktioniert ich habe aber immer keine facebook bekommen ansicht was du da nämlich für einen vorteil draus hast aus der gewinnmaximierung ist dass du sozusagen wenn jetzt google werbung bekommen sagt ok hier dieser kunde zahl 30 cent pro anzeige so ungefähr kannst du wenn jetzt zum beispiel facebook werbung sagen ja ich habe hier an der zeit 35 dann wird ausgewählt ok dann nimmt du den mit 35 du als erdbegler verdienst mehr und die werbung von facebook wird angezeigt und nicht von google und so ist das halt dass die sozusagen sich gegenseitig überbiegen wie eine auktion eigentlich
das hat so ein paar auch drawbacks also erstmal du musst auf jedem dieser portale brauchst natürlich einen account mit eigener information und sonst irgendwas und wenn man sowieso jetzt nicht so der große verdiener ist mit werbeeinnahmen zum beispiel google 70 euro bis man sich was auszahlen lassen kann oder vielleicht auch irgendwie so mindestbetrag dass man das auch noch teilt also dass jetzt du nicht mehr von google alleine bezahlt bist sondern auch noch von facebook und dann hast du noch dritten und vierten und dann hast du vier rechnungen und dann hast du noch mehr befreitungsaufwand und allmischen kram und ist es so ein bisschen doof alles und das hänge ich hab jetzt auch alles auf dem branche und hab ausprobiert und überlege auch noch mal ob ich das weiter machen ich hab es noch nicht so weiter getrieben wie gesagt weil auch facebook keine werbung bei mir ausliefert und ich noch am die bank bin wie ich das hinkriege
ob ich das überhaupt will wie gesagt mit dem mit dem geteilten pain ein bisschen bin ich auf die andere Idee gekommen zwar gibt's ja das man diese etc
im fluss und ich glaube ich auch schon mal wieder da gibt's nämlich Google optimist Google optimist Google optimist
Hi floor Google optimist medium floor Google optimist all so da hast du halt so Dinge wie bei all dann wird halt wirklich auch jede kackwerbung gezeigt und für die kackwerbung bekommst du halt dann mal so ein estimate cost per bill kriegst du mal so 2,50 pro tausend anzeigen aber wenn du highpaying isen machst kriegst du 8,50 oder mehr sogar für die tausend wenn du ja da hab ich einfach mal mit diesen daten ein bisschen umgespielt dann hab ich mir auch ok probierst du mal den medium floor aus so was dann halt passiert ist du werden die werden
besser zahlen als angezeigt aber das problem ist halt die dann halt auch einfach das wettbewerb angewandt
das hat auch low income in dir das weiß ich irgendwo weil einfach nicht so viel auf werbung
ausgegeben werden kann das ist problem sehr cool aus dem first world countries die die die die
kohle mit aber der rest krieg halt einfach nichts angezeigt und das ist ja auch nicht und dann bin
ich irgendwie mal so darauf gestoßen ich hab den artikel jetzt auch nicht hat nur als kommentar
geschrieben so ja hey macht ihr doch mal drei erd units und zwar eine mit dem highfloor also
kannst du verschiedene anlegen was ein highfloor mediumfloor und ein off-floor das anlegt was dann
drei dies und dann fängst du mich so an dass du dir in deinem appen und sagst ok jetzt bitte hier hast du
machen wir den banner und mit dem highfloor so dann guckst du machst du dann dein request ab das
sagt der gerd banner.request oder so was und dann kommt er entweder zurück hey ich hab eine
app bekommen cool zeige ich an oder hey ich hab keine app bekommen mit fehlermeldung sondern
mach was ich dann mache ist ich hab keine app bekommen fehlermeldung ok mach ein neues banner mit dem
mediumfloor mediumfloor request versuch einen app zu bekommen hey ich hab eine app bekommen cool zeig sie an
ich hab keine app bekommen probier den allfloor das hat dann jetzt auch immer ein test funktioniert ich hab das dann
gestern gesagt ich brauchte dieses iphone 7 plus damit ich halt das kannst du mit test ads nicht
machen weil die werden jetzt immer angezeigt ich wollte aber wissen wie es aussieht wenn ich in indien bin und natürlich vpn installiert indien
aufgemacht südamerika türkische also auch gesehen ok mein algoritmus funktioniert es kann halt mal etwas
länger dauern bis er angezeigt wird aber im endeffekt wird dann zu 95 prozent angezeigt so das war der test
gemacht das ist wahrscheinlich auch richtig genau das ist gestern ich weiß nicht das problem ist nur über twitter alles
relativ wohlhabend kann schießen und so weiter und dann hab ich natürlich mal der hat es einer probiert ja kriegt ausgeliefert highfloor
ich will aber sehen wie es runter geht bis in den lowfloor oder in den off-floor runter traversiert und ob mein algoritmus
funktioniert wichtig ist dabei dass man immer wieder neues gdbana komplett erstellt also vom superfood
zufügt das hat mich immer sagt endet die id und machen ein request dann kommt irgendwann von dem banner zu ok du machst so viele requests
try it later es gibt auch kein problem mit google irgendwie dass die das nicht verbieten oder was ich hab es ist jetzt seit heute nacht aktiv und ich habe schon
leider nicht mehr so viel eingenommen es ist wirklich auch meine meine statistiken auf ad-mob sagen ich kann es nochmal nachgucken was
es sagt man sieht nämlich wenn man auf ad-mob geht auf seine apps auf den einzelnen app overview und dann gehe ich jetzt auf todays of
so fahren wir jetzt in den zeit ins als beta und der sagt ja auch immer so eine expected range von ectm du hast und da steht zum
beispiel meine expected range ist von 2.47 euro 35 und meine actual ist gerade 8 euro 71 also ich bin über dem was dieses ding
prediktet da war ich auch so vorgehalten das funktioniert wirklich es sieht in den statistiken jetzt ein bisschen komisch aus weil du hast extrem viele
requests die impressions sind relativ gleich und eine match rate also die wie viel requests und questions sieht er richtig kacke aus da steht jetzt mal
53 prozent aber natürlich wird dann angefragt und wie gesagt highfloor funktioniert nicht ok try next floor
das ist aber so aus dass es halt echt von dem geld her bin ich echt sehr zufrieden und ich werde es nochmal beobachten
krieg nicht google theoretisch wenn du quasi werbung bekommen quasi auch mehr geld und natürlich kann man sich da nicht fragen warum google
ist also nicht selber darauf kommt es genau so zu machen also wie gesagt ich kann es gibt diese zwei dinge dass entweder den floor selber komplett
einstellen kann es auch sein auf das landet ich das oder du machst halt die google optimist das ist kein google optimist mit hey
diese dinge durch so wie es gerade mache nicht verstehe ich auch nicht also ich sehe da ist nichts illegales dabei das ist
sehr gut für alle seiten für die werbetreibenden für google für dich auch das ist wirklich also programieraufwand waren keine halbe stunde
ich habe nur das dingelied nach dem fakt ist publik ist aus und das ist ein hack das ist ein hack den man auf jeden fall treiben könnte
die frage ist nur ich teile jetzt schon wenn du nicht weiß hat man als google problem ich glaube ich nicht man das ist
problem machen andere auch so ich bin ja nicht der erste also ich habe die idee ist nicht von mir ich hab die auch nur aufgeschnappt
mit walker genau ich beobachte das einfach mal so weiter wie es läuft ich finde natürlich gerade solche erbauer-experimente sind natürlich für
mich als der der abhängig davon ist immer gefahr was zu tun umso besser dass es funktioniert und hoffentlich funktioniert auch weiter so
das war es soweit von meiner fc von seite dann kommen wir jetzt zum
framework der woche das war das beste was wir bis jetzt hier hatten die leute werden nicht an runden am ende der folge da liegen
ja folgendermaßen ich habe daraus gesucht perry heißt es und zwar das ist so was mir auch ein bisschen gefehlt hat es war
also diese und da war so hey welche davon benutze ich da überhaupt die sind da irgendwie tot und
ich kann ich mir habe ich gefunden perry ist ein tool was genau dir das macht und zwar dir dein kod analysiert und sagt was davon
benutzen was ist tot was kannst du wegschmeißen und man macht ja mal probiert warum und hat was vergessen und du kannst
richtig viel kohlsmehl und einfach so in deiner code basis damit entfernen das ist das ist nicht einmal probiert in der
kommandos aus und wenn es dann läuft kann man sich das auch in die macht man sich ein aggregate also das ist wie so ein target
das aber nur ein skript aus wird und dann drücke ich kommandos und dann wird dir auch in dein bild ein issues
wenn die funktion gar nicht die variabel benutzt du nicht das benutzt du nicht hier machst du
irgendwas und das ist ganz toll kann man durchgehen und schön sein kod aufräumen also wie viel
alles geschmissen hatten die auch nur dadurch dass halt die kautsch mir diese oder besser gesagt zu
es wird an diese datei angelegt hat geht natürlich auch dadurch weil der würde sonst nicht durchgehen und
schöner nebeneffekt der dabei war ist dass dieses tool ist bei mir gecrashed bei mir im kod hat irgendwann mal ein katsch eingebaut den hat dieses tool dann irgendwie so perifere aufgedeckt
indem es einfach nicht funktioniert hat und ich denke ich habe dann auch ein issue da geschrieben hey funktioniert nicht der crash und dann bin ich irgendwann selber drauf gekommen und dann habe ich einen totalen katsch auch gesehen habe in meinem speicher der geht die ganze zeit hoch und irgendwas hat nicht geschwitzt was ja mal lieders swiftcode ist aber dieses tool hat dann halt irgendwie gesagt das cycle dependency ich komm dann bin ich klar crash
also das heißt jetzt hier dass du eine funktion hat zum beispiel die andere funktion aufgerufen hat und die hat wieder die funktion aufgerufen?
ja das war es war so dass ich in core data was gespeichert habe und core data mit dem swiftcode und das hat die ganze zeit im loop getriggert und ich hab es halt dankbar das problem ist ja dass die device so stark ist dass du nicht sofort merkst
du hast die memory gefunden dank perifere?
ja die hab ich später auch schon gefunden aber ich hab es dann den moment ausprobiert und hab gesagt da hab ich katsch gemacht also der war schon obvious den hätt ich schon irgendwann gefunden auch ohne perifere aber perifere hat es halt einfach aufgedeckt in dem zeit einfach nicht funktioniert hat
das tool macht es besser als xcode selber so xcode erkennt ja auch schon teilweise wenn du funktionen geschrieben hast die du nicht benutzt?
ja das ist besser viel viel besser also da kommt so viel raus da kann man ja mal gucken was kann ich stets hier irgendwie was alles rauskriegen
also bei xcode wenn du eine funktion benutzt oder eine variable angelegt hast aber da reinschreitest aber nie gelesen hast oder andersherum
der macht das ja nur lokal gleich ne? innerhalb der funktion zum beispiel eine variable hast du zum beispiel und du änderst die gar nicht dann macht der auch schon aber der macht das glaube ich immer nur sehr lokal in dem kontext
also der macht das komplett also wenn du funktionsparameter auch nicht benutzt wenn du irgendwas überschreibst zeigt dir das an wenn du was sagt dich hier einen fatal error machst das greitet dir an so hey du machst den fatal error willst du den wirklich drin überhalten oder?
das ist ja immer in den standard beispiel von code von apple mit drin wenn du keine viewcontroller anlegst dann ist ja auch dieses fatal error mit drin
ja genau du musst dich auch nicht um kümmern aber er zeigt dir halt wenn du das einmal ausfüllst eine warning an und sagt hey solltest du vielleicht mal angucken das geht ja nur darum also der macht nichts der analysiert nur und zeigt dir halt an hey hier wäre etwas guckst dir mal an wenn es dir egal ist du fühlst dieses ding auch nicht mit jedem bauen aus sondern nur wenn du es wirklich brauchst
das ist auch eine sache die mir aufgefallen ist bei deinen streams du hast so schöne wenige als warnings ich hab so ne liste von so hundert warnings ich hab die einfach
ich bin jemand der warnings richtig hasst um sich sagen ich kanns gar nicht aussehen
alle warnings die du in meinem stream siehst sind selbstgeschriebene also das sind erinnerungen die ich selbst als warnings eingeschrieben hab damit ich noch irgendwas wieder vervorständige
das ist auch ein warning das kommt dir dann nicht hoch genau genau auch hier pre-processor-macro hashtag warning ist das glaube ich ne? hashtag warning? genau das ist ein hashtag warning
genau hashtag warning und dann sag ich dann rein to do und wenn du mich bauen drückst dann kriegst du mich genau das auch angezeigt das ist ein sehr guter Tipp
hab ich da jetzt noch was zu tun weil man macht ja gerne immer hier nur als slash slash genau das klappt natürlich nicht auf
also ich hab früher das ist auch recht neu dieses hashtag warning früher hab ich auch slash slash und dann to do doppelpunkt und so und wenn man dann swift blink das ist so ein linter der ein bisschen den code schön macht installiert der hat dann tatsächlich ne regel das ist den als warning anzeigt diesen kommentar den ich früher benutzt aber inzwischen find ich das eingebaute einfacher und ich wollte auch sagen zu paratree du hast ja schon selbst unbenutzte strings damit gefunden weil du swiftjent benutzt das kann man ja auch ausweiten auf farben und auf image assets und alle anderen assets die swiftjent unterstützt und so könnte man bilder finden die man gar nicht mehr benutzt man könnte farben finden die man gar nicht mehr benutzt und den asset catalogs und so weiter und insbesondere auch ne app kleiner machen also auch kleine tapir swiftjent und paratree arbeiten noch sehr gut zusammen am besten nimmt man einfach sfc boots also hat man auch keine grafik
früher hatte man ja noch die launch und so was ist nicht einmal sondern für jede die weißgröße und dann aber ja das ist es hilft auf jeden fall alten kram in der app zu finden der sich da über die jahre sagen wir mal so ist es wie die wie die wie die die verkalkt über die all die sind immer wieder freigeputzt und dann putzt das herz auch wieder gut ja das ist noch ein schönes Schlusswort vielen dank dass du da warst und uns ein bisschen ein bisschen gesagt haben wir gesagt du gehst und folgt ihm alle auf twitter auf twitch auf github auf youtube auf stackoverflow und sonst so und guckt euch Partycroach an und unterstützt ihn githubsponsor hat er mir gesagt muss ich auch nochmal
Ich hab ein Githubsponsor, habe ich auch schon.
Genau, da drücken, oder Paypal oder was auch immer.
Einfach auf Twitch vollblumen und reinschauen und auch gerne Hallo sagen im Chat, dann freue ich mich.
Und ihr dürft mir auch jede Frage stellen, die ihr mir stellen wollt, da freue ich mich.
Also, hast du regelmäßige Streamzeiten oder einfach irgendwann?
Genau, ich hab regelmäßige Streamzeiten. Ich stream Mittwochs abends um 7 und freitags, nachmittags um 2.
Also kann man gerne einschalten.
Und jetzt noch am Schluss, 5 Sterne bei Apple Podcasts geben, bei Spotify, bei überall.
Netten Kommentar schreiben, wir freuen uns riesig.
Dann gibt's auch mehr guten Content.
Dann bis zum nächsten Mal! Tschüs!
Ciao!
[Musik]
Das App Store-Tagebuch-Repräg 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