iOS: Switch to Cartage or Swift Package Manager

Let’s keep the discussion about Carthage over here, here’s he main issue created by @dennispost:

Original issue link.


Hey guys,

I’m quite new in this project as my company has switched to a RocketChat implementation recently.
Nevertheless I experienced quite long build times locally on my development machine as well as on the CircleCI build servers.

To fix these issue and to be more flexible in the future I would suggest a switch to Carthage.
I would like to hear your thoughts about this!

Thanks Dennis


From our Podfile I identified the following dependencies:
:white_check_mark: Available via Carthage (and Swift Package Manager)
:x: Manual / CocoaPods only

Crash Report
Fabric :x:
Crashlytics (manual installation) :x:

Code utilities
SwiftyJSON (available via Carthage & SPM) :white_check_mark:
semver :x:

UI
SideMenuController (available via Carthage) :white_check_mark: (After #731 not longer needed)
SlackTextViewController (available via Carthage) :white_check_mark:
MobilePlayer (available via Carthage) :white_check_mark:
SimpleImageViewer (available via Carthage & SPM) :white_check_mark:

Text Processing
RCMarkdownParser :x: => Down

Database
RealmSwift (available via Carthage) :white_check_mark:

Network
SDWebImage (available via Carthage) :white_check_mark:
SDWebImage/GIF (available via Carthage) :white_check_mark:
Starscream (available via Carthage & SPM) :white_check_mark:
ReachabilitySwift :x: => Is Reachability sufficient?

Authentication SDKs
OAuthSwift (available via Carthage) :white_check_mark:
1PasswordExtension (available via Carthage) :white_check_mark:
Google/SignIn (manual installation) :x:

Updating it with current status (now we can do it):

Crash Report
Fabric :white_check_mark:
Crashlytics (manual installation) :white_check_mark:

Code utilities
SwiftyJSON (available via Carthage & SPM) :white_check_mark:
semver :white_check_mark:

UI
SideMenuController (available via Carthage) :white_check_mark: (After #731 not longer needed)
SlackTextViewController (available via Carthage) :white_check_mark:
MobilePlayer (available via Carthage) :white_check_mark:
SimpleImageViewer (available via Carthage & SPM) :white_check_mark:

Text Processing
RCMarkdownParser :x: => (we can provide it)

Database
RealmSwift (available via Carthage) :white_check_mark:

Network
SDWebImage (available via Carthage) :white_check_mark:
SDWebImage/GIF (available via Carthage) :white_check_mark:
Starscream (available via Carthage & SPM) :white_check_mark:
ReachabilitySwift :white_check_mark:

Authentication SDKs
OAuthSwift (available via Carthage) :white_check_mark:
1PasswordExtension (available via Carthage) :white_check_mark: