Pippin is a collection of tools to scaffold iOS app infrastructure and assist in development tasks like writing code, testing and debugging.
Getting started with a default setup is as easy as declaring a Podfile dependency:
and, at some point during your app launch sequence:
import Pippin import PippinAdapters let environment = Environment.default( bugReportRecipients: ["email@example.com"], touchVizRootVC: UIViewController(nibName: nil, bundle: nil) // optional ) // Crashlytics is a special situation environment.crashReporter = CrashlyticsAdapter(debug: true) // other optional peripherals environment.locator = CoreLocationAdapter(locatorDelegate: self) environment.connectEnvironment()
You've just gotten the following, with minimal boilerplate:
- crash reporting
- bug reporting
- progress indicators
- alert dialogs
- app and launch information
- data model
- touch visualization
- launch arguments and environment variables
- an authorized
AVCaptureDevicemay be obtained similarly)
There are five podspecs to deliver these tools, see each's README for more information:
Note: there are several reasons these are delivered via separate podspecs instead of one podspec with multiple podspecs. Those two spec levels are not equivalent for all functionalities.
- Issues with installing
test_specs for just one subspec.
- Not supported to install a subspec using
Pippin.podspec is now an umbrella framework that pulls in
PippinTesting for convenience.
These are used for testing and can be evaluated using
Issues and pull requests are welcome!
Runs a collection of Rake tasks which themselves may be run independently:
For each project in
Examples/ try to
pod install and build.
Run the unit test suites created for any
test_specs of any Pippin podspecs.
pod install and try to build the
Example/Pippin.xcodeproject unit and UI test targets, which both declare dependencies on
An integration smoke test, which generates an Xcode project for each subspec of each Pippin podspec, each in both Swift and Objective-C, to try building after
pod installing that subspec. Each project is deposited under
PippinTests/ also contains the template project source code in
SwiftApp/, plus the template Podfile.
Pippin podspecs currently with unit tests located under
If this project helped you, please consider leaving a tip