Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.enyciaa:aardvark:1.3.4'
}
dependencies {
implementation("com.github.enyciaa:aardvark:1.3.4")
}
<dependency>
<groupId>com.github.enyciaa</groupId>
<artifactId>aardvark</artifactId>
<version>1.3.4</version>
</dependency>
libraryDependencies += "com.github.enyciaa" % "aardvark" % "1.3.4"
:dependencies [[com.github.enyciaa/aardvark "1.3.4"]]
A Android library with common code that can be used across projects
This a personal library, and is not intended to be used by others. The Api may change at anytime.
Simple data holding classes which will usually extend stock android classes
Idea is to use only one object for implementation of an analytics system - to prevent scattering of analytics code throughout the app. Every analytics system is encapsulated in one class which extends AnalyticsTracker. The AnalyticsOrchestrator is initilised with all the trackers on startup. From then, any class that requires analytics must only inject the orchestrator and call the appropriate analytics event method - which will foreward that analytics event to all trackers.
For ease of use common analytics classes are included
This is a collection of classes which makes drawing on the canvas simpler. Classes are either objects which can be drawn on the canvas or views that extend canvas to eliminate boilerplate code.
Extend SystemNotificationHelper and override appropriate values to create a custom notification. Each class corresponds to one type of notification. Extend SystemNotificationChannel and override appropriate values to create a custom channel. Each class corresponds to one type of channel.
Extend SystemAlarmHelper and override appropriate values to create a custom alarm. Each class corresponds to one type of alarm. Also need to extend SystemAlarmReceiver to handle alarms.
Common entities
A collection of functions that are named in an appropriate manner that allows them to be used from simply looking at a classes autocomplete. They provide a layer on top of android to simplify the api.
Used by EditTexts to validify text as it's written
Includes
Simple listeners that make a 3 method listener into a one method listener.
Listeners include:
Classes that manage some aspect of android.
Managers include:
These classes take an android class in the constructor, and provide an abstraction for fetching data from android (e.g. string resources). These can be using in none view classes (e.g. viewModels) without using android dependencies, so the viewModel can be build in a pure kotlin module. Strictly speaking this violates clean architecture, but they provide a good trade off between limiting android dependencies to the view and speed of development.
The providers include:
Anything to do with securing the app and the users data.
Includes:
TimeWrapper gives an interface over the java 310 library to deal with everything time related
Simple self contained custom views