FU Math/Inf

Springe direkt zu: Inhalt


Hauptnavigation/Hauptmenü: Links auf direkt erreichbare, übergeordnete Webseiten

Secure Identity
Institut für Informatik

Suche auf der Website http://www.inf.fu-berlin.de


Für Browser ohne JavaScript finden Sie hier eine Liste der Quick Links

Navigation/Menü: Links auf weitere Seiten dieser Website

Für diese Seite

Fachbereich »  Informatik »  Secure Identity »  Teaching »  iPhone Software Development Praktikum



In this course, groups of students develop applications for Apple's iPhone. Some applications may be iPhone-only, other applications may additionally require a component that runs on Mac OS X computers. Students will acquire experience in the software development cycle for this device and have an opportunity to load their applications on an actual device for final testing and presentation. Emphasis will be on developing interactive applications with a security or cryptography component.

Participants of this Software Praktikum learn how to develop software for the iPhone OS platform, particularly how to:

Participants must compile basic marketing packages for their projects as they would be used for submission of a finished product to the iTunes App Store. All applications must be localized in German and English.


Participants must:

Registered participants will receive an invitation to the iPhone Developer University Program and will be able to submit cryptographic key pairs for certification. Participants who wish to use their own iPod Touch or iPhone devices for development must submit their device identities to the instructor. Participants without their own devices will be given access to devices periodically for testing purposes. This will be done by appointment.


The Praktikum will start with a kick-off meeting. Subsequently, 2-3 students must join to form project teams.

To have a greater choice in projects, each team has to develop and present a project idea. Any idea for an iPhone app with an appropriate novelty and complexity is welcome. Look at the "Project Topics" section below for some inspiration. We will decide which of the presented project topics will be given a chance to get implemented within this praktikum.

You have to give a five minute presentation about your project idea and should write a brief description to be published here once the project topic was accepted.

After the final list of project topics is announced, each team must submit project proposals to apply for at least two of the accepted topics. The project proposals are subject to approval and must fulfill the following requirements:

The structure of the proposals and their required contents are specified in the proposal template, which is available as LaTeX source and as a PDF.

Which of your proposals was accepted and therefor your project for the praktikum will be announced in the meeting at November 5th. If proposals of two groups compete for the same project then the project is awarded to the proposal that pledges to implement the most extensive set of minimal features.

Each project team will be invited periodically to present the project status. Alternatively, a mid-term project review with project progress presentations of all teams may be scheduled ad hoc. Regular meetings will provide answers to frequently asked questions and provide an opportunity to mingle and to exchange ideas.

Time and Location

Consultation, reporting and tec-stuff meetings:

Meetings "in the trenches" for cooperative codeing

Due dates:


The grade will be computed as a weighted sum of the following:

Projects that do not build and run receive 0% for software architecture and feature completion.

Project proposals are subject to approval and must specify a minimal and a targeted set of features. A full score in the category software architecture requires that the minimal feature set is implemented. A full score for feature completion requires that additionally the targeted set of features is implemented.

Useful resources

The following links lead to useful information on iPhone programming:

Praktikum Meetings

Thu Oct 15, 2009

Topics: slides

Thu Oct 22, 2009


Thu Oct 29, 2009


Thu Nov 5, 2009


Thu Nov 12, 2009


Thu Nov 19, 2009

Topics: Version control, first experiences

Thu Nov 26, 2009


Thu Dec 3, 2009

Topics: Real wold example - ConAngel

Fri Dec 11, 2009


Thu Dec 17, 2009


Fri Jan 8, 2010


Fri Jan 15, 2010


Thu Jan 21, 2010


Fri Jan 29, 2010


Thu Feb 4, 2010


Fri Feb 12, 2010


Project Topics

Topic 1: Touching Base

The idea of this application is that two users can "touch base" in real-time by moving their fingers over the displays of their iPhones. When the fingers of the users are in close proximity to each other then the phone responds by sound or vibration, customizable by the users. The intensity of the feedback given depends on the Euclidean distance between the fingers on their respective displays.

The application must support interaction within local networks, with support for Bonjour and ideally Bluetooth as well, and across the Internet. This can be implemented in two ways: (i) implement a NAT traversal solution that allows to use the app across the Internet; (ii) implement the app based on the XMPP protocol so that public Jabber servers can be used.

The application must leverage existing Frameworks and user data on the iPhone e.g., the user's address book. A top-performing team will also address the issue of message integrity and confidentiality. An outstanding team will also provide features such as gesture driven sending of emoticons.

Useful resources for this project are: iphone-haptics, NAT traversal

Reading assignments: [1]

Topic 2: Key Collector

The idea of the key collector application (KC) is to facilitate the distribution of authenticated cryptographic keys using the visual verification technique of Roth et al. and the short authenticated strings protocol of Vaudenay. A typical usage scenario may be the following: the user browses her iPhone for nearby computers e.g., using Bonjour or by entering host names, and selects a host with which a SSH connection is established. The host key is then authenticated using the techniques of Roth et al. and Vaudenay. Subsequently, the user has the option to:

The KC shall initially generate an ephemeral SSH key locally for use in the authenticated connection establishment.

The visual verification technique of Roth et al. lets the user trade her effort against the security level achieved. The achieved security level shall be visualized with a progress bar.

A top performing team will also provide additional means of key verification e.g., using barcodes photographed with the iPhone's camera or a display of random art.

Useful resources for this project are: libssh, zxing

Reading assignments: [2] [3] [4]

Topic 3: PassCollage

The idea of this application is to implement a novel graphical authentication mechanism in a way suitable to study its usability. The mechanism is described in the linked document and source code of a partial implementation is available for reference and re-use. Briefly, instead of using full images as secrets, the mechanism uses multiple elliptical regions within a single image as secrets. The hypothesis is that this provides a better trade-off between security and memorability of graphical passwords. In order to complete the project, the PassCollage must be implemented as well as an alternative mechanism for comparison, which uses full images as secrets.

The project also requires the implementation of a tool suitable to select elliptical regions within in images used for study. This tool does not need to be implemented for the iPhone but can run on a desktop computer e.g., a Mac OS X computer.

A top performing team will consider the use of existing face recognition and image segmentation algorithm implementations to aide the selection of "interesting" image regions in a semi-automatic fashion. A stellar performing team will complete the implementation and perform a comparative usability study of the mechanism.

This is a research topic and the objective is to publish the results if the hypothesis is confirmed by rigorous study.

Topic 4: Big Screen

The idea of this application is to leverage large ambient displays for iPhone interaction. The iPhone display is necessarily small so that the device remains portale. This makes it difficult to interact with large numbers of objects e.g., finding a particular address book entry in a large address book, or compiling a playlist of songs from a large music library.

To overcome this limitation for a specific setting e.g., compiling a play list, the application shall compile an operator list for a music library and submit it to an ambient large display for browsing. Each operator carries the following information:

The display server, which must be developed as well, receives the operator list and lays out the graphical representations on the available display space e.g., using force-directed layout mechanisms. The display shall support multiple parallel user sessions and divide the available space among multiple user sessions to avoid overlap.

The user begins an operation by pointing the iPhone camera at the display such that the desired operator is in the camera's field of view. The operation may be triggered by shooting a photo of the desired graphical representation or by selecting the desired representation in the camera view. Alternatively, the application may present the most likely operator matches for selection.

Instead of matching the graphical representation, the unique identifier of the operation may be turned into a barcode that can be detected and decoded via the iPhone's camera.

A top performing team will produce a framework and apply it to multiple application scenarios beyond music selection. A stellar performing team will consider a stateless implementation in conjunction with respective threats and security mechanisms.

Useful resources for this project are: Java-implementation of color coherence vectors, zxing

Reading assignments: [5] [6] [7]

Topic 5: Matcher

The idea of this application is to perform document matching on the iPhone i.e., a photograph is matched against a set of saved documents or pre-computed document feature vectors, for example images. When a match is detected, the application shall submit information about the match to a remote site. The connection shall be mutually authenticated and confidential. The report shall include the type of match and the geographic location where the match occurred. One goal of this application is to teach the use of various software frameworks available on the iPhone e.g., those for cryptography and key management, camera access, location services and network communication.

The matching of documents and photographs requires scale and translation invariant image registration for which a number of techniques exist. However, the focus of this project is not the image processing component but the application logic and the proper application of the aforementioned frameworks. Almost any solution that demonstrates the matching in a suitably restricted environment can be implemented.

A stellar project team will implement optimized sampling, image resolution enhancement, image registration and matching using state of the art theories and algorithms. However, this is not required to achieve an optimal grade.

Useful resources for this project are: SIFT Feature Detector, libsift

Reading assignments: [8] [9]

Project Topics (by course participants)

Project Topic descriptions are quoted from the submissions of the participants.

Topic 6: Time Jumper (by Mark Essien)

The idea of this application is to implement an app that augments reality in a novel way – it allows you view particular spots in the real world as they existed in the past.

A user would walk to an area for which photographs taken in the past are available. On looking through the camera, he would see particular spots marked on the ground in the area. When he walks to a marked spot, and faces the correct direction, a photograph of the very view, but in the past, is overlayed on the screen. The user can adjust the alpha transparency of the photo to compare the photograph to the real life view in the camera. The user can flip through different photos to flip through the time-history of a particular spot. A user can take photos with his camera, and the photos are stored on the server with the location as well as timestamp, and are available to any person who visits the area and wishes to see photos of the past.

The project would take advantage of features only available on the iPhone 3Gs - the compass, GPS and Camera of the iPhone 3Gs. additionally, the project would require a server based component that provides the location data.

Topic 7: Longitude (by Filip Noetzel & Benedikt Böhm )

A privacy respecting application that allows tracking individual's locations.

Given modern cell phones' ability to know their exact geo-location via GPS, I sometimes feel the urge to share this information with someone else, like

Google Latitude (http://www.google.com/latitude/ ) offers a similar service, although all data is retained on Google's servers and this raises some privacy issues. This app would let the user choose a third party service (possibly a small webapp that runs on his/her own server) that he/she trusts, to avoid that.

Topic 8: YouPlanMyVacation.com (by Filip Noetzel & Benedikt Böhm )

An iPhone interface for a crowd-source venue recommendation service

It's October and I've been to London, Prague and Amsterdam this year. I've never been to any of these cities before so I asked my friends, who have been there before, where to go and what to spare.

I have an even larger number of friends on one of the numerous Social Networks such as Facebook, Twitter, etc whom I could ask to give my tips for my next trip, that could result in even more and better results.

A webapp that allows planning trips and inviting others to contribute to the planning can be build within a matter of days using Google's Maps API and a modern web framework.

I would then download my friend's suggestions to my iPhone and browse them in a location-aware setting - on the spot.

Topic 9: Multi Controller Software for Ableton Live (by Maik Kuntze)

Ableton Live is one of the most popular and easy to use DAWs available at the moment. Ableton is also known as the Sequencer, that you can play live. Thats why a lot of DJs and electronic music producers use it. It works beside the traditional track model with a clip matrix. There exist two dedicated controller for Ableton to launch clips and modulate effects intuitive and live. The Idea is to write a software, that makes it possible to launch clips on the touchpad as well as to control effects by using the acceleration sensors of the iphone in one time. By shaking the iphone you can switch through three preconfigured effects to use with the acceleration sensors. Because of the small display of the iphone the clip matrix is split into banks and you can switch through the banks via iphone. So it is possible to play an hour lasting session live with only the iphone. Thats an amazing fortune for producers working on airplane or somewhere not in the studio.

Beside of that it could further be nice to connect more then one iphone and to dedicate special controls to several iphones. So it could for example be possible to integrate a kind of browser mode where you scroll through your titles on the one iphone and you choose the clip to load the title in on the other iphone. Thats in fact a functionality thats not even realized by the dedicated controllers for Ableton live. Another idea is to build a step sequencer on the one iPhone and transport controls on the other so you could maybe imitate the drum machines from the early 80s. There are many more ideas to enhance the functionality of the software.

Topic 10: Steganographie mit dem iPhone (by Benjamin Gueldenring & Paul Czerwionka)

Implementierung eines Steganographiesystems auf dem iPhone. Als Trägermedium sollen dabei Bilder verwendet werden. Dabei soll es sowohl möglich sein Bilder aus der Bilderbibliothek des iPhones zu verwenden, als auch Bilder mit der Kamera zu schießen und diese als Träger / Cover zu verwenden. Es soll möglich sein sowohl Texte als auch andere Bilder in ein Cover verschlüsselt einzubetten. Auf dem iPhone sollte es dabei möglich sein, die En- und Decodierung vorzunehmen und zu ver- und entschlüsseln. Die implementierten Algorithmen sollten möglichst einfach Austauschbar sein. Grosses Augenmerk soll auch auf eine entsprechende Schlüsselverwaltung für die Verschlüsselung und die Codierung verwendet werden.


  1. M. Hall, E. Hoggan and S. Brewster. T-Bars: towards tactile user interfaces for mobile touchscreens. In Proc. MobileHCI, 2008.
  2. Serge Vaudenay. Secure Communications over Insecure Channels Based on Short Authenticated Strings. In Proc. CRYPTO, 2005.
  3. Volker Roth, Wolfgang Polak, Eleanor Rieffel, and Thea Turner. Simple and effective defenses against evil twin access points. In Proc. ACM WiSec, 2008.
  4. Rachna Dhamija and Adrian Perrig. Deja Vu: A User Study. Using Images for Authentication In Proc. USENIX Security Symposium, August 2000.
  5. G. Pass and R. Zabih. Histogram refinement for content-based image retrieval. In Proceedings of the 3rd IEEE Workshop on Applications of Computer Vision. WACV. IEEE Computer Society, Washington, DC, 96.
  6. G. Pass, R. Zabih and J. Miller. Comparing images using color coherence vectors. In Proc. ACM Multimedia, 1996.
  7. G. Pass and R. Zabih. Comparing images using joint histograms. Multimedia Syst. 7, 3 (May. 1999).
  8. Emmanuel J. Candes and Michael B. Wakin. An Introduction To Compressive Sampling. IEEE Signal Processing Magazine (21), March 2008.
  9. Barbara Zitova and Jan Flusser. Image registration methods: a survey. Image and Vision Computing 21 (2003) 977-1000.

©2007-2009  AG SI |  Feedback  |
Last Update: Jan 13, 2010

These Pictures are only displayed on print previews: