Skip to content

Releases: thomverbeek/VIPER

0.7.0

04 Aug 09:27
2c44cce
Compare
Choose a tag to compare
0.7.0 Pre-release
Pre-release

This release drastically alters VIPER from a unidirectional to bidirectional implementation:

  • It rearranges VIPER components to more closely model the traditional definition. View <-> Presenter <-> Interactor
  • Similarly, Presenters now talk to Routers to make decisions regarding navigation.
  • The role of PresenterModel and ViewModel is clearer - they provide state information to their respective counterparts
  • The mechanics of message passing are simplified - ViewModel and PresenterModel are only provided upon initialisation as dependencies. Consumers can use publishers or delegation to subscribe to updates.
  • AnyObject requirement forces all VIPER objects to be implemented as classes. This allows for some Objective-C runtime magic to abstract message passing mechanics.
  • Combine is removed as a dependency, which lowers the minimum OS requirements. Message passing is handled under the hood via simple closures. The need for subscriptions is removed in favour of associated objects and function variable scopes.
  • VIPER components don't need to declare Combine publishers for message passing.
  • Restored weakly-held view property on Routers.

v0.6.1

15 Sep 12:56
Compare
Choose a tag to compare
v0.6.1 Pre-release
Pre-release

This build simplifies the Combine sink-store mechanic to set up subscriptions for inter-component callbacks.

VIPER + Combine

21 Aug 09:49
Compare
Choose a tag to compare
VIPER + Combine Pre-release
Pre-release

This release upgrades VIPER with Combine to separate components.

v0.5.0

10 May 11:49
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

This release renames Resolver to Builder in line with VIPER parlance in the industry. It also corrects a bug in the command line generator.

v0.4.1

10 May 03:44
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release

This release adds an optional parameter to the command line tool to create a directory for the generated VIPER module. This can be set to false when generating files for use in standalone Swift packages.

v0.4.0

09 May 15:08
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

This release updates the naming convention for VIPER components. VIPERBuilder is renamed to VIPERModule; Dependencies is renamed to Entities (to more closely align with VIPER terminology); Modules is renamed to Resolver.
This release also includes an executable command line tool called viper-tools, allowing you to generate VIPER template files.

v0.3.0

09 May 15:02
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

This release removes trivial code, and switches the Presenter and Interactor around. This allows the Interactor to talk to the Router, reducing communication obstacles.

v0.2.0

15 Feb 05:39
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

This release adds the concept of VIPERModule, an abstraction for assembled VIPER components. Use this to allow VIPER modules to cross framework boundaries without exposing their underlying implementation.

Adds the concept of Modules to Routers to vend VIPER modules; removes their awareness of Services. Unifies the concept of Dependencies and Services into Dependencies.

v0.1.0

22 Jan 11:08
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

This first release introduces the core VIPER components required to assemble a VIPER module.