Code Snippets über Postman generieren

Mit der App Postman ist es möglich REST-API Aufrufe gegen beliebige Endpunkte durchzuführen. Allerdings bietet Postman weitere Funktionalität, welche vom normalen Tagesgeschäft der App abweicht. Eine dieser Funktionalitäten ist der Code Snippet Generator.

Code Snippets können für unterschiedliche Sprachen und Frameworks erzeugt werden

Mit diesem Generator kann ein beliebiger Request in Quellcode umgewandelt werden. Der Generator unterstützt unterschiedliche Programmiersprachen und Frameworks. Für Java würde, unter Nutzung der OK HTTP Bibliothek, das Ganze so aussehen:

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "{\r\n\tfield: \"data\",\r\n\tfield2: \"data\",\r\n\tfield3: \"data\"\r\n}");
Request request = new Request.Builder()
  .url("https://example.com")
  .post(body)
  .addHeader("HeaderField", "headerValue")
  .addHeader("Content-Type", "text/plain")
  .addHeader("User-Agent", "PostmanRuntime/7.11.0")
  .addHeader("Accept", "*/*")
  .addHeader("Cache-Control", "no-cache")
  .addHeader("Postman-Token", "7dda208f-ba63-467d-99cd-98455c2b3a7a,9125dbf4-cd5c-4070-87e3-fcda7416ca08")
  .addHeader("Host", "example.com")
  .addHeader("accept-encoding", "gzip, deflate")
  .addHeader("content-length", "56")
  .addHeader("Connection", "keep-alive")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Erreichbar ist das Feature über den Code-Link, welcher unter dem Send-Button des Hauptfensters zu finden ist. Nach einem Klick auf den Link erscheint ein Dialog in welchem die gewünschte Sprach- und Frameworkkombination ausgewählt werden kann.

Unter dem Send-Button ist der Code-Link zu finden

Als Sprachen für die Generierung von Code Snippets werden unter anderem C#, Go, Java, JavaScript, Objective-C, PHP, Python und Swift unterstützt. Daneben werden bestimmte Tools wie curl und wget unterstützt. Postman selber kann unter getpostman.com bezogen werden.

Cocoa Controls

Wenn man in Xcode eine iOS oder Mac OS X App schreibt, so ist manchmal auf bestimmte Controls angewiesen, welche nicht in den Standard BIbliotheken zu finden sind. Abhilfe schaffen hier sogenannte “Custom Controls”, welche überall im Netz zu finden sind.

cocoacontrols.com

cocoacontrols.com

Eine zentrale Anlaufstelle für solche Controls bietet dabei die Seite cocoacontrols.com. Dort sind die Controls nach Lizenzen, Betriebsystem und einigen anderen Kategorieren sortiert, so das man meist relativ schnell das passende Control findet.

Canabalt – “Open Source”

Canabalt ist ein interessantes Jump & Run für iOS. Vor allem die Musik, passt einfach zum Setting.

Canabalt auf dem iPad

Das Spiel gibt es mittlerweile auch als Quelltext, welcher unter https://github.com/ericjohnson/canabalt-ios zu finden ist. Allerdings ist das Spiel als solches, sowie der dazu gehörige Content zwar verfügbar, allerdings nicht unter einer freien Lizenz. Nur die Engine wurde unter der MIT Lizenz gestellt. So kann man Canabalt als Demo der entsprechenden Engine betrachten ;)

Einem iOS Xcode Projekt eine Bibliothek hinzufügen

Es gibt die einfache Art und die nicht ganz so einfache Art. So ist es zum Beispiel unter C# ziemlich einfach eine Bibliothek zu einem Projekt hinzuzufügen und diese anschließend zu benutzen. Also was liegt näher als das gleiche unter Objective C mittels Xcode zu versuchen.

Und dort merkt man dann das Objective C ein Superset von C ist. Es ist leider nicht ganz so einfach wie man es sich wünscht. Aber fangen wir von vorne an. Gegeben seien zwei Projekte:

  • Taschenrechner (iOS App)
  • LibCore (Cocoa Touch Bibliothek)

Die Bibliothek “LibCore” soll dabei dem Projekt “Taschenrechner” hinzugefügt werden, damit man dieses die entsprechenden Funktionen nutzen kann. Unter Objective C gibt es Frameworks und Bibliotheken. Frameworks können auf den iOS Geräten nicht benutzt werden, damit bleiben nur noch statische Bibliotheken.

Die Einstellungen für die Suchpfade

Im ersten Schritt müssen im Projekt die Suchpfade definiert werden. Dazu gehen wir in die Projekteinstellungen in den Punkt “Build Settings” und suchen dort nach “Header”. Die Suche wird dann den Punkt “Header Search Paths” finden. Dort tragen wir den Pfad zur entsprechenden Bibliothek ein.

Nun werden Headerdateien welche mittels:

#import "LibCore.h";

eingebunden werden vom Compiler gefunden. Beim Linker kommt es allerdings noch zu Fehlern. Deshalb ziehen wir das Projekt (die “LibCore.xcodeprj”) auf unserer Taschenrechnerprojekt. Dadurch ist dieses Projekt nun ein “Unterprojekt” von Taschenrechner. In den Projekteinstellungen suchen wir nun den Tab “Build Phases” auf “Link Binary With Libraries” und fügen dort die “LibCore.a” hinzu.

Die Bibliothek wird dem Linker bekannt gemacht

Danach sollte das Projekt mit der Bibliothek ohne Probleme kompilieren.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Xcode
http://de.wikipedia.org/wiki/Objective_C

Freier Matheparser für Objective C

Bei der Entwicklung möchte manchmal mathematische Ausdrücke wie folgende lösen:

5*sin(3.4)/2+1234

Dabei möchte man diese Ausdrücke nicht während der Compilezeit lösen, sondern zur Laufzeit. Hier bietet sich ein Matheparser an. Ein solcher für Objective C ist “DDMathParser” welcher unter https://github.com/davedelong/DDMathParser zu finden ist. Der Parser steht dabei unter der MIT-Lizenz und kann dabei mit einer Reihe von Operatoren, Ausdrücken und Funktionen umgehen, was man sich auch in der ausführlichen Dokumentation ansehen kann.