iPhone Twitter client

## What is UsFrame? {#[url removed, login to view]}

UsFrame is a simple app to help you keep in touch with one individual very closely using Twitter. You sign into your Twitter account, choose a Twitter friend, and see a photo of them. If they post an update or DM you, it appears on-screen.

The app is designed to be used in an office environment, when your mobile phone is at your desk and maybe on charge.

## Deliverables

## Introduction {#[url removed, login to view]}

### Overview

This document is a brief for the first version of a product called UsFrame. Its intended audience is the developer who will be building the product. It includes details of desired features and non-functional requirements; all requirements in here are mandatory, but I'd be interested in knowing if any are particularly difficult to achieve, impossible even.

I expect to provide all visuals required for this product, but will need to be told what specific assets are required (size, format, etc). I expect to make myself available throughout development to answer questions and provide feedback. I'd like to receive regular builds of the product as features are completed.

### What is UsFrame?

UsFrame is a simple app to help you keep in touch with one individual very closely using Twitter. You sign into your Twitter account, choose a Twitter friend, and see a photo of them. If they post an update or DM you, it appears on-screen.

The app is designed to be used in an office environment, when your mobile phone is at your desk and maybe on charge.

## Features

### Home screen

* On first use the app should show a splash screen, then fade in (over 1s) a "Get started" button, which when pressed takes the user to the "Choose a VIP" flow.

* On subsequent runs, if the user was mid-way through selecting their VIP, they are returned to the last point in the process they reached.

* If they had chosen their VIP they are taken straight to the "See Twitter updates from VIP" flow.

* In the event of Twitter revoking OAuth tokens, or similar issues occurring preventing an authenticated user from signing into Twitter, all authentication data is wiped and the user returned to the "first use" version of this screen.

### Sign in using Twitter

* The user is taken to the Twitter OAuth page where they are invited to sign into Twitter, giving permission to the app to read their Twitter data.

* This should happen within the app (i.e. by opening a WebView and not by launching the Safari browser).

* If their sign-in is accepted by Twitter, their OAuth keys are persisted on the iPhone and they are taken to the "Choose a VIP" process (see below).

* If their sign-in fails, they are taken back to the home screen of the app and told that their sign-in has failed. If they can be given a human-readable friendly reason for the failure, show it here.

### Choose a VIP

* The user is shown a list of their Twitter friends and invited to choose one to follow (known as the VIP). Once they have chosen one, they are taken to the "See updates from VIP" flow.

* Whilst the list of friends (which might be large) is downloaded over the network, an activity indicator is animated on-screen and the user cannot interact with the list.

* Friends are listed in alphabetical order.

### See updates from VIP

* The user is show the photo for their VIP. This photo will fill the screen as much as possible (without stretching or distorting it). By default this photo is the Twitter avatar for their VIP.

* If the photo isn't available by the time the user arrives at this screen, an activity indicator animates on-screen until it's loaded.

* The app periodically polls to check for new updates from this VIP. Developer to advise the best polling rate than can be achieved here.

* If any new updates or DMs are found, they are shown in a box at the bottom of the screen. This box will have rounded corners, a black background and white text. It will be aligned to the foot of the screen. The box will fade in for [url removed, login to view], wait 2s, and fade out in 0.5s.

* If there are multiple updates they are shown one after another, with a 1s delay between them, in order of least recent first.

* If the app fails to connect to Twitter to collect updates it should be silent (but log the error using NSLog() calls)

### See DMs from VIP

* Extends "See Twitter updates from VIP", to also include display of direct messages. The border of the box showing direct messages will be slightly thicker than that for updates.

### Choose an alternative photo for VIP

* The user is first asked whether they would like to take the photo from the on-phone gallery or camera. If the former, they are taken to their gallery (in the normal Apple UI fashion) and choose a photo).

* If the latter, the camera is launched and they can take a photo.

* Photos can be panned and pinch/zoomed to choose an area of the picture to use.

* The selected photo then replaces the Twitter avatar photo for this user.

### Settings

* An icon sits at the bottom-right of the "See updates from VIP" screen, semi-transparent and overlaid onto the photo. Clicking this icon moves to a "Settings" screen (using a horizontal flip transition, left to right).

* This settings screen shows a short credit message, and three buttons: "Choose a new photo", "Sign out" and "Done".

* The first takes the user to the "Choose an alternative photo for VIP" flow.

* If the second is clicked the user is signed out of Twitter, their authentication details removed from the device, and they are returned to the home screen of the app.

* If the "Done" button is clicked, the user is taken back to the "See updates from VIP" screen using a horizontal flip transition, right to left.

## Non-functional requirements

* Animations are applied between screens, fast left-to-right pans. It should be possible for a coder to simply change these to other animation types if necessary, on a per-screen basis.

* The app should comply with all Apple HIGs and certification requirements.

* The app should load in 2s or less.

* When in the "See updates from VIP" flow, the mobile screen should not lock. It may dim.

* The app should work on iOS 3.x and above.

* Source code should be commented. Variable names should be sensible for a UK developer to maintain.

* Where possible the app should use Apple standard mechanisms throughout.

* Source code is a key deliverable of the project. An archive of an XCode 4 compatible project should be delivered. This must build the app in 1-click without errors or compiler warnings.

* The developer should sign over all IP in the app on payment.

* Authentication should be carried out using OAuth in an embedded WebView.

* The app should use the latest version of MGTwitterEngine for all its interactions with Twitter.

* The app should use no other third party components, without prior permission from myself.

* All strings should be externalised in Apple-standard ways, to allow for future internationalisation of the product.

* The app should use Flurry, an analytics product, to log all interesting events: transitions between screens, errors filling out forms or getting data from the network, button presses and so on.

Evner: iPhone, Mobile App Development

Se mere: work from home desk, work at home help desk, what runs where alternative, what is network flow, what is ios device, what is background check, what is an ios device, what is a network flow, ways to work from home, ways to work at home, update xcode, uk designed icon, ui flow, twitter animated avatar, touch screen ui, t mobile work from home, strings for c standard, simply fashion, sign in desk, short project fashion

Om arbejdsgiveren:
( 0 bedømmelser ) United Kingdom

Projekt ID: #3321754