This project is an attempt to learn and play with Fuse by replicating the iOS stock camera app user interface.
Here's how far I got: movie gif
My hope is that the video above is indistinguishable from the stock iOS camera app. It includes:
- Mode switcher
- UI responding to the various modes (record button, camera size, etc.)
- Switch camera card flip
- Controls (flash, hdr, etc.) functioning like the iOS controls do
- All controls respond to orientation changes
- Clone this repo
- Clone the two dependent repos
- https://github.com/akalyan/fuse-camerapanel/tree/ak-observable-facing
- https://github.com/akalyan/fuse-orientation
- Fix the references to those dependencies in the fuse-ios-camera-ux.unoproj file
- Build:
fuse build -t=ios -adebug
(you'll get a Fuse error if you try to preview the app with the camera stream on, but if you want to play with the app in preview, comment out theCameraStream
element and uncomment this one instead) - Ensure only
Portrait
is selected in the General tab in XCode - Deploy to your device
- Improve performance of switching the camera
- Reverse the backward-facing camera (it's currently mirrored)
- Improve app load experience (it's a bit jumpy when the camera stream loads)
- Fix landscape_left <-> portrait_down rotation (should rotate 90-deg, instead rotates -270-deg)
- Fix spacing of modes in carousel (spacing between TIME-LAPSE and SLO-MO is too small)
- Fix landscape layout of timer control when 3s or 10s are selected
- Add focus boxes
- Implement functionality to take and store a photo
- Implement functionality to take and store a video
- Migrate dependencies to fusepm