Ab Montagmittag. So, guck mal, also jetzt zum zweiten Teil.
In dem geht es um das neue X-Code 5,
wie ihr wahrscheinlich alle wisst,
kommt irgendwie in drei Tagen das neue iOS raus,
das neue iOS 7. Und also hier wird es nicht um iOS 7 gehen,
sondern um die Entwicklungsumgebung für... Sondern die Entwicklungsumgebung,
die neue, die das X-Code 5. Ja,
kurz zu meiner Person,
ich bin hier Entwickler seit circa eineinhalb Jahren,
habe ja
auch mit iOS
erst angefangen
Und bin vorher nie so wirklich mit X-Code warm geworden,
muss ich ehrlich gestehen,
weil ich irgendwie diese Entwicklungsumgebung einfach nicht schön fand,
komme aus der Java-Welt und habe da irgendwann Idea kennengelernt,
beziehungsweise IntelliJ von Idea, wo man Set Brains und seitdem weiß ich,
was eine gute Entwicklungsumgebung ist.
Bin dann irgendwie, musste dann halt eben notgedrungen auf X-Code umsteigen mit iOS,
wobei es dann ich später auch kennengelernt habe von Jet Brains eben eine weitere Entwicklungsumgebung für iOS gibt,
die nennt sich App-Code, aber nur einen Nachteil.
Sie bietet diesen Interface-Bilder von X-Code nicht. Das heißt,
das ist rein programmatisches Entwickeln. Und vor allen Dingen
durch die Umstellung mit iOS 7 habe ich gerade festgestellt,
ist diese ganze programmatische Entwicklung, sind die ganzen Views,
funktionieren nicht mehr.
Das ist ziemlich unschön. Deswegen werde ich wahrscheinlich in Zukunft mit iOS 7
wieder auf X-Code umsteigen müssen, ob ich will oder nicht.
Es sei denn, App-Code bietet halt eben dann auch irgendwann
eine Interface, eine Interface-Bilder für App-Code an.
Ja, kommen wir kurz zum Inhalt.
Zum einen Ja, die Performance mit von Exquad 5,
dann haben sie eine Integration für das Source-Controller verbessert. Dann,
was ich sehr gut finde, ist, dass sie eine automatische Konfiguration,
nämlich die Seed Dämmer mit dem Provisioning Profiles,
das man immer hatte, deutlich verbessert haben, deutlich vereinfacht haben.
Das nächste wäre ein Asset-Katalog, ist was komplett Neues zur Verwaltung von Images,
was bisher auch sehr unschön gelöst war. Ich finde,
Layouting, das sie angepasst haben, wobei das,
also es geht um das vor allem um das Autolayouting und Constraints,
nennt sich das. Das haben sie schon bei IO6 eingeführt,
war da allerdings ein bisschen buggy, wie ich fand.
Also ein sehr unschön gelöst, soll mit dem X-Cord 5,
mit dem IOS 7, deutlich besser sein.
Ich werde es nachher schon zeigen, dass es noch nicht vernünftig gelöst ist,
beziehungsweise dass ich schon wieder Probleme hatte in der Theorie,
in der Praxis, was in der Theorie gelöst sein sollte.
Mal gucken, wie es dann jetzt mit dem X-Code ist,
wenn es dann tatsächlich rauskommt, also mit diesem X-Cord,
mit dem ich es getestet habe,
ist eben der Golden Masters,
den sie vor sechs Tagen rausgebracht haben
Mal gucken, ob sie da irgendwie für das tatsächliche,
endgültige Release da irgendwie noch Verbesserungen drin haben.
Dann neue Funktionalität der Testen der Vigator, den sie verbessert haben.
Und haben sie Richtung Continuous Integration was getan bei iOS,
beziehungsweise object to Sea und X-Code.
Die Deeper Gorges und weitere kleinere Veränderungen,
die ich jetzt irgendwie dann noch in einer letzten Folie
kurz anspreche
Dann laut dem WWDC, also dem World Wide Developer,
der World Wide Developer Conference, ist das so ungefähr die Verbesserung in der Performance,
die ist jetzt irgendwie im Excode 5 eingebaut haben.
Also man sieht halt irgendwie bei dem Indexing,
also Indexen von Pfeil, wobei, als auch Compiling von Nips,
also das ist für mich so irgendwie so schon das,
was mich irgendwie interessiert, warum ich so ausrede,
die Tab Creation jetzt um die fünften Mal so schnell ist,
weiß ich nicht, weil die Tab Creation ist eigentlich ein Punkt für mich,
weiß ich nicht, ist mir eigentlich relativ egal.
Device Discovery, okay, kann man irgendwie auch machen,
aber so häufig Staffel, ich meine,
die weiß jetzt auch nicht drin, Um das zu testen,
dafür habe ich immerhin auch den Simulator.
Aber gut, da ist jetzt irgendwie dann das Fünf-, Sechsfache so schnell.
Solange ich irgendwie in der Performance irgendwie eine Verbesserung habe zum X-Quad 4,
bin ich zumindest irgendwie ganz zufrieden. Dann zum Source Control,
da haben Sie eine Veränderung gemacht, und zwar dahingehend,
also dieses Checkout von existierenden Projekten gab es schon im X-Code vorher.
Das war allerdings ein bisschen versteckt. Also das ist mir
vorher noch nie so wirklich aufgefallen. Ich finde,
das ist irgendwie der Startbildschirm, den haben Sie definitiv verschlankt
, verbessert.
Das ist ein bisschen deutlich übersichtlicher geworden
Und man kann eben das ein existierendes Projekt dann einfach auschecken.
Und das ist neu hinzugekommen,
dass man irgendwie in den letzten Repositories, die man benutzt hat,
die man verwendet hat oder eben Favorites, wie man gesetzt hat,
einfach auf Repositories zugreifen kann und die einfach auschecken kann.
Ohne weiteres. Das ist neu zugekommen. Dann gibt es
einen im Nevigator oben, einen Menüeintrag,
der tatsächlich Source Control heißt,
womit man dann einfach irgendwie auch Branches merchen kann,
hinzufügen kann
Und man kann on the fly in der IDI selber gucken,
von welchem Code, von wem committed wurde.
Was ich auch ganz nett finde. Man kann ihn
auch blamen. Und so zur Schnecke machen. Kommen wir
zur automatischen Konfiguration. Die ist komplett neu dazugekommen.
Das ist nämlich das Dilemma mit den Provisioning Profiles gewesen.
Ich weiß nicht, inwieweit irgendwie hier schon überall iOS-X-Code-Programmierer
anwesend sind
Ich meine, jeder, der mit iOS um die entwickelt hat,
musst du mit Provisioning Profile tanntieren, ob er wollte oder nicht.
Ich habe es mal erlebt, euch einen Weiber, ja,
kann auch im Upstore vorbei, was verteilen wir mit iPhone-Ups.
Das war eine kleine Webseite. Aber als Developer musst du
dich schon mit Provisioning-Profiles rumschlagen, du willst oder nicht.
Und also ich habe es damals kennengelernt bei der ersten App,
die wir reingebaut haben und wie viel Provisioning-Profiles und wie viel
Profiles im Allgemeinen ich erzeugen musste, wieder löschen musste,
wieder neu generieren musste,
neu wieder downloaden musste und so weiter und so fort.
Das war echt ein Dilemma.
Und das haben wir jetzt tatsächlich ins X-Code integriert
Dass man da einfach seine Apple-ID einbauen kann,
die die Company auswählen kann, für die man arbeitet und das war's.
Das andere wird alles von dem X-Roll automatisch runtergeladen, automatisiert.
Was schon ziemlich schön ist. Dann, genau,
hat man einfach in jedem Projekt eben dann sein Team,
das man da eben auswählen kann, man kann ja mehrere Teams für mehrere Teams arbeiten,
kann sein Team einfach auswählen für den, für den die App erzeugt wird.
Und gibt es zusätzlich eben die Capabilities, die hinzugefügt worden sind,
womit halt eben die ganzen Das Ganze, die ganzen Features,
die eben so eine App im Hintergrund haben soll,
einfach ausgewählt werden können, ohne dass man irgendwie auf das Developer,
aber Apple Portal gehen muss, um da irgendwelche Lizenzen,
wie auch immer, zu überarbeiten, zu verändern.
Kann man einfach tatsächlich im X-Code machen und kann darüber alles managen.
Und wir hätten, glaube ich,
irgendwie vorhin auch über die Background-Modes geredet und da hat man nämlich gesehen,
es gibt diese Location-Updates,
was wir jetzt irgendwie mit iOS 7 hinzugekommen ist,
dass im Hintergrund Location-Updates machen kann.
Das wird von iOS
jetzt unterstützt
Wo man, glaube ich, vorhin durch Zufall aufgestoßen,
bin ich irgendwie beim, beim Durchforsten der WWDC-Videos,
bin ich eben über das Exquad 5 Video darauf gestoßen.
Das ist jetzt, jetzt geht.
Das ist bei der zum Beispiel 7. Das ist gerätabhängig.
Also mein Gesicht mit Face und Satz ein,
weil ich ja im neuen iPhone halt dafür diese M7-Controller eingebaut wurde,
dass halt genau sowas halt passiv quasi gemacht werden kann.
Und soweit ich weiß, es ist nicht gerätabhängig.
Es ist nur halt eben iOS 7 bzw. betriebsystem. Das heißt,
es wurde im Endeffekt die Akkulaufzeiten, sehr wahrscheinlich Zeug.
Ja, nutze ich halt. Mit Sicherheit. Mit Sicherheit
auch bei einem anderen iPhone. Also ich meine,
sie haben zumindest gesagt, das ist wirklich schön.
Wie gesagt, das eine ist die Theorie, das andere ist die Praxis.
Ich gehe davon aus, dass es mit Sicherheit auch in
der Praxis auch mit Sicherheit auch so die Akkuleidezeit beeinträchtigt.
Wenn ich da jetzt Audio sehe,
muss ich denn in den Haken setzen,
da will ich Audio-Bodos in den Card oder was heißt das?
Audio, ja genau. Also sozusagen kannst du einfach ein Häkchen setzen.
Im Background-Mode wird irgendwie der App, wird Audio verwendet.
Und damit wird automatisch dieses Provisioning-Zeugs da runtergeladen von der Apple Developer Portal,
wird einfach angeschnipselt und damit ist die App dafür zugänglich.
Man muss nicht mehr über dieses Apple Developer Portal irgendwie irgendwas regeln,
bearbeiten, überarbeiten, wie auch immer,
sondern tatsächlich einfach nur über den X-Goat einen Haken zu setzen,
beziehungsweise am Ende irgendwie da einen Schnipsel on-off zu setzen.
Ein Schnipsel, genau. Das ist schon ziemlich komfortabel,
das muss man schon sagen.
Wobei man natürlich sowas gerne von Anfang an gesehen hätte,
aber gut.
Das ist wiederum
eine andere Geschichte
Dann der Asset-Katalog, das ist das neue Verwalten von Images,
von Bildern. Früher war es so,
dass man in jedem Projekt irgendwie Bilder hinzugefügt hat.
Und da hat man irgendwie einen riesen Resources-Folder,
mit dem man dann die ganzen Bilder drin hatte.
Das hat man dann jetzt so im sogenannten Asset-Katalog,
nennt sich das Ding, womit man einfach einen Folder hat,
wo die ganzen Bilder reinkommen.
Und dann hat man eben einmal Retina und Non-Ritina.
Kann man dann einfach hinzufügen. Man kann es nutzen,
man muss es nicht nutzen. Aber es ist halt ein zusätzliches Feature,
was ich eingebaut habe, muss ich relativ nett finden.
Gerne, ja. Also weichliches Kaliber für Non-Ritina,
das wäre ja charmant
Nee, nee, es skaliert wird da gar nichts.
Die braucht man weiterhin in zwei verschiedenen Größen.
Das geht rein um das Ordnen von Bildern. Nee,
also skaliert wird da nichts. Das muss man weiterhin sagen.
Dann musst du erlebt mit meinem eigenen Namen, der dann automatisch runterrechnet.
Nee, das. Aber ich bin, ich bin,
ich finde das schon irgendwie eine Verbesserung zum Vorgänger.
Wenn man da eben schon immer noch dieses App 2X und
dann für den normalen Bilder, diese normalen Bildern zufügen,
das muss man hier alles eben nicht mehr,
sondern man fügt sich einfach hinzu und dann,
wenn sie darüber verbreitet.
Wollte ich nochmal zurückgehen? Oder sagst du dir gleich noch was dazu?
Ich habe zu diesem Need-to-Sty-Sing, würde mich mal interessieren.
Ich glaube, ich muss erzählen, also ich bin entspannt drüber bestolpert.
Ja, ich weiß, ich weiß. Aber ehrlich gesagt,
nee, ich kann es dir nicht beantworten. Okay,
also ich glaube, ich habe das. Okay. Ja,
also wenn du jetzt einen Partner hast, auf beiden,
an einem vier Ecken rund,
dann kannst du sozusagen da ein Schluck ausschneiden und das so zu verlängern.
Also brauchst du nicht diesen ganzen Button,
also wenn da jetzt so draußen, das ist scheiße,
wie soll ich das jetzt erklären.
Aber schnallt es aus der Mitte das aus,
was überall gleich ist an dem Button.
Und das wird dann reingestückelt. Das ist das,
was er so in meinem Catch ist.
Android weiß ich jetzt allen nicht. Aber dann entspricht das
so den Insights von einem Stretch-Spretch-Image. Mit bei dir,
ey. Kevin-Sets oder sowas, ne? Das ist,
glaube ich, ein sehr spannender. Was ist das,
mein Catch? Heißt jetzt auch noch nichts.
Heißt auch nichts? Ja, hier heißt ja nichts.
Aber das gilt dann quasi für alle Objekte,
wo ich dieses Image verwenden wollte
Du kannst ja, da ist so ein Editor drin,
kriegst du da irgendwie rauf. Genau, und das kann
ich so irgendwie so in irgendeine Herzliche übertun. Okay,
aber das gilt dann einmal für das,
einmal für dieses Bild und egal in welchem Element ich das jetzt irgendwie benutze,
es wird überall gleich, also in die gleiche Inprobation wird es sein,
weil das kann mich jetzt leider nicht machen,
aber man will ja auch Hund machen, Künstler.
Das ist doch cool, sag ich.
Okay, das beantwortet. Schön. Genau,
das Hündinnenzufügen von neuen Images ist halt eben dann einfach über
diesen schönen Plus-Button,
den man irgendwie schon von Apple kennt
Man dann eben ein Imageset hinzufügen oder man kann eben dann eben auch von,
wenn man ein Objekt,
wenn man eine App migrieren möchte von iOS 6 auf iOS 7 und dann eben ein Foller hat,
wo die jetzt im Resource drinstehen, einfach sagen,
hier importiere mir hier von meinem Projekt,
die ganzen Bilder und dann werden die ganzen Bilder rausgesucht und eben importiert,
sofern man sich dann irgendwie an diese Konvention mit dem AdStrikes gehalten hat.
Alles bis auf JPEGs. Ja, stimmt, habe ich
auch festgestellt, Leute. Das stimmt. Nur nur PNGs.
Ja. Das war, ist aber schon bekannt von Apple,
das habe ich bei den App-Icons festgestellt,
dass App-Icons grundsätzlich sowieso nur PNGs akzeptieren
Ist ja sehr grundsätzlich, so wie die vigationelle Sabserlächer was dazu.
Ist bisher noch nicht, ist nicht vorgesehen.
Ich kann aber auf jeden Fall was erzählen, weil ich
es heute zum Beispiel zumindest mal angefangen habe oder versucht habe.
Und da auf gewisse Schwierigkeiten gestoßen bin. Ja. Genau
, das Layouting ist irgendwie auch so ein Punkt.
Da haben sie einiges verändert. Beim Auto-Layout, also mit
dem Layouting von iOS tue ich mir sowieso relativ schwer,
muss ich ehrlich gestehen.
Sie haben im letzten iOS 6 angefangen mit dem Autolayout und
den Constraints
Ähm, ich war sowieso noch nie irgendwie so ein Befürworter,
beziehungsweise ich hab mich gerne mit diesen Interface-Bildern gearbeitet und den Auto-Layout und ich fand
das ganze System irgendwie ziemlich unausgereift und hab mich deswegen auch damit auch nicht so wirklich auseinandergesetzt, nicht beschäftigt.
Mit iOS 7 wird mir wahrscheinlich nichts anderes übrig bleiben,
als es eben zu tun. Was aber auf jeden Fall
einen neuen zugekommen ist und was ich richtig schön finde,
ist eine Preview-Funktionalität. Dass man nämlich Apps,
ohne sie vorher zu starten im Simulator,
sich Views anschauen kann und zwar wie das verschiedenen Devices aussehen und
zwar unter dem iOS 6 einmal und eben mal unter iOS
7. Und das finde ich ziemlich schön
Dann, genau, kommen wir einmal zur Theorie, der Preview-Funktionalität. Da habe ich zum Beispiel einmal irgendwie heute mal so eine schöne und iOS 7 zu meinem X-Cord 5,
Golden Masters,
mir irgendwie so schöne App,
beziehungsweise eine View da in so einer App zusammengebastelt und wollte dann mal schön diese Preview-Funktionalität testen,
an die kann man nämlich relativ schnell dran,
indem man dann den Assistant aufruft und dann hat man unten den Eintracht Preview und dann sagt man hier,
ich möchte von meiner Storyboard mir von der jetzigen View einfach eine Preview einfach anzeigen lassen Und da kann man unten eben auswählen,
welches Betriebssystem man haben möchte,
man eben iOS 7 haben möchte oder ob man eben iOS 6 auswählen will,
dann einmal irgendwie was für eine Orientation das Device hat und eben welche Größe,
also 3,5 oder 4 Zoll.
Und dann kann man sie eben anschauen lassen,
sich anschauen, wie das Ding aussehen wird.
Tatsächlich war es dann aber so, als das Ding im
Simulator getestet hat, sah es natürlich ganz anders aus.
Habe ich auch erst mal gedacht, super,
haben sie eine tolle Funktionalität hinzugefügt, funktioniert man wieder nicht.
So, dann habe ich gedacht, okay,
woran könnte es
denn liegen
Und deswegen kommen wir nämlich dann im nächsten Punkt zu den Constraints.
Und danach wiederum sah sie so aus,
wie sie aussehen sollte. Es gibt diese schönen Constraints,
die sie beim iOS 6 schon eingebaut haben, beziehungsweise X-Code 4.6.
Dass man nämlich definieren kann für eine View, für Bilder zum Beispiel,
was für ein Abstand, was für ein Abstand die haben sollten.
Und zwar zu welcher, an welcher orientierten die sich orientieren sollen,
also zum Beispiel hier von oben irgendwie 86 Punkte irgendwie entfernt sein soll,
und zwar immer 86 Punkte.
Das heißt, wenn das Device irgendwie 3,5 Zoll groß ist,
soll so aussehen,
wenn das Device 4,0 Zoll aus ist, an welcher,
an welchem Punkt soll er sich dann orientieren in der View
Und man muss nur bilderweise komplett sämtliche Kunstrains definieren.
Und deswegen gibt es nämlich eine neue Funktionalität,
die nennt sich Ad Missing Constraints, die muss man definieren.
Blöderweise sind diese Constraints eben so, dass wenn man sagt,
Ad Missing Constraints und machen die nicht immer das,
was sie machen sollen.
Also irgendwie zum Beispiel diese View zum Beispiel soll irgendwie
zum Beispiel in die Richtung immer zentriert sein.
Oder eben, ja, woher soll der wissen,
dass diese View immer in diese Richtung zentriert ist
Kann er natürlich nicht wissen. Das sei also,
man muss dann irgendwie anfangen, in Interview rumzuwurschteln und zu sagen,
okay, da will ich nur umgestrained,
darf ich nur constrained, da will ich nur constrained.
Und das dann, wenn man sicher ist,
dass der in der X-Code keinen Mucks mehr machen kann,
da kann man sagt, okay,
dann irgendwie die restlichen Constrainters auch noch, als der da hinzufügen.
Und dann sieht die View auch so aus, wie sie aussehen sollen.
Aber man muss halt eben sämtliche Constraints definieren. So,
und deswegen war es nämlich so, dass er in der Preview tatsächlich,
warum es dann irgendwie so war,
dass dann der Preview irgendwie anders sah, aussah als ein Simulat,
das ist natürlich auch eine ziemlich unschöne Geschichte.
Aber wenn man die Constraints eben alle definiert hat, wie eine View,
dann liegt die tatsächlich auch in der Preview so aus,
wie sie aussehen.
Am Ende ein Simulator. Das ist doch eigentlich super
Oder nicht. Also da wird ja der Entwicklung gleich dazu gezwungen, zukünftig.
Und dann sieht es wenigstens auf allen, die weißen es
auch gut aus. Wenn ich mir jetzt so überlege,
also gerade bei Android gibt es ja super viele verschiedene Device-Arten, Größen und so weiter.
Und es gibt genug Apps mit einem Playstore,
die denkt man sich runter und die sehen aus wie Kraut und Rücken
und alle anderen bewerten sie dann mit viereinhalb Sternen oder sowas.
Da fragt man sich, was soll das? Und dann,
ja klar, jetzt hat Samsung plötzlich, deshalb ist Device
mit einer neuen Display-Größe rausgebracht und schon sieht wieder alles murks aus.
Und dann hat gleich der Entwickler von Anfang an sagt,
hier, das sind deine Constraints,
die musst du definieren dann garantieren wir, oder zumindest theoretisch garantieren wir dann,
dass es dann auch überall auf unseren Devices gleich aussieht,
das ist doch eigentlich eine coole Sache.
Also zumindest der Effekt, den es dann hatte.
Das stimmt, ja. Man muss sich halt einfach definieren. Das ist halt,
je mehr mal Views man eben hat oder Labels man hat,
wie auch immer, die man definieren muss, ist natürlich am Anfang eine ziemliche fregel Arbeit.
Vor allem dann, wenn man irgendwelche Views hat,
die dauernd irgendwie refactor werden müssen, weil sich irgendwelche Labels verändert haben.
Jetzt weißt du mal, wie man sich als Entschuldigung... Okay. Genau,
auf jeden Fall, und auf jeden Fall diese Preview-Funktionalität,
die finde ich relativ, oder was weiß ich nicht,
relativ, ich finde sie ja ziemlich schön,
weil das halt wirklich so ist,
dass sie nicht jedes Mal als Simulator neu starten muss,
irgendwie zur View delegieren, die ich mir angucken muss,
müsste sieht wieder scheiße aus, wieder ein Pixel rechts nach schieben,
wieder Simulator, Hotelstaaten und dann tatsächlich on the fly sagen,
hier, das mit Previewfunktionalität,
so 70 Bilder aus.
Ja, ich meine, wie ist das denn mit dieser Preview-Geschichte,
wenn du jetzt, sagen wir mal,
diese Infinite-Seite da hast und dieses Bild kommt erst,
wenn du einen Button drückst, sagen wir mal,
was unter Umständen keine eigene View ist.
Das müsstest du halt dann selber. Oder das kannst du
ja dann wieder nicht previewen, oder? Ich meine,
die meisten Views eher ein bisschen komplexer als das,
was du jetzt da gemacht hast.
Ja, das Ding ist, in Interface-Bilder,
also du kannst nur Interface-Bilder, Views previewen.
Du kannst keine Views, die du irgendwie programmatisch entwickelst oder sowas,
in der Previewfunktionalität dir anschauen,
das funktioniert nicht
Sogar weiter. Naja, wenn du dann für jede mögliche View dir
irgendwie eine eigene View zusammenschnipselst und dann jeweils eine Preview Funktionalität ausbaut.
Oder du machst halt so, du sagst, okay,
das ist meine View und das eine wird dann irgendwie angenommen,
ich hatte jetzt irgendwie diese Imageview und da wird ein anderes Bild gerendert,
dann kannst du natürlich einfach die Imageview nehmen,
ohne das Bild.
Oder ich klicke mit dem Finger auf das Bild und
dann kommt ein anderes Bild in den Vordergrund.
Und wenn ich auch das wieder klicke,
kommt wieder das alte Bild in den Vordergrund, einfach so.
Genau. Also dann bleibt ja sozusagen das Bild,
beziehungsweise die Imageview dahinter,
die bleibt ja identisch,
die bleibt in derselben Stelle
Wird mir einfach ein Bild ausgetauscht. Oder du sagst halt eben,
okay, hier kommen halt mehrere Imageviews rein zum Beispiel.
Die wird nur, also da wird das Hittenfleck einfach gesetzt.
So, dann ist einfach so, die sind einfach nicht visible.
So, und dann kannst du ja immer noch Constraint setzen,
dass du sagst, okay,
dieser Constraint hängt jetzt irgendwie an der und der Stelle fest.
Und kannst du dir in dem Preview natürlich eben weiterhin
auch anschauen. Kannst du die Constraints auch programmatisch setzen?
Nee. Nee, nur im Interface-Builder. Ja,
das ist ja schon ein ziemlicher Party im Wechsel.
Ja, definitiv
Und man kann aber übrigens auch eine Constraints definieren,
ich glaube, das hat man, hier hat man das gesehen,
dass man dem Ganzen eine Pre-Earity geben kann.
Also man kann sozusagen dieser View fünf Constraints geben,
mit unterschiedlicher, mit einem unterschiedlichen Constant und der unterschiedlichen Prioritisierung geben.
Das heißt, wenn man kann sagen, okay,
der hat eine höhere Prioritisierung, ist der Constraint. Wenn der nicht hinkommt,
dann nimm den anderen und so weiter und so fort,
dann kann der hier reisch mehrere Constraints setzen, was irgendwie,
ich habe es bisher noch nicht benötigt, man kann sie aber setzen.
Beziehungsweise doch bei Bei X-Code 4.6 habe ich sie tatsächlich benötigen müssen,
weil es da nämlich Constraints gab,
die man nicht löschen konnte, was ziemlich unschön war.
Und deswegen habe ich den Advent Prioritisierung von null gegeben,
einfach ein neues Präferent hinzugefügt, damit hat er das Problem einfach beseitigt.
Es war irgendwie sehr unschön gewesen, aber es hat funktioniert.
Und jetzt kann man tatsächlich auch sämtliche Constraints,
die von iOS vorgegeben werden, kann man eben editieren und löschen.
Und ja, das nächste ist das Testen der Vigator.
Testing war irgendwie noch nie so irgendwie ein Punkt,
mit dem ich mich unter iOS beschäftigt habe
Aber der hat neue Test-Invigator ist ziemlich nett. Man kann nämlich verschiedene Tests,
ich war jetzt irgendwie sehr kreativ mit Test-Example 1 bis 3,
verschiedene Tests hinzufügen und kann sofort sehen, im Navigator,
welcher fehlgeschlagen ist, und Becher nicht,
und da kann irgendwie am Code umfrickeln,
und hat irgendwie 200 Tests oder sowas, und da sind irgendwie zwei Fehlgeschlagen,
und da kann man die einzelnen anschnixeln, und sagen,
okay, den möchte ich nochmal durchlaufen lassen, dann weißt du,
dass er irgendwie am Ende funktioniert hat oder nicht.
Das gab es vorher auch nicht. Ich glaube,
aus der Java-Welt kennt man sowas alles,
aber es ist halt iOS,
und ja
Da ist man schon mit wenig zufrieden.
Auf jeden Fall ist es trotzdem ein nettes Feature,
das jetzt neu hinzugefügt haben und es gefällt mir.
Continuous Integration ist auch neu mit Ex-Code 5 und zwar
haben sie ja sogenannte Bots hinzugefügt, weisen die tatsächlich.
Die haben allerdings ein paar Voraussetzungen, nämlich zum einen,
dass sie OSX 10.9 auf dem Server benötigen
Zum Zweiten, dass sie halt eben OSX-Server als Betriebssystem benötigen.
Und zum drittens, dass es eben ein X-Code-Service eingerichtet sein muss auf dem Server.
Erst dann kann man die Bots benutzen und erzeugen und sie
in seinem Projekt hinzufügen. Das ist auch der Grund,
warum ich, ich wollte sie testen,
aber bilderweise haben wir halt eben weder ein OSX 10.9 noch ein OSX-Server,
sodass ich das leider nicht testen konnte.
Ich will da dieses fette Teil, also Hardware ist ein
OSX-Server, oder? Nee, aus X-Service ein Betriebssystem.
Das ist das Serverbetriebssystem von Apple.
Aber wahrscheinlich sollten wir das echt mal anstochen, weil... Ja,
das ist eine... Das stimmt. Und es ist nett
. Und es ist eine extrem coole, weit,
der extrem coole Integration in X-Core, das muss ich echt sagen. Also erstmal irgendwie,
Create Watt ist halt einfach über das Logging,
kann man einfach eben einen Bot hinzufügen und dann theoretisch funktioniert es,
beziehungsweise praktisch natürlich auch,
aber ich habe es natürlich dann jetzt die Folien aus der,
aus der World Wide Developer Conference eben mir rausgezogen,
aus dem Video, von eben dann einfach einen Bot hinzufügen kann.
Da kann man sagen kann, okay,
wie oft soll er denn ausgeführt werden, dieser Bot?
Und vor allen Dingen, wann soll er
ausgeführt werden
Was macht dieser Bot? Dieser Bot läuft eben,
wenn man zum Beispiel gesagt hat,
bei jedem komm mit, läuft da die ganzen Tests,
die gesetzt worden sind, läuft da automatisch durch.
Und sagt dann immer, entweder ein grünes Häkchen oder ein
rotes Kreuz für Test, hat funktioniert, hat nicht funktioniert.
Und das entweder bei jedem, komm mit oder zum Beispiel Parodiculy,
dass man sagt irgendwie an jedem Tag, wenn es einmal durchgerattert.
Und was wirklich tatsächlich richtig cool ist,
dass es für jedes Device getestet werden kann,
ohne dass man irgendwie Devices vorher alle ausprobiert,
sondern man kann irgendwie sagen, okay, ich möchte diese,
meine App hat bestellt, Für diese Devices zur Verfügung gestellt.
Und dieser Bot rattert automatisch diese ganzen Test-Tests für diese verschiedenen Devices durch.
Und das bei jedem Commitment, den man macht.
Natürlich schon irgendwie tatsächlich eine Menge Testing, die man sich einfach tatsächlich erspart bei der Programmierung.
Ja. Gibst du da auch die Möglichkeit,
so End-to-End-Oberflächentests zu definieren, dass du sagst, okay,
bestimmte Elemente muss man auf jeden Fall sichtbar sein oder weiß ich,
die und die Position noch,
dass du die Kunsttrains zum Beispiel hart testen kannst.
Wie soll es geben, ja. Wie gesagt,
in der Praxis konnte ich es leider noch nicht testen,
aber laut Theorie soll es
die tatsächlich gehen
Und ob sie es dann auch immer in dem Praktisch funktioniert,
ist man in einer anderen Geschichte,
aber sie haben zumindest gesagt, dass es möglich sein soll.
Auf welcher Ebene läuft das? Das sind Huri-Tests in Hauptsache,
oder ist das wirklich auch funktional? Sämtliche Tests. Sämtliche Tests,
die du schreibst, die du einfach, die du baust.
Also hier sind es hauptsächlich, hier sind es hauptsächlich Unit-Tests
schon irgendwie, die du, die du testest.
Aber du kannst natürlich jegliche Form von Tests vorstellen,
die du einfach in deiner,
in deiner App... Ja,
die Serium für Eiweiß
gibt es auch
Das soll eben, es soll ja auch in deine Richtung,
die Richtung, Tendi, dir auch die Frage,
sowas soll es tatsächlich geben.
Also es soll da eine Integration geben,
inwieweit das irgendwie praktisch funktioniert, weiß ich nicht.
Eine Server-Anbindung. Also ich meine, du bist ja
auch Doppelschirm, bin ich der Nationstestwasser.
Und das ist rein jetzt für App-Entwicklung, beziehungsweise,
also iOS bzw. im Hack-OS-Apps.
Also rein kleinseitig.
Nichts ist es, was Neues, den sogenannten Deepbot-Gorges,
es gab bis dahin schon vorher Instruments, nennt sich das Ding,
dass man seine App irgendwie durchtesten kann, dass man sagen kann, okay, wie viel Speicherhafer wird verbraucht, wie die CPU wird verbraucht.
Das Ganze gibt es sozusagen Instruments, verkleinert für CPU und Memory,
ist jetzt so schon in X-Code integriert und dass man das Instrument extern starten muss,
weil Instrument eben eine eigene Applikation ist, dass man einfach,
wenn man die Bagger gestartet hat im Hintergrund,
diese Gorges einfach laufen und man einfach auf diesen Button klicken kann,
diesen Debugger und sich angucken kann, während der Zeit eben,
wie sich der Speicher bzw. die CPU verändert und dachte,
dass man dann irgendwie Bug-up bzw. Simulator einfach durchgehen kann durch seine Inviews und schauen kann,
okay, passiert da dann mal irgendwie was Unvorherigendes Sehenes,
sodass man einfach on the fly schauen kann,
okay,
da müsste ich vielleicht noch was tun.
Oder das ist in Ordnung so. Und man hat eben rechts oben,
dass man eben sagt, okay,
ich möchte dann tatsächlich nochmal mit Instruments mir die ganze App durchlaufen,
um explizit zu schauen, wo ich was verbessern kann,
verändern kann.
Das ist, ich sehe,
das ist ja jetzt
ein iPhone-Projekt
Da ist jetzt ein iPhone-Projekt. Irgendwie werden da 8-Gig ran
. Viel megabyte. Krass. Viel megabyte steht da.
Aber maximal 8 Gig oder was? Wo? Dieser
rote Balken, neben dem PC in den 4 Megabyte.
Ach so, ja, das ist wahrscheinlich so viel,
wie ich sicher brauchen kann. Aber zurzeit wird halt irgendwie
bei dieser App 4 Megabyte verbraucht, an Speicher.
Weiß man ja, aber gibt es was,
was die iPhones dann einfach mal eingebaut haben?
Ja. Das ist wahrscheinlich auch für andere Sachen,
die da wahrscheinlich sind beide wieder. Ja, ja,
klar, natürlich. Also das ist halt eben die App,
die du dir eben einfach starten kannst im Simulator,
gucken wir sie
wie Bagger
Oder auf dem Gerät letztendlich. Weitere Veränderungen,
die ihr nur kurz anschneiden möchtet. Das eine ist,
oh ja, Frameworks ist so eine Geschichte bei iOS gewesen.
Ich weiß nicht, jeder, der irgendwie mit iOS
schon hantiert hat, mit Frameworks natürlich hantiert.
Man musste bei X-Code unter X-Tode bis, also Pre X-Code 5,
musste man Frameworks, musste man linken,
wenn man auf externe Frameworks zugegriffen hat.
Und das Linken hat man nämlich ganz gerne vergessen,
weil es war nicht zwingend erforderlich in der IDI
Man hat, hier ist natürlich schon eingetragen,
man hat so einen Import gemacht. Hier zum Beispiel,
da hatte ich auch das Map-Kit zugegriffen, beziehungsweise eine klasse Map-Kits,
konnte allerdings in meiner IDI ohne Weiteres,
ohne dass ich meine iOS-App mit dem Framework verlinkt habe,
ohne weiteres auf das Map-Kit zugreifen.
So, erst dann, als ich,
wenn ich die App gestartet habe, tatsächlich ein Simulator,
kam irgendwie kryptische Wählermeldungen, die natürlich erstmal nichts darüber ausgesagt haben,
dass das Framework-Linking nicht da ist.
Das heißt, erst was man gemacht hat,
irgendwie Google eingetippt, die Fehlermeldung eingegibt,
diese kryptische Fehlermeldung, der erste Treffer war Framework-Link-Link vergessen.
Alles klar, Framework-Linking vergessen. Das ist mir
irgendwie zehnmal passiert und haben irgendwie ziemliche nervige Geschichte
Dieses ganze Frameworks-Zeugs haben sich verändert, dahingehend, dass es jetzt Modules gibt. Frameworks kann man weiterhin benutzen,
zwar natürlich, weil eben die ganzen alten Apps,
die noch für iOS 6 minus eben ausgelegt sind,
denen die dann zum Frameworks benutzen,
den haben sie natürlich noch drin gelassen, ist aber,
so wie es aussieht, Depricages,
also wird dann in den zukünftigen Versionen irgendwann nicht mehr vorhanden sein.
Dann soll stattdessen sogenannte Modules benutzen,
wo man sich dieses Linking eben einfach spart und dann gibt es wirklich diese App-Notation,
also nicht mehr Hash-Import,
sondern Ad-Import und dann kann man das ganze Modul einfach importieren
oder man kann eine bestimmte Klasse aus dem Modul hinzufügen
Und das ist sozusagen dann die neue Version,
wie man zu Frame wird, beziehungsweise jetzt Modules, die Klassen benutzt.
Ja, also ich bin ja jetzt kein iOS-Meeting,
klar war das so hoch,
ganz reibig sieht das für mich jetzt so aus,
aber so eine andere Schreibweise ist.
Was kostet denn da noch mit bei? Da hast du gesagt,
die Fehlerlehnung ist so kryptisch und du hast da gesucht.
Genau. Weil das ist jetzt irgendwie besser abgefangener, gegenseitig?
Das Motivum muss man gar nicht mehr hinzufügen, das ist der Punkt.
Das ist automatisch. Genau, okay. Und man sieht es im nächsten Punkt,
es ist dieses, also man muss ein Enable Modul setzen,
für den Compiler, dass man sagt, okay,
mein Projekt ist jetzt irgendwie ein iOS 7-Projekt und das enabled mir jetzt die Modules.
Das heißt, ich möchte die gerne benutzen und ich möchte
bisherige Fanworks, die ich verwendet habe, automatisch linken.
Das heißt also, ich spare mir dieses automatische,
manuelle Linken der Frameworks, da spare ich mir dahingehend,
das brauche ich nicht mehr.
Ist allerdings alles eben was vor X-Code 5 passiert ist.
Da musste man das immer noch manuell linken.
Das braucht man jetzt auch nicht mehr.
Also wenn man das fleckt, sofern man das schlecht ersetzt
Woher weiß er überhaupt, was, also ich meine,
das Obere ist ja quasi, in der der Latei Jeber eingeboten wird.
Genau. Da musst du interessante Myang Wonders sagen,
welche Objektdatei, wo ist die Implementierung davon? Ja,
das ist ein Pre-Compiled-Header, nennt sich das Ding,
das sozusagen dieses Header... Nee, das Obere.
Das ist eine hellere Teile, nicht? Ja, genau
. Aber sozusagen, man muss nur das... Ja,
man muss nur sozusagen das Map hinzufügen und kann auf
sämtliche Klassen des Map-Kits dann zugreifen.
Also man muss nicht die einzelnen Klassen des Map-Kits importieren,
um irgendwie auf bestimmte Klassen zuzugreifen,
sondern man kann dieses ganze Header-File von dem Map-Kit importieren
und kann dann auf sämtliche Files,
asämtliche Klassen des Map-Kits zugreifen
So, hier ist es halt eben so, bei der Schreibweise tatsächlich,
dass man eben einmal das ganze Map-Kit importieren kann,
sofern man dann mehrere Klassen verwenden möchte,
so ähnlich diese Sternennotation bei Java eben,
Punkt Stern oder man möchte eben auf einzelne Klassen des Moduls zugreifen,
dann kann man eben die Punktennotation verwenden und sagt,
okay, ich möchte nur diese Klasse importieren.
Und da soll halt eben vor allen Dingen,
was die Geschwindigkeit, was die Performance betrifft,
deutliche Vorteile haben,
weil eben
diese ganzen Header-Files nicht mehr braucht
Was natürlich auch neu ist, ist der Compiler, irgendwie LLVM.
Es soll auch deutlich schneller sein als der alte, von iOS 5.
Es gibt einen neuen grafischen Debugger, mit dem man selbst
Bilder sich um die Waage anschauen kann in der Vorschau,
was irgendwie ziemlich lustig ist, wie ich finde.
Ob man den braucht, ist immer eine andere Geschichte,
aber man kann es zumindest. Der Code Analyzer,
zum Analysieren von Code, sollte auch deutlich verbessert sein,
habe ich bisher auch noch nicht getestet,
kann ja nichts zu sagen, er soll aber laut Apple,
Doku soll der aber verbessert sein.
Ja,
das war's
Kurz so eine Zusammenfassung. Source-Cole, Source-Control, finde ich
, haben sie besser integriert. Automatische Konfiguration ist definitiv eine
deutliche Verbesserung. Zu vorherigen Versionen von X-Code, Asset-Katalog.
Das ist ein ganz nettes Feature. Layouting muss ich mich
noch dran gewöhnen. Der Test-Nevigator sieht ganz nett aus,
von außen die Continuous Integration ist definitiv ein richtig gutes Feature,
was sie eingebaut haben.
Die lieber Grodges, ja, ist auch ganz nett,
für die Evolution der App
Und ansonsten, Modules, Compiler, Debugger,
Analyzer Models ist mit Sicherheit ganz nett. Also ich glaube,
am größten, die größte Verbesserung tatsächlich, die automatische Konfiguration.
Und diese Continuous Integration, diese Bots, die sie eingebaut haben.
Ja, noch kurz zur Umstellung. Also ich habe heute versucht,
irgendwie mein erstes Projekt von iOS 6 auf iOS 7
zu migrieren und bin irgendwie gnadenlos gescheitert.
Was aber vor allen Dingen damit zusammenhängt,
dass sie eben vorher mit App-Code viel gearbeitet habe und programmatisch
meine Views entwickelt habe und eben nicht mit dem Interface Bilder.
Und ich habe eben festgestellt,
dass sie meine ganzen Views abgeschnitten haben und zwar sämtliche Views
Und irgendwie oben abgeschnitten und unten drunten dran geklebt.
Und einfach so komplett furchtbar. Und ich denke,
dass mein erster, meine erste Geschichte wird sein,
irgendwie einen neuen Branch zu erzeugen, iOS 7 Brunch und dann irgendwie anfangen,
meine Views auf iOS 7 zu migrieren.
Ich sehe schon, komm, also fern nicht irgendwie mit der Golden Mast,
beziehungsweise mit tatsächlichen Release zur Golden Masters,
da irgendwie noch eine deutliche Veränderung irgendwie stattfindet.
Ich werde es wohl darauf hinauslaufen, wie es halt mit anderen ist,
die vorher schon beim Interface-Bilder... Ja, es ist aber noch nicht,
dass tatsächlich endlich endgültige Release, es kann immer noch sein,
dass sie irgendwie, dass denen was auffällt, oh,
vielleicht sollten wir da noch mal was machen oder sowas.
Es ist zumindest meine Hoffnung
Ja, genau, sofern dann irgendwie andere mit dem Interface-Bilder vorher schon gearbeitet haben,
die werden dann vielleicht weniger Probleme haben, als ich eben habe.
Aber ja, mir wird wohl oder übel nichts anderes übrig bleiben, als irgendwie.
Das heißt, App-Code ist jetzt tot, oder?
Ich gehe zumindest davon aus. Also es sei denn,
die fangen mich tatsächlich an,
Nipp-Files beziehungsweise XIP oder sowas wie Storyboards irgendwie zu integrieren,
beziehungsweise ist das dann auch verfügbar ist unter App-Code.
Aber ich glaube, das Programmatische Entwickeln von Views
in der Form wird nur schwer möglich sein.
Ah ja, noch kurz für Interessierte. Es gibt diese WWBC-Videos.
Vieles natürlich über iOS 7, was neu dazugekommen ist.
Für die Entwickler unter anderem eben auch das Video zum
neuen X-Code 5. Recht interessant. Informativ steht viel drin,
sind eigentlich auch einige Demos mit dabei, wo dann tatsächlich gecodet wird,
wo man eben on the fly sehen kann,
dass es funktioniert und wie es funktioniert.
Einfach mal reinschauen für Leute, die es interessiert.
Brauchen wir allerdings einen Provisioning-Profile, beziehungsweise einen Developer Certificate von
Apple,
um sich
die Videos umzuschauen
Ja, gibt es Fragen sonst? Ja. Ich habe ja gehört,
dass die sich auch solche Späße ausgedacht haben,
dass man jetzt iOS-7-Apps auch mit Ja-Waskelprobe sagt.
Das ist ein ganz großer Fan. Hast du denn da
irgendwie was gesehen, wie das dann in Excode auch integriert ist?
Also, weiß ich nicht. Kann man ja noch nicht irgendwelche
grafischen Storyboards machen. Nee, kann man nicht. Ja,
ich habe es gesehen, ich habe auch Videos zugesehen,
gibt es auch ein oder zwei Videos von,
sieht auf extrem spannend aus, wird aber alles programmatisch gemacht.
Also, da gibt es tatsächlich keine Möglichkeit,
das irgendwie in der Storyboard in einem Lüpfeil oder so
Hinzuzufügen. Für andere, die es irgendwie nicht mitbekommen haben,
also Object, Java-Script wird als Objekt selber unter iOS hinzugefügt werden.
Sodass du mit Java-Script unter X-Gold bzw. RAS programmieren kannst.
Beziehungsweise da was für Projekte, use mit Java-Script,
den Aggress hinzufügen kannst.
Ob man das braucht oder ob das schön ist,
ist meine Angeschichte, aber es gibt diese Anbindung.
Das heißt, die Sprache, die JavaScript wird.
Das heißt also, du kannst... Du kannst auf JavaScript-Code
von iOS bzw. Objective 4 auch zugreifen.
Du kannst Methoden,
JavaScript-Methoden aufrufen,
aus iOS heraus
Und umgekehrt auch. Und Reggae-CER, wie steht dir da
was komplett so im Flur? So ist dann eine Code-Sharing-Vorteile
haben? Also in Performance wird es wahrscheinlich nicht bringen.
Nee, mit Sicherheit nicht. Es wird wahrscheinlich irgendwie darauf hinauslaufen,
dass man eben verschiedene Views beziehungsweise Views für verschiedene Endgeräte,
verschiedene Betriebssysteme irgendwie bauen kann und die dann irgendwie hinterher einmal
unter iOS ansprechen und einmal eben unter Android.
So funktioniert ja auch dieses Tätchen. Das funktioniert auch so,
dass er für einen sogenannten Crollbridge vermittelt wird zwischen
der JavaScript-Welt und der iOS-Welt
Sonst würde ich ordnen. Die View wird auf der Programmatisch aufgebaut,
sondern ja, diese ganzen kreierte Befehle halt,
auf die native Seite dann abgearbeitet.
Und das fehlt eben jetzt... Wir haben die Woche des Handymus etwa,
ich möchte, dass das abgebaut wird, dass man quasi
den Handelsstandard dann da wählt und wer geht von denen.
Genau. Das wird mit Sicherheit der Hintergrund sein,
ja. Weil sie eben auch gesehen hat,
dass eben solche Apps im Vormarsch waren,
beziehungsweise da in die Richtung deutlich was passiert.
Und da haben sie dann wohl dann gedacht, da müssen wir ein bisschen nachziehen.
Ja, wieso das trotzdem mal reichspezifisch oder nicht?
Also du kannst zwar Jamaskript dann am Sümper dieses Jamaskript,
aber die Abschiede doch nach wie vor iOS.
Ja, ja, klar. Ich meine,
dann ist das für Android ja so wieder nicht
Ja, du kannst natürlich irgendwie Methoden beziehungsweise Funktionalitäten,
in die wir im JavaScript geschrieben hast, einfach über zwei verschiedene Betriebssysteme ansprechen.
Die Geschäftslorik. Ja, genau. Ja, das ist zumindest der Beginn.
Also ich meine, das ist halt einfach so,
mit irgendwas fangen sie an und das ist einfach der Startpunkt.
Und ich denke, das wird, da wird es mit Sicherheit noch mehr geben, definitiv.
Weil ich das einfach, was Wichtiges Thema,
was sie erstmal in den Winter im Raum gebrochen haben,
weil es einfach viel Bedarf gibt, finde ich.
Genau, sich eine Plattform zu entwickeln und insofern sich von Apple,
seit er schon ein Zeichen in die Richtung, das andere ist.
Das ist einfach, genau, das ist einfach
der Startpunkt von Apple, zu sagen, okay.
Ja, vielleicht ist für andere dann auch einfach irgendwelche zu bauen.
Also vielleicht sitzt da halt Henning mit. Okay,
weil das ist ja auch ein Effekt heute jetzt grundsätzlich,
weil ja die Microsoft-Welt mit aufnehmen wollen.
Ja, das ist, das hört sich jetzt auf.
Jackplay, allen treues iPhone und auf gewissen Tyson,
falls es jemanden kennt. Tyson ist so eine Flinux-Basilon-Liste-Dings,
was ja auf der Unterhaltungsindustrie und K-High-Fee und Tablets und so weiter.
Aber was das ist, das entspricht dem Nico,
das ist der Nachfolger für diesen gesprochenen Fall
Ja, sonst noch Fragen. Dann vielen Dank, Nils.
Ja, dann. Ach gut, dann. Ja,
schön, dass ihr so zahlreich hier erschienen seid für Input.
Und ich denke immer, dass wir das dann wiederholen werden in,
ich weiß gar nicht, jetzt waren es alle zwei Monate in der Bezogen.
Ich glaube, irgendwie sowas hatten wir das. Wo die Ideen?
Also wenn weitere Ideen hat für weitere Vorträge auch gerne an uns,
dann kann man auch in dem Rahmen hier vielleicht wieder was Neues finden.
Wir werden auch wieder schauen, was wir vielleicht ein neues
Thema ausmachen lassen und aber weiter die Input immer gerne sehen.
Also vielen Dank. Hier ist noch da