Bootcamp Tasks - SEAS

secrettownpanamanianMobile - Wireless

Dec 10, 2013 (3 years and 8 months ago)

83 views

Bootcamp Tasks

UI
1. Create “logical” site map of UI pages
2. Create each UI view
3. Write validation rules for each UI widget with alerts
4. Create transition from view to view
5.

Push Notifications (Having the App Request Access for Push Notifications)
1. http://docs.go-
mono.com/MonoTouch.UIKit.UIApplication.RegisterForRemoteNotificationTyp
es%20(MonoTouch.UIKit.UIRemoteNotificationType)

2. http://urbanairship.com/docs/push.html

3. Server side library
http://weblogs.thinktecture.com/cweyer/2010/12/sending-json-
push-notification-messages-to-urban-airship-service-with-c.html



Persisted Settings
1. Have default settings
2. Save a Boolean, string, int and datetime value in UI views
3. Close the app, load the app, pull this information again


Save Image from Camera
1. Implement image selector / camera pop up per video

Connect to SSL Web Service
1. Create simple ASMX web service in .NET DisplayHelloWorld()
2. Upload to SSL server
3. Connect to web service via iPhone
4. Display message
5. Try again, now asynchronous

Display Now Waiting Bar
1. Call asynchronous task
2. Display progress bar with cancel button
3. Handle cancel and task complete events

Contact List
1. Display current contact list
2. On select, echo phone number(s), email(s), name from contact

Upload directly to Amazon S3
1. Use this code:
http://s3.amazonaws.com/doc/s3-example-
code/post/post_sample.html

a. First try just posting a file via the HTML form that is an image file
b. Next, set the policy to private
c. Upload file
d. Generate Temporary link to newly uploaded file
http://stackoverflow.com/questions/5949296/amazon-s3-how-to-properly-
build-urls-pointing-to-the-objects-in-a-bucket

e. See if link works
2. Now: With the first javascript code, write logic
string GeneratePolicyString(string fileName)
//should be a basic find/replace

string GenerateSignature(string amazonSecret, stringPolicyString)
//should base64 encode the policy string
//should run hmac sha 256 on encoded string
//return result


a. Using the generated signature, create your own HTML form to test and
see if it all works
b. Now feed that signature into this code and programmatically upload a file:
http://weblogs.asp.net/nadeemiqbal/archive/2009/06/05/upload-file-
directly-to-amazon-s3-using-c-silverlight-via-post.aspx


3. Finally, use the code in 2b on MonoTouch, use a signature that has a 3 year
expiration date
a. Take a picture with a camera
b. Upload it to Amazon S3
c. Generate a private URL using 1d
d. Load that Private URL in a web browser on the PC
e. Load that private URL in a UI Image View (hard coded, does not need
automation at this stage)


Checklist Items
1. Now Loading Screen
a. Identify sizes
2. Icons
a. Identify Sizes for home screen types
b. For various tool icons
c. Now Loading for small image thumb / large image thumb
3. Sign up for hosting (or opt to use us)
4. Sign up for Apple Developer account
Core Functions
bool isInternetAvailable()
{
//returns if internet is available. Should be called before any internet ready
method

//
http://stackoverflow.com/questions/1961341/check-for-internet-access-with-
monotouch

}


Workflow

On Load

If !ActivatedWithEmail
Display How It Works Screen




If !AskedNotificationPreference

RequestNotifications
(Device token -> Yes)


On Next, call web service
isEmailAddressRegistered()


If Email Address is not registered

Request sign up

On Submit, call
DoesUserNameExist()

if validation passess

CreateAccount(string deviceToken,
string username, string email,
string phoneNumber, string
passHash)

Else…we need to associate device


On Validation Successful
{
AssociateDevice()
}

OnLoad


GetFriendRequests
GetMyRequests
RenderScreen

Display not loaded icon for images
that fail to download

Camera Workflow as per bootcamp


Continue taking data, do not send
server request yet

On Send

--- Do All Validation
--- Async call to StartVoteRequest
--- Upload image to S3
--- Display progress indicator
--- On Complete, async call to
FinishVoteRequest
--- Return to dashboard

We should have all data available
from the dashboard screen to load
this page

Thus no round/trip needed

Call SendVote(string username,
string passhash, int requestID,
string comment, string voteVal)

(Async call)

Return to dashboard, remove item
from pending requests without
doing a round/trip call to refresh


We should call GetContacts
on the app load and cache it
for the remainder

Call searchForcontact()





GetResultDetails


//most info is cached from
dashboard

//use google api as URL
string to display pi chart

//use hard coded logic to
display data


We should have most of this
from getsettings

I guess we should have an
updateSettings method too

And updatePassword

SendFeedback