The Configurations.swift
file
Open this file in Xcode and keep reading this guide, you'll have to perform some edits in this file in order to get your template ready to run:
App Name
Replace this string with the new name you want to give to this app:
let APP_NAME = "Snapack"
Edit Cameras
This template comes with 10 pre-defined cameras, they have a
name, short
Description and
background color.
In order for you to edit the existing cameras, you may just edit the following arrays:
// ------------------------------------------------
// MARK: - LIST OF CAMERAS
// ------------------------------------------------
let listOfCameras = [
"Leika Day__Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.", // Cam1
"Icy Night__Dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", // Cam2
"Blacky__Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", // Cam3
"Tooner__Adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum.", // Cam4
"Pink Blink__Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Adipiscing elit, ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", // Cam5
"Blurry__Do eiusmod tempor incididunt ut labore et dolore magna aliqua. Adipiscing elit, so ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", // Cam6
"Vintage__Eiusmod tempor incididunt do ut labore et dolore magna aliqua. Adipiscing elit, so ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", // Cam7
"Purple Rain__Tempor incididunt do ut labore et dolore magna aliqua. Adipiscing elit, so ut enim ad minim veniam, quis nostrud exercitation ullamco amet laboris nisi ut aliquip ex ea commodo consequat.", // Cam8
"Red Room__Tempor incididunt do ut labore et dolore magna aliqua. Adipiscing elit, so ut enim ad minim veniam, quis nostrud exercitation ullamco amet laboris nisi ut aliquip ex ea commodo consequat.", // Cam9
"Dark Sketch__Tempor incididunt do ut labore et dolore magna aliqua. Adipiscing elit, so ut enim ad minim veniam, quis nostrud exercitation ullamco amet laboris nisi ut aliquip ex ea commodo consequat.", // Cam10
// YOU CAN ADD NEW CAMERA NAMES AND DESCRIPTION HERE...
]
// ------------------------------------------------
// MARK: - LIST OF CAMERA BKG COLORS
// ------------------------------------------------
let cameraColors = [
hexValue(hex: "#ADAFB4"), // Cam1
hexValue(hex: "#66A7CF"), // Cam2
hexValue(hex: "#1E2329"), // Cam3
hexValue(hex: "#48CFAE"), // Cam4
hexValue(hex: "#FFADCB"), // Cam5
hexValue(hex: "#46455F"), // Cam6
hexValue(hex: "#C28957"), // Cam7
hexValue(hex: "#754CC3"), // Cam8
hexValue(hex: "#ED3326"), // Cam9
hexValue(hex: "#6E907B"), // Cam10
// ADD NEW CAMERA COLORS HERE...
]
As you can see in the first array -
listOfCameras
- the
Name and
Description strings are separated by
__
, so if you want to change the name of a camera, replace th text before the
__
with your own short name. For the description, simply replace the text after
__
.
Example: You want to edit the 1st item of the
listOfCameras
array and change its name into
"My Camera", and its description into something like
"This Camera is pretty cool, it will make feel like you've jumped back into the past!, then you can edit the first array's like this:
"My Camera__This Camera is pretty cool, it will make feel like you've jumped back into the past!", // Cam1
In case you also want to change its background color, just replace the existing HEX value of the first item in the
cameraColors
array into the one you wish:
hexValue(hex: "#ADAFB4"), // Cam1
TIP: You may use Photoshop to select a color with the color picker and copy its HEX value, or simply use Google to find a color and use its color picker to grab an HEX value.
Now enter the
MainCamera.swift file and scroll down until you find this switch case:
case 0:
saturationFlt.saturation = 0.5
camera --> saturationFlt --> vignetteFlt --> renderView
break
This app comes with a few pre-defined
GPUImage2 filters, so you can get the complete reference on the official GitHub page of GPUImage2:
https://github.com/BradLarson/GPUImage2
So you can edit the
case 0
above as you wish, based on the GPUImage2 guide.
The last thing to do is to replace the existing preview images in the
Assets.xcassets folder, in this case the ones called
cam1
,
cam1_preview1
and
cam1_preview2
. Check them out, run the app with your changes and take a screenshot of the edited camera (you'll use it to replace the
cam1
image). Then take 2 pictures and send them to your computer, you'll use them to replace the
cam1_preview1
and
cam1_preview2
images.
Repeat the steps above to edit all the other items in both arrays.
Add a New Camera
Follow these simple steps in case you want to add a new camera:
-
Copy one the items of the
listOfCameras
array, and past it below this comment:
// YOU CAN ADD NEW CAMERA NAMES AND DESCRIPTION HERE...
-
Edit it as you wish (refer to the Edit Cameras paragraph).
-
Copy one the items of the
cameraColors
array, and past it below this comment:
// ADD NEW CAMERA COLORS HERE...
-
Edit its HEX value as you wish (refer to the Edit Cameras paragraph).
-
Enter the
MainCamera.swift
, add a new switch case below this comment:
// YOU MAY ADD NEW CAMERAS HERE...
-
Create your new photo filter based on the GPUImage2 guide on GitHub, also check the existing cases just to have one more reference
-
Run the app, tap the Cameras button and scroll down the the last camera.
-
Point something cool with the camera and take a screenshot of your iPhone screen
-
Take a couple of pictures with that Camera
-
Enter your iPhone's Camera Roll and send those pictures and the screenshot to your Mac via AirDrop - or email them to yourself
-
Enter the Assets.xcassets folder in Xcode and create 3 new Image Sets and name them progressively, which means that, if you're adding an 11th camera, for instance, then you'll have to rename the Image Sets like this:
cam11
cam11_preview1
cam11_preview2
-
Now place the 3x and 2x images of your iPhone screenshot in the
cam11
Image Set
-
Place the 3x and 2x images of the 2 pictures you took with your new camera in the
cam11_preview1
and cam11_preview2
image Sets
-
You're done, now run the app and enter the Cameras List screen to find out the preview of your news camera
For each image size, please check the exisitng ones and make your new images size accordingly, it'll be good for your app performance if you use the same size of tyhe existing images.
Photo Frames
This template comes with 8 pre-defined photo frames, you can find them in the
Assets.xcassets folder in Xcode with the prefix of
photo_frame
.
As you may see, they are named progressively and this is important because the app checks for their final number to display all of them in a row in the
Share Image screen.
So, in ase you want to edit one or more of the photo frame images, just replace the existing image with your news ones, be careful to keep the size of your new images like the existing ones.
In case you want to add a new frame, just create a new Image Set, name it
photo_frame9
- this is an example, since the last frame is called
photo_frame8
- and drag the 3x and 2x images of your new frame in their cells.
Lastly, enter
Configurations.swift
and change the number of the below variable into the total amount of
photo_frame
images you have collected:
let PHOTO_FRAMES_NUMBER = 8
Sound clips
There's a folder in Xcode called
Sounds which contains a few
.wav
files, you may replace those sound clips with other
.wav
files, just don't rename them, name your new sound files like the existing ones and replace the existing ones with your new ones, so you won't have to edit a single line of code.
Utility Functions
Unless you are familiar with iOS programming, you should leave the code of this section as it is since it includes useful functions to show alerts and perform other things in the app.