/open-source-selfie-stick

An open source iOS app that lets you use one device as a camera and another as a remote control for the camera

Primary LanguageSwiftMozilla Public License 2.0MPL-2.0








Q: What is Open Source Selfie Stick?
A: With this free app you can use any iPhone or iPad as a remote control for the camera on any other iPhone or iPad! Open Source Selfie Stick allows you to pair any two iOS devices over WiFi or Bluetooth and use one as a camera and the other as a remote control for that camera--just tap the button on the remote control iPhone/iPad, and the iPhone/iPad designated as the camera will snap a photo. You can choose to save the photos to the camera device, the remote control device, or both! The app acts as a sort-of "virtual" selfie stick.

Q: How does this app work?
A: This app leverages the Multipeer Connectivity Framework to allow the devices to communicate over WiFi or Bluetooth.

Q: Does it work well over Bluetooth?
A: Bluetooth is much slower than WiFi. It can take 10-20 seconds to send a photo from the camera to the remote control over Bluetooth; over WiFi this process takes 2-3 seconds. If you do not wish to save the photos to the iPhone/iPad acting as the remote control, Bluetooth will suffice.

Q: Can I contribute to the development of this app?
A: Yes! Feel free to fork this repo, look at the to-do list, and make a pull request. The master branch represents the code of the app that is currently available in the app store. The dev branch will be the codebase for the next app update. If you'd like you contribute, you should fork the dev branch.

Q: Can I download this app from the App Store?
A: Yes! Click here to be taken to the App Store. Alternatively, you can download this project on any Mac, open it with Xcode 7.2.1, and build it on any Apple mobile device with iOS v8.1 or higher via USB.

Q: I found a bug. How do I report it?
A: Create a new issue on GitHub's issue tracker. Please provide as much detail as possible so we can attempt to reproduce the error you're experiencing.

Q: How did you make this app?
A: To learn more about how this app was made, check out the tutorial I created which details the process of using the Multipeer Connectivity Framework to transfer data between two devices.

TO DO

  • Give user the option to save photos on either or both devices
  • Add an optional timer
  • Add file transfer progress bar if remote control device is receiving a file
  • Viewable gallery of photos from current/most recent session
  • Make a more aesthetically pleasing UI
  • Share your newly taken photos on Facebook and Twitter with SocialKit
  • Allow the recording and sharing of video clips
  • Allow the device acting as the remote control to receive a live video feed
  • Allow multiple devices to act as cameras or remotes
  • Refactor
  • Come up with a better name than "Open Source Selfie Stick"
  • Add support for multiple languages



License
This software is licensed under the MPL version 2.0.

Logo credits
Logo created with Logo Maker. The camera, person, and phone icons seens within the logo are by Freepik from Flaticon. They are licensed under CC BY 3.0. These icons are also used in the App icon and within the app itself. The shields visible in this README are made possible by Shields.IO.

Special Thanks
Thanks to Joystick Interactive, Alex Konrad, Ralf Ebert, Ray Wenderlich, and my wife.
Without them this project may not exist.