Code

woopy | iOS Universal Listings + Chat App Template (Swift)

woopy | iOS Universal Listings + Chat App Template (Swift)









iOS, Android and Web versions can share the same Parse database







4 September 2018
• Chat Screen Bug fix & improvements.
13 August 2018
• Full app reskin
• Code refactoring / improved quality
• Fixed user permissions handling for location, storage, camera
• New dialog for image/video taking/picking.
• Removed unnecessary permissions asking.
20 June 2018
• Made main app color configurable from the .config file
25 May 2018
• Added a Query in the 'sendFeedbackButt()' method in AdDetails.swift, in order to check if you already sent a Feedback to a seller
• Added an AlertController into the 'sendFeedbackButt()' method in SendFeedback.swift, in order to dismiss the screen after sending a feedback
• Accordingly to the new EU GDPR terms, I've updated the 'tou.html' file and Documentation.
IMPORTANT: This means that if a User asks for his/her Account deletion, you must do it within 24 hours, as the GDPR's "Right to be forgotten" Article states (LINK: https://gdpr-info.eu/art-17-gdpr/)
21 May 2018
• Fixed a small bug in the 'submitAdButt()' method in SellEditItem.swift by wrapping this code into an IF statement:
   // In case this is a new Ad
   if adObj.objectId == nil {
            adObj[ADS_LIKES] = 0
            adObj[ADS_COMMENTS] = 0
            adObj[ADS_IS_REPORTED] = false
   }
26 April 2018
• Changed the line of code in the 'didFinishPickingMediaWithInfo' delegate method (in SignUp.swift), into this:
    avatarImg.image = resizeImage(image: image, newWidth: 300)

• Added this line into Configs.swift (so now you can set your own currency symbol from this file):
   let CURRENCY = "$" 

and edited the 'submitAdButt()' method into SellEditItem.swift by chnging this line:
    adObj[ADS_CURRENCY] = CURRENCY

• Added a couple of checkbox images into Assets.xcassets
• Edited the SignUp controller in Storyboard by adding a checkbox Button, and its relative SignUp.swift file accordingly (now you have to accept the Terms of Use to sign up)  
• Edited the 'facebookButt()' in Wizard.swift in order to show an Alert to accept the Terms of Service before proceeding to sign up with Facebook
• Updated the Documentation
3 April 2018
• Updated to recommended settings with Xcode 9.3
• Updated the 3 Facebook SDKs (because of Swift 4.1 release):
FBSDKCoreKit.framework
FBSDKLoginKit.framework
FBSDKShareKit.framework
20 March 2018
• Added an AlertController in the 'didSelectRowAt indexPath()' method in ReportAdOrUser.swift, in order to show the success Alert (it was hiding too soon before)
• Edited the 'textFieldShouldReturn()' delegate method in AdsList.swift and Home.swift  in order to prevent a search in case of no text in the search TextField. 


woopy is a Universal App template where you can browse and post listings on the go, new or used stuff you want to sell. You can search for keywords or category, chat with the seller by his item’s page, log in with Facebook or email, like and share ads, and a lot more.
Besides uploading up to 3 images while posting an ad, This app allows you to also upload a 10-second video, this is a great feature that other listings classifieds apps do not have!
Users will be able to report ads or users and block/unblock inappropriate users to prevent getting chat messages from blocked people. They will also able to send Feedbacks to other sellers
woopy has also a verification email system, once a user signs up by email (not by Facebook), back4app sends a verification email based on the email address the user typed in the signup screen. People will be able to see if a user is Verified or not by entering his/her Profile screen.
The Categories names and images are stored into the Parse Dashboard, so you’ll be able to add new categories remotely without having to update the app.
Check its video preview to see it in action!

Since its backend is by Parse Server 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 server side, also because back4app offers a generous free plan.

woopy is a native XCode project, Swift language, Storyboard, Universal, super easy to customize, backend with Parse Server hosted on https://back4app.com




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.

How to change images in the Categories class of my Parse Dashboard?

After importing the Categories.json file into your own Parse Dashboard, you have to double-click in the empty space between the edge of a cell and the blue image button to replace the existing images, check the screenshot below:

After importing Categories.json in my Parse Dashboard, I see no data

That may happen sometimes, it’s a bug in the Parse Dashboard, so in this case you must manually add rows and columns on your own.
1. Click Edit -> Add a column, choose String as type of data and type exactly category, then click ‘Add column’
2. Click Edit -> Add a column, choose File as type of data and type exactly image, then click ‘Add column’
3. Now you can enter the empty cells and insert the name of your first Category, doublie click in the empty cell of the image column and upload your first image.
4. Repeat the steps above for each category you want to insert in your Parse database.

How do I change the order of Categories?

The only way to do that is to remove all rows from the Categories class and add then again based on the order you want categories to be shown in the Home screen of the app since they get ordered by their ‘createdAt’ date.





  • XCode 9.x Project – Swift
  • Universal – Storyboard – iOS 8.0+
  • AdMob banners
  • Backend with Parse Server hosted on back4app
  • Browse ads by Category or search by Keywords
  • Sort ads by Recent, Price, Most liked and Condition
  • Map with radius distance circle and slider to change the nearby distance
  • Post/edit ads, with 3 pics and an optional 10-second video
  • Send/read Feedbacks and Comments
  • Report/block inappropriate users or ads
  • Chat with sellers within the app, with the possibility to attach pictures to the chat messages
  • Push Notifications for chat messages, likes, feedbacks and comments
  • Check your liked ads in the My Likes screen
  • Activity screen
  • List of active chats
  • Easy to Customize
  • Well commented code
  • User Guide and PSD icon graphics included


  • Apple Mac PC with the latest OS version installed
  • The latest version of XCode and some knowledge about its UI interface
  • Photoshop or any other image editor software
  • A valid iOS Developer account to submit apps to the App Store
  • A valid AdMob account to create a banner UNIT ID
  • iTunes Connect account
  • A free account on back4app.com









by
by
by
by
by
by