Skip to content

Releases: TwoRingSoft/Pippin

[Pippin 11.0.0] 2018-09-23

24 Sep 00:20
Compare
Choose a tag to compare

Changed

  • Make Defaults EnvironmentallyConscious.
  • Functions on ActivityIndicator to show and hide UI now have completion block parameters.
  • In Environment.logLevel, always return LogLevel.verbose when running UI tests.

Added

  • Extension on UserDefaults to set and a key/value pair and immediately synchronize the backing store.
  • Parameter to specify a title font on UIButton factory function, and use it in InfoViewController for the app detail stack buttons.
  • TouchVisualization protocol and COSTouchVisualizer adapter.
  • 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 UIView to round corners and style borders.
  • Keep a reference to the Bundle containing any shared assets catalog, which defaults to the main bundle if one isn't specified in Environment's init.
  • A LaunchArgument to wipe any stored user defaults the app uses at launch.
  • A static extension function on ProcessInfo to test if any launch argument was provided during app launch, to help test app-specific launch arguments.

Fixed

  • Fixed layout issues in DismissableModalViewController when there is no title to display or in less than full-screen layouts.
  • Date+TimeElapsed now returns sub-minute scale results as a string describing seconds elapsed.
  • InfoViewController now shows in-app acknowledgements using a styled NSAttributedString.

[Pippin 10.0.0] 2018-09-05

13 Sep 02:32
Compare
Choose a tag to compare

Changed

  • Rewrite NSDate+Components and NSDate+TimeSince in Swift and rename to Date+Components and Date+ElapsedTime, respectively.

Locator

  • Make Locators conform to Debuggable, and provide debugging controls for CoreLocationSimulator.
  • Instead of setting a property on CoreLocationSimulation with the location data, pass in the raw string from e.g. the environment variable value and parse it internally.
  • Add new LocationError enum and change Locator's callback to pass this type. Currently just wraps NSErrors reported by CoreLocation.

Debugging

  • DebugFlowController now 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.
  • DatabaseFixsturePickerViewController now requires a parameter of type Environment instead of CoreDataController, which it can get from the environment parameter, as well as logging/alerting/etc.

Model

  • Always require a NSManagedObjectContext for fetching, instead of falling back to acquiring a new vended context. Helps with context confinement of model entity instances.
  • Instead of requiring an instantiated NSManagedObjectModel in 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 in reloadData().

Added

  • Add case to LaunchArgument to delete all core data models on launch.
  • Add asynchronous Operation subclass, AsyncOperation.
  • Add function on CoreDataController to directly vend a context, instead of through a closure parameter via perform(with:).
  • Added property on Environment to hold reference to a Locator?.

Fixed

  • Hide debugging menu button when the menu is visible.
  • Prevent double insertions of the same row in CrudViewController, due to multiple callbacks from the NSFetchedResultsController (in testing, also observed multiple Notifications sent for the same insertion).

Version 4

01 Feb 02:39
Compare
Choose a tag to compare

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

30 Jan 05:17
Compare
Choose a tag to compare

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

01 Jan 01:47
de61bec
Compare
Choose a tag to compare

2.0.0 2017-12-31

Patches

  • Fix warnings:
    • deprecated usage of characters property of a Swift string to determine its length
    • unreachable code around fatal error
  • 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