Skip to content

bahmani00/AndroidDailySelfie

Repository files navigation

CourseraDailySelfie

DailySelfie: Peer assignment @Coursera ----------------------- Page 1-----------------------

Lab: Daily Selfie

Objectives:

Create an application from scratch that periodically reminds the user to take a selfie - a picture of one's

self taken from one's device. Over time the user will capture many selfies and thus will be able to see

him or herself change over some period of time.

For example, here's a screenshot of an app that I created.

Requirement #1: If the user clicks on the camera icon on the ActionBar, the app will open up a picture-

taking app already installed on the device. Here's a screenshot of my app after I clicked on the camera

icon, and the Camera app has opened up. In this case, my AVD has a single emulated front-facing

camera.

----------------------- Page 2-----------------------

Requirement #2: If the user now snaps a picture and accepts it, the picture is returned to the DailySelfie

app and then displayed in some way to the user along with other selfies the user may have already

taken.

In this case I used a ListView to show all the selfies the user has taken, but you can use some other

display approach. For instance, it might be useful to group selfies by the date they were taken. However,

you do this, the user should be able eventually see a small view for each selfie.

Requirement #3: If the user clicks on the small view, then a large view will open up, showing the selfie in

a larger format. Here's my app after, I clicked on the one small view shown in the screenshot above.

----------------------- Page 3-----------------------

Hitting the back button in this case brings the user back to the ListView. The behavior of your app may

be different depending on how you organize it, but there must be a way to go from a small view to a

large view and then back to the original small view.

Whenever the user takes a selfie, the image data must be stored in some permanent way. Requirement

#4: In particular, if the user exits the app and then reopens it, they should have access to all the selfies

saved on their device. You may optionally include some way for the user to delete some or all of their

selfies.

Requirement #5: Because the user wants to take selfies periodically over a long period of time, the app

should create and set an Alarm that fires roughly once every two minutes. In a real app, this would most

likely be set to a longer period, such as once per day. We will fire the alarms roughly every two minutes

to make assessment easier. When one of these alarms fires, a notification area notification should be

placed in the notification area, as shown below.

----------------------- Page 4-----------------------

Pulling down on the notification drawer should expose a notification view.

Clicking on this notification view should bring the user back to the application.

Tips: I strongly recommend that you read the following information on how to take pictures.

http://developer.android.com/training/camera/photobasics.html. I also strongly suggest you use parts

of the sample code to linked on this page to keep the project effort manageable. Pay particular

attention to the setPic() method, which shows you how to read a Bitmap from a file in a memory-

efficient way.

----------------------- Page 5-----------------------

Use your creativity to design your app and user interface. Design your own visual layout and navigation

approach. Just make sure that your approach meets all the requirements.

Take a look at the dailyselfie.mp4 screencast for a run-through of the application's features.

Submission

To submit your work you will need to export your DailySelfie project as a compressed zip file. Then you

will submit this zip file to the Coursera system. Grading for this assignment will be done using Peer

Assessment. That is, students will review each other's code and give feedback.

About

Android DailySelfie

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages