Eine flache Kopie eines Objekts (Shallow-Copy) in Cocoa herzustellen ist im Prinzip ganz einfach. Man implementiert das NSCopying-Protokoll welches die Methode -copyWithZone: erfordert. In der Implementierung von copyWithZone: kann man ganz einfach die Referenzen innerhalb des Objekts passend der neuen Instanz zuordnen und C-Types eventuell kopieren. Die Methode -copy, welche NSObject implementiert führt nun einen Aufruf von -copyWithZone: durch (mit nil als Argument).
(mehr…)
Falls man auf die Skalierbarkeit und Flexibilität einer SQLite-Datenbank verzichten kann, gibt es eine schnelle und coole Methode Object-Trees permanent in den Speicher zu schreiben bzw. wieder zu laden. Mit Hilfe des NSCoding-Protokolls und der Klasse NSKeyedArchiver und NSKeyedUnarchiver lassen sich Daten schnell und sauber abspeichern. Objekte werden hierbei zuerst in ein Binärformat kodiert und dann in eine Datei geschrieben. Jedes zu archivierende Objekt muss zwangsläufig das NSCoding-Protokoll einhalten und somit die beiden Methoden initWithCoder: und encodeWithCoder: implementieren. Nachfolgend habe ich ein kleines Beispiel erstellt wie einfach dieser Prozess ist. Eine Beispielklasse Entry könnte so aussehen:
(mehr…)
Seit einiger Zeit ist das SDK 3.2 für iPad schon verfügbar und alle Welt entwickelt bereits fleißig auf der neuen Plattform. Ich persönlich schreibe gerade ein Update für listiee welches in Form einer Universal Binary kommt und ein speziell an das iPad angepasstes UI mitbringen wird. Das neue SDK bringt ein paar coole neue Features mit, von denen mich der neue “Presentation Style” der modalen Ansichten besonders begeistert. Apple hat hier eine gute Arbeit geleistet und erkannt dass die Art modale Informationen abzufragen auf dem iPad wesentlich eleganter lösbar ist. Mit den beiden Properties modalPresentationStyle und modalTransitionStyle im UIViewController ermöglicht das SDK 3.2 das festlegen der Übergänge und Größen der neuen modalen Ansichten.
(mehr…)
Ich wollte das neue Jahr gleich mal dazu nutzen einen kleinen Beitrag über das iPhone, Flash und meine Einschätzung zur ganzen Sache zu schreiben. Wie wir alle wissen sollte es Ende des Jahres eine (public) Beta von Flash CS5 geben, welche den Export-To-iPhone erlaubt. Diese Beta ist nun abgeblasen worden. Das ganze hat für vielerlei Aufregung gesorgt, weil natürlich ein Haufen Leute unheimlich gierig sind in den Mobilen-Markt (das iPhone in diesem Fall) zu drängen.
Ich schätze die gesamte Lage etwas verhaltener ein. Zum einen erkenne ich noch nicht wie sich Flash CS5 dazu eignet wirkliche Anwendungen mit mobilem Interface zu dispatchen. Hier fehlt es schlichtweg an passenden (nativen) Komponenten. Zum anderen bin ich mir unsicher ob Performance und Qualität solcher Anwendungen für den erwarteten Erfolg ausreichen. Bisher hörte ich nur, dass aus CS5 veröffentlichte iPhone Apps verhältnismäßig größer sind als die native Konkurrenz.
Persönlich bin ich vielmehr gespannt auf das mobile Flex-Framework mit dem Codenamen “Slider”. Dieses soll das dispatchen einer Anwendung auf die gängigen mobilen Plattformen erlauben. Es bietet neben einer leichtgewichtigen Struktur auch UI-Komponenten die für die mobile Plattform entwickelt werden. Das ganze soll, so wird gemunkelt, im Laufe des Jahres benutzbar sein.
Ich möchte an dieser Stelle auch noch auf einen Artikel von Florian Plag aufmerksam machen. Dieser listet die teilweise bereits erhältlichen Flash und nicht-Flash Alternativen zur iPhone-Entwicklung auf. Ich würde allerdings jedem ans Herz legen sich eventuell ein gutes Objective-C Buch zu schnappen, bevor man sich auf Scriptsprachen wie z.B. Lua fixiert. Was ich bisher gesehen habe, kann Objektive-C in vielen Bereichen eine durchaus elegante Sprache sein.
Link zu Flex-”Slider”.