FavOnboardingKit provides an onboarding flow that is simple and easy to implement.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "status": 200, | |
| "layouts": [ | |
| { | |
| "type": "mainBanner", | |
| "id": "79c7e84a-d29b-11ee-8a80-325096b39f47", | |
| "value": { | |
| "id": "816aa24d-67f5-4ba1-8329-90d9d814610a", | |
| "imageLink": "https://source.unsplash.com/random/300×200/?work-in-tech", | |
| "title": "Learning that fits", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "status": 200, | |
| "layouts": [ | |
| { | |
| "type": "mainBanner", | |
| "id": "79c7e84a-d29b-11ee-8a80-325096b39f47", | |
| "value": { | |
| "id": "816aa24d-67f5-4ba1-8329-90d9d814610a", | |
| "imageLink": "https://source.unsplash.com/random/300×200/?work-in-tech", | |
| "title": "Learning that fits", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extension String { | |
| var camelCaseToEnglish: String { | |
| var result = "" | |
| var wordStartIndex = self.startIndex | |
| for (index, char) in self.enumerated() { | |
| if index > 0 && char.isUppercase { | |
| let previousWord = self[wordStartIndex..<self.index(self.startIndex, offsetBy: index)] | |
| if !previousWord.isEmpty { | |
| result += "\(previousWord) " |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class AttributedTappableLabel: UILabel { | |
| var onTap: (() -> Void)? | |
| var tapRange: NSRange? | |
| var labelFont: UIFont? | |
| override init(frame: CGRect) { | |
| super.init(frame: frame) | |
| // Enable user interaction to handle tap | |
| isUserInteractionEnabled = true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extension UILabel { | |
| func resizable() -> Self { | |
| translatesAutoresizingMaskIntoConstraints = false | |
| return self | |
| } | |
| func text(_ text: String) -> Self { | |
| self.text = text | |
| return self |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| struct HomeViewController_Previews: PreviewProvider { | |
| static var previews: some View { | |
| Container().edgesIgnoringSafeArea(.all) | |
| } | |
| struct Container: UIViewControllerRepresentable { | |
| func makeUIViewController(context: Context) -> UIViewController { | |
| UINavigationController(rootViewController: HomeViewController()) | |
| } | |
| func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} | |
| typealias UIViewControllerType = UIViewController |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Privacy Policy | |
| ================ | |
| Last revised on [DATE] | |
| ### The Gist | |
| [COMPANY] operates the [SERVICE] service, which we hope you use. If you use it, please use it responsibly. If you don't, we'll have to terminate your account. | |
| For paid accounts, you'll be charged on a monthly basis. You can cancel anytime, but there are no refunds. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Terms of Use | |
| ================ | |
| Last revised on [DATE] | |
| ### The Gist | |
| [COMPANY] operates the [SERVICE] service, which we hope you use. If you use it, please use it responsibly. If you don't, we'll have to terminate your account. | |
| For paid accounts, you'll be charged on a monthly basis. You can cancel anytime, but there are no refunds. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import UIKit | |
| class DateTimePicker: NSObject, UIPickerViewDelegate, UIPickerViewDataSource { | |
| // Reference from https://stackoverflow.com/questions/40878547/is-it-possible-to-have-uidatepicker-work-with-start-and-end-time | |
| var didSelectDates: ((_ start: Date, _ end: Date) -> Void)? | |
| private lazy var pickerView: UIPickerView = { | |
| let pickerView = UIPickerView() |
NewerOlder
