Code Monkey home page Code Monkey logo

triggertrap-ios's Introduction

Triggertrap Read Me & Licence

Triggertrap is an app that makes it easy for photographers to use their phone as a wired remote control.

The Triggertrap system consists of 3 parts:

  • An app for iOS or Android
  • A Mobile Dongle that turns an audio signal into a switch
  • A Camera Connection Cable for a specific camera.

Triggertrap is a commercial project that was conceived in 2010, launched in 2011, and ultimately went out of business in 2017.

Running the code

  • Download the git repo
  • Run pod install
  • Open the .xcworkspace file

Credits

The original software for iOS was built by Matt Kane, and it was further developed by Ross Gibson and Valentin Kalchev

Further Open Source contributions have been made by Alex Taffe.

Licence - Open source under the MIT licence.

Copyright 2017 Haje Jan Kamps (http://haje.me / @Haje)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

  • This software may not be distributed under the "Triggertrap" trademark.

  • This software must not be distributed in a way that makes it appear as if the software is licenced or endorsed by "Triggertrap".

  • Any references to "Triggertrap" or the Triggertrap logo must be removed from the software

  • It may be marketed as "Compatible with Triggertrap" or "Based on Triggertrap".

  • The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

triggertrap-ios's People

Contributors

alex-taffe avatar ross-gibson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

triggertrap-ios's Issues

Proximity Based Blackout

An option should be added to settings that allows for “proximity based blackout”. When enabled, when the phone is placed face down (triggers the proximity sensor), the screen should be turned off completely and all animations paused. This will significantly improve battery life. Once the phone is lifted, the screen will turn back on and animations will resume

Choosing timewarp time-lapse causes the app to break

The app freezes on choosing it the first time. The next time the app launches, the app freezes because it tries to load the same view which is broken. The error is:

From VC: <TriggertrapSLR.SplashViewController: 0x7fa04a418260> To VC: <TriggertrapSLR.KitSelectorViewController: 0x7fa047c23a10>2018-04-23 15:07:12.084305-0400 TriggertrapSLR[18369:811066] Could not load the "a" image referenced from a nib in the bundle with identifier "com.triggertrap.Triggertrap"

iPhone X - The on-boarding flow is broken

When viewing the on boarding follow on the iPhone X some of the screens have padding at the bottom and some don't. Also, the the animations do not align correctly when viewed on the iPhone X. @alex-taffe I will take this one.

image-1-6

WiFi screen is broken

The UI is just totally screwed up here, getting tons of constraints being wrong in the console

Screen Shot 2019-09-07 at 2 54 11 PM

High CPU Use on Timer Based Screens

On screens like “Timed Release”, CPU use is near 100% of a core when active due to the animation of the circular progress bar. CPU use is also high due to the timer firing and updating the label. This kills battery life and makes long sessions of use not feasible. Potential fixes are improving the code so that CPU use stays reasonable or adding a “battery saving mode” to temporarily disable these animations

Respect system dark mode toggle

iOS 13 now has a system dark mode. Trigger trap should be able to respond to this new feature. On iOS 12 and before, the light/dark functionality should remain the same. On iOS 13 and up, the toggle should change to a segmented display with “System”, “Light”, and “Dark” being options. This would allow users to have the app respect their system settings or set different preferences for trigger trap alone. New installs of the app and old installs will both default to “System”. In addition, this knocks out #7 because the system can automatically toggle dark and light mode. @Ross-Gibson thoughts?

CoreML and Vision mode

We could use CoreML and Vision to introduce a new mode.

Gist -> users can train a model to trigger when a condition is met. For example, they may want to take a group photo, but only when their own face is recognised in the image, or when the family dog and the cat are present, etc.

I've not used Lumina before but it looks promising.

@alex-taffe what's your thoughts on this?

Add zoom to the motion and peekaboo modes

Several users have emailed in to ask for this feature. They'd like the sensor modes that use the camera, i.e. motion and peekaboo, to have support for zooming, so that they can focus on the area/movement that they'd like to use to trigger the camera.

Keyboard shortcuts

Especially on macOS, the ability to just press the space button to take a photo, do things like change between trigger type, or change the time would be great

Accessibility - Support changing the system font size

The font size throughout the app should respond to the users preferred size within accessibility settings: Settings -> General -> Accessibility-> Larger Text.

We've had a few support tickets related to this issue.

Migrate all 3rd party dependencies to cocoa pods

Where possible, all 3rd party dependencies should be migrated to cocoa pods. This will allow us to more frequently update them and keep the git history for this project more in tact. Libraries that need to be removed are (may be incomplete)

Comply with GDPR

We need to remove all instances of user data tracking, and add a privacy policy to the website associated with the App Store listing (http://rossjamesgibson.com).

We should remove all references to Mixpanel, and corresponding events. We should also make sure there is nowhere else within the app that we're tracking data.

Add macOS Support

With the introduction of macOS Catalina, it is possible to compile UIKit apps for macOS. This project may not have a huge use to that many people, but some people may enjoy it and for that matter, it could be a good project to learn the ins and outs of this process. Currently this is blocked by #75 as UIKit on macOS does not support OpenGL, so we need to wait until a metal alternative of GPUImage is fully stable

Remove Cable Selector from settings page

This should either be removed or changed to inform users what is compatible to with their cameras. The website no longer exists so the links dont really make sense

simulator screen shot - iphone se - 2018-04-23 at 15 01 51
simulator screen shot - iphone se - 2018-04-23 at 15 01 50

Remove the Cable Selector from the Onboarding flow

Since the Triggertrap Mobile Kits are no longer available for purchase, we should not direct users to purchase a kit during the onboarding flow. However, we should still show the instructions of how to use the Mobile Kit, for those that do have one. Perhaps, we need to ask the user if they have a Mobile Kit during the onboarding and then show the instructions?

Replace openURL(_ url: URL)

In CameraSelectorViewController.swift and TimelapseProViewController.swift, we are calling UIApplication.shared.openURL(_ url: URL). This API has been deprecated. In the time-lapse pro view controller, we should replace with openURL:options:completionHandler:. In the Camera selector, we should most likely just use the new SFSafariViewController to avoid taking the user out of the app.

Bulb modes are not working since the 4.1.5 update

We've had a few reports from users that all of the bulb modes are not working since the latest 4.1.5 release. This is something we should investigate as a priority, and test on real devices with the Triggertrap hardware.

Report 1
Star Trail seems not working anymore. 
First trigger happens, then nothing. At end of pause after the 1st exposure, the trigger is not happening for the second exposure and the following. Exposure and pause times remain at 0 (see attached photo)
The program never stops, even after total exposure time has expired. 

Previous version was working fine with the same HW configuration. 

Device: iPhone10,6
iOS: 11.4.1
App: Triggertrap
Version: 4.1.5
Build: 938
Report 2
Latest update broke multiple exposure taking capability. Only one picture gets taken now in star trail and timelapse modes. 


Device: iPhone10,6
iOS: 12.0
App: Triggertrap
Version: 4.1.5
Build: 938

Image not found

Getting the error "Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value" on TimeWarpViewController.swift:167.

It seems the app doesn't actually have the image file "tickDown".

@Ross-Gibson do you happen to know what this file should be?

TimeWarp - add an explanation/warning for overlapping exposures

In TimeWarp mode it's possible to set parameters that result in overlapping exposures, i.e. a large number of exposures in a short duration, with a shallow gradient in the curve.

When this occurs, it is not obvious what the red circles on the curve represent.

Possible solution:

  • Make the red circles tappable. Present a dialog to explain the problem. The copy would need translating (use Google Translate for now). Ideally, we could present this warning automatically the first time that a user encounters this situation and then once they dismiss it we could store a Bool in the User Defaults and only show it again if they tap on the red circles.

Image-1

Motion Sensor slider is not accessible on an iPhone X

Steps to reproduce:

  • Open the Motion Sensor mode on an iPhone X
  • Rotate to portrait

Notice that the slider is partially blocked by the bottom view

  • Rotate to landscape

Notice that the slider is accessible

Expected result:
The slider should to accessible in all rotations, and should sit just above the bottom view.

Menubar icons look bad in night mode

In night mode, the menu bar icons are pure white making them hard to look at and inconsistent with the rest of the app. Most likely should be tinted a darker color
img_3b77ea11dc6a-1

Remove Pebble support

Due to the fact that Pebble is no longer selling or producing watches, maintaining support for it in the app is no longer necessary. As a result, it should be removed

Migrate to GPUImage 3

We're currently using GPUImage which hasn't been updated in 3 years, and also uses OpenGL, which is deprecated. GPUImage3 is written in Metal and Swift, and is actively maintained

iOS 12 preparations/Swift 4.2 migration

This should not be completed until both the GM of iOS 12 and Xcode 10 are available, but I am just placing this here as a reminder.

Compiling with no changes as of Xcode 10 beta 5 yields about 20 warnings and 1 compile time error that states could not decode input file using specified encoding: Unicode (UTF-8), and the file contents appear to be encoded in Unicode (UTF-16). This is easily fixed by changing all instances of Localizable.strings to Unicode (UTF-8) in the text settings for the file (click reinterpret rather than convert when changing). The app appears to function normally when compiled against the 12.0 SDK.

After fixing the compile time error, running the conversion utility on the TriggertrapSLR target, an error appears “Convert to Current Swift Syntax Failed” “Please ensure that all selected targets build successfully with the currently configured Swift version before attempting a migration.” It is unclear if this is an Xcode beta issue or an issue with the project.

@Ross-Gibson we should also determine if we would like to continue supporting iOS 10 when this update is complete. Apple is saying 10.X is still at 14% adoption which is not insignificant (https://developer.apple.com/support/app-store/). This might be different among users of this app though, so we will have to make that decision at some point (might make sense around November once 12.1 is available and more people have upgraded)

Timelapse Pro "View in App Store" button is unbalanced

  • Fix the lagging around the button so that it appears balanced (This part may be iPhone X specific)
  • Back the bottom view grey to match the design of the other screens
  • Fix the rotation issues on the screen. If you rotate to landscape the button disappears

image-1-3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.