Lottie-Windows/dlls
Alexandre Zollinger Chohfi 9c5168a739
Updated Cake build system to newer version, and updated source to net7.0. (#530)
* Updated Cake build system to newer version, and updated source to net7.0.

* Small fix on version number.
2023-04-18 22:59:16 -07:00
..
Animatables Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
CompMetadata Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
DotLottie Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
GenericData Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
LottieData Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
LottieMetadata Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
LottieReader Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
LottieToWinComp Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
UIData Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
UIDataCodeGen Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
WinCompData Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
WinStorageStreamsData Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
WinUIXamlMediaData Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
YamlData Updated Cake build system to newer version, and updated source to net7.0. (#530) 2023-04-18 22:59:16 -07:00
README.md README Updates (#65) 2019-02-19 11:27:27 -08:00

README.md

Lottie-Windows/dlls directory

This directory contains projects that build DLL versions of the Lottie-Windows code. These exist in order to have the compiler and build system enforce modularity, and the DLLs are not consumed by any other project.

The reason they exist is for code quality rather than packaging.

Modular design

Conceptually, there are 5 modules in Lottie-Windows:

Module Purpose Depends-on
Lottie .json file to AnimatedVisual translator LottieData, LottieReader, LottieToWinComp, WinCompData
LottieData data model for Lottie compositions -
LottieReader .json files to LottieComposition object LottieData
LottieToWinComp LottieComposition to WinCompData Visual tree translator LottieData, WinCompData
WinCompData data model for Windows.UI.Composition -

The modules help abstract the design, and dependencies between modules always form a DAG (Directed Acyclic Graph). The DAG is enforced by building each module as an assembly (DLL) so that if the DAG is broken the build of the DLLs will break.

But we don't actually use the DLLs in any of the other projects; instead, we mush all of the source code together using shared projects. This saves the extra step of building the Lottie-Windows nuget project before any other projects, and it means there are fewer binaries to be packaged up and copied around.

Summary

  • Shared projects give us the equivalent of C++ static libs.
  • The dlls directory enforces modularity.