Lessons learned from eaGeier #2

Creating a PDF File

The eaGeier allows to print its data or to export it via email as PDF file. For both it needs to create a PDF file first.

Creating a PDF file works straightforward following the instructions of the documentation at Apple. Start by opening a new file and start with a page:

UIGraphicsBeginPDFContextToFile(pdfFileName, CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);

Continue reading “Lessons learned from eaGeier #2”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Lessons learned from eaGeier #1

Display a Message when a Table is empty

When the eaGeier is opened the first time and there is no data available for display in the tables, it would be nice to display an appropriate message instead an empty table.

An idea was to adjust numberOfSectionsInTableView:, tableView:numberOfRowsInSection: and tableView:cellForRowAtIndexPath: accordingly. However as NSFetchedResultsController is used to populate the table with Core Data and it monitors the table closely the manipulation of the table outside its scope was not easily possible.

Instead I added an sub view on top of the table view displaying the empty-table message. To prevent showing it while data is still loading, I used a delayed animation to present the sub view.

eaGeier – empty table message
FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Final Project: eaGeier

The eaGeier has been developed as final project for the Coding Together course.

It’s an tool for accounting on cash basis mainly used for small companies in Austria (Einnahmen-Ausgaben-Rechnung) and Germany (Einnahmenüberschussrechnung).

The app is a local port from the server application at www.ea-geier.at.

A demo of the app is available at YouTube.

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Lecture #19: Automated Testing

Please note, this blog entry is from a previous course. You might want to check out the current one.

Lecture nineteen is named “19. Automated Testing (December 6, 2011) – HD” and can be found at iTunes.

The lecturer Andy Matuschak from the UIKit team at Apple uses a short demo to introduce unit tests and automation.

Unit tests are defined by creating subclasses of SenTestCase. The actual unit tests are methods starting with the prefix test, testing expectations using STAssert* and use the methods setUP and tearDown for shared initialization and clean up.

iOS UI Automation allows to run top down tests on the user interface using the automation tool of Instruments. Actions can be recorded and the app be manipulated via UIAElements in JavaScript, which can also be used to inspect states calling UIALogger logFail/Pass methods. Within a script accessibilityLabels can be used for easy access to interface elements.

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Friday Session #8: Designing Multimedia iOS Apps

Please note, this blog entry is from a previous course. You might want to check out the current one.

This weeks Friday session is named “Designing Multimedia iOS Apps (December 2, 2011)” and can be found at iTunes. Its slides are available at Stanford.

In this lecture Jason Riggs presents how to use OpenGL ES and C++ to create a game. Starting from a skeleton framework this demo implements a fully functional mini game.

Further references:

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Lecture #18: iCloud Demo

Please note, this blog entry is from a previous course. You might want to check out the current one.

Lecture eighteen is named “18. iCloud Demo (December 1, 2011)” and can be found at iTunes. Its slides are available at Stanford.

This lecture is a one-hour demo continuing the demo of the previous lecture by adding more iCloud functionality to the Photomania app. Its code is available directly at Stanford or on github.

Please note iCloud does not work on the simulator and needs a provisioning profile enabling iCloud for the device.

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Lecture #17: iCloud

Please note, this blog entry is from a previous course. You might want to check out the current one.

Lecture seventeen is named “17. iCloud (November 29, 2011)” and can be found at iTunes. Its slides are available at Stanford.

This lecture together with the following one addresses the iCloud and how to use it for sharing documents among user’s devices. Using the iCloud is like using an URL of a shared directory with restrictions deriving from latency and shared access. It is setup in Xcode by enabling Entitlements.

URLs for the iCloud are derived via the file manager:

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];

Continue reading “Lecture #17: iCloud”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail