Nov 26th 2017 • Edited the the 'showBanner()' method in Home.swift, Answers.swift and Search.swift in order to the AdMob banner to not overlay the bottom TextField
Sep 22nd 2017 • Updated to Xcode 9, Swift 4, iOS 11 • Added a 1125x2436px png image (iPhone X launch image) into Assets.xcassets -> Brand Assets image set • Edited the 'refreshTB()' method in Home.swift • Edited 'getFBUserData()' in case of no email on Facebook sign in • Edited 'forgotPasswButt()' method in Login.swift • Added .lowercased() to the 'searchBarSearchButtonClicked()' method in Search.swift: queryQuestions(searchBar.text!.lowercased()) • Added UITableViewDataSource and UITableViewDelegate delegates in the class declaration of the Search.swift file, as well as the delegates methods declarations, as per Swift 4 • Added some lines of code that save a default avatar image (the app's logo) in SignUp.swift • Adjusted buttons and views positions in the Storyboard, because of iPhone X layout • Unchecked the Runtime API Checking in the Scheme -> Diagnostics, accordingly to this post: https://stackoverflow.com/a/44392584/3724800
Aug 11th 2017 ** MAJOR UPDATE ** Added image attachment feature for Questions: now you can add an image while posting a Question. So I've edited the following things: • Added an attachmentButton UIButton into the QuestionCell in Storyboard and in its class in the Home.swift file • Edited the Home.swift and Search.swift's cellForRowAtIndexPath() methods to hide/show the attachmentButton, added the necessary code to upload an image while submitting a Question and to handle image upload • Added the attachmentButt() function to see the attached image in fullscreen in Home.swift and Search.swift, and edited some other code in both files • Added an extra controller called ImagePreview and its relative .swift file • Added an attachment_butt and add_attachment_butt Image Sets in the Assets.xcassets folder • Added these lines into Configs.swift: let QUESTIONS_IMAGE = "image" let QUESTIONS_HAS_IMAGE = "hasImage" • Moved 'queryQuestions()' from viewDidAppear() to viewDidLoad() • Removed the refreshButton in the Home controller and its code in Home.swift -> replaced it by a refreshControl() • Added an extension in Configs.swift to round large numbers into K or M abbreviation, and edited the likes and answers amount lines in Home.swift and Search.swift -> cellForRowAtIndexPath() IMPORTANT: IF THIS IS AN UPDATE FOR YOU, then you must, of course, compare your old project files with the updated one of this version, then, after updating your own project, run the app and submit a test question in order to make the app create an extra column in your Parse Dashboard -> Questions class called "hasImage". Then you must enter that class in your Dashboard and set all the empty cells of the "hasImage" column as False. This is a one-time job, you won't have to do that anymore, the app will handle it. • Changed the App Icons in the Assets.xcassets -> AppIcon folder
AskIt is a Universal App Template where you can post any question and have users answering, you can do the same on other user’s questions. Users can also like questions from the Home screen or search for something in the Search screen.
Since its backend is by Parse SDK 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.
AskIt is a native XCode project, Swift language, Storyboard, Universal, Push Notifications for likes and answers, super easy to customize, backend with Parse SDK hosted on http://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.
- XCode 9.x project – Swift – 64bit
- iOS 8.0+ – Universal – Storyboard
- AdMob banners
- Facebook login
- Post/answer/like questions
- Attach an image to your Questions
- Works with Parse SDK hosted on back4app
- Push Notifications for likes and answers
- Report abusive contents (questions or answers)
- Search for questions by keywords
- PDF User Guide and PSD 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
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.