Gaia/Camera: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Created page with "The Gaia Camera app is a camera web app, for the front end of B2G == Status == * Feature Name: Gaia Camera App * Stage: Development * Release Target: [https://wiki.mozilla.o...")
 
m (Add a Security Review section)
 
(28 intermediate revisions by 8 users not shown)
Line 1: Line 1:
The Gaia Camera app is a camera web app, for the front end of [[B2G]]
== Design Specs ==
For the latest UX specifications, please visit:
https://mozilla.box.com/applications


== Status ==
== Use Cases ==
* Feature Name: Gaia Camera App
*Tom wants take a photo and selects the Camera app
* Stage: Development
*Tom can easily see a preview and when he's ready to take a photo, presses the shutter button to snap a photo
* Release Target: [https://wiki.mozilla.org/B2G/Roadmap#Milestone_2:_Product_Demo_Q1_2012 B2G Demo Phone], Q1 2012
*All of Tom's photos are stored in the [https://wiki.mozilla.org/Gaia/Gallery Gallery]
*Tom has the ability to digitally zoom in on his subjects by pinching
*After a photo is taken, Tom has the ability to apply certain filters
*Tom has the ability to turn the flash on (hardware dependent) for taking photos in the dark
*Tom has the ability to toggle between the rear and front cameras
*Tom wants to take a video instead of a photo and switches between the two modes by selecting the 'video mode'
**In video mode, Tom is able to 'pinch-to-zoom' and then begins recording his video
**Videos taken are saved in the Video app
*When taking a photo, Tom sees certain basic functionality:
**Auto-focus
**Auto-exposure
**Time stamp
**Face detection
**Auto-enhance
**Geo-tagging
**Resolution


== Team ==
* Front End Developer: Ben Francis
* Back End Developers: Fabrice Desré & Kan-Ru Chen
* UX: Josh Carpenter & Trond Werner Hansen
* Product Manager: Chris Lee
* Tech Lead: Chris Jones


== Issues & Risks ==
== Requirements ==  
* How should the camera app integrate with or interact with the gallery app to store photos? https://github.com/andreasgal/gaia/issues/291
For cross reference see [https://wiki.mozilla.org/images/2/29/B2G_Camera_DRAFT_v05.pdf UI designs] and [https://docs.google.com/spreadsheet/ccc?key=0AiBigu584YY7dGlNSlY0QzhJb3M5anRBa1gxalV0Y3c#gid=13 status]
* The current approach of using a <input type="file"> tag ({{bug|708484}}) results in a very poor user experience. Hopefully WebRTC's [http://dev.w3.org/2011/webrtc/editor/getusermedia.html getUserMedia] can provide better results in future but this won't be ready for the Demo Phone milestone.


== Definition ==
;Gaia v1
=== User Stories ===
*User launches the Camera app and has the ability to see a preview of what the subject and can snap a photo
* [https://github.com/andreasgal/gaia/issues/44 Viewfinder]
*Photos that are taken are saved to the Gallery in standard, default resolution (A X B resolution)
* [https://github.com/andreasgal/gaia/issues/45 Take a photo]
*Gallery access is available directly from the Camera app's primary screen
* Save a photo?
*User has the ability to apply 3 basic filters after taking a photo (filters, P2)
*User has the ability to turn the flash on/off directly from the Camera preview screen (HW dependent, P2)
*User has the ability to toggle between the front-facing and rear cameras (HW dependent, P2)
*User has the ability to toggle between mode: Video [or] Photo
*Videos that are taken are saved to the Video app for to be played/managed/deleted
*The Camera app has the ability to auto-focus on the subject
*User has the ability to crop photos after it's been captured
*Storage of photos will default to on-board flash memory (storage size TBD) and user will have the option to select the SD card slot as alternative storage
**Settings will incorporate the option to manage the memory usage of apps and cached data
*Thumbnail creation of all photos taken for the Gallery
*Record Metadata/exif data for photos taken
*Encoding formats:
**Video: H.264
**Audio: AAC
*Default resolution (camera sensor hardware dependent)


=== Dependencies ===
;Gaia v2
* Add camera capture stream provider for gonk (temporary solution) {{bug|708484}}
*User has the ability to digitally zoom into a subject in the Camera mode.
* Media Storage API? {{bug|717103}}
*User has the ability to select focus area by tapping on preview.
* Web Intents?
*User has the ability to zoom into a subject in Video mode and then begin filming
*The Camera app has the ability to auto-detect the amount of light and adjust the exposure sensitivity
*The Camera app has the ability to auto-enhance an image right after it's been taken
*The Camera app offers the option to geo-tag all photos taken based on the user's GPS location
*The Camera app offers facial recognition in the preview mode before taking a photo
*User has the option to select between multiple resolutions
**Specific resolutions TBD


== Design ==
== Development ==
[https://github.com/mozilla-b2g/gaia/tree/master/apps/camera Source code on Github]


 
== Security Review ==
== Development ==
The security review of this app can be found [https://wiki.mozilla.org/Security/Reviews/Gaia/Camera here].
[https://github.com/andreasgal/gaia/tree/master/apps/camera Source code on Github]

Latest revision as of 14:28, 28 October 2013

Design Specs

For the latest UX specifications, please visit: https://mozilla.box.com/applications

Use Cases

  • Tom wants take a photo and selects the Camera app
  • Tom can easily see a preview and when he's ready to take a photo, presses the shutter button to snap a photo
  • All of Tom's photos are stored in the Gallery
  • Tom has the ability to digitally zoom in on his subjects by pinching
  • After a photo is taken, Tom has the ability to apply certain filters
  • Tom has the ability to turn the flash on (hardware dependent) for taking photos in the dark
  • Tom has the ability to toggle between the rear and front cameras
  • Tom wants to take a video instead of a photo and switches between the two modes by selecting the 'video mode'
    • In video mode, Tom is able to 'pinch-to-zoom' and then begins recording his video
    • Videos taken are saved in the Video app
  • When taking a photo, Tom sees certain basic functionality:
    • Auto-focus
    • Auto-exposure
    • Time stamp
    • Face detection
    • Auto-enhance
    • Geo-tagging
    • Resolution


Requirements

For cross reference see UI designs and status

Gaia v1
  • User launches the Camera app and has the ability to see a preview of what the subject and can snap a photo
  • Photos that are taken are saved to the Gallery in standard, default resolution (A X B resolution)
  • Gallery access is available directly from the Camera app's primary screen
  • User has the ability to apply 3 basic filters after taking a photo (filters, P2)
  • User has the ability to turn the flash on/off directly from the Camera preview screen (HW dependent, P2)
  • User has the ability to toggle between the front-facing and rear cameras (HW dependent, P2)
  • User has the ability to toggle between mode: Video [or] Photo
  • Videos that are taken are saved to the Video app for to be played/managed/deleted
  • The Camera app has the ability to auto-focus on the subject
  • User has the ability to crop photos after it's been captured
  • Storage of photos will default to on-board flash memory (storage size TBD) and user will have the option to select the SD card slot as alternative storage
    • Settings will incorporate the option to manage the memory usage of apps and cached data
  • Thumbnail creation of all photos taken for the Gallery
  • Record Metadata/exif data for photos taken
  • Encoding formats:
    • Video: H.264
    • Audio: AAC
  • Default resolution (camera sensor hardware dependent)
Gaia v2
  • User has the ability to digitally zoom into a subject in the Camera mode.
  • User has the ability to select focus area by tapping on preview.
  • User has the ability to zoom into a subject in Video mode and then begin filming
  • The Camera app has the ability to auto-detect the amount of light and adjust the exposure sensitivity
  • The Camera app has the ability to auto-enhance an image right after it's been taken
  • The Camera app offers the option to geo-tag all photos taken based on the user's GPS location
  • The Camera app offers facial recognition in the preview mode before taking a photo
  • User has the option to select between multiple resolutions
    • Specific resolutions TBD

Development

Source code on Github

Security Review

The security review of this app can be found here.