├── .gitignore ├── COPYRIGHT_POLICY ├── FlipPic Images ├── .picasa.ini ├── Don't do this, just FlipPic.jpg ├── FlipPic 5.5-inch.mp4 ├── FlipPic Green │ ├── FlipPic Icon.png │ ├── FlipPic Logo.png │ ├── Icon-60.png │ ├── Icon-60@2x.png │ ├── Icon-60@3x.png │ ├── Icon-72.png │ ├── Icon-72@2x.png │ ├── Icon-76.png │ ├── Icon-76@2x.png │ ├── Icon-76@3x.png │ ├── Icon-Small-50.png │ ├── Icon-Small-50@2x.png │ ├── Icon-Small.png │ ├── Icon-Small@2x.png │ ├── Icon-Small@3x.png │ ├── Icon-Spotlight-40.png │ ├── Icon-Spotlight-40@2x.png │ ├── Icon-Spotlight-40@3x.png │ ├── Icon-iPadPro@2x.png │ ├── Icon.png │ ├── Icon@2x.png │ ├── iTunesArtwork.png │ └── iTunesArtwork@2x.png ├── FlipPic Orange │ ├── FlipPic Logo.png │ ├── FlipPic.prepo │ ├── Icon-60.png │ ├── Icon-60@2x.png │ ├── Icon-60@3x.png │ ├── Icon-72.png │ ├── Icon-72@2x.png │ ├── Icon-76.png │ ├── Icon-76@2x.png │ ├── Icon-76@3x.png │ ├── Icon-Small-50.png │ ├── Icon-Small-50@2x.png │ ├── Icon-Small.png │ ├── Icon-Small@2x.png │ ├── Icon-Small@3x.png │ ├── Icon-Spotlight-40.png │ ├── Icon-Spotlight-40@2x.png │ ├── Icon-Spotlight-40@3x.png │ ├── Icon-iPadPro@2x.png │ ├── Icon.png │ ├── Icon@2x.png │ ├── Project_Logo.jpg │ ├── Project_Logo.png │ ├── iTunesArtwork.png │ └── iTunesArtwork@2x.png ├── FlipPic Yellow │ └── Group Project.png ├── FlipPic — “Your Front:Back Camera App”.mp4 ├── FlipPic.gif ├── FlipPic.jpg ├── FlipPic.pptx ├── FlipPic_Pink │ ├── AppIcon Stylized.png │ ├── FlipPic Logo.png │ ├── Icon-60.png │ ├── Icon-60@2x.png │ ├── Icon-60@3x.png │ ├── Icon-72.png │ ├── Icon-72@2x.png │ ├── Icon-76.png │ ├── Icon-76@2x.png │ ├── Icon-76@3x.png │ ├── Icon-83.5@2x.png │ ├── Icon-Small-50.png │ ├── Icon-Small-50@2x.png │ ├── Icon-Small.png │ ├── Icon-Small@2x.png │ ├── Icon-Small@3x.png │ ├── Icon-Spotlight-40.png │ ├── Icon-Spotlight-40@2x.png │ ├── Icon-Spotlight-40@3x.png │ ├── Icon.png │ ├── Icon@2x.png │ ├── Reacture.prepo │ ├── iTunesArtwork.png │ └── iTunesArtwork@2x.png ├── Group Project.sketch ├── Mirror.jpg ├── Project_Logo.png ├── Screenshots, LaunchKit │ ├── 3.5-inch (iPhone 4) - Screenshot 1.png │ ├── 3.5-inch (iPhone 4) - Screenshot 2.png │ ├── 3.5-inch (iPhone 4) - Screenshot 3.png │ ├── 3.5-inch (iPhone 4) - Screenshot 4.png │ ├── 3.5-inch (iPhone 4) - Screenshot 5.png │ ├── 4-inch (iPhone 5) - Screenshot 1.png │ ├── 4-inch (iPhone 5) - Screenshot 2.png │ ├── 4-inch (iPhone 5) - Screenshot 3.png │ ├── 4-inch (iPhone 5) - Screenshot 4.png │ ├── 4-inch (iPhone 5) - Screenshot 5.png │ ├── 4.7-inch (iPhone 6) - Screenshot 1.png │ ├── 4.7-inch (iPhone 6) - Screenshot 2.png │ ├── 4.7-inch (iPhone 6) - Screenshot 3.png │ ├── 4.7-inch (iPhone 6) - Screenshot 4.png │ ├── 4.7-inch (iPhone 6) - Screenshot 5.png │ ├── 5.5-inch (iPhone 6+) - Screenshot 1.png │ ├── 5.5-inch (iPhone 6+) - Screenshot 2.png │ ├── 5.5-inch (iPhone 6+) - Screenshot 3.png │ ├── 5.5-inch (iPhone 6+) - Screenshot 4.png │ └── 5.5-inch (iPhone 6+) - Screenshot 5.png ├── Screenshots │ ├── .picasa.ini │ ├── .picasaoriginals │ │ ├── .picasa.ini │ │ └── IMG_1691.jpg │ ├── IMG_1691.jpg │ ├── IMG_1692.jpg │ ├── IMG_1693.jpg │ ├── IMG_1694.jpg │ ├── IMG_1695.jpg │ ├── IMG_1696.jpg │ └── IMG_1697.jpg ├── cancelButton.png ├── filterButton.png ├── filter_b&w.jpg ├── filter_blue.jpg ├── filter_mono.jpg ├── filter_retro.jpg ├── filter_sepia.jpg ├── filter_water.jpg ├── iSightFlashButton_Off.png ├── iSightFlashButton_On.png ├── layout_corner.png ├── layout_diagonal_downleft.png ├── layout_diagonal_downright.png ├── layout_side.png ├── layout_southeast.png ├── layout_top.png ├── mock_landscape.jpg ├── mock_selfie.jpg ├── shareButton_500.png ├── shareButton_60.png ├── swapImageButton.png └── switchCameraButton.png ├── PRIVACY_POLICY ├── README.md ├── Reacture ├── FlipPic.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ ├── project_BACKUP_54198.pbxproj │ ├── project_BASE_54198.pbxproj │ ├── project_LOCAL_54198.pbxproj │ └── project_REMOTE_54198.pbxproj ├── Launch Screen.storyboard ├── RCT_Image.swift ├── Reacture │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x-1.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Icon-Small@3x.png │ │ │ ├── Icon-Spotlight-40.png │ │ │ ├── Icon-Spotlight-40@2x-1.png │ │ │ ├── Icon-Spotlight-40@2x.png │ │ │ ├── Icon-Spotlight-40@3x.png │ │ │ └── Icon-iPadPro@2x.png │ │ ├── Contents.json │ │ ├── Mock Images │ │ │ ├── Contents.json │ │ │ ├── mock_landscape.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Landscape.jpg │ │ │ └── mock_selfie.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── selfie.jpg │ │ ├── Toolbar Icons │ │ │ ├── Contents.json │ │ │ ├── Filter Icons │ │ │ │ ├── Contents.json │ │ │ │ ├── filter_b&w.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filter_b&w.jpg │ │ │ │ ├── filter_blue.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filter_blue.jpg │ │ │ │ ├── filter_icon.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filterButton-1.png │ │ │ │ ├── filter_mono.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filter_mono.jpg │ │ │ │ ├── filter_none.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filter_none.jpg │ │ │ │ ├── filter_retro.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filter_retro.jpg │ │ │ │ ├── filter_sepia.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filter_sepia.jpg │ │ │ │ └── filter_water.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── filter_water.jpg │ │ │ └── Layout Icons │ │ │ │ ├── Contents.json │ │ │ │ ├── layout_corner.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── layout_corner-1.png │ │ │ │ ├── layout_diagonal_downleft.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── layout_diagonal_downleft-1.png │ │ │ │ ├── layout_diagonal_downright.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── layout_diagonal_downright-1.png │ │ │ │ ├── layout_side.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── layout_side-1.png │ │ │ │ ├── layout_southeast.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── layout_southeast.png │ │ │ │ └── layout_top.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── layout_top-1.png │ │ ├── appIcon.imageset │ │ │ ├── Contents.json │ │ │ └── Icon-iPadPro@2x.png │ │ ├── cancelButton.imageset │ │ │ ├── Contents.json │ │ │ └── cancelButton-1.png │ │ ├── iSightFlashButton_Off.imageset │ │ │ ├── Contents.json │ │ │ └── iSightFlashButton_Off.png │ │ ├── iSightFlashButton_On.imageset │ │ │ ├── Contents.json │ │ │ └── iSightFlashButton_On.png │ │ ├── launchScreenBackground.imageset │ │ │ ├── Contents.json │ │ │ └── launchScreenBackground-1.png │ │ ├── launchScreenLetters.imageset │ │ │ ├── Contents.json │ │ │ └── launchScreenLetters-1.png │ │ ├── move_arrows.imageset │ │ │ ├── Contents.json │ │ │ └── Icon-60@2x.png │ │ ├── onboard1.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_1716.jpg │ │ ├── onboard2.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_1705.jpg │ │ ├── onboard3.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_1711.jpg │ │ ├── onboard4.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_1709.jpg │ │ ├── onboard5.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_1695.jpg │ │ ├── onboard6.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_1696.jpg │ │ ├── onboard7.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_1712.jpg │ │ ├── shareButton.imageset │ │ │ ├── Contents.json │ │ │ └── shareButton_60.png │ │ ├── swapImagesButton.imageset │ │ │ ├── Contents.json │ │ │ └── swapImageButton.png │ │ └── switchCameraButton.imageset │ │ │ ├── Contents.json │ │ │ └── switchCameraButton.png │ ├── Base.lproj │ │ └── Main.storyboard │ ├── Enums.swift │ ├── Enums_BACKUP_28273.swift │ ├── Enums_BASE_28273.swift │ ├── Enums_LOCAL_28273.swift │ ├── Enums_REMOTE_28273.swift │ ├── Info.plist │ ├── PageContentViewController.swift │ ├── PanGestureView.swift │ ├── RCT_CameraController.swift │ ├── RCT_CameraViewController.swift │ ├── RCT_ContainerViewController.swift │ ├── RCT_EditViewController.swift │ ├── RCT_EditViewController_BACKUP_62008.swift │ ├── RCT_EditViewController_BASE_62008.swift │ ├── RCT_EditViewController_LOCAL_62008.swift │ ├── RCT_EditViewController_REMOTE_62008.swift │ ├── RCT_FiltersController.swift │ ├── RCT_ImageController.swift │ ├── RCT_LayoutController.swift │ ├── RCT_OptionItemCollectionViewCell.swift │ ├── TutorialPageViewController.swift │ ├── UIColorExtension.swift │ ├── UIViewExtension.swift │ ├── UIViewExtension.swift.zip │ ├── ZoomableView.swift │ └── photoShutter2.caf └── ScrollViewExtension.swift └── TERMS_OF_USE /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | *.xccheckout 14 | *.moved-aside 15 | DerivedData 16 | *.hmap 17 | *.ipa 18 | *.xcuserstate 19 | 20 | # CocoaPods 21 | # 22 | # We recommend against adding the Pods directory to your .gitignore. However 23 | # you should judge for yourself, the pros and cons are mentioned at: 24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 25 | # 26 | # Pods/ 27 | 28 | # Carthage 29 | # 30 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 31 | # Carthage/Checkouts 32 | 33 | Carthage/Build 34 | .DS_Store 35 | -------------------------------------------------------------------------------- /COPYRIGHT_POLICY: -------------------------------------------------------------------------------- 1 | BAEPS COPYRIGHT POLICY (last revised: January 15, 2016) 2 | 3 | BAEPS respects the intellectual property rights of others and expects its users to do the same. 4 | 5 | In accordance with the Digital Millennium Copyright Act of 1998 ("DMCA"), the text of which may be found on the U.S. Copyright Office website at http://www.copyright.gov/legislation/pl105-304.pdf, and other applicable laws, BAEPS has adopted a policy of terminating, in appropriate circumstances and at our sole discretion, the accounts of users who are deemed to be repeat infringers. BAEPS may also, at its sole discretion, limit access to BAEP's website and services (collectively, "Service") and terminate the accounts of any users who infringe any intellectual property rights of others, whether or not there is any repeat infringement. BAEPS will respond to claims of copyright infringement committed on the BAEPS website that are reported to BAEPS's Designated Copyright Agent, identified in the sample notice below. 6 | 7 | If you knowingly misrepresent in your notification that the material or activity is infringing, you will be liable for any damages, including costs and attorneys' fees, incurred by us or the alleged infringer as the result of our relying upon such misrepresentation in removing or disabling access to the material or activity claimed to be infringing. 8 | 9 | If you are a copyright owner, or are authorized to act on behalf of one, or authorized to act under any exclusive right under copyright, please report alleged copyright infringements taking place on or through the Services by completing the following DMCA Notice of Alleged Infringement and delivering it to BAEPS's Designated Copyright Agent. Upon receipt of the Notice as described below, BAEPS will take whatever action, in its sole discretion, it deems appropriate, including removal of the challenged material from the Services. 10 | 11 | DMCA NOTICE OF ALLEGED INFRINGEMENT ("NOTICE"): 12 | 13 | 1. Identify the copyrighted work that you claim has been infringed, or if multiple copyrighted works are covered by this Notice, you may provide a representative list of the copyrighted works that you claim have been infringed. 14 | 15 | 2. Identify the material that you claim is infringing (or to be the subject of infringing activity) and that is to be removed or access to which is to be disabled, and information reasonably sufficient to permit us to locate the material, including at a minimum, if applicable, the URL of the link shown on the Services where such material may be found. 16 | 17 | 3. Provide your mailing address, telephone number, and, if available, email address. 18 | 19 | 4. Include both of the following statements in the body of the Notice: (i) "I hereby state that I have a good-faith belief that the disputed use of the copyrighted material is not authorized by the copyright owner, its agent, or the law (e.g., as a fair use)"; and (ii) "I hereby state that the information in this Notice is accurate and, under penalty of perjury, that I am the owner, or authorized to act on behalf of the owner, of the copyright or of an exclusive right under the copyright that is allegedly infringed." 20 | 21 | 5. Provide your full legal name and your electronic or physical signature. 22 | 23 | 6. Deliver this Notice, with all items completed, to BAEPS's Designated Copyright Agent: paul@pkadams67.io. -------------------------------------------------------------------------------- /FlipPic Images/.picasa.ini: -------------------------------------------------------------------------------- 1 | [Swap_Button_2.png] 2 | backuphash=15361 3 | filters=crop64=1,10170000ee14ff93; 4 | crop=rect64(10170000ee14ff93) 5 | -------------------------------------------------------------------------------- /FlipPic Images/Don't do this, just FlipPic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Don't do this, just FlipPic.jpg -------------------------------------------------------------------------------- /FlipPic Images/FlipPic 5.5-inch.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic 5.5-inch.mp4 -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/FlipPic Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/FlipPic Icon.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/FlipPic Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/FlipPic Logo.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-60.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-60@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-60@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-72.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-72@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-76.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-76@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-76@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-76@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Small-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Small-50.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Small-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Small-50@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Small.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Small@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Small@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Spotlight-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Spotlight-40.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Spotlight-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Spotlight-40@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-Spotlight-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-Spotlight-40@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon-iPadPro@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon-iPadPro@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/Icon@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/iTunesArtwork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/iTunesArtwork.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Green/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Green/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/FlipPic Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/FlipPic Logo.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/FlipPic.prepo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/FlipPic.prepo -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-60.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-60@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-60@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-72.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-72@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-76.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-76@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-76@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-76@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Small-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Small-50.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Small-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Small-50@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Small.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Small@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Small@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Spotlight-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Spotlight-40.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Spotlight-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Spotlight-40@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-Spotlight-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-Spotlight-40@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon-iPadPro@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon-iPadPro@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Icon@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Project_Logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Project_Logo.jpg -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/Project_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/Project_Logo.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/iTunesArtwork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/iTunesArtwork.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Orange/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Orange/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic Yellow/Group Project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic Yellow/Group Project.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic — “Your Front:Back Camera App”.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic — “Your Front:Back Camera App”.mp4 -------------------------------------------------------------------------------- /FlipPic Images/FlipPic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic.gif -------------------------------------------------------------------------------- /FlipPic Images/FlipPic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic.jpg -------------------------------------------------------------------------------- /FlipPic Images/FlipPic.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic.pptx -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/AppIcon Stylized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/AppIcon Stylized.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/FlipPic Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/FlipPic Logo.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-60.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-60@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-60@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-72.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-72@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-76.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-76@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-76@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-76@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-83.5@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Small-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Small-50.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Small-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Small-50@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Small.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Small@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Small@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Spotlight-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Spotlight-40.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Spotlight-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Spotlight-40@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon-Spotlight-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon-Spotlight-40@3x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Icon@2x.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/Reacture.prepo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/Reacture.prepo -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/iTunesArtwork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/iTunesArtwork.png -------------------------------------------------------------------------------- /FlipPic Images/FlipPic_Pink/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/FlipPic_Pink/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /FlipPic Images/Group Project.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Group Project.sketch -------------------------------------------------------------------------------- /FlipPic Images/Mirror.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Mirror.jpg -------------------------------------------------------------------------------- /FlipPic Images/Project_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Project_Logo.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 1.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 2.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 3.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 4.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/3.5-inch (iPhone 4) - Screenshot 5.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 1.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 2.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 3.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 4.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4-inch (iPhone 5) - Screenshot 5.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 1.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 2.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 3.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 4.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/4.7-inch (iPhone 6) - Screenshot 5.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 1.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 2.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 3.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 4.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots, LaunchKit/5.5-inch (iPhone 6+) - Screenshot 5.png -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/.picasa.ini: -------------------------------------------------------------------------------- 1 | [IMG_1691.jpg] 2 | backuphash=21994 3 | -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/.picasaoriginals/.picasa.ini: -------------------------------------------------------------------------------- 1 | [IMG_1691.jpg] 2 | filters=retouch=1; 3 | moddate=00000611c5d20000 4 | width=750 5 | height=1334 6 | textactive=0 7 | -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/.picasaoriginals/IMG_1691.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/.picasaoriginals/IMG_1691.jpg -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/IMG_1691.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/IMG_1691.jpg -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/IMG_1692.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/IMG_1692.jpg -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/IMG_1693.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/IMG_1693.jpg -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/IMG_1694.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/IMG_1694.jpg -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/IMG_1695.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/IMG_1695.jpg -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/IMG_1696.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/IMG_1696.jpg -------------------------------------------------------------------------------- /FlipPic Images/Screenshots/IMG_1697.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/Screenshots/IMG_1697.jpg -------------------------------------------------------------------------------- /FlipPic Images/cancelButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/cancelButton.png -------------------------------------------------------------------------------- /FlipPic Images/filterButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/filterButton.png -------------------------------------------------------------------------------- /FlipPic Images/filter_b&w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/filter_b&w.jpg -------------------------------------------------------------------------------- /FlipPic Images/filter_blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/filter_blue.jpg -------------------------------------------------------------------------------- /FlipPic Images/filter_mono.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/filter_mono.jpg -------------------------------------------------------------------------------- /FlipPic Images/filter_retro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/filter_retro.jpg -------------------------------------------------------------------------------- /FlipPic Images/filter_sepia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/filter_sepia.jpg -------------------------------------------------------------------------------- /FlipPic Images/filter_water.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/filter_water.jpg -------------------------------------------------------------------------------- /FlipPic Images/iSightFlashButton_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/iSightFlashButton_Off.png -------------------------------------------------------------------------------- /FlipPic Images/iSightFlashButton_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/iSightFlashButton_On.png -------------------------------------------------------------------------------- /FlipPic Images/layout_corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/layout_corner.png -------------------------------------------------------------------------------- /FlipPic Images/layout_diagonal_downleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/layout_diagonal_downleft.png -------------------------------------------------------------------------------- /FlipPic Images/layout_diagonal_downright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/layout_diagonal_downright.png -------------------------------------------------------------------------------- /FlipPic Images/layout_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/layout_side.png -------------------------------------------------------------------------------- /FlipPic Images/layout_southeast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/layout_southeast.png -------------------------------------------------------------------------------- /FlipPic Images/layout_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/layout_top.png -------------------------------------------------------------------------------- /FlipPic Images/mock_landscape.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/mock_landscape.jpg -------------------------------------------------------------------------------- /FlipPic Images/mock_selfie.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/mock_selfie.jpg -------------------------------------------------------------------------------- /FlipPic Images/shareButton_500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/shareButton_500.png -------------------------------------------------------------------------------- /FlipPic Images/shareButton_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/shareButton_60.png -------------------------------------------------------------------------------- /FlipPic Images/swapImageButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/swapImageButton.png -------------------------------------------------------------------------------- /FlipPic Images/switchCameraButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/FlipPic Images/switchCameraButton.png -------------------------------------------------------------------------------- /PRIVACY_POLICY: -------------------------------------------------------------------------------- 1 | BAEPS PRIVACY POLICY (last revised: January 15, 2015) 2 | 3 | Our privacy policy applies to information we collect when you use or access our website, application, or just interact with us. We may change this privacy policy from time to time. Whenever we make changes to this privacy policy, the changes become active 10 days after we post the revised privacy policy (as indicated by changing the date at the top of our privacy policy). We encourage you to review our privacy policy whenever you access our services to stay informed about our information practices and the ways you can help protect your privacy. 4 | 5 | COLLECTION OF INFORMATION 6 | 7 | INFORMATION YOU PROVIDE TO US—We collect information you provide directly to us. For example, we collect information when you participate in any interactive features of our services, fill out a form, request customer support, provide any contact or identifying information or otherwise communicate with us. The types of information we may collect include your name, email address, postal address, credit card information and other contact or identifying the information you choose to provide. 8 | 9 | INFORMATION WE COLLECT AUTOMATICALLY WHEN YOU USE THE SERVICES—When you access or use our services, we automatically gather information about you, including: 10 | 11 | • Log Information: We log information about your use of our services, including the type of browser you use, access times, pages viewed, your IP address, and the page you visited before navigating to our services. 12 | • Device Information: We collect information about the computer you use to access our services, including the hardware model, and operating system and version. 13 | Location Information: We may collect information about the location of your device each time you access or use one of our mobile applications or otherwise consent to the collection of this information. 14 | • Information Collected by Cookies and Other Tracking Technologies: We use various technologies to collect information, and this may include sending cookies to your computer. Cookies are small data files stored on your hard drive or in your device memory that helps us to improve our services and your experience, see which areas and features of our services are popular and count visits. We may also collect information using web beacons (also known as "tracking pixels"). Web beacons are electronic images that may be used in our services or emails and to track count visits or understand usage and campaign effectiveness. 15 | • For more details about how we collect information, including details about cookies and how to disable them, please see "Your Information Choices" below. 16 | 17 | INFORMATION WE COLLECT FROM OTHER SOURCES—To provide you with access to the Service, or to provide you with better service in general, we may combine information obtained from other sources (for example, a third-party service whose application you have authorized or used to sign in) and combine that with information we collect through our services. 18 | 19 | USE OF INFORMATION—We use information about you for various purposes, including to: 20 | 21 | • Provide, maintain and improve our services; 22 | • Provide services you request, process transactions and to send you related information; 23 | • Send you technical notices, updates, security alerts and support and administrative messages; 24 | • Respond to your comments, questions and requests and provide customer service; 25 | • Communicate with you about news and information related to our service; 26 | • Monitor and analyze trends, usage, and activities in connection with our services; and 27 | • Personalize and improve our services. 28 | 29 | By accessing and using our services, you consent to the processing and transfer of your information in and to the United States and other countries. 30 | 31 | SHARING OF INFORMATION—We may share personal information about you as follows: 32 | 33 | • With third party vendors and other service providers who need access to your information to carry out work on our behalf; 34 | • If we believe disclosure is reasonably necessary to comply with any applicable law, regulation, legal process or governmental request; 35 | • To enforce applicable user agreements or policies, including our Terms of Use [http://pkadams67.tumblr.com/private/137341664054/tumblr_o0zs6aLyI91v2n5n4]; and to protect us, our users or the public from harm or illegal activities; 36 | • In connection with any merger, sale of BAEPS or acquisition of all or a portion of our business to another company; and 37 | • If we notify you through our services (or in our privacy policy) that the information you provide will be shared in a particular manner and you provide such information. 38 | 39 | We may also share aggregated or anonymized information that does not directly identify you. 40 | 41 | THIRD PARTY ANALYTICS—We may allow third parties to provide analytics services. These third parties may use cookies, web beacons and other technologies to collect information about your use of the services and other websites, including your IP address, web browser, pages viewed, time spent on pages, links clicked and conversion information. This information may be used by third parties and us to, among other things, analyze and track data, determine the popularity of certain content and other websites and better understand your online activity. Our privacy policy does not apply to, and we are not responsible for, third-party cookies, web beacons or other tracking technologies and we encourage you to check the privacy policies of these third parties to learn more about their privacy practices. 42 | 43 | SECURITY—We take reasonable measures to help protect personal information from loss, theft, misuse and unauthorized access, disclosure, alteration, and destruction. 44 | 45 | YOUR INFORMATION CHOICES 46 | 47 | LOCATION INFORMATION—When you first launch any of our mobile applications that collect location information, you will be asked to consent to the application's collection of this information. If you initially consent to our collection of location information, you can subsequently stop the collection of this information at any time by changing the preferences on your mobile device. If you do so, our mobile applications, or certain features thereof, will no longer function. You may also stop our collection of location information by following the standard uninstall process to remove all of our mobile applications from your device. 48 | 49 | COOKIES—Most web browsers are set to accept cookies by default. If you prefer, you can usually choose to set your browser to remove or reject browser cookies. Please note that if you decide to remove or reject cookies, this could affect the availability and functionality of our services. 50 | 51 | PROMOTIONAL COMMUNICATIONS—You may opt out of receiving any promotional emails from us by following the instructions in those emails. If you were to opt-out, we might still send you non-promotional communications, such as those about your account or our ongoing business relations. 52 | 53 | YOUR CALIFORNIA PRIVACY RIGHTS—California law permits residents of California to request certain details about how their information is shared with third parties for direct marketing purposes. If you are a California resident and would like to make such a request, please contact us at paul@pkadams67.io. However, please note that under the law, Services such as ours that permit California residents to opt in to, or opt out of, this type of sharing are not required to provide such information upon receiving a request, but rather may respond by notifying the user of his or her right to prevent the disclosure. To opt out of having information about you shared with third parties for direct marketing purposes, please contact us at paul@pkadams67.io. 54 | 55 | CONTACT US—If you have any questions about this privacy policy, please contact us at paul@pkadams67.io. 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FlipPic -- "Your Front/Back Camera App" 2 | 3 | This innovative front/back camera app lets you take both a selfie and a snapshot with a single touch. Swap live previews from your iPhone's FaceTime HD and iSight cameras. After pressing the shutter button, FlipPic lets you apply custom layouts and filters then save or share with friends on social media. 4 | 5 | Written entirely in Swift, Apple's modern programming language, FlipPic is the culminating group project for four DevMountain iOS student developers who completed 12 weeks of immersive coding classes. 6 | 7 | Skillfully led by mentor Skyler Tanner, FlipPic's student developer team consists of Ben Patch, Andrew Porter, Eric Mead, and Paul Adams. -------------------------------------------------------------------------------- /Reacture/FlipPic.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Reacture/FlipPic.xcodeproj/project_BASE_54198.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2491CDC01C46FF3C00748664 /* PanGestureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */; }; 11 | 2491CDC21C4736B200748664 /* Icon-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2491CDC11C4736B200748664 /* Icon-60@2x.png */; }; 12 | 24B871721C3C5B7E0019DB37 /* RCT_ContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */; }; 13 | 24B871741C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */; }; 14 | 24B871791C3C5D8A0019DB37 /* RCT_CameraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */; }; 15 | 24B8717B1C3C5E140019DB37 /* RCT_EditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */; }; 16 | 716D6A281C3C462B00B762F9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 716D6A271C3C462B00B762F9 /* AppDelegate.swift */; }; 17 | 716D6A2D1C3C462B00B762F9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 716D6A2B1C3C462B00B762F9 /* Main.storyboard */; }; 18 | 716D6A2F1C3C462B00B762F9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */; }; 19 | 7192243F1C3C80D600CEE9E4 /* RCT_Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */; }; 20 | 719224451C3C886B00CEE9E4 /* RCT_ImageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */; }; 21 | 719224471C3D862300CEE9E4 /* RCT_CameraController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */; }; 22 | 719224491C3D862E00CEE9E4 /* RCT_LayoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */; }; 23 | 7192244B1C3D863700CEE9E4 /* RCT_FiltersController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */; }; 24 | 7192244D1C3D8DF500CEE9E4 /* Enums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192244C1C3D8DF500CEE9E4 /* Enums.swift */; }; 25 | 71C889AA1C49AF8600F6119C /* ZoomableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C889A91C49AF8600F6119C /* ZoomableView.swift */; }; 26 | 71C889AC1C49B16A00F6119C /* ScrollViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */; }; 27 | /* End PBXBuildFile section */ 28 | 29 | /* Begin PBXFileReference section */ 30 | 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PanGestureView.swift; sourceTree = ""; }; 31 | 2491CDC11C4736B200748664 /* Icon-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-60@2x.png"; sourceTree = ""; }; 32 | 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_ContainerViewController.swift; sourceTree = ""; }; 33 | 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_OptionItemCollectionViewCell.swift; sourceTree = ""; }; 34 | 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_CameraViewController.swift; sourceTree = ""; }; 35 | 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_EditViewController.swift; sourceTree = ""; }; 36 | 716D6A241C3C462B00B762F9 /* Reacture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Reacture.app; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 716D6A271C3C462B00B762F9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 38 | 716D6A2C1C3C462B00B762F9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 39 | 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 40 | 716D6A331C3C462B00B762F9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 41 | 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RCT_Image.swift; path = ../RCT_Image.swift; sourceTree = ""; }; 42 | 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_ImageController.swift; sourceTree = ""; }; 43 | 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_CameraController.swift; sourceTree = ""; }; 44 | 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_LayoutController.swift; sourceTree = ""; }; 45 | 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_FiltersController.swift; sourceTree = ""; }; 46 | 7192244C1C3D8DF500CEE9E4 /* Enums.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Enums.swift; sourceTree = ""; }; 47 | 71C889A91C49AF8600F6119C /* ZoomableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZoomableView.swift; sourceTree = ""; }; 48 | 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ScrollViewExtension.swift; path = ../ScrollViewExtension.swift; sourceTree = ""; }; 49 | /* End PBXFileReference section */ 50 | 51 | /* Begin PBXFrameworksBuildPhase section */ 52 | 716D6A211C3C462B00B762F9 /* Frameworks */ = { 53 | isa = PBXFrameworksBuildPhase; 54 | buildActionMask = 2147483647; 55 | files = ( 56 | ); 57 | runOnlyForDeploymentPostprocessing = 0; 58 | }; 59 | /* End PBXFrameworksBuildPhase section */ 60 | 61 | /* Begin PBXGroup section */ 62 | 24B871751C3C5CCB0019DB37 /* ViewControllers */ = { 63 | isa = PBXGroup; 64 | children = ( 65 | 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */, 66 | 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */, 67 | 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */, 68 | 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */, 69 | ); 70 | name = ViewControllers; 71 | sourceTree = ""; 72 | }; 73 | 24B871761C3C5CDA0019DB37 /* Model */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */, 77 | 7192244C1C3D8DF500CEE9E4 /* Enums.swift */, 78 | ); 79 | name = Model; 80 | sourceTree = ""; 81 | }; 82 | 24B871771C3C5CFE0019DB37 /* Controllers */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */, 86 | 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */, 87 | 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */, 88 | 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */, 89 | ); 90 | name = Controllers; 91 | sourceTree = ""; 92 | }; 93 | 716D6A1B1C3C462B00B762F9 = { 94 | isa = PBXGroup; 95 | children = ( 96 | 716D6A261C3C462B00B762F9 /* Reacture */, 97 | 716D6A251C3C462B00B762F9 /* Products */, 98 | 2491CDC11C4736B200748664 /* Icon-60@2x.png */, 99 | ); 100 | sourceTree = ""; 101 | }; 102 | 716D6A251C3C462B00B762F9 /* Products */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | 716D6A241C3C462B00B762F9 /* Reacture.app */, 106 | ); 107 | name = Products; 108 | sourceTree = ""; 109 | }; 110 | 716D6A261C3C462B00B762F9 /* Reacture */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */, 114 | 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */, 115 | 71C889A91C49AF8600F6119C /* ZoomableView.swift */, 116 | 716D6A2B1C3C462B00B762F9 /* Main.storyboard */, 117 | 24B871751C3C5CCB0019DB37 /* ViewControllers */, 118 | 24B871761C3C5CDA0019DB37 /* Model */, 119 | 24B871771C3C5CFE0019DB37 /* Controllers */, 120 | 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */, 121 | 716D6A331C3C462B00B762F9 /* Info.plist */, 122 | 716D6A271C3C462B00B762F9 /* AppDelegate.swift */, 123 | ); 124 | path = Reacture; 125 | sourceTree = ""; 126 | }; 127 | /* End PBXGroup section */ 128 | 129 | /* Begin PBXNativeTarget section */ 130 | 716D6A231C3C462B00B762F9 /* Reacture */ = { 131 | isa = PBXNativeTarget; 132 | buildConfigurationList = 716D6A361C3C462B00B762F9 /* Build configuration list for PBXNativeTarget "Reacture" */; 133 | buildPhases = ( 134 | 716D6A201C3C462B00B762F9 /* Sources */, 135 | 716D6A211C3C462B00B762F9 /* Frameworks */, 136 | 716D6A221C3C462B00B762F9 /* Resources */, 137 | ); 138 | buildRules = ( 139 | ); 140 | dependencies = ( 141 | ); 142 | name = Reacture; 143 | productName = Reacture; 144 | productReference = 716D6A241C3C462B00B762F9 /* Reacture.app */; 145 | productType = "com.apple.product-type.application"; 146 | }; 147 | /* End PBXNativeTarget section */ 148 | 149 | /* Begin PBXProject section */ 150 | 716D6A1C1C3C462B00B762F9 /* Project object */ = { 151 | isa = PBXProject; 152 | attributes = { 153 | LastSwiftUpdateCheck = 0720; 154 | LastUpgradeCheck = 0720; 155 | ORGANIZATIONNAME = PatchWork; 156 | TargetAttributes = { 157 | 716D6A231C3C462B00B762F9 = { 158 | CreatedOnToolsVersion = 7.2; 159 | DevelopmentTeam = 4M47725ZWP; 160 | }; 161 | }; 162 | }; 163 | buildConfigurationList = 716D6A1F1C3C462B00B762F9 /* Build configuration list for PBXProject "Reacture" */; 164 | compatibilityVersion = "Xcode 3.2"; 165 | developmentRegion = English; 166 | hasScannedForEncodings = 0; 167 | knownRegions = ( 168 | en, 169 | Base, 170 | ); 171 | mainGroup = 716D6A1B1C3C462B00B762F9; 172 | productRefGroup = 716D6A251C3C462B00B762F9 /* Products */; 173 | projectDirPath = ""; 174 | projectRoot = ""; 175 | targets = ( 176 | 716D6A231C3C462B00B762F9 /* Reacture */, 177 | ); 178 | }; 179 | /* End PBXProject section */ 180 | 181 | /* Begin PBXResourcesBuildPhase section */ 182 | 716D6A221C3C462B00B762F9 /* Resources */ = { 183 | isa = PBXResourcesBuildPhase; 184 | buildActionMask = 2147483647; 185 | files = ( 186 | 716D6A2F1C3C462B00B762F9 /* Assets.xcassets in Resources */, 187 | 716D6A2D1C3C462B00B762F9 /* Main.storyboard in Resources */, 188 | 2491CDC21C4736B200748664 /* Icon-60@2x.png in Resources */, 189 | ); 190 | runOnlyForDeploymentPostprocessing = 0; 191 | }; 192 | /* End PBXResourcesBuildPhase section */ 193 | 194 | /* Begin PBXSourcesBuildPhase section */ 195 | 716D6A201C3C462B00B762F9 /* Sources */ = { 196 | isa = PBXSourcesBuildPhase; 197 | buildActionMask = 2147483647; 198 | files = ( 199 | 2491CDC01C46FF3C00748664 /* PanGestureView.swift in Sources */, 200 | 719224451C3C886B00CEE9E4 /* RCT_ImageController.swift in Sources */, 201 | 24B8717B1C3C5E140019DB37 /* RCT_EditViewController.swift in Sources */, 202 | 719224491C3D862E00CEE9E4 /* RCT_LayoutController.swift in Sources */, 203 | 24B871741C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift in Sources */, 204 | 24B871791C3C5D8A0019DB37 /* RCT_CameraViewController.swift in Sources */, 205 | 24B871721C3C5B7E0019DB37 /* RCT_ContainerViewController.swift in Sources */, 206 | 71C889AC1C49B16A00F6119C /* ScrollViewExtension.swift in Sources */, 207 | 716D6A281C3C462B00B762F9 /* AppDelegate.swift in Sources */, 208 | 719224471C3D862300CEE9E4 /* RCT_CameraController.swift in Sources */, 209 | 7192243F1C3C80D600CEE9E4 /* RCT_Image.swift in Sources */, 210 | 7192244B1C3D863700CEE9E4 /* RCT_FiltersController.swift in Sources */, 211 | 7192244D1C3D8DF500CEE9E4 /* Enums.swift in Sources */, 212 | 71C889AA1C49AF8600F6119C /* ZoomableView.swift in Sources */, 213 | ); 214 | runOnlyForDeploymentPostprocessing = 0; 215 | }; 216 | /* End PBXSourcesBuildPhase section */ 217 | 218 | /* Begin PBXVariantGroup section */ 219 | 716D6A2B1C3C462B00B762F9 /* Main.storyboard */ = { 220 | isa = PBXVariantGroup; 221 | children = ( 222 | 716D6A2C1C3C462B00B762F9 /* Base */, 223 | ); 224 | name = Main.storyboard; 225 | sourceTree = ""; 226 | }; 227 | /* End PBXVariantGroup section */ 228 | 229 | /* Begin XCBuildConfiguration section */ 230 | 716D6A341C3C462B00B762F9 /* Debug */ = { 231 | isa = XCBuildConfiguration; 232 | buildSettings = { 233 | ALWAYS_SEARCH_USER_PATHS = NO; 234 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 235 | CLANG_CXX_LIBRARY = "libc++"; 236 | CLANG_ENABLE_MODULES = YES; 237 | CLANG_ENABLE_OBJC_ARC = YES; 238 | CLANG_WARN_BOOL_CONVERSION = YES; 239 | CLANG_WARN_CONSTANT_CONVERSION = YES; 240 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 241 | CLANG_WARN_EMPTY_BODY = YES; 242 | CLANG_WARN_ENUM_CONVERSION = YES; 243 | CLANG_WARN_INT_CONVERSION = YES; 244 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 245 | CLANG_WARN_UNREACHABLE_CODE = YES; 246 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 247 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 248 | COPY_PHASE_STRIP = NO; 249 | DEBUG_INFORMATION_FORMAT = dwarf; 250 | ENABLE_STRICT_OBJC_MSGSEND = YES; 251 | ENABLE_TESTABILITY = YES; 252 | GCC_C_LANGUAGE_STANDARD = gnu99; 253 | GCC_DYNAMIC_NO_PIC = NO; 254 | GCC_NO_COMMON_BLOCKS = YES; 255 | GCC_OPTIMIZATION_LEVEL = 0; 256 | GCC_PREPROCESSOR_DEFINITIONS = ( 257 | "DEBUG=1", 258 | "$(inherited)", 259 | ); 260 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 261 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 262 | GCC_WARN_UNDECLARED_SELECTOR = YES; 263 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 264 | GCC_WARN_UNUSED_FUNCTION = YES; 265 | GCC_WARN_UNUSED_VARIABLE = YES; 266 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 267 | MTL_ENABLE_DEBUG_INFO = YES; 268 | ONLY_ACTIVE_ARCH = YES; 269 | SDKROOT = iphoneos; 270 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 271 | TARGETED_DEVICE_FAMILY = "1,2"; 272 | }; 273 | name = Debug; 274 | }; 275 | 716D6A351C3C462B00B762F9 /* Release */ = { 276 | isa = XCBuildConfiguration; 277 | buildSettings = { 278 | ALWAYS_SEARCH_USER_PATHS = NO; 279 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 280 | CLANG_CXX_LIBRARY = "libc++"; 281 | CLANG_ENABLE_MODULES = YES; 282 | CLANG_ENABLE_OBJC_ARC = YES; 283 | CLANG_WARN_BOOL_CONVERSION = YES; 284 | CLANG_WARN_CONSTANT_CONVERSION = YES; 285 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 286 | CLANG_WARN_EMPTY_BODY = YES; 287 | CLANG_WARN_ENUM_CONVERSION = YES; 288 | CLANG_WARN_INT_CONVERSION = YES; 289 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 290 | CLANG_WARN_UNREACHABLE_CODE = YES; 291 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 292 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 293 | COPY_PHASE_STRIP = NO; 294 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 295 | ENABLE_NS_ASSERTIONS = NO; 296 | ENABLE_STRICT_OBJC_MSGSEND = YES; 297 | GCC_C_LANGUAGE_STANDARD = gnu99; 298 | GCC_NO_COMMON_BLOCKS = YES; 299 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 300 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 301 | GCC_WARN_UNDECLARED_SELECTOR = YES; 302 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 303 | GCC_WARN_UNUSED_FUNCTION = YES; 304 | GCC_WARN_UNUSED_VARIABLE = YES; 305 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 306 | MTL_ENABLE_DEBUG_INFO = NO; 307 | SDKROOT = iphoneos; 308 | TARGETED_DEVICE_FAMILY = "1,2"; 309 | VALIDATE_PRODUCT = YES; 310 | }; 311 | name = Release; 312 | }; 313 | 716D6A371C3C462B00B762F9 /* Debug */ = { 314 | isa = XCBuildConfiguration; 315 | buildSettings = { 316 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 317 | CODE_SIGN_IDENTITY = "iPhone Developer"; 318 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 319 | INFOPLIST_FILE = Reacture/Info.plist; 320 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 321 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 322 | PRODUCT_BUNDLE_IDENTIFIER = io.pkadams67.Reacture; 323 | PRODUCT_NAME = "$(TARGET_NAME)"; 324 | PROVISIONING_PROFILE = ""; 325 | TARGETED_DEVICE_FAMILY = 1; 326 | }; 327 | name = Debug; 328 | }; 329 | 716D6A381C3C462B00B762F9 /* Release */ = { 330 | isa = XCBuildConfiguration; 331 | buildSettings = { 332 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 333 | CODE_SIGN_IDENTITY = "iPhone Developer"; 334 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 335 | INFOPLIST_FILE = Reacture/Info.plist; 336 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 337 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 338 | PRODUCT_BUNDLE_IDENTIFIER = io.pkadams67.Reacture; 339 | PRODUCT_NAME = "$(TARGET_NAME)"; 340 | PROVISIONING_PROFILE = ""; 341 | TARGETED_DEVICE_FAMILY = 1; 342 | }; 343 | name = Release; 344 | }; 345 | /* End XCBuildConfiguration section */ 346 | 347 | /* Begin XCConfigurationList section */ 348 | 716D6A1F1C3C462B00B762F9 /* Build configuration list for PBXProject "Reacture" */ = { 349 | isa = XCConfigurationList; 350 | buildConfigurations = ( 351 | 716D6A341C3C462B00B762F9 /* Debug */, 352 | 716D6A351C3C462B00B762F9 /* Release */, 353 | ); 354 | defaultConfigurationIsVisible = 0; 355 | defaultConfigurationName = Release; 356 | }; 357 | 716D6A361C3C462B00B762F9 /* Build configuration list for PBXNativeTarget "Reacture" */ = { 358 | isa = XCConfigurationList; 359 | buildConfigurations = ( 360 | 716D6A371C3C462B00B762F9 /* Debug */, 361 | 716D6A381C3C462B00B762F9 /* Release */, 362 | ); 363 | defaultConfigurationIsVisible = 0; 364 | defaultConfigurationName = Release; 365 | }; 366 | /* End XCConfigurationList section */ 367 | }; 368 | rootObject = 716D6A1C1C3C462B00B762F9 /* Project object */; 369 | } 370 | -------------------------------------------------------------------------------- /Reacture/FlipPic.xcodeproj/project_LOCAL_54198.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2491CDC01C46FF3C00748664 /* PanGestureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */; }; 11 | 24B871721C3C5B7E0019DB37 /* RCT_ContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */; }; 12 | 24B871741C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */; }; 13 | 24B871791C3C5D8A0019DB37 /* RCT_CameraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */; }; 14 | 24B8717B1C3C5E140019DB37 /* RCT_EditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */; }; 15 | 24F9B4471C4A5C1600C85662 /* UIViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24F9B4461C4A5C1600C85662 /* UIViewExtension.swift */; }; 16 | 716D6A281C3C462B00B762F9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 716D6A271C3C462B00B762F9 /* AppDelegate.swift */; }; 17 | 716D6A2D1C3C462B00B762F9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 716D6A2B1C3C462B00B762F9 /* Main.storyboard */; }; 18 | 716D6A2F1C3C462B00B762F9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */; }; 19 | 7192243F1C3C80D600CEE9E4 /* RCT_Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */; }; 20 | 719224451C3C886B00CEE9E4 /* RCT_ImageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */; }; 21 | 719224471C3D862300CEE9E4 /* RCT_CameraController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */; }; 22 | 719224491C3D862E00CEE9E4 /* RCT_LayoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */; }; 23 | 7192244B1C3D863700CEE9E4 /* RCT_FiltersController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */; }; 24 | 7192244D1C3D8DF500CEE9E4 /* Enums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192244C1C3D8DF500CEE9E4 /* Enums.swift */; }; 25 | 71C889AA1C49AF8600F6119C /* ZoomableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C889A91C49AF8600F6119C /* ZoomableView.swift */; }; 26 | 71C889AC1C49B16A00F6119C /* ScrollViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */; }; 27 | /* End PBXBuildFile section */ 28 | 29 | /* Begin PBXFileReference section */ 30 | 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PanGestureView.swift; sourceTree = ""; }; 31 | 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_ContainerViewController.swift; sourceTree = ""; }; 32 | 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_OptionItemCollectionViewCell.swift; sourceTree = ""; }; 33 | 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_CameraViewController.swift; sourceTree = ""; }; 34 | 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_EditViewController.swift; sourceTree = ""; }; 35 | 24F9B4461C4A5C1600C85662 /* UIViewExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtension.swift; sourceTree = ""; }; 36 | 716D6A241C3C462B00B762F9 /* Reacture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Reacture.app; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 716D6A271C3C462B00B762F9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 38 | 716D6A2C1C3C462B00B762F9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 39 | 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 40 | 716D6A331C3C462B00B762F9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 41 | 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RCT_Image.swift; path = ../RCT_Image.swift; sourceTree = ""; }; 42 | 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_ImageController.swift; sourceTree = ""; }; 43 | 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_CameraController.swift; sourceTree = ""; }; 44 | 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_LayoutController.swift; sourceTree = ""; }; 45 | 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_FiltersController.swift; sourceTree = ""; }; 46 | 7192244C1C3D8DF500CEE9E4 /* Enums.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Enums.swift; sourceTree = ""; }; 47 | 71C889A91C49AF8600F6119C /* ZoomableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZoomableView.swift; sourceTree = ""; }; 48 | 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ScrollViewExtension.swift; path = ../ScrollViewExtension.swift; sourceTree = ""; }; 49 | /* End PBXFileReference section */ 50 | 51 | /* Begin PBXFrameworksBuildPhase section */ 52 | 716D6A211C3C462B00B762F9 /* Frameworks */ = { 53 | isa = PBXFrameworksBuildPhase; 54 | buildActionMask = 2147483647; 55 | files = ( 56 | ); 57 | runOnlyForDeploymentPostprocessing = 0; 58 | }; 59 | /* End PBXFrameworksBuildPhase section */ 60 | 61 | /* Begin PBXGroup section */ 62 | 24B871751C3C5CCB0019DB37 /* ViewControllers */ = { 63 | isa = PBXGroup; 64 | children = ( 65 | 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */, 66 | 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */, 67 | 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */, 68 | 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */, 69 | ); 70 | name = ViewControllers; 71 | sourceTree = ""; 72 | }; 73 | 24B871761C3C5CDA0019DB37 /* Model */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */, 77 | 7192244C1C3D8DF500CEE9E4 /* Enums.swift */, 78 | 24F9B4461C4A5C1600C85662 /* UIViewExtension.swift */, 79 | ); 80 | name = Model; 81 | sourceTree = ""; 82 | }; 83 | 24B871771C3C5CFE0019DB37 /* Controllers */ = { 84 | isa = PBXGroup; 85 | children = ( 86 | 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */, 87 | 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */, 88 | 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */, 89 | 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */, 90 | ); 91 | name = Controllers; 92 | sourceTree = ""; 93 | }; 94 | 716D6A1B1C3C462B00B762F9 = { 95 | isa = PBXGroup; 96 | children = ( 97 | 716D6A261C3C462B00B762F9 /* Reacture */, 98 | 716D6A251C3C462B00B762F9 /* Products */, 99 | ); 100 | sourceTree = ""; 101 | }; 102 | 716D6A251C3C462B00B762F9 /* Products */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | 716D6A241C3C462B00B762F9 /* Reacture.app */, 106 | ); 107 | name = Products; 108 | sourceTree = ""; 109 | }; 110 | 716D6A261C3C462B00B762F9 /* Reacture */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */, 114 | 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */, 115 | 71C889A91C49AF8600F6119C /* ZoomableView.swift */, 116 | 716D6A2B1C3C462B00B762F9 /* Main.storyboard */, 117 | 24B871751C3C5CCB0019DB37 /* ViewControllers */, 118 | 24B871761C3C5CDA0019DB37 /* Model */, 119 | 24B871771C3C5CFE0019DB37 /* Controllers */, 120 | 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */, 121 | 716D6A331C3C462B00B762F9 /* Info.plist */, 122 | 716D6A271C3C462B00B762F9 /* AppDelegate.swift */, 123 | ); 124 | path = Reacture; 125 | sourceTree = ""; 126 | }; 127 | /* End PBXGroup section */ 128 | 129 | /* Begin PBXNativeTarget section */ 130 | 716D6A231C3C462B00B762F9 /* Reacture */ = { 131 | isa = PBXNativeTarget; 132 | buildConfigurationList = 716D6A361C3C462B00B762F9 /* Build configuration list for PBXNativeTarget "Reacture" */; 133 | buildPhases = ( 134 | 716D6A201C3C462B00B762F9 /* Sources */, 135 | 716D6A211C3C462B00B762F9 /* Frameworks */, 136 | 716D6A221C3C462B00B762F9 /* Resources */, 137 | ); 138 | buildRules = ( 139 | ); 140 | dependencies = ( 141 | ); 142 | name = Reacture; 143 | productName = Reacture; 144 | productReference = 716D6A241C3C462B00B762F9 /* Reacture.app */; 145 | productType = "com.apple.product-type.application"; 146 | }; 147 | /* End PBXNativeTarget section */ 148 | 149 | /* Begin PBXProject section */ 150 | 716D6A1C1C3C462B00B762F9 /* Project object */ = { 151 | isa = PBXProject; 152 | attributes = { 153 | LastSwiftUpdateCheck = 0720; 154 | LastUpgradeCheck = 0720; 155 | ORGANIZATIONNAME = PatchWork; 156 | TargetAttributes = { 157 | 716D6A231C3C462B00B762F9 = { 158 | CreatedOnToolsVersion = 7.2; 159 | DevelopmentTeam = 9D3AY7C5NW; 160 | }; 161 | }; 162 | }; 163 | buildConfigurationList = 716D6A1F1C3C462B00B762F9 /* Build configuration list for PBXProject "Reacture" */; 164 | compatibilityVersion = "Xcode 3.2"; 165 | developmentRegion = English; 166 | hasScannedForEncodings = 0; 167 | knownRegions = ( 168 | en, 169 | Base, 170 | ); 171 | mainGroup = 716D6A1B1C3C462B00B762F9; 172 | productRefGroup = 716D6A251C3C462B00B762F9 /* Products */; 173 | projectDirPath = ""; 174 | projectRoot = ""; 175 | targets = ( 176 | 716D6A231C3C462B00B762F9 /* Reacture */, 177 | ); 178 | }; 179 | /* End PBXProject section */ 180 | 181 | /* Begin PBXResourcesBuildPhase section */ 182 | 716D6A221C3C462B00B762F9 /* Resources */ = { 183 | isa = PBXResourcesBuildPhase; 184 | buildActionMask = 2147483647; 185 | files = ( 186 | 716D6A2F1C3C462B00B762F9 /* Assets.xcassets in Resources */, 187 | 716D6A2D1C3C462B00B762F9 /* Main.storyboard in Resources */, 188 | ); 189 | runOnlyForDeploymentPostprocessing = 0; 190 | }; 191 | /* End PBXResourcesBuildPhase section */ 192 | 193 | /* Begin PBXSourcesBuildPhase section */ 194 | 716D6A201C3C462B00B762F9 /* Sources */ = { 195 | isa = PBXSourcesBuildPhase; 196 | buildActionMask = 2147483647; 197 | files = ( 198 | 24F9B4471C4A5C1600C85662 /* UIViewExtension.swift in Sources */, 199 | 2491CDC01C46FF3C00748664 /* PanGestureView.swift in Sources */, 200 | 719224451C3C886B00CEE9E4 /* RCT_ImageController.swift in Sources */, 201 | 24B8717B1C3C5E140019DB37 /* RCT_EditViewController.swift in Sources */, 202 | 719224491C3D862E00CEE9E4 /* RCT_LayoutController.swift in Sources */, 203 | 24B871741C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift in Sources */, 204 | 24B871791C3C5D8A0019DB37 /* RCT_CameraViewController.swift in Sources */, 205 | 24B871721C3C5B7E0019DB37 /* RCT_ContainerViewController.swift in Sources */, 206 | 71C889AC1C49B16A00F6119C /* ScrollViewExtension.swift in Sources */, 207 | 716D6A281C3C462B00B762F9 /* AppDelegate.swift in Sources */, 208 | 719224471C3D862300CEE9E4 /* RCT_CameraController.swift in Sources */, 209 | 7192243F1C3C80D600CEE9E4 /* RCT_Image.swift in Sources */, 210 | 7192244B1C3D863700CEE9E4 /* RCT_FiltersController.swift in Sources */, 211 | 7192244D1C3D8DF500CEE9E4 /* Enums.swift in Sources */, 212 | 71C889AA1C49AF8600F6119C /* ZoomableView.swift in Sources */, 213 | ); 214 | runOnlyForDeploymentPostprocessing = 0; 215 | }; 216 | /* End PBXSourcesBuildPhase section */ 217 | 218 | /* Begin PBXVariantGroup section */ 219 | 716D6A2B1C3C462B00B762F9 /* Main.storyboard */ = { 220 | isa = PBXVariantGroup; 221 | children = ( 222 | 716D6A2C1C3C462B00B762F9 /* Base */, 223 | ); 224 | name = Main.storyboard; 225 | sourceTree = ""; 226 | }; 227 | /* End PBXVariantGroup section */ 228 | 229 | /* Begin XCBuildConfiguration section */ 230 | 716D6A341C3C462B00B762F9 /* Debug */ = { 231 | isa = XCBuildConfiguration; 232 | buildSettings = { 233 | ALWAYS_SEARCH_USER_PATHS = NO; 234 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 235 | CLANG_CXX_LIBRARY = "libc++"; 236 | CLANG_ENABLE_MODULES = YES; 237 | CLANG_ENABLE_OBJC_ARC = YES; 238 | CLANG_WARN_BOOL_CONVERSION = YES; 239 | CLANG_WARN_CONSTANT_CONVERSION = YES; 240 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 241 | CLANG_WARN_EMPTY_BODY = YES; 242 | CLANG_WARN_ENUM_CONVERSION = YES; 243 | CLANG_WARN_INT_CONVERSION = YES; 244 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 245 | CLANG_WARN_UNREACHABLE_CODE = YES; 246 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 247 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 248 | COPY_PHASE_STRIP = NO; 249 | DEBUG_INFORMATION_FORMAT = dwarf; 250 | ENABLE_STRICT_OBJC_MSGSEND = YES; 251 | ENABLE_TESTABILITY = YES; 252 | GCC_C_LANGUAGE_STANDARD = gnu99; 253 | GCC_DYNAMIC_NO_PIC = NO; 254 | GCC_NO_COMMON_BLOCKS = YES; 255 | GCC_OPTIMIZATION_LEVEL = 0; 256 | GCC_PREPROCESSOR_DEFINITIONS = ( 257 | "DEBUG=1", 258 | "$(inherited)", 259 | ); 260 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 261 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 262 | GCC_WARN_UNDECLARED_SELECTOR = YES; 263 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 264 | GCC_WARN_UNUSED_FUNCTION = YES; 265 | GCC_WARN_UNUSED_VARIABLE = YES; 266 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 267 | MTL_ENABLE_DEBUG_INFO = YES; 268 | ONLY_ACTIVE_ARCH = YES; 269 | SDKROOT = iphoneos; 270 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 271 | TARGETED_DEVICE_FAMILY = "1,2"; 272 | }; 273 | name = Debug; 274 | }; 275 | 716D6A351C3C462B00B762F9 /* Release */ = { 276 | isa = XCBuildConfiguration; 277 | buildSettings = { 278 | ALWAYS_SEARCH_USER_PATHS = NO; 279 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 280 | CLANG_CXX_LIBRARY = "libc++"; 281 | CLANG_ENABLE_MODULES = YES; 282 | CLANG_ENABLE_OBJC_ARC = YES; 283 | CLANG_WARN_BOOL_CONVERSION = YES; 284 | CLANG_WARN_CONSTANT_CONVERSION = YES; 285 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 286 | CLANG_WARN_EMPTY_BODY = YES; 287 | CLANG_WARN_ENUM_CONVERSION = YES; 288 | CLANG_WARN_INT_CONVERSION = YES; 289 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 290 | CLANG_WARN_UNREACHABLE_CODE = YES; 291 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 292 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 293 | COPY_PHASE_STRIP = NO; 294 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 295 | ENABLE_NS_ASSERTIONS = NO; 296 | ENABLE_STRICT_OBJC_MSGSEND = YES; 297 | GCC_C_LANGUAGE_STANDARD = gnu99; 298 | GCC_NO_COMMON_BLOCKS = YES; 299 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 300 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 301 | GCC_WARN_UNDECLARED_SELECTOR = YES; 302 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 303 | GCC_WARN_UNUSED_FUNCTION = YES; 304 | GCC_WARN_UNUSED_VARIABLE = YES; 305 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 306 | MTL_ENABLE_DEBUG_INFO = NO; 307 | SDKROOT = iphoneos; 308 | TARGETED_DEVICE_FAMILY = "1,2"; 309 | VALIDATE_PRODUCT = YES; 310 | }; 311 | name = Release; 312 | }; 313 | 716D6A371C3C462B00B762F9 /* Debug */ = { 314 | isa = XCBuildConfiguration; 315 | buildSettings = { 316 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 317 | CODE_SIGN_IDENTITY = "iPhone Developer"; 318 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 319 | INFOPLIST_FILE = Reacture/Info.plist; 320 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 321 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 322 | PRODUCT_BUNDLE_IDENTIFIER = io.pkadams67.Reacture; 323 | PRODUCT_NAME = "$(TARGET_NAME)"; 324 | PROVISIONING_PROFILE = ""; 325 | TARGETED_DEVICE_FAMILY = 1; 326 | }; 327 | name = Debug; 328 | }; 329 | 716D6A381C3C462B00B762F9 /* Release */ = { 330 | isa = XCBuildConfiguration; 331 | buildSettings = { 332 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 333 | CODE_SIGN_IDENTITY = "iPhone Developer"; 334 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 335 | INFOPLIST_FILE = Reacture/Info.plist; 336 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 337 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 338 | PRODUCT_BUNDLE_IDENTIFIER = io.pkadams67.Reacture; 339 | PRODUCT_NAME = "$(TARGET_NAME)"; 340 | PROVISIONING_PROFILE = ""; 341 | TARGETED_DEVICE_FAMILY = 1; 342 | }; 343 | name = Release; 344 | }; 345 | /* End XCBuildConfiguration section */ 346 | 347 | /* Begin XCConfigurationList section */ 348 | 716D6A1F1C3C462B00B762F9 /* Build configuration list for PBXProject "Reacture" */ = { 349 | isa = XCConfigurationList; 350 | buildConfigurations = ( 351 | 716D6A341C3C462B00B762F9 /* Debug */, 352 | 716D6A351C3C462B00B762F9 /* Release */, 353 | ); 354 | defaultConfigurationIsVisible = 0; 355 | defaultConfigurationName = Release; 356 | }; 357 | 716D6A361C3C462B00B762F9 /* Build configuration list for PBXNativeTarget "Reacture" */ = { 358 | isa = XCConfigurationList; 359 | buildConfigurations = ( 360 | 716D6A371C3C462B00B762F9 /* Debug */, 361 | 716D6A381C3C462B00B762F9 /* Release */, 362 | ); 363 | defaultConfigurationIsVisible = 0; 364 | defaultConfigurationName = Release; 365 | }; 366 | /* End XCConfigurationList section */ 367 | }; 368 | rootObject = 716D6A1C1C3C462B00B762F9 /* Project object */; 369 | } 370 | -------------------------------------------------------------------------------- /Reacture/FlipPic.xcodeproj/project_REMOTE_54198.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2491CDC01C46FF3C00748664 /* PanGestureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */; }; 11 | 2491CDC21C4736B200748664 /* Icon-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2491CDC11C4736B200748664 /* Icon-60@2x.png */; }; 12 | 24B871721C3C5B7E0019DB37 /* RCT_ContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */; }; 13 | 24B871741C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */; }; 14 | 24B871791C3C5D8A0019DB37 /* RCT_CameraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */; }; 15 | 24B8717B1C3C5E140019DB37 /* RCT_EditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */; }; 16 | 24F919211C4AF79E005A47EA /* photoShutter2.caf in Resources */ = {isa = PBXBuildFile; fileRef = 24F919201C4AF79E005A47EA /* photoShutter2.caf */; }; 17 | 716D6A281C3C462B00B762F9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 716D6A271C3C462B00B762F9 /* AppDelegate.swift */; }; 18 | 716D6A2D1C3C462B00B762F9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 716D6A2B1C3C462B00B762F9 /* Main.storyboard */; }; 19 | 716D6A2F1C3C462B00B762F9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */; }; 20 | 7192243F1C3C80D600CEE9E4 /* RCT_Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */; }; 21 | 719224451C3C886B00CEE9E4 /* RCT_ImageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */; }; 22 | 719224471C3D862300CEE9E4 /* RCT_CameraController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */; }; 23 | 719224491C3D862E00CEE9E4 /* RCT_LayoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */; }; 24 | 7192244B1C3D863700CEE9E4 /* RCT_FiltersController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */; }; 25 | 7192244D1C3D8DF500CEE9E4 /* Enums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7192244C1C3D8DF500CEE9E4 /* Enums.swift */; }; 26 | 71C889AA1C49AF8600F6119C /* ZoomableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C889A91C49AF8600F6119C /* ZoomableView.swift */; }; 27 | 71C889AC1C49B16A00F6119C /* ScrollViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */; }; 28 | /* End PBXBuildFile section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PanGestureView.swift; sourceTree = ""; }; 32 | 2491CDC11C4736B200748664 /* Icon-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-60@2x.png"; sourceTree = ""; }; 33 | 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_ContainerViewController.swift; sourceTree = ""; }; 34 | 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_OptionItemCollectionViewCell.swift; sourceTree = ""; }; 35 | 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_CameraViewController.swift; sourceTree = ""; }; 36 | 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_EditViewController.swift; sourceTree = ""; }; 37 | 24F919201C4AF79E005A47EA /* photoShutter2.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = photoShutter2.caf; sourceTree = ""; }; 38 | 716D6A241C3C462B00B762F9 /* Reacture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Reacture.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 716D6A271C3C462B00B762F9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 40 | 716D6A2C1C3C462B00B762F9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 41 | 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 42 | 716D6A331C3C462B00B762F9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 43 | 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RCT_Image.swift; path = ../RCT_Image.swift; sourceTree = ""; }; 44 | 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_ImageController.swift; sourceTree = ""; }; 45 | 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_CameraController.swift; sourceTree = ""; }; 46 | 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_LayoutController.swift; sourceTree = ""; }; 47 | 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCT_FiltersController.swift; sourceTree = ""; }; 48 | 7192244C1C3D8DF500CEE9E4 /* Enums.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Enums.swift; sourceTree = ""; }; 49 | 71C889A91C49AF8600F6119C /* ZoomableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZoomableView.swift; sourceTree = ""; }; 50 | 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ScrollViewExtension.swift; path = ../ScrollViewExtension.swift; sourceTree = ""; }; 51 | /* End PBXFileReference section */ 52 | 53 | /* Begin PBXFrameworksBuildPhase section */ 54 | 716D6A211C3C462B00B762F9 /* Frameworks */ = { 55 | isa = PBXFrameworksBuildPhase; 56 | buildActionMask = 2147483647; 57 | files = ( 58 | ); 59 | runOnlyForDeploymentPostprocessing = 0; 60 | }; 61 | /* End PBXFrameworksBuildPhase section */ 62 | 63 | /* Begin PBXGroup section */ 64 | 24B871751C3C5CCB0019DB37 /* ViewControllers */ = { 65 | isa = PBXGroup; 66 | children = ( 67 | 24B871781C3C5D8A0019DB37 /* RCT_CameraViewController.swift */, 68 | 24B8717A1C3C5E140019DB37 /* RCT_EditViewController.swift */, 69 | 24B871711C3C5B7E0019DB37 /* RCT_ContainerViewController.swift */, 70 | 24B871731C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift */, 71 | ); 72 | name = ViewControllers; 73 | sourceTree = ""; 74 | }; 75 | 24B871761C3C5CDA0019DB37 /* Model */ = { 76 | isa = PBXGroup; 77 | children = ( 78 | 7192243E1C3C80D600CEE9E4 /* RCT_Image.swift */, 79 | 7192244C1C3D8DF500CEE9E4 /* Enums.swift */, 80 | ); 81 | name = Model; 82 | sourceTree = ""; 83 | }; 84 | 24B871771C3C5CFE0019DB37 /* Controllers */ = { 85 | isa = PBXGroup; 86 | children = ( 87 | 719224441C3C886B00CEE9E4 /* RCT_ImageController.swift */, 88 | 719224461C3D862300CEE9E4 /* RCT_CameraController.swift */, 89 | 719224481C3D862E00CEE9E4 /* RCT_LayoutController.swift */, 90 | 7192244A1C3D863700CEE9E4 /* RCT_FiltersController.swift */, 91 | ); 92 | name = Controllers; 93 | sourceTree = ""; 94 | }; 95 | 716D6A1B1C3C462B00B762F9 = { 96 | isa = PBXGroup; 97 | children = ( 98 | 716D6A261C3C462B00B762F9 /* Reacture */, 99 | 716D6A251C3C462B00B762F9 /* Products */, 100 | 2491CDC11C4736B200748664 /* Icon-60@2x.png */, 101 | ); 102 | sourceTree = ""; 103 | }; 104 | 716D6A251C3C462B00B762F9 /* Products */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | 716D6A241C3C462B00B762F9 /* Reacture.app */, 108 | ); 109 | name = Products; 110 | sourceTree = ""; 111 | }; 112 | 716D6A261C3C462B00B762F9 /* Reacture */ = { 113 | isa = PBXGroup; 114 | children = ( 115 | 71C889AB1C49B16A00F6119C /* ScrollViewExtension.swift */, 116 | 2491CDBF1C46FF3C00748664 /* PanGestureView.swift */, 117 | 71C889A91C49AF8600F6119C /* ZoomableView.swift */, 118 | 716D6A2B1C3C462B00B762F9 /* Main.storyboard */, 119 | 24B871751C3C5CCB0019DB37 /* ViewControllers */, 120 | 24B871761C3C5CDA0019DB37 /* Model */, 121 | 24B871771C3C5CFE0019DB37 /* Controllers */, 122 | 716D6A2E1C3C462B00B762F9 /* Assets.xcassets */, 123 | 716D6A331C3C462B00B762F9 /* Info.plist */, 124 | 716D6A271C3C462B00B762F9 /* AppDelegate.swift */, 125 | 24F919201C4AF79E005A47EA /* photoShutter2.caf */, 126 | ); 127 | path = Reacture; 128 | sourceTree = ""; 129 | }; 130 | /* End PBXGroup section */ 131 | 132 | /* Begin PBXNativeTarget section */ 133 | 716D6A231C3C462B00B762F9 /* Reacture */ = { 134 | isa = PBXNativeTarget; 135 | buildConfigurationList = 716D6A361C3C462B00B762F9 /* Build configuration list for PBXNativeTarget "Reacture" */; 136 | buildPhases = ( 137 | 716D6A201C3C462B00B762F9 /* Sources */, 138 | 716D6A211C3C462B00B762F9 /* Frameworks */, 139 | 716D6A221C3C462B00B762F9 /* Resources */, 140 | ); 141 | buildRules = ( 142 | ); 143 | dependencies = ( 144 | ); 145 | name = Reacture; 146 | productName = Reacture; 147 | productReference = 716D6A241C3C462B00B762F9 /* Reacture.app */; 148 | productType = "com.apple.product-type.application"; 149 | }; 150 | /* End PBXNativeTarget section */ 151 | 152 | /* Begin PBXProject section */ 153 | 716D6A1C1C3C462B00B762F9 /* Project object */ = { 154 | isa = PBXProject; 155 | attributes = { 156 | LastSwiftUpdateCheck = 0720; 157 | LastUpgradeCheck = 0720; 158 | ORGANIZATIONNAME = PatchWork; 159 | TargetAttributes = { 160 | 716D6A231C3C462B00B762F9 = { 161 | CreatedOnToolsVersion = 7.2; 162 | DevelopmentTeam = 4M47725ZWP; 163 | }; 164 | }; 165 | }; 166 | buildConfigurationList = 716D6A1F1C3C462B00B762F9 /* Build configuration list for PBXProject "Reacture" */; 167 | compatibilityVersion = "Xcode 3.2"; 168 | developmentRegion = English; 169 | hasScannedForEncodings = 0; 170 | knownRegions = ( 171 | en, 172 | Base, 173 | ); 174 | mainGroup = 716D6A1B1C3C462B00B762F9; 175 | productRefGroup = 716D6A251C3C462B00B762F9 /* Products */; 176 | projectDirPath = ""; 177 | projectRoot = ""; 178 | targets = ( 179 | 716D6A231C3C462B00B762F9 /* Reacture */, 180 | ); 181 | }; 182 | /* End PBXProject section */ 183 | 184 | /* Begin PBXResourcesBuildPhase section */ 185 | 716D6A221C3C462B00B762F9 /* Resources */ = { 186 | isa = PBXResourcesBuildPhase; 187 | buildActionMask = 2147483647; 188 | files = ( 189 | 24F919211C4AF79E005A47EA /* photoShutter2.caf in Resources */, 190 | 716D6A2F1C3C462B00B762F9 /* Assets.xcassets in Resources */, 191 | 716D6A2D1C3C462B00B762F9 /* Main.storyboard in Resources */, 192 | 2491CDC21C4736B200748664 /* Icon-60@2x.png in Resources */, 193 | ); 194 | runOnlyForDeploymentPostprocessing = 0; 195 | }; 196 | /* End PBXResourcesBuildPhase section */ 197 | 198 | /* Begin PBXSourcesBuildPhase section */ 199 | 716D6A201C3C462B00B762F9 /* Sources */ = { 200 | isa = PBXSourcesBuildPhase; 201 | buildActionMask = 2147483647; 202 | files = ( 203 | 2491CDC01C46FF3C00748664 /* PanGestureView.swift in Sources */, 204 | 719224451C3C886B00CEE9E4 /* RCT_ImageController.swift in Sources */, 205 | 24B8717B1C3C5E140019DB37 /* RCT_EditViewController.swift in Sources */, 206 | 719224491C3D862E00CEE9E4 /* RCT_LayoutController.swift in Sources */, 207 | 24B871741C3C5C780019DB37 /* RCT_OptionItemCollectionViewCell.swift in Sources */, 208 | 24B871791C3C5D8A0019DB37 /* RCT_CameraViewController.swift in Sources */, 209 | 24B871721C3C5B7E0019DB37 /* RCT_ContainerViewController.swift in Sources */, 210 | 71C889AC1C49B16A00F6119C /* ScrollViewExtension.swift in Sources */, 211 | 716D6A281C3C462B00B762F9 /* AppDelegate.swift in Sources */, 212 | 719224471C3D862300CEE9E4 /* RCT_CameraController.swift in Sources */, 213 | 7192243F1C3C80D600CEE9E4 /* RCT_Image.swift in Sources */, 214 | 7192244B1C3D863700CEE9E4 /* RCT_FiltersController.swift in Sources */, 215 | 7192244D1C3D8DF500CEE9E4 /* Enums.swift in Sources */, 216 | 71C889AA1C49AF8600F6119C /* ZoomableView.swift in Sources */, 217 | ); 218 | runOnlyForDeploymentPostprocessing = 0; 219 | }; 220 | /* End PBXSourcesBuildPhase section */ 221 | 222 | /* Begin PBXVariantGroup section */ 223 | 716D6A2B1C3C462B00B762F9 /* Main.storyboard */ = { 224 | isa = PBXVariantGroup; 225 | children = ( 226 | 716D6A2C1C3C462B00B762F9 /* Base */, 227 | ); 228 | name = Main.storyboard; 229 | sourceTree = ""; 230 | }; 231 | /* End PBXVariantGroup section */ 232 | 233 | /* Begin XCBuildConfiguration section */ 234 | 716D6A341C3C462B00B762F9 /* Debug */ = { 235 | isa = XCBuildConfiguration; 236 | buildSettings = { 237 | ALWAYS_SEARCH_USER_PATHS = NO; 238 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 239 | CLANG_CXX_LIBRARY = "libc++"; 240 | CLANG_ENABLE_MODULES = YES; 241 | CLANG_ENABLE_OBJC_ARC = YES; 242 | CLANG_WARN_BOOL_CONVERSION = YES; 243 | CLANG_WARN_CONSTANT_CONVERSION = YES; 244 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 245 | CLANG_WARN_EMPTY_BODY = YES; 246 | CLANG_WARN_ENUM_CONVERSION = YES; 247 | CLANG_WARN_INT_CONVERSION = YES; 248 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 249 | CLANG_WARN_UNREACHABLE_CODE = YES; 250 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 251 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 252 | COPY_PHASE_STRIP = NO; 253 | DEBUG_INFORMATION_FORMAT = dwarf; 254 | ENABLE_STRICT_OBJC_MSGSEND = YES; 255 | ENABLE_TESTABILITY = YES; 256 | GCC_C_LANGUAGE_STANDARD = gnu99; 257 | GCC_DYNAMIC_NO_PIC = NO; 258 | GCC_NO_COMMON_BLOCKS = YES; 259 | GCC_OPTIMIZATION_LEVEL = 0; 260 | GCC_PREPROCESSOR_DEFINITIONS = ( 261 | "DEBUG=1", 262 | "$(inherited)", 263 | ); 264 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 265 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 266 | GCC_WARN_UNDECLARED_SELECTOR = YES; 267 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 268 | GCC_WARN_UNUSED_FUNCTION = YES; 269 | GCC_WARN_UNUSED_VARIABLE = YES; 270 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 271 | MTL_ENABLE_DEBUG_INFO = YES; 272 | ONLY_ACTIVE_ARCH = YES; 273 | SDKROOT = iphoneos; 274 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 275 | TARGETED_DEVICE_FAMILY = "1,2"; 276 | }; 277 | name = Debug; 278 | }; 279 | 716D6A351C3C462B00B762F9 /* Release */ = { 280 | isa = XCBuildConfiguration; 281 | buildSettings = { 282 | ALWAYS_SEARCH_USER_PATHS = NO; 283 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 284 | CLANG_CXX_LIBRARY = "libc++"; 285 | CLANG_ENABLE_MODULES = YES; 286 | CLANG_ENABLE_OBJC_ARC = YES; 287 | CLANG_WARN_BOOL_CONVERSION = YES; 288 | CLANG_WARN_CONSTANT_CONVERSION = YES; 289 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 290 | CLANG_WARN_EMPTY_BODY = YES; 291 | CLANG_WARN_ENUM_CONVERSION = YES; 292 | CLANG_WARN_INT_CONVERSION = YES; 293 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 294 | CLANG_WARN_UNREACHABLE_CODE = YES; 295 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 296 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 297 | COPY_PHASE_STRIP = NO; 298 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 299 | ENABLE_NS_ASSERTIONS = NO; 300 | ENABLE_STRICT_OBJC_MSGSEND = YES; 301 | GCC_C_LANGUAGE_STANDARD = gnu99; 302 | GCC_NO_COMMON_BLOCKS = YES; 303 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 304 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 305 | GCC_WARN_UNDECLARED_SELECTOR = YES; 306 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 307 | GCC_WARN_UNUSED_FUNCTION = YES; 308 | GCC_WARN_UNUSED_VARIABLE = YES; 309 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 310 | MTL_ENABLE_DEBUG_INFO = NO; 311 | SDKROOT = iphoneos; 312 | TARGETED_DEVICE_FAMILY = "1,2"; 313 | VALIDATE_PRODUCT = YES; 314 | }; 315 | name = Release; 316 | }; 317 | 716D6A371C3C462B00B762F9 /* Debug */ = { 318 | isa = XCBuildConfiguration; 319 | buildSettings = { 320 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 321 | CODE_SIGN_IDENTITY = "iPhone Developer"; 322 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 323 | INFOPLIST_FILE = Reacture/Info.plist; 324 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 325 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 326 | PRODUCT_BUNDLE_IDENTIFIER = io.pkadams67.Reacture; 327 | PRODUCT_NAME = "$(TARGET_NAME)"; 328 | PROVISIONING_PROFILE = ""; 329 | TARGETED_DEVICE_FAMILY = 1; 330 | }; 331 | name = Debug; 332 | }; 333 | 716D6A381C3C462B00B762F9 /* Release */ = { 334 | isa = XCBuildConfiguration; 335 | buildSettings = { 336 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 337 | CODE_SIGN_IDENTITY = "iPhone Developer"; 338 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 339 | INFOPLIST_FILE = Reacture/Info.plist; 340 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 341 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 342 | PRODUCT_BUNDLE_IDENTIFIER = io.pkadams67.Reacture; 343 | PRODUCT_NAME = "$(TARGET_NAME)"; 344 | PROVISIONING_PROFILE = ""; 345 | TARGETED_DEVICE_FAMILY = 1; 346 | }; 347 | name = Release; 348 | }; 349 | /* End XCBuildConfiguration section */ 350 | 351 | /* Begin XCConfigurationList section */ 352 | 716D6A1F1C3C462B00B762F9 /* Build configuration list for PBXProject "Reacture" */ = { 353 | isa = XCConfigurationList; 354 | buildConfigurations = ( 355 | 716D6A341C3C462B00B762F9 /* Debug */, 356 | 716D6A351C3C462B00B762F9 /* Release */, 357 | ); 358 | defaultConfigurationIsVisible = 0; 359 | defaultConfigurationName = Release; 360 | }; 361 | 716D6A361C3C462B00B762F9 /* Build configuration list for PBXNativeTarget "Reacture" */ = { 362 | isa = XCConfigurationList; 363 | buildConfigurations = ( 364 | 716D6A371C3C462B00B762F9 /* Debug */, 365 | 716D6A381C3C462B00B762F9 /* Release */, 366 | ); 367 | defaultConfigurationIsVisible = 0; 368 | defaultConfigurationName = Release; 369 | }; 370 | /* End XCConfigurationList section */ 371 | }; 372 | rootObject = 716D6A1C1C3C462B00B762F9 /* Project object */; 373 | } 374 | -------------------------------------------------------------------------------- /Reacture/Launch Screen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 36 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /Reacture/RCT_Image.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RCT_Image.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/5/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class RCT_Image { 12 | 13 | // Front is faceTime Camera (front) 14 | var imageFrontCIImage: CIImage 15 | 16 | // Back is iSight HD Camera (back) 17 | var imageBackCIImage: CIImage 18 | var originalImageFrontCIImage: CIImage 19 | var originalImageBackCIImage: CIImage 20 | 21 | // UIImage Conversion Variables 22 | var imageFrontUIImage: UIImage 23 | var imageBackUIImage: UIImage 24 | var layout: Layout 25 | 26 | init(imageFront: UIImage, imageBack: UIImage, layout: Layout = Layout(rawValue: 0)!) { 27 | self.imageFrontUIImage = imageFront 28 | self.imageBackUIImage = imageBack 29 | self.imageFrontCIImage = CIImage(image: imageFront)! 30 | self.imageBackCIImage = CIImage(image: imageBack)! 31 | self.originalImageFrontCIImage = imageFrontCIImage.copy() as! CIImage 32 | self.originalImageBackCIImage = imageBackCIImage.copy() as! CIImage 33 | self.layout = layout 34 | } 35 | } -------------------------------------------------------------------------------- /Reacture/Reacture/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // FlipPic 4 | // 5 | // Created by Andrew Porter on 1/5/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 17 | 18 | let firstLaunch = NSUserDefaults.standardUserDefaults().boolForKey("FirstLaunch") 19 | if firstLaunch { 20 | print("Not first launch.") 21 | } 22 | else { 23 | print("First launch, setting NSUserDefault.") 24 | 25 | self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 26 | 27 | let storyboard = UIStoryboard(name: "Main", bundle: nil) 28 | 29 | let initialViewController = storyboard.instantiateViewControllerWithIdentifier("TutorialView") 30 | 31 | self.window?.rootViewController = initialViewController 32 | self.window?.makeKeyAndVisible() 33 | } 34 | return true 35 | } 36 | 37 | func applicationWillResignActive(application: UIApplication) { 38 | } 39 | 40 | func applicationDidEnterBackground(application: UIApplication) { 41 | } 42 | 43 | func applicationWillEnterForeground(application: UIApplication) { 44 | } 45 | 46 | func applicationDidBecomeActive(application: UIApplication) { 47 | } 48 | 49 | func applicationWillTerminate(application: UIApplication) { 50 | } 51 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-Small@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "29x29", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-Small@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "40x40", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-Spotlight-40@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "40x40", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-Spotlight-40@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "60x60", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-60@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "60x60", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-60@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "29x29", 41 | "idiom" : "ipad", 42 | "filename" : "Icon-Small.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "29x29", 47 | "idiom" : "ipad", 48 | "filename" : "Icon-Small@2x-1.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "40x40", 53 | "idiom" : "ipad", 54 | "filename" : "Icon-Spotlight-40.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "40x40", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-Spotlight-40@2x-1.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "76x76", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-76.png", 67 | "scale" : "1x" 68 | }, 69 | { 70 | "size" : "76x76", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-76@2x.png", 73 | "scale" : "2x" 74 | }, 75 | { 76 | "size" : "83.5x83.5", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-iPadPro@2x.png", 79 | "scale" : "2x" 80 | } 81 | ], 82 | "info" : { 83 | "version" : 1, 84 | "author" : "xcode" 85 | } 86 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Mock Images/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Mock Images/mock_landscape.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Landscape.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Mock Images/mock_landscape.imageset/Landscape.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Mock Images/mock_landscape.imageset/Landscape.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Mock Images/mock_selfie.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "selfie.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Mock Images/mock_selfie.imageset/selfie.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Mock Images/mock_selfie.imageset/selfie.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_b&w.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filter_b&w.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_b&w.imageset/filter_b&w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_b&w.imageset/filter_b&w.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_blue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filter_blue.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_blue.imageset/filter_blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_blue.imageset/filter_blue.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filterButton-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_icon.imageset/filterButton-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_icon.imageset/filterButton-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_mono.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filter_mono.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_mono.imageset/filter_mono.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_mono.imageset/filter_mono.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_none.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filter_none.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_none.imageset/filter_none.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_none.imageset/filter_none.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_retro.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filter_retro.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_retro.imageset/filter_retro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_retro.imageset/filter_retro.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_sepia.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filter_sepia.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_sepia.imageset/filter_sepia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_sepia.imageset/filter_sepia.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_water.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "filter_water.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_water.imageset/filter_water.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Filter Icons/filter_water.imageset/filter_water.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_corner.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "layout_corner-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_corner.imageset/layout_corner-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_corner.imageset/layout_corner-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_diagonal_downleft.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "layout_diagonal_downleft-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_diagonal_downleft.imageset/layout_diagonal_downleft-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_diagonal_downleft.imageset/layout_diagonal_downleft-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_diagonal_downright.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "layout_diagonal_downright-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_diagonal_downright.imageset/layout_diagonal_downright-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_diagonal_downright.imageset/layout_diagonal_downright-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_side.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "layout_side-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_side.imageset/layout_side-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_side.imageset/layout_side-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_southeast.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "layout_southeast.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_southeast.imageset/layout_southeast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_southeast.imageset/layout_southeast.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_top.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "layout_top-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_top.imageset/layout_top-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/Toolbar Icons/Layout Icons/layout_top.imageset/layout_top-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/appIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Icon-iPadPro@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/appIcon.imageset/Icon-iPadPro@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/appIcon.imageset/Icon-iPadPro@2x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/cancelButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "cancelButton-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/cancelButton.imageset/cancelButton-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/cancelButton.imageset/cancelButton-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/iSightFlashButton_Off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iSightFlashButton_Off.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/iSightFlashButton_Off.imageset/iSightFlashButton_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/iSightFlashButton_Off.imageset/iSightFlashButton_Off.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/iSightFlashButton_On.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iSightFlashButton_On.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/iSightFlashButton_On.imageset/iSightFlashButton_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/iSightFlashButton_On.imageset/iSightFlashButton_On.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/launchScreenBackground.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "launchScreenBackground-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/launchScreenBackground.imageset/launchScreenBackground-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/launchScreenBackground.imageset/launchScreenBackground-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/launchScreenLetters.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "launchScreenLetters-1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/launchScreenLetters.imageset/launchScreenLetters-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/launchScreenLetters.imageset/launchScreenLetters-1.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/move_arrows.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Icon-60@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/move_arrows.imageset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/move_arrows.imageset/Icon-60@2x.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_1716.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard1.imageset/IMG_1716.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/onboard1.imageset/IMG_1716.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_1705.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard2.imageset/IMG_1705.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/onboard2.imageset/IMG_1705.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_1711.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard3.imageset/IMG_1711.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/onboard3.imageset/IMG_1711.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_1709.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard4.imageset/IMG_1709.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/onboard4.imageset/IMG_1709.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_1695.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard5.imageset/IMG_1695.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/onboard5.imageset/IMG_1695.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_1696.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard6.imageset/IMG_1696.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/onboard6.imageset/IMG_1696.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_1712.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/onboard7.imageset/IMG_1712.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/onboard7.imageset/IMG_1712.jpg -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/shareButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "shareButton_60.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/shareButton.imageset/shareButton_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/shareButton.imageset/shareButton_60.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/swapImagesButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "swapImageButton.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/swapImagesButton.imageset/swapImageButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/swapImagesButton.imageset/swapImageButton.png -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/switchCameraButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "switchCameraButton.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Assets.xcassets/switchCameraButton.imageset/switchCameraButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/Assets.xcassets/switchCameraButton.imageset/switchCameraButton.png -------------------------------------------------------------------------------- /Reacture/Reacture/Enums.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Enums.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/6/16. Amended by Eric Mead & Paul Adams on 1/13/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | enum OptionType: Int { 12 | case None = 0, 13 | Filters, 14 | Layout 15 | } 16 | 17 | enum Layout: Int { 18 | 19 | case PictureInPicture = 0, 20 | LeftRight, 21 | TopBottom, 22 | UpperLeftLowerRight, 23 | UpperRightLowerLeft, 24 | Count 25 | } 26 | 27 | let layoutIcons = [UIImage(named: "layout_southeast"), 28 | UIImage(named: "layout_side"), 29 | UIImage(named: "layout_top"), 30 | UIImage(named: "layout_diagonal_downright"), 31 | UIImage(named: "layout_diagonal_downleft")] 32 | 33 | enum SubLayout: Int { 34 | 35 | case None = 0, 36 | Top, 37 | Bottom, 38 | Left, 39 | Right, 40 | TopRight, 41 | BottomRight, 42 | TopLeft, 43 | BottomLeft, 44 | BigPicture, 45 | LittlePicture 46 | } 47 | 48 | enum MaskLayout: Int { 49 | case None = 0, 50 | TopRight, 51 | BottomLeft, 52 | TopLeft, 53 | BottomRight 54 | } 55 | 56 | enum Filter: Int { 57 | case None = 0, 58 | Fade, 59 | Chrome, 60 | Poster, 61 | Comic, 62 | Tonal, 63 | Noir, 64 | Count 65 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Enums_BACKUP_28273.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Enums.swift 3 | // Reacture 4 | // 5 | // Created by Benjamin Patch on 1/6/16. Amended by Eric Mead on 1/13/16. Amended by Paul Adams on 1/13/16. 6 | // Copyright © 2016 PatchWork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Layout: Int { 12 | 13 | case TopBottom = 0, 14 | LeftRight, 15 | PictureInPicture, 16 | Count 17 | } 18 | 19 | enum MaskLayout: Int { 20 | case None = 0, 21 | TopRight, 22 | BottomLeft, 23 | TopLeft, 24 | BottomRight, 25 | Top, 26 | Bottom, 27 | Left, 28 | Right, 29 | SmallPictureBottomRight, 30 | SmallPictureBottomLeft, 31 | SmallPictureTopRight, 32 | SmallPictureTopLeft 33 | } 34 | 35 | enum Filter: Int { 36 | case None = 0, 37 | Fade, 38 | Chrome, 39 | <<<<<<< HEAD 40 | Poster, 41 | Comic, 42 | Tonal, 43 | Noir, 44 | ======= 45 | Comic, 46 | Posterize, 47 | // Process, 48 | // Transfer, 49 | // Instant, 50 | >>>>>>> develop 51 | Count 52 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Enums_BASE_28273.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Enums.swift 3 | // Reacture 4 | // 5 | // Created by Benjamin Patch on 1/6/16. 6 | // Copyright © 2016 PatchWork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Layout: Int { 12 | 13 | case LeftRight = 0, 14 | TopBottom, 15 | PictureInPicture, 16 | Count 17 | 18 | } 19 | 20 | enum MaskLayout: Int { 21 | case None = 0, 22 | TopRight, 23 | BottomLeft, 24 | TopLeft, 25 | BottomRight, 26 | Top, 27 | Bottom, 28 | Left, 29 | Right, 30 | SmallPictureBottomRight, 31 | SmallPictureBottomLeft, 32 | SmallPictureTopRight, 33 | SmallPictureTopLeft 34 | } 35 | 36 | enum Filter: Int { 37 | 38 | case None = 0, 39 | Mono, 40 | Tonal, 41 | Noir, 42 | Fade, 43 | Chrome, 44 | Process, 45 | Transfer, 46 | Instant, 47 | Count 48 | 49 | } 50 | -------------------------------------------------------------------------------- /Reacture/Reacture/Enums_LOCAL_28273.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Enums.swift 3 | // Reacture 4 | // 5 | // Created by Benjamin Patch on 1/6/16. Amended by Eric Mead on 1/13/16. Amended by Paul Adams on 1/13/16. 6 | // Copyright © 2016 PatchWork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Layout: Int { 12 | 13 | case TopBottom = 0, 14 | LeftRight, 15 | PictureInPicture, 16 | Count 17 | } 18 | 19 | enum MaskLayout: Int { 20 | case None = 0, 21 | TopRight, 22 | BottomLeft, 23 | TopLeft, 24 | BottomRight, 25 | Top, 26 | Bottom, 27 | Left, 28 | Right, 29 | SmallPictureBottomRight, 30 | SmallPictureBottomLeft, 31 | SmallPictureTopRight, 32 | SmallPictureTopLeft 33 | } 34 | 35 | enum Filter: Int { 36 | case None = 0, 37 | Fade, 38 | Chrome, 39 | Poster, 40 | Comic, 41 | Tonal, 42 | Noir, 43 | Count 44 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Enums_REMOTE_28273.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Enums.swift 3 | // Reacture 4 | // 5 | // Created by Benjamin Patch on 1/6/16. Amended by Eric Mead on 1/13/16. Amended by Paul Adams on 1/13/16. 6 | // Copyright © 2016 PatchWork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Layout: Int { 12 | 13 | case TopBottom = 0, 14 | LeftRight, 15 | PictureInPicture, 16 | Count 17 | } 18 | 19 | enum MaskLayout: Int { 20 | case None = 0, 21 | TopRight, 22 | BottomLeft, 23 | TopLeft, 24 | BottomRight, 25 | Top, 26 | Bottom, 27 | Left, 28 | Right, 29 | SmallPictureBottomRight, 30 | SmallPictureBottomLeft, 31 | SmallPictureTopRight, 32 | SmallPictureTopLeft 33 | } 34 | 35 | enum Filter: Int { 36 | case None = 0, 37 | Mono, 38 | Tonal, 39 | Noir, 40 | Fade, 41 | Chrome, 42 | Comic, 43 | Posterize, 44 | // Process, 45 | // Transfer, 46 | // Instant, 47 | Count 48 | } -------------------------------------------------------------------------------- /Reacture/Reacture/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 7 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | Launch Screen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UIStatusBarHidden 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Reacture/Reacture/PageContentViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PageContentViewController.swift 3 | // Reacture 4 | // 5 | // Created by Skyler Tanner on 1/19/16. 6 | // Copyright © 2016 PatchWork. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class PageContentViewController: UIViewController { 12 | 13 | @IBOutlet weak var skipIntroButton: UIButton! 14 | @IBOutlet weak var titleLabel: UILabel! 15 | @IBOutlet weak var imageView: UIImageView! 16 | var pageIndex: Int? 17 | var titleText: String? 18 | var imageFile: String? 19 | 20 | override func viewDidLoad() { 21 | super.viewDidLoad() 22 | 23 | self.imageView.image = UIImage(named: self.imageFile!) 24 | self.titleLabel.text = self.titleText; 25 | // Do any additional setup after loading the view. 26 | } 27 | @IBAction func skipOrDoneButtonPressed(sender: AnyObject) { 28 | NSUserDefaults.standardUserDefaults().setBool(true, forKey: "FirstLaunch") 29 | } 30 | 31 | override func didReceiveMemoryWarning() { 32 | super.didReceiveMemoryWarning() 33 | // Dispose of any resources that can be recreated. 34 | } 35 | 36 | 37 | /* 38 | // MARK: - Navigation 39 | 40 | // In a storyboard-based application, you will often want to do a little preparation before navigation 41 | override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 42 | // Get the new view controller using segue.destinationViewController. 43 | // Pass the selected object to the new view controller. 44 | } 45 | */ 46 | 47 | } 48 | -------------------------------------------------------------------------------- /Reacture/Reacture/PanGestureView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PanGestureView.swift 3 | // FlipPic 4 | // 5 | // Created by Andrew Porter on 1/13/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | protocol PanGestureViewProtocol { 12 | 13 | func panDetected(center: CGPoint) 14 | } 15 | 16 | class PanGestureView: ZoomableView { 17 | 18 | var lastLocation: CGPoint = CGPointMake(0.0, 0.0) 19 | var lastPointLocation: CGPoint = CGPointMake(0.0, 0.0) // for longPressRecognizer 20 | var isMoveableView: UIView? 21 | var delegate: PanGestureViewProtocol? 22 | 23 | func toggleIsMoveable() { 24 | 25 | if isMoveableView == nil { 26 | 27 | let view = UIView(frame: self.bounds) 28 | let imageView = UIImageView(image: UIImage(named: "move_arrows")!) 29 | imageView.contentMode = .ScaleAspectFill 30 | view.addSubview(imageView) 31 | imageView.frame = CGRectMake(view.bounds.width/4, view.bounds.height/4, view.bounds.width/2, view.bounds.height/2) 32 | view.backgroundColor = UIColor.whiteColor() 33 | view.alpha = 0.2 34 | view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: "detectPan:")) 35 | isMoveableView = view 36 | self.addSubview(isMoveableView!) 37 | 38 | } else { 39 | 40 | self.isMoveableView!.removeFromSuperview() 41 | self.isMoveableView = nil 42 | } 43 | } 44 | 45 | func removeIsMovableView() { 46 | 47 | if isMoveableView != nil { 48 | self.isMoveableView!.removeFromSuperview() 49 | self.isMoveableView = nil 50 | } 51 | } 52 | 53 | func detectPan(recognizer: UIPanGestureRecognizer) { 54 | print("Pan detected") 55 | 56 | let translation = recognizer.translationInView(self.superview) 57 | self.delegate?.panDetected(CGPointMake(lastLocation.x + translation.x, lastLocation.y + translation.y)) 58 | print("Pan valid. Center = \(CGPointMake(lastLocation.x + translation.x, lastLocation.y + translation.y))") 59 | } 60 | 61 | override func touchesBegan(touches: Set, withEvent event: UIEvent?) { 62 | print("Touches began") 63 | print("center: \(self.center)") 64 | setLastLocation() 65 | } 66 | 67 | func setLastLocation() { 68 | lastLocation = self.center 69 | } 70 | 71 | func getPoint(touchPoint: CGPoint) -> CGPoint { 72 | return CGPointMake(lastLocation.x + (touchPoint.x - lastPointLocation.x), lastLocation.y + (touchPoint.y - lastPointLocation.y)) 73 | } 74 | } -------------------------------------------------------------------------------- /Reacture/Reacture/RCT_CameraController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CameraController.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/6/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import AVFoundation 11 | 12 | class RCT_CameraController { 13 | 14 | ////////////////////////////// 15 | //Testing Ground 16 | ////////////////////////////// 17 | 18 | var captureSession: AVCaptureSession? 19 | var stillImageOutput: AVCaptureStillImageOutput? 20 | var previewLayer: AVCaptureVideoPreviewLayer? 21 | let availableCameraDevices = AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo) 22 | 23 | ////////////////////////////// 24 | //Testing Ground 25 | ////////////////////////////// 26 | 27 | static func setupCamera(completion: () -> Void) { 28 | print("TEST: Camera Setup") 29 | completion() 30 | } 31 | 32 | static func takeFrontPicture(completion: (imageData: NSData) -> Void) { 33 | print("TEST: Front Picture Taken") 34 | completion(imageData: NSData()) 35 | } 36 | 37 | static func takeBackPicture(completion: (imageData: NSData) -> Void) { 38 | print("TEST: Back Picture Taken") 39 | completion(imageData: NSData()) 40 | } 41 | 42 | static func takeRCTImage(completion: (rCTImage: RCT_Image?) -> Void) { // TODO: REMOVE optional value of RCT_Image? 43 | 44 | // Call Take Front Picture 45 | // Call Take Back Picture (in correct order...) 46 | 47 | print("TEST: RCTImage Taken") 48 | completion(rCTImage: nil) 49 | } 50 | 51 | static func switchCamera(completion: () -> Void) { 52 | completion() 53 | } 54 | 55 | static func setFlash(flashOn: Bool) { 56 | } 57 | 58 | // METHODS FOR ENABLING/DISABLING/SWITCHING THE PREVIEW??? 59 | 60 | // METHODS FOR SET FOCUS???? 61 | } -------------------------------------------------------------------------------- /Reacture/Reacture/RCT_ContainerViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContainerViewController.swift 3 | // FlipPic 4 | // 5 | // Created by Eric Mead & Paul Adams on 1/5/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | protocol RCT_ContainerViewControllerProtocol { 12 | func itemSelected(indexPath: NSIndexPath, optionSelected: OptionType) 13 | } 14 | 15 | class RCT_ContainerViewController: UIViewController { 16 | 17 | var optionSelected: OptionType = OptionType(rawValue: 0)! 18 | var selectedFrameZero: CGRect? 19 | var layoutSelected: Int = 0 20 | var filterSelected: Int = 0 21 | let borderWidth: CGFloat = 2.0 22 | 23 | @IBOutlet weak var collectionView: UICollectionView! 24 | 25 | // Filter Button Images 26 | var arrayOfFilterButtonImageViews: [UIImageView] = [] 27 | var delegate: RCT_ContainerViewControllerProtocol? 28 | override func viewDidLoad() { 29 | setupCollectionView() 30 | } 31 | 32 | func loadFilterButtonImages(arrayOfImageViews: [UIImageView]) { 33 | print("Handling Filter Button Images") 34 | self.arrayOfFilterButtonImageViews = arrayOfImageViews 35 | self.collectionView.reloadData() 36 | print("Reloading Collection View") 37 | } 38 | 39 | func reloadCollection() { 40 | print("Collection View Reloaded") 41 | 42 | collectionView.reloadData() 43 | 44 | switch optionSelected { 45 | case .Layout: 46 | 47 | collectionView.selectItemAtIndexPath(NSIndexPath(forItem: Int(layoutSelected), inSection: 0), animated: false, scrollPosition: UICollectionViewScrollPosition.CenteredHorizontally) 48 | 49 | case .Filters: 50 | collectionView.selectItemAtIndexPath(NSIndexPath(forItem: Int(filterSelected), inSection: 0), animated: false, scrollPosition: UICollectionViewScrollPosition.CenteredHorizontally) 51 | 52 | case .None: 53 | break 54 | 55 | } 56 | } 57 | 58 | func setupCollectionView() { 59 | collectionView.backgroundColor = UIColor.flipPicGray().colorWithAlphaComponent(1) 60 | 61 | switch optionSelected { 62 | case .Layout: 63 | print("Layout is Selected, Present Layout Options") 64 | case .Filters: 65 | print("Filter is Selected, Present Filter Options") 66 | case .None: 67 | print("None is selected. Hide stuff.") 68 | 69 | } 70 | } 71 | } 72 | 73 | extension RCT_ContainerViewController: UICollectionViewDelegate, UICollectionViewDataSource { 74 | 75 | func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 76 | let cell = collectionView.dequeueReusableCellWithReuseIdentifier("OptionItemCell", forIndexPath: indexPath) as! RCT_OptionItemCollectionViewCell 77 | 78 | switch optionSelected { 79 | case .Layout: 80 | 81 | cell.imageView.backgroundColor = UIColor.whiteColor() 82 | if indexPath.item == layoutSelected { 83 | cell.imageView.layer.borderWidth = borderWidth 84 | cell.imageView.layer.borderColor = UIColor.flipPicGreen().CGColor 85 | cell.imageView.backgroundColor = UIColor.flipPicGreen() 86 | 87 | } else { 88 | cell.imageView.layer.borderWidth = 0 89 | cell.imageView.layer.borderColor = UIColor.flipPicGreen().CGColor 90 | } 91 | cell.label.hidden = true 92 | cell.imageView.image = layoutIcons[indexPath.item] 93 | 94 | case .Filters: 95 | 96 | cell.backgroundColor = UIColor.clearColor() 97 | cell.label.textColor = UIColor.whiteColor() 98 | cell.label.hidden = false 99 | 100 | if indexPath.item == filterSelected { 101 | cell.imageView.layer.borderWidth = borderWidth 102 | cell.imageView.layer.borderColor = UIColor.flipPicGreen().CGColor 103 | cell.label.textColor = UIColor.flipPicGreen() 104 | } else { 105 | cell.imageView.layer.borderWidth = 0 106 | cell.imageView.layer.borderColor = UIColor.flipPicGreen().CGColor 107 | } 108 | let labelText = String(Filter(rawValue: indexPath.item)!) 109 | cell.label.text = labelText 110 | // Setting Images for Filter Buttons 111 | if self.arrayOfFilterButtonImageViews.count == Filter.Count.rawValue { 112 | let imageView = arrayOfFilterButtonImageViews[indexPath.item] 113 | let image = imageView.image 114 | cell.imageView.image = image 115 | cell.imageView.contentMode = .ScaleAspectFill 116 | } 117 | 118 | case .None: 119 | break 120 | 121 | } 122 | return cell 123 | } 124 | 125 | func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 126 | switch optionSelected { 127 | case .Layout: 128 | return Layout.Count.rawValue 129 | case .Filters: 130 | return Filter.Count.rawValue 131 | case .None: 132 | return 0 133 | } 134 | } 135 | 136 | func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 137 | 138 | let cell = collectionView.cellForItemAtIndexPath(indexPath) as! RCT_OptionItemCollectionViewCell 139 | 140 | cell.imageView.layer.borderWidth = borderWidth 141 | cell.imageView.layer.borderColor = UIColor.flipPicGreen().CGColor 142 | 143 | switch optionSelected { 144 | 145 | case .Layout: 146 | layoutSelected = indexPath.item 147 | cell.imageView.backgroundColor = UIColor.flipPicGreen() 148 | 149 | case .Filters: 150 | filterSelected = indexPath.item 151 | cell.label.textColor = UIColor.flipPicGreen() 152 | 153 | case .None: 154 | break 155 | 156 | } 157 | delegate?.itemSelected(indexPath, optionSelected: optionSelected) 158 | } 159 | 160 | func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) { 161 | 162 | if let cell = collectionView.cellForItemAtIndexPath(indexPath) as? RCT_OptionItemCollectionViewCell { 163 | 164 | switch optionSelected { 165 | 166 | case .Layout: 167 | cell.imageView.layer.borderWidth = 0 168 | cell.imageView.layer.borderColor = UIColor.flipPicGreen().CGColor 169 | cell.imageView.backgroundColor = UIColor.whiteColor() 170 | layoutSelected = indexPath.item 171 | 172 | case .Filters: 173 | cell.imageView.layer.borderWidth = 0 174 | cell.imageView.layer.borderColor = UIColor.flipPicGreen().CGColor 175 | cell.label.textColor = UIColor.whiteColor() 176 | filterSelected = indexPath.item 177 | 178 | case .None: 179 | break 180 | 181 | } 182 | } 183 | } 184 | } -------------------------------------------------------------------------------- /Reacture/Reacture/RCT_FiltersController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FiltersController.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/6/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class RCT_FiltersController { 12 | 13 | static func updateWithFilter(filter: Filter, rCTImage: RCT_Image) { 14 | print("TEST: Filter '\(filter)' applied to image") 15 | // create a new image from original 16 | // apply filter to new image 17 | // set rCTImage to new image 18 | } 19 | } -------------------------------------------------------------------------------- /Reacture/Reacture/RCT_ImageController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImageController.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/5/16. Amended by Paul Adams on 1/8/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class RCT_ImageController { 12 | 13 | // MARK: Create 14 | 15 | static func createRCTImage(imageFront: NSData, imageBack: NSData, layout: Layout = Layout(rawValue: 0)!) -> RCT_Image { 16 | let image = RCT_Image(imageFront: UIImage(data: imageFront)!, imageBack: UIImage(data: imageBack)!, layout: layout) 17 | return image 18 | } 19 | 20 | static func createRCTImageFromImages(imageFront: UIImage, imageBack: UIImage, layout: Layout = Layout(rawValue: 0)!) -> RCT_Image? { 21 | let rctImage = RCT_Image(imageFront: imageFront, imageBack: imageBack, layout: layout) 22 | return rctImage 23 | } 24 | 25 | // MARK: Read 26 | 27 | static func dataToImage(imageData: NSData) -> UIImage? { 28 | guard let image = UIImage(data: imageData) else { 29 | print("No Image from Data") 30 | return nil 31 | } 32 | return image 33 | } 34 | 35 | static func imageToData(image: UIImage) -> NSData? { 36 | guard let imageData: NSData = UIImageJPEGRepresentation(image, 1.0) else { 37 | print("No Data from Image") 38 | return nil 39 | } 40 | return imageData 41 | } 42 | 43 | // MARK: Update 44 | 45 | static func updateToOriginal(rCTImage: RCT_Image) { 46 | rCTImage.layout = Layout(rawValue: 0)! 47 | rCTImage.imageBackCIImage = rCTImage.originalImageBackCIImage 48 | rCTImage.imageFrontCIImage = rCTImage.originalImageFrontCIImage 49 | print("Test: Updated Image to Original") 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Reacture/Reacture/RCT_LayoutController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LayoutController.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/6/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | 12 | class RCT_LayoutController { 13 | 14 | static var isCornersLayout: Bool = false 15 | 16 | } -------------------------------------------------------------------------------- /Reacture/Reacture/RCT_OptionItemCollectionViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OptionItemCollectionViewCell.swift 3 | // FlipPic 4 | // 5 | // Created by Paul Adams on 1/5/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class RCT_OptionItemCollectionViewCell: UICollectionViewCell { 12 | @IBOutlet weak var imageView: UIImageView! 13 | @IBOutlet weak var label: UILabel! 14 | } -------------------------------------------------------------------------------- /Reacture/Reacture/TutorialPageViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TutorialPageViewController.swift 3 | // Reacture 4 | // 5 | // Created by Skyler Tanner on 1/19/16. 6 | // Copyright © 2016 PatchWork. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TutorialPageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate { 12 | 13 | var pageViewController = UIPageViewController() 14 | let pageImages = ["onboard1", "onboard2", "onboard3", "onboard4", "onboard7"] 15 | let pageTitles = ["Snap a Selfie", "Opposite Camera Snaps Too", "Select a Layout, Long-Press on PIP to Move", "Apply a Filter", "Share!"] 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | 20 | // Create page view controller 21 | self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! UIPageViewController 22 | self.pageViewController.dataSource = self; 23 | 24 | let startingViewController = self.getItemController(0) 25 | let viewControllers = startingViewController 26 | self.pageViewController.setViewControllers([viewControllers!], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil) 27 | 28 | self.addChildViewController(pageViewController) 29 | self.view.addSubview(pageViewController.view) 30 | self.pageViewController.didMoveToParentViewController(self) 31 | 32 | self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) 33 | // Do any additional setup after loading the view. 34 | } 35 | 36 | override func prefersStatusBarHidden() -> Bool { 37 | return true 38 | } 39 | 40 | override func didReceiveMemoryWarning() { 41 | super.didReceiveMemoryWarning() 42 | // Dispose of any resources that can be recreated. 43 | } 44 | 45 | 46 | func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { 47 | 48 | let itemController = viewController as! PageContentViewController 49 | 50 | if itemController.pageIndex! > 0 { 51 | return getItemController(itemController.pageIndex!-1) 52 | } 53 | 54 | return nil 55 | } 56 | 57 | func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { 58 | 59 | let itemController = viewController as! PageContentViewController 60 | 61 | if itemController.pageIndex!+1 < pageImages.count { 62 | return getItemController(itemController.pageIndex!+1) 63 | } else { 64 | UIView.animateWithDuration(0.5, animations: { () -> Void in 65 | itemController.skipIntroButton.alpha = 0 66 | itemController.skipIntroButton.setTitle("Done", forState: UIControlState.Normal) 67 | itemController.skipIntroButton.alpha = 1 68 | }) 69 | } 70 | 71 | return nil 72 | } 73 | 74 | private func getItemController(itemIndex: Int) -> PageContentViewController? { 75 | 76 | if itemIndex < pageImages.count { 77 | let pageItemController = self.storyboard!.instantiateViewControllerWithIdentifier("PageContentViewController") as! PageContentViewController 78 | pageItemController.pageIndex = itemIndex 79 | pageItemController.imageFile = self.pageImages[itemIndex] 80 | pageItemController.titleText = self.pageTitles[itemIndex] 81 | 82 | return pageItemController 83 | } 84 | 85 | return nil 86 | } 87 | 88 | func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int { 89 | return self.pageTitles.count 90 | } 91 | 92 | func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int { 93 | return 0 94 | } 95 | 96 | /* 97 | // MARK: - Navigation 98 | 99 | // In a storyboard-based application, you will often want to do a little preparation before navigation 100 | override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 101 | // Get the new view controller using segue.destinationViewController. 102 | // Pass the selected object to the new view controller. 103 | } 104 | */ 105 | 106 | } 107 | -------------------------------------------------------------------------------- /Reacture/Reacture/UIColorExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIColorExtension.swift 3 | // FlipPic 4 | // 5 | // Created by Ben Patch & Paul Kirk Adams on 1/19/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIColor { 12 | static func flipPicGreen() -> UIColor { 13 | return UIColor(red: 147/255, green: 206/255, blue: 59/255, alpha: 1) // Hex #93ce3b 14 | } 15 | 16 | static func flipPicBlue() -> UIColor { 17 | return UIColor(red: 38/255, green: 99/255, blue: 181/255, alpha: 1) // Hex #93ce3b 18 | } 19 | 20 | static func flipPicGray() -> UIColor { 21 | return UIColor(red: 60/255, green: 63/255, blue: 66/255, alpha: 1) // Hex #93ce3b 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Reacture/Reacture/UIViewExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewExtension.swift 3 | // FlipPic 4 | // 5 | // Created by Andrew Porter on 1/16/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIView { 12 | 13 | private var littleLineWidthPercentage: CGFloat { return 0.5 } 14 | 15 | func leftBorder(littleImage: Bool = false) -> CALayer { 16 | 17 | var lineWidth = RCT_EditViewController.lineWidth 18 | if littleImage { lineWidth *= littleLineWidthPercentage } 19 | let layer = CALayer() 20 | layer.backgroundColor = UIColor.whiteColor().CGColor 21 | layer.frame = CGRectMake(0.0, 0.0, lineWidth, self.frame.height) 22 | 23 | return layer 24 | } 25 | 26 | func rightBorder(littleImage: Bool = false) -> CALayer { 27 | 28 | var lineWidth = RCT_EditViewController.lineWidth 29 | if littleImage { lineWidth *= littleLineWidthPercentage } 30 | let layer = CALayer() 31 | layer.backgroundColor = UIColor.whiteColor().CGColor 32 | layer.frame = CGRectMake(self.bounds.maxX - lineWidth, 0.0, lineWidth, self.bounds.height) 33 | 34 | return layer 35 | } 36 | 37 | func topBorder(littleImage: Bool = false) -> CALayer { 38 | 39 | var lineWidth = RCT_EditViewController.lineWidth 40 | if littleImage { lineWidth *= littleLineWidthPercentage } 41 | let layer = CALayer() 42 | layer.backgroundColor = UIColor.whiteColor().CGColor 43 | layer.frame = CGRectMake(0.0, 0.0, self.frame.width, lineWidth) 44 | 45 | return layer 46 | } 47 | 48 | func bottomBorder(littleImage: Bool = false) -> CALayer { 49 | 50 | var lineWidth = RCT_EditViewController.lineWidth 51 | if littleImage { lineWidth *= littleLineWidthPercentage } 52 | let layer = CALayer() 53 | layer.backgroundColor = UIColor.whiteColor().CGColor 54 | layer.frame = CGRectMake(0.0, self.bounds.maxY - lineWidth, self.bounds.width, lineWidth) 55 | 56 | return layer 57 | } 58 | 59 | private var topLeftToBottomRightBorder: CAShapeLayer { 60 | 61 | let layer = CAShapeLayer() 62 | let path = UIBezierPath() 63 | path.moveToPoint(CGPointMake(0.0, 0.0)) 64 | path.addLineToPoint(CGPointMake(self.bounds.maxX, self.bounds.maxY)) 65 | layer.path = path.CGPath 66 | layer.strokeColor = UIColor.whiteColor().CGColor 67 | layer.lineWidth = RCT_EditViewController.lineWidth 68 | layer.fillColor = UIColor.clearColor().CGColor 69 | 70 | return layer 71 | } 72 | 73 | private var topRightToBottomLeftBorder: CAShapeLayer { 74 | 75 | let layer = CAShapeLayer() 76 | let path = UIBezierPath() 77 | path.moveToPoint(CGPointMake(self.bounds.maxX, 0.0)) 78 | path.addLineToPoint(CGPointMake(0.0, self.bounds.maxY)) 79 | layer.path = path.CGPath 80 | layer.strokeColor = UIColor.whiteColor().CGColor 81 | layer.lineWidth = RCT_EditViewController.lineWidth 82 | layer.fillColor = UIColor.clearColor().CGColor 83 | 84 | return layer 85 | } 86 | 87 | func removeBorders() { 88 | print("Before: \(layer.sublayers?.count)") 89 | 90 | if layer.sublayers?.count > 1 { 91 | var index = 0 92 | layer.sublayers?.forEach({ (layer) -> () in 93 | if index != 0 { 94 | layer.removeFromSuperlayer() 95 | } 96 | index++ 97 | }) 98 | } 99 | 100 | print("After: \(layer.sublayers?.count)") 101 | 102 | } 103 | 104 | func updateBorderForLayout(layout: SubLayout) { 105 | 106 | 107 | print(layer.sublayers?.count) 108 | 109 | switch layout { 110 | 111 | case .Bottom: 112 | self.layer.addSublayer(leftBorder()) 113 | self.layer.addSublayer(rightBorder()) 114 | self.layer.addSublayer(bottomBorder()) 115 | 116 | case .Top: 117 | self.layer.addSublayer(leftBorder()) 118 | self.layer.addSublayer(rightBorder()) 119 | self.layer.addSublayer(topBorder()) 120 | 121 | case .Left: 122 | self.layer.addSublayer(leftBorder()) 123 | self.layer.addSublayer(topBorder()) 124 | self.layer.addSublayer(bottomBorder()) 125 | 126 | case .Right: 127 | self.layer.addSublayer(rightBorder()) 128 | self.layer.addSublayer(topBorder()) 129 | self.layer.addSublayer(bottomBorder()) 130 | 131 | case .TopRight: 132 | self.layer.addSublayer(topLeftToBottomRightBorder) 133 | 134 | case .BottomRight: 135 | self.layer.addSublayer(topRightToBottomLeftBorder) 136 | 137 | case .TopLeft: 138 | self.layer.addSublayer(topRightToBottomLeftBorder) 139 | 140 | case .BottomLeft: 141 | self.layer.addSublayer(topLeftToBottomRightBorder) 142 | 143 | case .BigPicture: 144 | self.layer.addSublayer(leftBorder()) 145 | self.layer.addSublayer(topBorder()) 146 | self.layer.addSublayer(bottomBorder()) 147 | self.layer.addSublayer(rightBorder()) 148 | 149 | case .LittlePicture: 150 | self.layer.addSublayer(leftBorder(true)) 151 | self.layer.addSublayer(topBorder(true)) 152 | self.layer.addSublayer(bottomBorder(true)) 153 | self.layer.addSublayer(rightBorder(true)) 154 | case .None: 155 | break 156 | } 157 | } 158 | } 159 | -------------------------------------------------------------------------------- /Reacture/Reacture/UIViewExtension.swift.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/UIViewExtension.swift.zip -------------------------------------------------------------------------------- /Reacture/Reacture/ZoomableView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ZoomableView.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/15/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ZoomableView: UIView { 12 | 13 | ////////////////////////////// 14 | // MARK: Variables 15 | ////////////////////////////// 16 | 17 | private var shapeLayer = CAShapeLayer() 18 | 19 | var maskLayout: MaskLayout = MaskLayout.None { 20 | didSet { 21 | setNeedsLayout() 22 | } 23 | } 24 | 25 | var scrollView: UIScrollView! 26 | 27 | ////////////////////////////// 28 | // MARK: Functions 29 | ////////////////////////////// 30 | 31 | override func layoutSubviews() { 32 | super.layoutSubviews() 33 | updateShape() 34 | } 35 | 36 | override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool { 37 | // Specify if a touch should be considered valid 38 | // Not valid if in the mask area. 39 | if RCT_LayoutController.isCornersLayout { 40 | return CGPathContainsPoint(shapeLayer.path, nil, layer.convertPoint(point, fromLayer: shapeLayer), false) 41 | } else { 42 | return super.pointInside(point, withEvent: event) 43 | } 44 | } 45 | 46 | private func updateShape() { 47 | 48 | layer.mask = nil 49 | 50 | if let pathLayout = pathForLayout(maskLayout) { 51 | let path = pathLayout.CGPath 52 | shapeLayer.frame = self.frame 53 | shapeLayer.path = path 54 | layer.mask = shapeLayer 55 | } 56 | } 57 | 58 | private func pathForLayout(maskLayout: MaskLayout) -> UIBezierPath? { 59 | 60 | var path: UIBezierPath! = UIBezierPath() 61 | 62 | let layerHeight = self.bounds.height 63 | let layerWidth = self.bounds.width 64 | 65 | let topRightPoint = CGPointMake(layerWidth, 0) 66 | let topLeftPoint = CGPointMake(0, 0) 67 | let bottomRightPoint = CGPointMake(layerWidth, layerHeight) 68 | let bottomLeftPoint = CGPointMake(0, layerHeight) 69 | 70 | print("test: Layout: \(maskLayout) selected") 71 | 72 | switch maskLayout { 73 | 74 | case .None: 75 | path = nil 76 | 77 | case .TopRight: 78 | 79 | path.moveToPoint(bottomRightPoint) 80 | path.addLineToPoint(topRightPoint) 81 | path.addLineToPoint(topLeftPoint) 82 | path.addLineToPoint(bottomRightPoint) 83 | 84 | case .BottomLeft: 85 | 86 | path.moveToPoint(bottomRightPoint) 87 | path.addLineToPoint(bottomLeftPoint) 88 | path.addLineToPoint(topLeftPoint) 89 | path.addLineToPoint(bottomRightPoint) 90 | 91 | case .TopLeft: 92 | 93 | path.moveToPoint(bottomLeftPoint) 94 | path.addLineToPoint(topLeftPoint) 95 | path.addLineToPoint(topRightPoint) 96 | path.addLineToPoint(bottomLeftPoint) 97 | 98 | case .BottomRight: 99 | 100 | path.moveToPoint(bottomLeftPoint) 101 | path.addLineToPoint(bottomRightPoint) 102 | path.addLineToPoint(topRightPoint) 103 | path.addLineToPoint(bottomLeftPoint) 104 | } 105 | return path 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /Reacture/Reacture/photoShutter2.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patch-benjamin/Reacture/0cc67ceac1ca9531048115063792163b65264e0a/Reacture/Reacture/photoShutter2.caf -------------------------------------------------------------------------------- /Reacture/ScrollViewExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScrollViewExtension.swift 3 | // FlipPic 4 | // 5 | // Created by Benjamin Patch on 1/15/16. 6 | // Copyright © 2016 BAEPS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIScrollView { 12 | 13 | // The Private Variable "contentOffset" of the ScrollView Made Accessible/Public 14 | var getContentOffset: CGPoint { 15 | return self.contentOffset 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /TERMS_OF_USE: -------------------------------------------------------------------------------- 1 | BAEPS TERMS OF USE (last updated: January 15, 2016) 2 | 3 | These terms of service ("Terms") apply to your access and use of FlipPic (the "Service"). Please read them carefully. 4 | 5 | ACCEPTING THESE TERMS—If you access or use the Service, it means you agree to be bound by all of the terms below. So, before you use the Service, please read all of the terms. If you do not agree to all of the terms below, please do not use the Service. Also, if a word does not make sense to you, please let us know by e-mailing paul@pkadams67.io. 6 | 7 | CHANGES TO THESE TERMS 8 | 9 | We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature or for some other reason. 10 | 11 | Whenever we make changes to these Terms, the changes are effective 10 days after we post such revised Terms (indicated by revising the date at the top of these Terms) or upon your acceptance if we provide a mechanism for your immediate acceptance of the revised Terms (such as a click-through confirmation or acceptance button). It is your responsibility to check FlipPic for changes to these Terms. 12 | 13 | If you continue to use the Service after the revised Terms go into effect, then you have accepted the changes to these Terms. 14 | 15 | PRIVACY POLICY—For information about how we collect and use information about users of the Service, please check out our privacy policy available at http://flippic.pkadams67.io. 16 | 17 | THIRD-PARTY SERVICES—From time to time, we may provide you with links to third-party websites or services that we do not own or control. Your use of the Service may also include the use of applications that are developed or owned by a third party. Your use of such third-party applications, websites, and services is governed by that party's terms of service or privacy policies. We encourage you to read the terms and conditions and privacy policy of any third party application, website or service that you visit or use. 18 | 19 | CREATING ACCOUNTS 20 | 21 | When you create an account or use another service to log in to the Service, you agree to maintain the security of your password and accept all risks of unauthorized access to any data or other information you provide to the Service. 22 | 23 | If you discover or suspect any Service security breaches, please let us know as soon as possible. 24 | 25 | YOUR CONTENT AND CONDUCT—Our Service allows you and other users to post, link, and otherwise make available content. You are responsible for the content that you provide to the Service, including its legality, reliability, and appropriateness. 26 | 27 | You may not post, link and otherwise make available on or through the Service any of the following: 28 | 29 | • Content that is libelous, defamatory, bigoted, fraudulent, or deceptive; 30 | • Content that is illegal or unlawful that would otherwise create liability; 31 | • Content that may infringe or violate any patent, trademark, trade secret, copyright, right of privacy, right of publicity or other intellectual, or another right of any party; 32 | • Mass or repeated promotions, political campaigning, or commercial messages directed at users who do not follow you (SPAM); 33 | • Private information of any third party (e.g., addresses, phone numbers, email addresses, Social Security numbers, and credit card numbers); and 34 | • Viruses, corrupted data, or other harmful, disruptive or destructive files or code. 35 | 36 | Also, you agree that you will not do any of the following in connection with the Service or other users: 37 | 38 | • Use the Service in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Service or that could damage, disable, overburden, or impair the functioning of the Service; 39 | • Impersonate or post on behalf of any person or entity or otherwise misrepresent your affiliation with a person or entity; 40 | • Collect any personal information about other users, or intimidate, threaten, stalk, or otherwise harass other users of the Service; 41 | • Create an account or post any content if you are not over 13 years of age years of age; and 42 | • Circumvent or attempt to circumvent any filtering, security measures, rate limits, or other features designed to protect the Service, users of the Service, or third parties. 43 | 44 | MATERIALS 45 | 46 | We put much effort into creating the Service including, the logo and all designs, text, graphics, pictures, information, and other content (excluding your content). We or our licensors own this property, and it is protected by U.S. and international copyright laws. We grant you the right to use it. 47 | 48 | However, unless we expressly state otherwise, your rights do not include: (i) publicly performing or publicly displaying the Service; (ii) modifying or otherwise making any derivative uses of the Service or any portion thereof; (iii) using any data mining, robots or similar data gathering or extraction methods; (iv) downloading (other than page caching) of any portion of the Service or any information contained therein; (v) reverse engineering or accessing the Service in order to build a competitive product or service; or (vi) using the Service other than for its intended purposes. If you do any of this stuff, we may terminate your use of the Service. 49 | 50 | HYPERLINKS AND THIRD PARTY CONTENT 51 | 52 | You may create a hyperlink to the Service. However, you may not use, frame or utilize framing techniques to enclose any of our trademarks, logos, or other proprietary information without our express written consent. 53 | 54 | BAEPS makes no claim or representation regarding and accepts no responsibility for third-party websites accessible by hyperlink from the Service or websites linking to the Service. When you leave the Service, you should be aware that these Terms and our policies no longer govern. 55 | 56 | If there is any content on the Service from you and others, we do not review, verify or authenticate it, and it may include inaccuracies or false information. We make no representations, warranties, or guarantees relating to the quality, suitability, truth, accuracy or completeness of any content contained in the Service. You acknowledge sole responsibility for and assume all risk arising from your use of or reliance on any content. 57 | 58 | UNAVOIDABLE LEGAL MATTER 59 | 60 | The service and any other service and content included on or otherwise made available to you through the service are provided to you on an as is or as available basis without any representations or warranties of any kind. We disclaim any and all warranties and representations (express or implied, oral or written) with respect to the service and content included on or otherwise made available to you through the service whether alleged to arise by operation of law, by reason of custom or usage in the trade, by course of dealing or otherwise. 61 | 62 | In no event will BAEPS be liable to you or any third party for any special, indirect, incidental, exemplary or consequential damages of any kind arising out of or in connection with the service or any other service and/or content included on or otherwise made available to you through the service, regardless of the form of action, whether in contract, tort, strict liability or otherwise, even if we have been advised of the possibility of such damages or are aware of the possibility of such damages. Our total liability for all causes of action and under all theories of liability will be limited to the amount you paid to BAEPS This section would be given full effect even if any remedy specified in this Agreement is deemed to have failed of its essential purpose. 63 | 64 | You agree to defend, indemnify and hold us harmless from and against any and all costs, damages, liabilities, and expenses (including attorneys' fees, costs, penalties, interest and disbursements) we incur in relation to, arising from, or for the purpose of avoiding, any claim or demand from a third party relating to your use of the Service or the use of the Service by any person using your account, including any claim that your use of the Service violates any applicable law or regulation, or the rights of any third party, and/or your violation of these Terms. 65 | 66 | COPYRIGHT COMPLAINTS—We take intellectual property rights seriously. According to the Digital Millennium Copyright Act ("DMCA") and other applicable law, we have adopted a policy of terminating, in appropriate circumstances and, at our sole discretion, access to the service for users who are deemed to be repeat infringers. 67 | 68 | GOVERNING LAW—The validity of these Terms and the rights, obligations, and relations of the parties under these Terms will be construed and determined under and according to the laws of the United States, without regard to conflicts of law principles. 69 | 70 | JURISDICTION—You expressly agree that exclusive jurisdiction for any dispute with the Service or relating to your use of it, resides in the courts of the United States, and you further agree and expressly consent to the exercise of personal jurisdiction in the courts of the United States in connection with any such dispute including any claim involving Service. You further agree that you and Service will not commence against the other a class action, class arbitration or other representative action or proceeding. 71 | 72 | TERMINATION—If you breach any of these Terms, we have the right to suspend or disable your access to or use of the Service. 73 | 74 | ENTIRE AGREEMENT—These Terms constitute the entire agreement between you and BAEPS regarding the utilization of the Service, superseding any prior agreements between you and BAEPS relating to your use of the Service. 75 | 76 | FEEDBACK—Please let us know what you think of the Service, these Terms and, in general, FlipPic. When you provide us with any feedback, comments or suggestions about the Service, these Terms and, in general, FlipPic, you irrevocably assign to us all of your right, title and interest in and to your feedback, comments, and suggestions. 77 | 78 | QUESTIONS AND CONTACT INFORMATION—Questions or comments about the Service may be directed to us at the email address paul@pkadams67.io. --------------------------------------------------------------------------------