Author: Chris Lattner
| #!/bin/bash -e | |
| echo "🤡 Applying carthage 12 and 13 workaround 🤡" | |
| xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) | |
| # For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise | |
| # the build will fail on lipo due to duplicate architectures. | |
| CURRENT_XCODE_VERSION=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3) | |
| echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' > $xcconfig | |
| echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$CURRENT_XCODE_VERSION = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig |
| // | |
| // ScrollingStackView.swift | |
| // | |
| // Created by Antonio Nunes on 05/08/2018. | |
| // Copyright © 2018 SintraWorks. All rights reserved. | |
| // | |
| // Permission is hereby granted, free of charge, to any person obtaining a copy | |
| // of this software and associated documentation files (the "Software"), to deal | |
| // in the Software without restriction, including without limitation the rights | |
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| import Foundation | |
| struct PushNotification: Codable { | |
| let accessToken: String | |
| let preferredLocale: String | |
| let notificationId: Int64 | |
| let notificationType: Type | |
| let icon: URL | |
| let title: String | |
| let body: String |
| import RxSwift | |
| // MARK: - pausable | |
| extension ObservableType { | |
| /** | |
| Pauses the underlying observable sequence based upon the observable sequence which yields true/false. | |
| - parameter pauser: The observable sequence used to pause the underlying sequence. |
When Swift was first announced, I was gratified to see that one of the (few) philosophies that it shared with Objective-C was that exceptions should not be used for control flow, only for highlighting fatal programming errors at development time.
So it came as a surprise to me when Swift 2 brought (What appeared to be) traditional exception handling to the language.
Similarly surprised were the functional Swift programmers, who had put their faith in the Haskell-style approach to error handling, where every function returns an enum (or monad, if you like) containing either a valid result or an error. This seemed like a natural fit for Swift, so why did Apple instead opt for a solution originally designed for clumsy imperative languages?
I'm going to cover three things in this post:
PS: If you liked this talk or like this concept, let's chat about iOS development at Stitch Fix! #shamelessplug
Speaker: David Abrahams. (Tech lead for Swift standard library)
-
"Crusty" is an old-school programmer who doesn't trust IDE's, debuggers, programming fads. He's cynical, grumpy.
-
OOP has been around since the 1970's. It's not actually new.
-
Classes are Awesome
- Encapsulation
- Access control
- Introduction to Functional Programming Johannes Weiß - https://vimeo.com/100786088
- ReactiveCocoa at MobiDevDay Andrew Sardone - https://vimeo.com/65637501
- The Future Of ReactiveCocoa Justin Spahr-Summers - https://www.youtube.com/watch?v=ICNjRS2X8WM
- Enemy of the State Justin Spahr-Summers - https://www.youtube.com/watch?v=7AqXBuJOJkY
- WWDC 2014 Session 229 - Advanced iOS Application Architecture and Patterns Andy Matuschak - https://developer.apple.com/videos/play/wwdc2014/229/
- Functioning as a Functionalist Andy Matuschak - https://www.youtube.com/watch?v=rJosPrqBqrA
- Controlling Complexity in Swift Andy Matuschak - https://realm.io/news/andy-matuschak-controlling-complexity/
| import Foundation | |
| // MARK: - Comparable | |
| extension NSDecimalNumber: Comparable {} | |
| public func ==(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> Bool { | |
| return lhs.compare(rhs) == .OrderedSame | |
| } |
| ###################### | |
| # Options | |
| ###################### | |
| REVEAL_ARCHIVE_IN_FINDER=false | |
| FRAMEWORK_NAME="${PROJECT_NAME}" | |
| SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework" |