Skip to content

Releases: Comcast/blueprint

Implement Basic Components

29 Jun 14:12
9d33cce
Compare
Choose a tag to compare

Basic, or templated, Components are now available with the annotation @BasicComponent. Basic Components represent components with configurable layouts whose code is standardized and mostly generated.

The layout can make use of any subset of the views supported by the BasicComponentView, including three text fields, three buttons or image buttons, and one image. Since the functions for presenting these views is already part of the BasicComponentView class, no code is needed here. This declaration simply names the new component, and associate it with its XML layout file. The ComponentView and ComponentPresenter classes are generated for you.

Naming is important: If you call your view holder SomethingViewHolder, you will get a Something (ComponentView) class and a SomethingPresenter (ComponentPresenter) class. If you call it Something, (no ViewHolder on the end) you will get a
SomethingView class and an SomethingPresenter class.

In order to use the @BasicComponent annotation, your project must include the Blueprint Architecture library as a dependency, in addition to the annotations and compiler libraries:

val BLUEPRINT_VERSION = "2.4.0"

 implementation("com.xfinity:blueprint-library:$BLUEPRINT_VERSION")
 implementation("com.xfinity:blueprint-annotations:$BLUEPRINT_VERSION")
 implementation("com.xfinity:blueprint-architecture:$BLUEPRINT_VERSION")

kapt("com.xfinity:blueprint-compiler:$BLUEPRINT_VERSION")

Support for ViewHolder Super Classes

15 Jun 12:27
d0df2c5
Compare
Choose a tag to compare

We've updated all the dependencies, added support for Java 9+, and implemented new support for auto-generation of functions from a ViewHolder's super classes.

This new feature allows clients to create base classes for ViewHolders that can be reused to accelerate component creation.

v2.1.0

10 Oct 18:42
8b06a42
Compare
Choose a tag to compare

Decouple ComponentEvent Management from pause/resume handling

v2.0.0

11 May 20:12
0622e9c
Compare
Choose a tag to compare

This release has major breaking changes:

  1. Upgrade screen view architecture classes make it simpler and easier to use custom layouts and screen view classes, eliminating the need for custom Architects
  2. Implemented robust support for Toolbars, giving screen presenters a greatly expanded ability to present and control toolbar details
  3. Component Event handling is now entirely decoupled from Screen Presenters
  4. The generated ImageView function set<>Image in Component View Base class are deprecated, replaced with set<>Drawable, and set<>Resource
  5. Loading Indicators are generic, and now default to ProgressBar instead of xfinity loading dots

Updated Kotlin, Fixes

07 Apr 19:27
87f0881
Compare
Choose a tag to compare

Updated to the latest kotlin plugin version and added scroll-to-top functionality,

v1.2.2

28 Nov 22:43
7a91af1
Compare
Choose a tag to compare

This release fixes "static" Components -- components without a model or a presenter. These components are essentially just layouts that are being inflated and added to the screen, like headers and footers.

Before, we were creating new dummy Component models with no data for these types of components, but that caused them to always be flagged as "new" by the DiffUtil Callback, and that resulted in unexpected UI artifacts like blinking when the Components were re-added in the next presentation.

Now, those Components will be identified as "existing", by default, and it's the responsibility of the ScreenPresenter to alter that if necessary.

v1.2.1

02 Nov 15:33
2331b95
Compare
Choose a tag to compare

In this versions, we've introduce the Blueprint Architecture Library -- a collection of Android base classes to accelerate development of apps with Blueprint.

Detailed Documentation to be added soon!

v1.2

28 Sep 19:15
8b9d625
Compare
Choose a tag to compare

Added generic auto-generated visibility control methods for ComponentView base classes, so that ComponentPresenters don't need to know about android.view.VISIBLE, INVISIBLE and GONE

The setViewVisibility(int visibility) functions will still be generated, but are now annotated with @deprecated

Those will (probably) be deleted in v1.3

v1.1

14 Sep 15:15
fcab27b
Compare
Choose a tag to compare

Implemented additional generated Android-View specific Component View base class functions:

TextViews will have setText functions auto-generated
All views get setVisibility functions auto-generated

Component Presenters now get concrete types into the present() function (no more casting!!)

Fixed component list diff'ing

First release of Blueprint!

30 Oct 22:33
Compare
Choose a tag to compare

Officially changed our name to Blueprint. Changed all packages and library names, pushed the new builds to maven