Pippin
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:
pod 'Pippin'
and, at some point during your app launch sequence:
import Pippin
import PippinAdapters
let environment = Environment.default(
bugReportRecipients: ["andrew@tworingsoft.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:
- logging
- crash reporting
- bug reporting
- progress indicators
- alert dialogs
- fonts
- app and launch information
- data model
- touch visualization
- launch arguments and environment variables
- an authorized
CLLocationManager
(an authorizedAVCaptureDevice
may be obtained similarly)
Podspecs
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_spec
s for just one subspec.- Not supported to install a subspec using
Pod:configurations
: CocoaPods/CocoaPods#3503.
The old Pippin.podspec
is now an umbrella framework that pulls in PippinCore
, PippinAdapters
, PippinLibrary
and PippinTesting
for convenience.
Example projects
These are used for testing and can be evaluated using pod try
:
Contribute
Issues and pull requests are welcome!
Testing
rake test
Runs a collection of Rake tasks which themselves may be run independently:
example_smoke_tests
unit_tests
test_smoke_test
subspec_smoke_test
example_smoke_tests
For each project in Examples/
try to pod install
and build.
unit_tests
Run the unit test suites created for any test_specs
of any Pippin podspecs.
test_smoke_test
pod install
and try to build the Example/Pippin.xcodeproject
unit and UI test targets, which both declare dependencies on PippinLibrary
and PippinTesting
.
subspec_smoke_test
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 install
ing that subspec. Each project is deposited under PippinTests/SmokeTests
.
PippinTests/
also contains the template project source code in ObjcApp/
and SwiftApp/
, plus the template Podfile.
test_specs
Podspec Pippin podspecs currently with unit tests located under Tests/
:
PippinLibrary
PippinTesting
Thanks!
If this project helped you, please consider leaving a tip 🤗