{"id":187,"date":"2012-01-14T08:55:56","date_gmt":"2012-01-14T07:55:56","guid":{"rendered":"http:\/\/www.mericler.de\/neustart\/?p=187"},"modified":"2012-01-14T08:55:56","modified_gmt":"2012-01-14T07:55:56","slug":"interface-builder-oder-lieber-doch-nicht","status":"publish","type":"post","link":"https:\/\/www.mericler.de\/neustart\/2012\/01\/14\/interface-builder-oder-lieber-doch-nicht\/","title":{"rendered":"Interface Builder oder lieber doch nicht"},"content":{"rendered":"<figure id=\"attachment_189\" aria-describedby=\"caption-attachment-189\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/i0.wp.com\/web4740.server20.web4a.de\/mericler.de\/neustart\/wp-content\/uploads\/2012\/01\/xcode-IB-1.jpeg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-189\" title=\"Interface Builder in Xcode 4\" src=\"https:\/\/i0.wp.com\/web4740.server20.web4a.de\/mericler.de\/neustart\/wp-content\/uploads\/2012\/01\/xcode-IB-1-300x188.jpg?resize=300%2C188\" alt=\"\" width=\"300\" height=\"188\" \/><\/a><figcaption id=\"caption-attachment-189\" class=\"wp-caption-text\">Xcode-Interface-Builder-Kombi in Xcode 4<\/figcaption><\/figure>\n<p>Als ich meine ersten Schritte mit der Kombination Xcode und Interface Builder machte, fiel mir die Verwendung von Interface Builder sehr schwer. Ich habe einfach nicht verstanden, was da passiert, wenn ich einen UIButton respektive einen NSButton auf das mir angebotene Fenster gezogen habe. Was &#8222;IBAction&#8220; oder &#8222;IBOutlet&#8220; sind, blieb mir auch einfach ein R\u00e4tsel. Ich war so froh, als ich sah, dass man das UI auch programmatisch erstellen kann.<\/p>\n<p>Mit meinem Problem war ich aber nicht allein. Entwickler Ben Teese leitet <a title=\"Kein Interface Builder\" href=\"http:\/\/blog.shinetech.com\/2009\/07\/15\/why-would-you-use-interface-builder-for-iphone-development\/ \" target=\"_blank\">seinen Blog-Post<\/a> mit diesen Worten ein: &#8222;I don\u2019t understand why you\u2019d use Interface Builder to create a UI for an iPhone application.&#8220;<br \/>\nAuch Entwickler <a title=\"Kein Interface Builder f\u00fcr Anf\u00e4nger\" href=\"http:\/\/blog.shinetech.com\/2011\/07\/23\/when-should-new-ios-developers-start-using-interface-builder\/\" target=\"_blank\">Shaun Ervine schreibt<\/a>: &#8222;If you\u2019re new to iOS development, don\u2019t touch Interface Builder until you are capable of building UIs programatically.&#8220;<\/p>\n<p>Immer wenn ich erfahrene Entwickler traf, fragte ich sie, wie sie es mit dem Interface Builder hielten und die Antwort war fast immer: &#8222;Nat\u00fcrlich arbeite ich mit dem Interface Builder. Ohne ist das Erstellen des UI viel zu m\u00fchsam und dauert viel zu lange.&#8220; Hmm, am Interface Builder musste echt etwas dran sein &#8230; Ich nahm mir vor, es nochmals zu versuchen.<\/p>\n<p>Apple kam mir mit Xcode 4 entgegen, denn nun hatten sie den Interface Builder in Xcode integriert und der Arbeitsfluss zwischen Code und UI kommt mir deutlich beschleunigt vor.<\/p>\n<p>Nach mehreren Projekten, bei denen ich die gesamte Oberfl\u00e4che programmatisch erstellt hatte, stellte ich mir so langsam die Frage, ob das zumindest bei Oberfl\u00e4chen-Standards nicht schneller und einfacher gehen k\u00f6nnte. Gl\u00fccklicherweise hatte ich eine Vermutung, dass es nun anscheinend Zeit f\u00fcr den Interface Builder sei.<\/p>\n<p>Tats\u00e4chlich bin ich nun inzwischen soweit, dass ich bei Standards schnell die Oberfl\u00e4che in Interface Builder anlege, meine IBOutlets in Xcode erstelle und fix die Verbindungen ziehe. Bei etwas komplizierteren Oberfl\u00e4chen bin ich aber ganz froh, dass ich das UI weiterhin auch programmatisch erstellen kann. Vielleicht bin ich auch bei den Sachen bald beim Interface Builder.<\/p>\n<p>Mein Tipp an Xcode-Neulinge ist dann tats\u00e4chlich ebenfalls: Wenn euch der Interface Builder anfangs verwirrt, dann lasst ihn weg und baut euer UI programmatisch. Vermutlich werdet ihr selbst merken, wann es Zeit ist, den Interface Builder einzusetzen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Als ich meine ersten Schritte mit der Kombination Xcode und Interface Builder machte, fiel mir die Verwendung von Interface Builder sehr schwer. Ich habe einfach nicht verstanden, was da passiert, wenn ich einen UIButton respektive einen NSButton auf das mir angebotene Fenster gezogen habe. Was &#8222;IBAction&#8220; oder &#8222;IBOutlet&#8220; sind, blieb mir auch einfach ein R\u00e4tsel. &hellip; <a href=\"https:\/\/www.mericler.de\/neustart\/2012\/01\/14\/interface-builder-oder-lieber-doch-nicht\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eInterface Builder oder lieber doch nicht\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2],"tags":[],"class_list":["post-187","post","type-post","status-publish","format-standard","hentry","category-apps"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p1dlcg-31","_links":{"self":[{"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/posts\/187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/comments?post=187"}],"version-history":[{"count":0,"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/posts\/187\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/media?parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/categories?post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mericler.de\/neustart\/wp-json\/wp\/v2\/tags?post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}