Jun 242012
 

ios, xCode, objective-c, storyboards, ipad, iphone, tutorial, beispiel, beispiele, schulung, schulungen, training, seminar, seminare,

Die unwiderstehliche App :-)

Pimp my Button…

 

 
Ein Button der so richtig fetzt und kracht, fast einen haptischen Eindruck vermittelt. So macht das Programmieren Spaß. Ich öffne ein wenig die Trickkiste und verrate einiges über CoreAnimation, Quartz, AudioToolbox, u.s.w.

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Quelltext (Xcode-Projekt) zum Podcast 035 mit dem Titel: DieUnwiderstehlicheApp

Viel Spaß damit

herzlichst
Euer Frank Jüstel

  10 Responses to “Podcast 035: Die unwiderstehliche App”

  1. Ein wirklich sehr gelungener Podcast.
    Man bekommt direkt Lust auf mehr…

    Wird “Die unwiderstehliche App” wie eine Serie?
    Sprich sie zeigen z.B. alle zwei Podcast einen ‘Trick’, wie man seine App und die Standart UI-Elemente ein bisschen aufpimpen kann.

    Noch einen Tipp von mir:

    Ich habe mir ihren Workshop ‘Apps mit iOS 5 entwickeln’ bei Video2Brain gekauft und bemerkt, dass sie bei einer Action Methode, die sie aus dem Interface Builder heraus erstellen, immer den Typ id wählen und dann in der Action Methode ein Objekt der jeweiligen Klasse erzeugen, sprich:

    - (IBAction) test: (id)sender {

    UIButton *button = sender;

    }

    In dem PopUp-Menü über das man die Action Methode anlegt können sie aber den Typ von id auf UIButton etc. stellen.
    Dann sieht das z.B. so aus:

    - (IBAction) test: (UIButton *)sender { }

    Das nur so am Rande…

    Ansonsten finde ich ihre Podcast und Workshops wirklich super gut.
    Weiter so!

    Viele Grüße
    Cedric

    • Hallo Cedric,

      vielen Dank für das Lob. Ja, ich werde immer wieder etwas aus der “Trickkkiste” heraus lassen :-)

      Und das mit dem UIButton als Type stimmt auch. Allerdings ging das mit den älteren Versionen von Xcode noch nicht. Da konnte man einstellen, was man wollte, der Code wurde immer auf “(id)” generiert. Aber Du hast Recht, jetzt sollte man das unbedingt so machen! Ich weise im nächsten Podcast bestimmt darauf hin, vielen Dank!

      Herzliche Grüße
      Frank

  2. ich hab 5 Buttons und den hab ich allen mal nur den Schatten gespendet. Der View ist in einem Navigation Controller eingebettet und jeder Button fährt einen anderen view rein. Mit den Schatten wird das Reinfahren sichtbar hakelig (iPhone 4). Meine einzige Lösung ist beim pushen des neuen Views alle Schatten erst zu entfernen. Beim Zurückkehren lasse ich die Schatten erst im viewDidAppear wieder erscheinen, auch hier, wenn ich es schon im viewWillAppear dazufüge, wird’s ruckelig. Damit erscheinen aber auch die Schatten mit einer gewissen Verzögerung, gut und ok, aber nicht perfekt. Idee?

    • Klar, da habe ich viele Ideen :-)

      Die Sache mit den Layern ist ganz nett, um zu zeigen, wie es funktioniert. Dezent angewendet funktioniert das in einer App auch ganz gut. Wenn man aber mehr davon will, dann muss man ganz anders vorgehen, damit die App schnell und ruckfrei bleibt.

      Eine Möglichkeit wäre das Attribut rasterize auf einem CALayer auf YES zu setzen, das kommt aber mit Qualitätseinbussen daher. Oder man zeichnet den Schatten als Bezier-Path, oder man verwendet statische Image-Masken, mit entsprechenden “Löchern” auf dem Alphakanal. Oder, …

      Die Podcasts zeigen eine Menge und laden zum experimentieren ein. Für hochperformante Apps, die richtig was her machen muss man jedoch auf andere Mittel zurückgreifen.

      Herzliche Grüße
      Franky

  3. Werbung in eigener Sache ist ja schön und gut und soll Dir ja auch gegönnt sein, aber 20 Minuten ist dann doch etwas langatmig. Da sollte man nicht übertreiben. Vor allem, da denkt man endlich geht’s mit dem eigentlichen Thema los und dann fängst Du auch noch an Deine Webseite „vorzulesen“.

    Ok, aber ich will ja nicht nur meckern ;), sondern auch einen kleinen Tipp los werden. Du empfiehlst regelmäßig die gemachten Änderungen zu speichern, um Datenverlust vorzubeugen. Du machst das mit cmd-B, was ja das Projekt neu übersetzt. Es gibt aber auch die Möglichkeit alles zu speichern, ohne gleich alles zu compileren und zwar mit cmd-alt-S. Das speichert einfach nur alles und gut ist’s. Wenn so ein Projekt mal etwas größer ist, dann kann so ein Übersetzungsvorgang ja auch schon mal etwas länger dauern.

  4. Ich finde deine podcasts super aber kannst du mal wieder ein paar mehr machen und vllt so ein bischen in die spieleentwicklung eingehen ?
    weiter so :D
    lg justus

  5. Ich finde deine Podcast Super würde mir aber wünschen das jetzt wieder mehr Podcast kommen
    So schaffst d es bestimmt auch wieder auf Platz 1 :-)
    Ich würd es auch toll finden wenn du das spiele programmieren ein b
    Ischen mit einbeziehen könntest denn da bm ich total blind
    LgJustus

    • Vielen Dank für den Kommentar,

      mach ich gerne, aber erst nach dem kommenden PremiumSeminar Anfang September. Ich habe viele spannende iOS 6 Themen vorbereitet und die darf ich erst zeigen, wenn Apple iOS 6 freigegeben hat.

      Freut Euch drauf :-)

      Herzlich Grüße
      Franky

  6. Super Postcast. Zugegebenermaßen, habe ich natürlich auch den Part der Werbung vorgespult. Zum einen, weil ich es schon nach 2 Minuten begriffen hatte ;-) Und zum Anderen kann ich mir die 3500,- einfach nicht leisten.
    Aber der Rest war einfach nur klasse. Es gibt wenig Menschen, die so gut vortragen können.

    Wenn ich einen Wunsch über die Thematik eines kommenden Podcast äußern dürfte, dann würde ich wohl nach einem Fragen, der das Thema Datenabfrage und -übergabe mittels JSON von einem REST-Server, und deren Weiterverarbeitung. Das wäre mal ein Thema, mit dem sich viele neue Wege eröffnen würden.

    Gruß
    Dieter

    PS: Natürlich freue ich mich über jeden anderen Podcast auch wie tierchen :-D

 Leave a Reply

(erforderlich)

(erforderlich)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>