analytics library Null safety

Classes

AnalyticAction
Any action that is valuable for analytics. Usually it is a "button pressed" or "screen opened" type of event but the main criterion is a possibility to be handled by AnalyticActionPerformer.
AnalyticActionPerformer<A extends AnalyticAction>
A performer of specific actions used to incapsulate work with a certain analytics service. Typically implemented by transforming AnalyticAction into a required format as well as calling send() of a third-party library.
AnalyticService<A extends AnalyticAction>
A unified entry point for several AnalyticActionPerformers.
DefaultAnalyticService
Logs services and sends actions to the analyst.