Okt 072013
 
Ich-Rahmen-Weiss-200x263

Hallo liebe Freunde der Programmierung von iPad, iPhone & Co.,

 

was für ein Schock….war ich denn auf der Macoun wirklich sooo nervös? Ich konnte jedenfalls meinen MemoryStick nicht mehr finden. Und was glaubt Ihr, wo er gewesen ist? Richtig, im Portmonees. Sorry, aber da habe ich zuletzt nachgeschaut. Statt dessen hundert mal meinen Koffer, die NotebookTasche und die Pappschachteln für das OpenPicus Zeug auf den Kopf gestellt :-)

Nun ist also auch dieses Problem gelöst und ich kann hier die Sourcen anbieten, wie versprochen: Xcode, OpenPicus und RobotC :-)

Macoun-2013-Sourcen

ACHTUNG:

Leider darf ich die Library (libTGAccessory.a) und die zwei Dateien „TGAccessoryDelegate.h und TGAccessoryManager.h“ für den Anschluss an die HirnschmalzmessBrille nicht einfach so mit ausliefern. Das Xcode-Projekt wird also so nicht laufen können.

Wer sich diese Bibliothek und die Header für die ThinkGear-Brille laden möchte, kann das unter: http://store.neurosky.com/products/developer-tools-3-iphone tun, es kostet auch nichts, ich darf es jedoch nicht einfach so mit kopieren. Ist doch ok, oder?

Hier dann eine Auflistung der anderen guten Sachen:

Hirnwellenbrille

Die Brille zum Aufnehmen der Hirnwellen heisst MindWave und kann als Starterkit für iOS-Entwickler hier gekauft werden:

http://www.mindtecstore.com/index.php/de/mindwave-mobile-brainwave-starter-kit

(Ihr könnt der Bestellung gerne einen Gruß von Frank Jüstel hinzufügen, der Distributor sitzt bei mir um die Ecke in Linden. Soll er doch ruhig mal auf mich aufmerksam werden :-)

FlyPort von OpenPicus

Den FlyPort bekommt ihr hier

EinVorgängermodel sogar noch preiswerter hier

Und das Serial-Nest hier

Die Links gehen gleich zum Hersteller nach Italien. Die liefern schnell, der Service ist top und die Gebühren überschaubar. Es gibt sicherlich auch Distributoren in Deutschland, die kenne ich aber nicht. Ohnehin ist mir ein Kontakt zum Hersteller wichtig, denn ich rede aber viel lieber mit dem Bäcker als mit den Brötchen :-)

RobotC

Das gute RobotC gibt es hier. Ich hatte die Version für Lego nxt. Achtung, es wird in Kürze RobotC 4.0, dann auch mit Unterstützung für den neuen Lego-Roboter ev3 herauskommen. Also nicht ärgern, wenn man jetzt eine „alte“ Version kauft :-)

 

Gut, wie das alles zusammenspielt habe ich ja auf der Macoun gezeigt, das Video und die Slides werde ich nicht veröffentlichen, das macht das Macoun-Team. Ich kann ja nicht einfach was in deren Namen und mit deren Logos in die Öffentlichkeit entlassen. Aber den Quelltext gebe ich Euch gerne vorab :-)

Ich wünsche Euch viel, viel Spaß mit meinem Ansatz. Lasst die Roboter fahren, die Hirnwellen messen, oder was immer Ihr auch sonst vorhaben möget. Viel Spaß und happy hacking

Herzliche Grüße
Euer Franky

PS: Ich habe  noch keine Bilder für die aktuelle Aktion bekommen :-(

Feb 252013
 

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

Pan, Pinch und Rotate

Und Spaß mit Autolayout :-)

 

Pan, Pinch und Rotate,

schon mal einen UIView bewegt, vergrößert, verkleinert, rotiert? Nein? Na, dann wird es aber höchste Zeit. Mit den UIGestureRecognizern ist das wirklich sehr einfach. Des Weiteren erkläre ich noch etwas zu AutoLayouts und lege mir dabei selbst ein schönes Ei ins Nest, mehr wird aber nicht verraten :-)

Anbei wie immer das fertige Xcode-Projekt mit allen Quelltexten:

Quelltext (Xcode-Projekt) zum Podcast 039 mit dem Titel: Pan, Pinch und Rotate

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Jan 012013
 

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

TextField und DatePicker

Der etwas verspätete Silvester-Special-Podcast :-)

 

 
TextField und DatePicker

Was sieht man nicht alles für abenteuerliche Konstruktionen um ein TextField so zu programmieren, das es nicht von der Tastatur überdeckt wird. Und noch viel abenteuerlichere Konstruktionen sieht man, um mit einem DatePicker zu arbeiten :-)

In diesem Podcast zeige ich Euch ein paar Ansätze, wie man sich das Leben viel, viel leichter machen kann!

Anbei wie immer das fertige Xcode-Projekt mit allen Quelltexten:

Quelltext (Xcode-Projekt) zum Podcast 038 mit dem Titel: TextField und DatePicker

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Okt 292012
 

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

Macoun 2012

UICollectionViews und Device-Rotation unter iOS6

 

 
Dieses Jahr saß ich auf der Reservebank. Wenn ein Sprecher ausgefallen wäre, dann hätte ich diesen Vortrag auf der Macoun 2012 in Frankfurt am Main gehalten.

Alle Referenten waren jedoch gesund und munter und trotz Schneegestöber pünktlich angekommen. So soll es ja auch sein!

Dann eben als Podcast :-)

Hier mein Macoun 2012 Ersatzvortrag zum Thema UICollectionView.

Ach so, am Ende erzähle ich noch etwas zu iOS6 und DeviceRotation.
Ich erzähle nicht nur, sondern zeige auch, wie man es richtig macht :-)

Oh, die Macoun Website findet ihr hier: Macoun

Herzlichen Dank an Chris Hauser und sein Team, dass ich mit von der Party sein durfte :-) War ein tolles Event, wir freuen uns alle auf 2013 :-)

Quelltext (Xcode-Projekt) zum Podcast 036 mit dem Titel: Macoun2012-CollectionViews

Viel Spaß damit

herzlichst
Euer Frank Jüstel

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

Dez 242011
 

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

Predicate

NSPredicate… Ja wie schön ist das denn?

Kennt Ihr das? Habt Ihr damit schon mal ein Array gefiltert? Das ist einfach sensationell. In diesem Podcast erkläre ich Euch, wie man eine App entwickelt, die eine große Datenmenge in einer Tabelle bereitstellt, die der Benutzer aber über eine Searchbar höchst elegant durchsuchen kann, um eine beliebige Treffermenge auszufiltern. Einfach genial, und sicherlich ein toller Abschluss unserer WeihnachtsAdventsKalenderVideoPodcastSonderSerie im Jahr 2011 :-)

Quelltext (Xcode-Projekt) zum Podcast 033 mit dem Titel: Predicate

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 232011
 

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

KVO

KVO – Key Value Observer
Ein sensationelles Sprachkonstrukt innerhalb der Foundation. Auf sehr elegante Art und Weise lassen sich Änderungen an Werten „beobachten“, so dass man elegante Brücken bauen kann, um beispielsweise Werte Permanent zu speichern, ohne wild mit allen möglichen Modulen in einer Beziehung stehen zu müssen. KVO und KVC (Key Value Coding) gehen dabei Hand in Hand. Ich baue hier ein einfaches Beispiel auf um Euch dieses Konstrukt näher zu bringen.

Quelltext (Xcode-Projekt) zum Podcast 032 mit dem Titel: KVO

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 222011
 

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

AudioPlayer

Mal schnell eine mp3-Datei oder m4a-Datei innerhalb der eigenen App ausgeben? Das ist mit dem AVFoundation-Framework und einem AVAudioPlayer überhaupt kein Problem. Ich zeige Euch, wie man das ganz einfach machen kann.

Quelltext (Xcode-Projekt) zum Podcast 031 mit dem Titel: AudioPlayer

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 212011
 

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

GeoCoder

Aus einer Adresse die genaue Position ermitteln und diese mit einer Nadel auf einer Landkarte anzeigen, wobei auf dem „Fähnchen“ noch Details wie PLZ, Ort und Ortsteil angegeben werden. Wie man so etwas macht, zeige ich Euch in diesem VideoPodcast.

Quelltext (Xcode-Projekt) zum Podcast 030 mit dem Titel: GeoCoder

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 212011
 

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

PictureBrowser vierter Teil

Der vierte Teil zeigt das großformatige, horizontale Scrolling über alle unsere Bilder.

Wie wäre es mit einem PictureBrowser? Also einer App, die eine Menge von Bildern recht hübsch und übersichtlich darstellen kann. Es gibt verschiedene Möglichkeiten die Bilder zu verwalten und zur Anzeige zu bringen.

Wir werden hier einiges ausprobieren und vorstellen.

Quelltext (Xcode-Projekt) zum Podcast 029 mit dem Titel: PictureBrowser vierter Teil

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 182011
 

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

PictureBrowser dritter Teil

Der dritte Teil zu unserem Miniprojekt: PictureBrowser

Wie wäre es mit einem PictureBrowser? Also einer App, die eine Menge von Bildern recht hübsch und übersichtlich darstellen kann. Es gibt verschiedene Möglichkeiten die Bilder zu verwalten und zur Anzeige zu bringen.

Wir werden hier einiges ausprobieren und vorstellen.

Quelltext (Xcode-Projekt) zum Podcast 028 mit dem Titel: PictureBrowser dritter Teil

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 182011
 

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

PictureBrowser zweiter Teil

Der zweite Teil zu unserem Miniprojekt: PictureBrowser

Wie wäre es mit einem PictureBrowser? Also einer App, die eine Menge von Bildern recht hübsch und übersichtlich darstellen kann. Es gibt verschiedene Möglichkeiten die Bilder zu verwalten und zur Anzeige zu bringen.

Wir werden hier einiges ausprobieren und vorstellen.

Quelltext (Xcode-Projekt) zum Podcast 027 mit dem Titel: PictureBrowser zweiter Teil

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 172011
 

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

PictureBrowser erster Teil

Wie wäre es mit einem PictureBrowser? Also einer App, die eine Menge von Bildern recht hübsch und übersichtlich darstellen kann. Es gibt verschiedene Möglichkeiten die Bilder zu verwalten und zur Anzeige zu bringen.

Wir werden hier einiges ausprobieren und vorstellen.

Quelltext (Xcode-Projekt) zum Podcast 026 mit dem Titel: PictureBrowser erster Teil

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 172011
 

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

SettingsBundle

SettingsBundle sind eine tolle Sache. So hat dann eine iOS-App in der Settings-App einen eigenen Bereich, wo der Benutzer Informationen hinterlegen kann, ohne Eure Anwendung starten zu müssen. Beispielsweise Username/Passwort angaben, oder andere wichtige Voreinstellungen.

In diesem VideoPodcast zeige ich, wie man einer Anwendung ein s.g. SettingsBundle hinzufügen kann.

Quelltext (Xcode-Projekt) zum Podcast 025 mit dem Titel SettingsBundle

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 142011
 

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

SpeichernMitUserDefaults

Mal eben eine Handvoll Daten speichern, ohne sich mit Pfaden, Dateinamen und Verzeichnissen herumärgern zu müssen. Genau das leisten die NSUserDefaults und diese Klasse möchte ich Euch in diesem Podcast etwas näher bringen.
.

Quelltext (Xcode-Projekt) zum Podcast 024 mit dem Titel SpeichernMitUserDefaults

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 132011
 

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

I18nEinmalAnders

Internationalization, also die Anpassung eines iOS-Programms auf unterschiedliche Zielsprachen geht nicht nur, indem man eine XIB-, oder StoryBoard-Datei dupliziert. Man kann dieses Ziel auch ganz dynamisch aus Übersetzungstabellen, je nach eingestellter Sprache, erreichen. Ich persönlich mag diesen Weg lieber, mal sehen, wie er Euch gefällt :-)

Quelltext (Xcode-Projekt) zum Podcast 023 mit dem Titel I18nEinmalAnders

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 132011
 

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

I18n

I18n oder auch „Internationalization“. Wie schreibt man Apps, die je nach Spracheinstellung des Anwenders so, oder so reagieren, bzw. wie passt man die Beschriftung von Labels und Buttons für unterschiedliche Sprachen an?

Auch das ist gaaaanz einfach, ich zeige Euch ja wie es geht :-)

Quelltext (Xcode-Projekt) zum Podcast 022 mit dem Titel I18n

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 122011
 

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

Serialization

NSCoding, encodeWithCoder, initWithCoder….Wenn man weiss wie es geht, ist auch dieses Thema gaaanz einfach :-)

Hier zeige ich Euch, wie man ein eigenes Objekt erzeugt und dieses als Element in einem NSMutableDictionary speichert und auch wieder einlesen kann.

Quelltext (Xcode-Projekt) zum Podcast 021 mit dem Titel Serialization

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 112011
 

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

KleinerSpion

Jetzt wird es spannend. Ich öffne meine kleine Trickkiste und zeige Euch eine Methode die manchmal sehr hilfreich sein kann. Ich hoffe Ihr könnt Sie auch hier und da einmal verwenden :-)

Quelltext (Xcode-Projekt) zum Podcast 020 mit dem Titel KleinerSpion

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 112011
 

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

NotificationCenter

Wie verknüpft man fremde Teile einer Anwendung höchst elegant? Nun man benutzt einen bereitgestellten Sendemast, posaunt etwas in die Gegend, und hofft, dass auf der eingestellten Frequenz auch jemand zuhört und ins Handeln kommt :-)

So oder so ähnlich ist das mit diesem NSNotificationCenter, dem postNotoficiation und den Observern…

Quelltext (Xcode-Projekt) zum Podcast 019 mit dem Titel NotificationCenter

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 112011
 

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

Speichern

Speichern und laden von Inhalten ist gar nicht so schwierig. In diesem kleinen Podcast zeige ich Euch, wie wir den Inhalt eines UITextViews auf unserem iPhone speichern und laden können. Dabei besprechen wir auch, in welches Verzeichnis eine Anwendung schreiben darf und wie man dieses recht einfach ermittelt :-)

Quelltext (Xcode-Projekt) zum Podcast 018 mit dem Titel Speichern

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 082011
 

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

SegmentedControl

UISegmentedControl.

Eine sehr schöne UI-Komponente, mit der man allerhand nützliche Sachen anstellen kann. Leider hat so ein UISegmentedControl aber keinen Delegate-Mechanismus und deshalb ist es etwas schwieriger auf Benutzereingaben zu reagieren. In diesem VideoPodcast bauen wir eine einfach UISegmentedControl auf, und ich zeige Euch, wie man die Ereignisse abgreifen kann um informiert zu werden, wenn der Benutzer irgendwo geklickt hat :-)

Quelltext (Xcode-Projekt) zum Podcast 017 mit dem Titel SegmentedControl

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 072011
 

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

MoveTextField

Zurück zu unserem UITextField und dem Problem, wenn es im unteren Bereich des Bildschirms steht. Dann kommt nämlich die Tastatur und verdeckt unser TextField. Das ist nicht sehr nett und deshalb schaffen wir mit diesem Podcast eine einfache Abhilfe.

Quelltext (Xcode-projekt) zum Podcast 016 mit dem Titel MoveTextField

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 062011
 

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

UIAnimations

UIAnimations. Dinge drehen lassen, vergrößern, verkleinern, Farben wechseln und das alles automatisch in wunderschönen Animationen. Eben so, wie wir es von unserem iPhone erwarten. Und dabei ist das Ganze auch noch richtig super einfach und macht einen Riesenspaß. Doch! Ehrlich! Ganz bestimmt!

Schaut es Euch an, spielt mit und macht in Zukunft selber die tollsten Animationen.

Quelltext (Xcode-Projekt) zum Podcast 015 mit dem Titel UIAnimation

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 052011
 

Frank Jüstel, Entwickler, Trainer, Coach, objective-c, ios, Xcode

FirstResponder

FirstResponder und UITextFields. Eigentlich ist das ganz einfach, wenn man weiß wie es geht :-)

Aber ich erinnere mich noch gut daran, dass ich gerade bei diesem Thema etwas länger Tomaten auf den Augen hatte und ich mir gewünscht hätte, einer könnte das ganz einfach erklären. Genau das versuche ich in diesem Podcast und hoffe, dass es mir auch gelingt :-)

Quelltext (Xcode-Projekt) zu dem Podcast pc014 FirstResponder

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 042011
 

ios, xcode, programmierung, objective-c, tutorial, training, schulung, schulungen, seminar, seminare, ausbildung, app entwicklung, ipad, iphone, appstore

RotationGestureRecognizer

Zoomen und Scrollen können wir unser Weihnachtsmännchen, und ein DoubleTap bringt uns auch immer wieder die Ausgangsgröße des Bildes zurück. Jetzt wäre es schön, wenn wir das Bild auch drehen könnten.
.
Das ist auch alles kein Hexenwerk, denn hier zeige ich Euch im Rahmen der Weihnachts-Special-Video-Podcast-Reihe wie man so etwas macht :-)

Xcode Projekt zum Podcast pc013-RotationGestureRecognizer

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 032011
 

Frank Jüstel, Entwickler, Trainer, Coach, objective-c, ios, xcode

TapGestureRecognizer

Wie verwendet man einen TapGestureRecognizer damit er auf ein DoubleTap reagiert und wie kann man Bilder in einem ScrollView wieder auf die Ausgangsgröße bringen?
Das zeige ich Euch in diesem VideoPodcast in der Reihe unserer Weihnachtsspecials.
.

Hier ist der Sourcecode (Xcode-Projekt) für den Podcast 012 (TapGestureRecognizer)

Viel Spaß damit

herzlichst
Euer Frank Jüstel

Dez 022011
 

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

Zoomen und Scrollen :-)

Mal eben ein Bildchen in einer iPhoneApp zoomen und scrollen…Das ist gar nicht so einfach, wie man vielleicht denkt….
In unserem Weihnachtsspecial-Podcast zum 02.12.2011 zeige ich Euch wie es geht :-)

Hier ist der Sourcecode (Xcode-Projekt) für den Podcast 011 (ScrollView)

Viel Spaß damit

herzlichst
Euer Frank

Nov 152011
 
Frank Jüstel, Entwickler, Trainer, Coach, objective-c, ios, Xcode

Hier der versprochene, dokumentierte Quelltext (DAS IST EIN LINK :-) zu dem Projekt aus dem smile2 Webinar vom 15.11.2011 mit dem Titel: „iOS 5,Storyboards, Segues, Prototype-Cells und ARC“

Alle Kommentare auf Deutsch, Ihr müsst in den Quelltexten nur nach „FJ“ suchen, und findet dann alle Hinweise von mir.

Das Projekt ist sauber und lauffähig, viel Spaß damit :-)

Nov 152011
 

ios, xcode, programmierung, objective-c, tutorial, training, schulung, schulungen, seminar, seminare, ausbildung, app entwicklung, ipad, iphone, appstore

Hallo liebe Freunde der iPad, iPhone & Co. Programmierung

Auf iTunes und auf meinem YouTube-Channel findet Ihr ein paar VideoPodcasts zum Thema iOS Programmierung mit objective-c für iPad, iPhone & Co.
.
.
Hier ist der Sourcecode (Xcode-Projekt) für den Podcast pc003_KarlsruherEntwicklertag

Viel Spaß damit
Euer Frank