CodeCanyon

Storyteller | iOS Universal Video Sharing App Template (Swift)

Storyteller | iOS Universal Video Sharing App Template (Swift)







Sep 26th 2017
• Updated to Xcode 9, Swift 4, iOS 11
• Set Swift 3 @objc Inference as Default in Build Settings
• Removed this line into Home.swift:
    videosTableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0)
• Added these 2 delegates in the class declaration of the Following.swift file:
    UITableViewDataSource,
    UITableViewDelegate
and changed the delegates declarations into wift 4 syntax.
• Added 3 lines of code into 'signupButt()' method in SignUp.swift that save a default avatar in the User class 
• Edited 'getFBUserData()' method in Login.swift in case of no email from Facebook login
• Added a 1125x2436px png image (iPhone X launch image) into Assets.xcassets -> Brand Assets image set
• Adjusted some views in the Storyboard, because of iPhone X layout 
• Edited the 'func showBanner()' methods in order to display banner ads properly in iPhone X
• Unchecked the Runtime API Checking | Main Thread Checker in Edit Scheme -> Diagnostics, accordingly to this post: https://stackoverflow.com/a/44392584/3724800
Aug 23th 2017
***** MAJOR UPDATE! *****

IMPORTANT: IF THIS IS AN UPDATE FOR YOU, YOU MUST FIRST MAKE UPDATES IN YOUR OLD PROJECT, THEN RUN THE APP AND LIKE A VIDEO.
THEN ENTER YOUR PARSE DASHBOARD -> ‘Videos’ CLASS AND MANUALLY SET ALL VALUES OF THE ‘likes’ COLUMN TO 0
ALSO, REPORT A USER BY ENTERING HIS PROFILE AND TAPPING THE REPORT BUTTON, THEN ENTER YOUR OWN PARSE DASHBOARD -> User CLASS, SET ITS ‘isReported’ VALUE TO ‘False’ AGAIN, THEN SET ALL THE EMPTY CELLS OF THE ‘isReported’ COLUMN INTO FALSE AS WELL

• Added an extension to round large numbers into K and M (for video views)  and a ‘scaleImageToMaxWidth()’ extension in Configs.swift
• Edited Home.swift, ShowVideo.swift, Following.swift and Account.swift by adding this line to get views as a number:
     let views = videosClass[VIDEOS_VIEWS] as! Int
and used it as 'views.abbreviated'

• Added an ‘avatarImg’ ImageView in the HomeCell class in Home.swift and in the Storyboard | Added its relative code to get the Avatar image in Home.swift, Following.swift and ShowVideo.swift
• Added a username Label and avatar ImageView in the Account controller in Storyboard and its relative code in Account.swift, plus an Edit Profile button
• Added an Edit Profile controller and its relative swift file
• Edited the ‘getFBUserData()’ method in Login.swift in order to get your FB avatar image
• Changed the tab_folllowing.png icon 
• Added a follow, unfollow, like, unlike and share icons
• Added a like/unlike button and code into ShowVideo.swift and edited the look of its controller in Storyboard
 • Added these 2 lines in Configs.swift:
    let VIDEOS_LIKES = "likes" 
    let VIDEOS_LIKED_BY = "likedBy" // Array

• Added this line into ‘convertVideoAndSaveToParse()’ method in SubmitVideo.swift
    videosClass[VIDEOS_LIKES] = 0

• Added a ‘OtherUserProfile’ controller and its relative swift file 
• Added a button over the avatar image in the ShowVideo controller and its code to go to the OtherUserProfile screen
• Added an ActivityVC controller and its relative swift file | added the necessary code to save Activities in ShowVideo.swift, after sending Push notifications
• Added the following lines in Configs.swift:
   let ACTIVITY_CLASS_NAME = "Activity" 
   let ACTIVITY_OTHER_USER = "otherUser" 
   let ACTIVITY_CURRENT_USER = "currentUser" 
   let ACTIVITY_TEXT = "text" 

• Added this line into Login.swift and SignUp.swift, in the saving method:
    currUser[USER_IS_REPORTED] = false

• Added these 2 lines in Configs.swift:
    let USER_IS_REPORTED = "isReported" 
    let USER_REPORT_MESSAGE = "reportMessage" 

• ChangedUpdated the HUD extension in Configs.swift, as well as all the ‘showHUD()’ calls in all swift files in order to show a message in the HUD, like this: 
    showHUD("Please wait…”)

• Added a Follow controller file and its relative swift file
• Added Followers and Following buttons in the Account controller and their relative code in Account.swift
Aug 12th 2017
• Removed the code that was saving a recorded video and the Timer from 'viewDidLoad()' in ShowVideo.swift since it's useless and slows down the loading time of a video
• Edited the 'submitVideoButt()' method in SubmitVideo.swift and added a method called 'convertVideoAndSaveToParse()',
in this way all videos uploaded to your Parse Dashboard will be .mp4 format, watchable by the Android version too.

IMPORTANT: PLEASE NOTE THAT ALL VIDEOS PREVIOUSLY STORED IN YOUR PARSE DASHBOARD WITH THE .mov EXTENSION WILL NOT BE WATCHABLE IN THE ANDROID VERSION SINCE IT DOESN'T SUPPORT .mov FILES. 

• Added Facebook login button in Login controller and its code in Login.swift.
• Edited Info.plist and Appdelegate.swift files
• Added the following Framework in the Frameworks folder:
FBSDKCoreKit.framework
FBSDKLoginKit.framework
FBSDKShareKit.framework
ParseFacebookUtilsV4.framework

• Changed TabBar and record icons
• Updated the User Guide






Storyteller is a Universal App Template where you can record video for a length of max. 20 seconds and post them within the app based on categories (like Comedy, Food, Places, DIY, etc.), share their title and thumbnail image to social networks, Mail and SMS.
You can follow users to get their latest videos, dismiss watched videos by swiping down your finger on the screen. This app includes a Report inappropriate content feature, replay watched video and Terms of User HTML file (which you will have to carefully edit in accordance to Apple’s EULA terms).

Since its backend is by Parse you don’t have to buy any domain/hosting, there are NO php files to upload to a web server so you’ll save some money for sever side.

Storyteller is a native XCode project, Swift language, Universal, Parse SDK hosted on http://back4app.com, super easy to customize.




About Parse SDK and back4app

Read this article for more info about back4app and Parse SDK: https://hubpages.com/technology/Parse-SDK-will-not-shutdown-in-thanks-to-back4app

Can I host Parse Server on my own server?

Yes, although I don’t provide support for the setup process, you can read the official Guide here: http://parseplatform.org

I get a Code signing error in Xcode 8.x

That’s a bug of Xcode 8 with macOS Sierra, check this sample video to see how to fix it: https://youtu.be/z2LemT1_LqA

How to remove AdMob banner ads

Check this video out to see how to remove the code that shows AdMob banners: https://youtu.be/e-HQYnta2Jg Keep in mind that you must repeat the shown steps for every .swift file that contains this line on the top:
import GoogleMobileAds

What about free support for this template?

I can offer free support for bugs encountered in the original code. Instead, if you’ve edited the code and messed something up with it, I may apply some fee to fix it either via TeamViewer or by checking your app project files directly on my computer.

Should I use the latest version of Xcode to edit this template?

Yes, I always update my apps to the latest version of the IDE.






  • XCode 9.x project – Swift – 64bit
  • iOS 8.0+ – Universal – Storyboard
  • AdMob banners
  • Works with Parse SDK hosted on back{4}app
  • Push Notifications for Follow
  • Record videos with just a tap, post them by choosing a category.
  • PDF User Guide included
  • PSD graphics included
  • Easy to customize, well commented code


  • Apple Mac with its latest OS version installed
  • The latest version of Xcode and some knowledge about its UI interface
  • Photoshop or any other image editor software
  • An Apple Developer account to submit apps to the App Store
  • An AdMob account to generate your own banner UNIT ID
  • A free account on back4app.com

Have fun with Storyteller, and don’t forget to rate it on your Downloads page!







Important Disclaimer: We’ve recently found out that some developers have bought our app templates, reskinned them just a bit and put them on sale on other source code markets similar to CodeCanyon, saying that they developed and own such source codes.
That is a serious copyright infringement, developers who buy our templates are allowed to reskin and sell them as apps on the App Store (accordingly to the License type they’ve purchased a template for), but are not allowed to put our original source codes for sale on source code markets, including CodeCanyon. We will report developers who made copyright infringements to the competent authorities. Thanks.

by
by
by
by
by
by