BigBrother alternatives and similar libraries
Based on the "Network" category.
Alternatively, view BigBrother alternatives based on common mentions on social networks and blogs.
-
Perfect
Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and moreβ¦) -
SwiftSoup
SwiftSoup: Pure Swift HTML Parser, with best of DOM, CSS, and jquery (Supports Linux, iOS, Mac, tvOS, watchOS) -
Zewo
Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines. -
BlueSocket
Socket framework for Swift using the Swift Package Manager. Works on iOS, macOS, and Linux. -
Connectivity
π Makes Internet connectivity detection more robust by detecting Wi-Fi networks without Internet access. -
WKZombie
WKZombie is a Swift framework for iOS/OSX to navigate within websites and collect data without the need of User Interface or API, also known as Headless browser. It can be used to run automated tests / snapshots and manipulate websites using Javascript. -
PeerKit
An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps -
Digger
Digger is a lightweight download framework that requires only one line of code to complete the file download task -
SOAPEngine
This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and AppleTV app.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of BigBrother or a related project?
README
BigBrother
BIG BROTHER IS WATCHING YOU.
BigBrother is a Swift library made for iOS that automatically watches for any performed request and sets the network activity indicator.
This is mostly a proof of concept, having several limitations because of how NSURLProtocol
works. Some of them are:
NSURLProtocol
doesn't inheritNSURLSession
's configured headers (see https://github.com/Alamofire/Alamofire/issues/473)NSURLProtocol
isn't compatible with authentication APIs (see https://github.com/marcelofabri/BigBrother/issues/2)
It was inspired by this comment by Mattt Thompson.
It also was based on this tutorial for creating an NSURLProtocol
and on AFNetworkActivityIndicatorManager
from AFNetworking.
Usage
Adding
Adding to NSURLConnection
and NSURLSession.sharedSession()
BigBrother.addToSharedSession()
Adding to a custom NSURLSessionConfiguration
var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
BigBrother.addToSessionConfiguration(configuration)
let session = NSURLSession(configuration: configuration)
Removing
Removing from NSURLConnection
and NSURLSession.sharedSession()
BigBrother.removeFromSharedSession()
Removing from a custom NSURLSessionConfiguration
var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
BigBrother.removeFromSessionConfiguration(configuration)
let newSession = NSURLSession(configuration: configuration)
It is important to configure your NSURLSessionConfiguration object appropriately before using it to initialize a session object. Session objects make a copy of the configuration settings you provide and use those settings to configure the session. Once configured, the session object ignores any changes you make to the NSURLSessionConfiguration object. If you need to modify your transfer policies, you must update the session configuration object and use it to create a new NSURLSession object.
Advanced usage
BigBrother.URLProtocol
is an NSURLProtocol
subclass that manages the network activity indicator and it's public if you want to add it yourself to an NSURLSessionConfiguration
or to the default NSURLProtocol
(used by NSURLConnection
and NSURLSession.sharedSession()
).
BigBrother.Manager
is also public, so you can manage the network activity indicator directly:
BigBrother.Manager.sharedInstance.incrementActivityCount()
// do something...
BigBrother.Manager.sharedInstance.decrementActivityCount()
Installation
BigBrother is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'BigBrother'
Then run pod install
with CocoaPods 0.36 or newer.
Unit Tests
Unit testing is done with XCTest
and the tests are available under the BigBrotherTests folder.
Collaborating
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request. They're more than welcome!
Contact
Marcelo Fabri
License
BigBrother is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the BigBrother README section above
are relevant to that project's source code only.