Releases: TwoRingSoft/Pippin
Releases · TwoRingSoft/Pippin
[Pippin 11.0.0] 2018-09-23
Changed
- Make
DefaultsEnvironmentallyConscious. - Functions on
ActivityIndicatorto show and hide UI now have completion block parameters. - In
Environment.logLevel, always returnLogLevel.verbosewhen running UI tests.
Added
- Extension on
UserDefaultsto set and a key/value pair and immediately synchronize the backing store. - Parameter to specify a title font on
UIButtonfactory function, and use it inInfoViewControllerfor the app detail stack buttons. TouchVisualizationprotocol andCOSTouchVisualizeradapter.- Parameterize
DismissableModalViewController's insets instead of hardcoding it to inset by 30 from the top to avoid a status bar, something not all apps may want to do. - Extension on
UIViewto round corners and style borders. - Keep a reference to the
Bundlecontaining any shared assets catalog, which defaults to the main bundle if one isn't specified inEnvironment's init. - A
LaunchArgumentto wipe any stored user defaults the app uses at launch. - A static extension function on
ProcessInfoto test if any launch argument was provided during app launch, to help test app-specific launch arguments.
Fixed
- Fixed layout issues in
DismissableModalViewControllerwhen there is no title to display or in less than full-screen layouts. Date+TimeElapsednow returns sub-minute scale results as a string describing seconds elapsed.InfoViewControllernow shows in-app acknowledgements using a styledNSAttributedString.
[Pippin 10.0.0] 2018-09-05
Changed
- Rewrite
NSDate+ComponentsandNSDate+TimeSincein Swift and rename toDate+ComponentsandDate+ElapsedTime, respectively.
Locator
- Make
Locators conform toDebuggable, and provide debugging controls forCoreLocationSimulator. - Instead of setting a property on
CoreLocationSimulationwith the location data, pass in the raw string from e.g. the environment variable value and parse it internally. - Add new
LocationErrorenum and changeLocator's callback to pass this type. Currently just wrapsNSErrors reported byCoreLocation.
Debugging
DebugFlowControllernow delegates model deletion back to the consumer app, instead of directly deleting the sqlite database files. Prevents a forced restart of the app to reconstruct the database.DatabaseFixsturePickerViewControllernow requires a parameter of typeEnvironmentinstead ofCoreDataController, which it can get from the environment parameter, as well as logging/alerting/etc.
Model
- Always require a
NSManagedObjectContextfor fetching, instead of falling back to acquiring a new vended context. Helps with context confinement of model entity instances. - Instead of requiring an instantiated
NSManagedObjectModelin init, just get the bundle identifer of the bundle that contains it, and use the model name it already has to construct the instance internally.
CrudViewController
- No longer sets the Add Item cell's accessibility label to the reuse identifier of the cell. Now just lets the accessibility subsystem automatically infer it.
- Remove
reloadTableView()as it is already used inreloadData().
Added
- Add case to
LaunchArgumentto delete all core data models on launch. - Add asynchronous
Operationsubclass,AsyncOperation. - Add function on
CoreDataControllerto directly vend a context, instead of through a closure parameter viaperform(with:). - Added property on
Environmentto hold reference to aLocator?.
Fixed
- Hide debugging menu button when the menu is visible.
- Prevent double insertions of the same row in
CrudViewController, due to multiple callbacks from theNSFetchedResultsController(in testing, also observed multipleNotifications sent for the same insertion).
Version 4
Breaking changes
- TextAndAccessoryCell got another accessory UIImageView on the other side of the label, and they've been renamed to "leading" and "trailing".
Other changes
- Standardizes all cell subclasses to be transparent with no selection style by default.
- Add a dimming function for TextCell.
- Add more launch arguments for simulating In App Purchase scenarios.
- Add show/hide cell separator functions in TextCell, with it off by default.
Version 3
Breaking changes
The shared assets have been removed to a private repo. Also, this updates the required platform to iOS 11.
Additions & updates
- Alerter protocol with SwiftMessages adapter
- Debugging protocol, with some refactoring of existing debugging flow/view controllers
- random number extensions on Int/Double
- add disclosure indicators on some custom UITableViewCells
- typaliases for some common closure types
- extension on UIDevice for determining if running in simulator
- more use of the Environment struct internally, and renamed some of its properties
- updates the Travis.ci image to use Xcode 9.2
- updates to InAppPurchaseVendor protocol
Version 2
2.0.0 2017-12-31
Patches
- Fix warnings:
- deprecated usage of
charactersproperty of a Swift string to determine its length - unreachable code around fatal error
- deprecated usage of
- Improvements:
- FlowController
- Debugging
Additions
- Add Core protocols:
- Alerter + SwiftMessagesAdapter
- InAppPurchaseVendor
- Fonts
- Environment struct
- LaunchArgument/EnvironmentVariable enums
- Allow passing custom managed object model to CoreDataController
- FormController now manages UITextViews
- Theming/customizing CrudViewController:
- Custom cells
- Empty state
- Look/feel
Breaking changes:
- Update String rDNS constructors
- Require iOS 11
- Reorganize debugging sources under Core
- Remove default log level function