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.baturamobile:android-libraries:2.02'
}
dependencies {
implementation("com.github.baturamobile:android-libraries:2.02")
}
<dependency>
<groupId>com.github.baturamobile</groupId>
<artifactId>android-libraries</artifactId>
<version>2.02</version>
</dependency>
libraryDependencies += "com.github.baturamobile" % "android-libraries" % "2.02"
:dependencies [[com.github.baturamobile/android-libraries "2.02"]]
[
Gradle
com.github.baturaMobile.android-libraries:bluetooth:1.05
com.github.baturaMobile.android-libraries:design:1.05
com.github.baturaMobile.android-libraries:utils:1.05
com.github.baturaMobile.android-libraries:mvp:1.05
La librería tiene 4 modulos diferenciados
Pagina Wiki del bluetooth (En construcción)
## Design
Sección de librería que se encarga de:
Es un tipo de compotente que te permite utilizar una imagen y un text como si fueran 1 con sistema de eventos integrado
## MVP La librería base mvp se encarga de hacer una manera sencilla y sin mucho codigo BoilerPlate
## Utils La librería de utils es uno de los pilares fundamentales de la librería. Está subdividida en diferentes modulos encargados de facilitar diferentes casos de usos
### Analytics (Desarrollo) Modulo que se quiere conseguir una plataforma estandar para integrar analiticas dentro de las apps ### Animations Modulo que integra unas animaciones básica (Slide desde la zona derecha) en el RecycleView ### Callbacks Este modulo integra un clase o interfaz Callback con su correspondiente generico
public abstract class CallbackC<T> implements CallbackI<T> {
@Override
public void onResponse(@NotNull T dataResponse) {}
@Override
public void onError(int codeError, String stringError, Throwable ExceptionError) {}
}
Una mejora es la integración del modulo de log con el modulo Callback registrando los errores de una manera mas automática
open class CallbackV2<in T> {
open fun onResponse(dataResponse: T) {}
@CallSuper
open fun onError(codeError: Int?, stringError: String?, exceptionError: Throwable?) {
LogStaticV2.logInterfaceV2?.crashError(stringError,exceptionError)
}
}
### Cluster (Falta ejemplo) El modulo de cluster está diseñado para la integración con google maps y los clusters creando un sistema mas facil para integrar los cluster en los futuros proyectos ### Network Incluye una serie de excepciones y manejos por los cuales intentamos estandarizar los errores mas comunes en los endpoints.
- NetWorkException
- NoInternetException -> Tipo de excepción para cuando no tenemos internet
#### RetrofitStringConverterFactory Tambíen tenemos un helper para Retrofit para los casos en los que los endpoints nos devuelven un texto plano y saltaba la excepción de retrofit #### Modulos para peticiones https No es recomendable utilizar los sistemas marcados con unsafe a no ser que tenga que ser estritamente necesario ya que perdemos totalmente la verificación de los certificados https. Tenemos un modo para OkHttp y Glide
Aparte de estas implementaciones tenemos una lista para utilizar con los certificados comodo que antes de la versión 5.0 no funcionan correctamente
### List Pagina Wiki de la lista
### Log Un sistema unificado de logs para poder unificar los diferentes tipos de logs en la app y customizar el canal
Esta es la interfaz que tenemos que implementar para poder trabajar con la verión 2 de los logs
interface LogInterfaceV2{
fun log(priority: Int, TAG : String,message: String)
fun crashError(message: String?,exception:Throwable?)
}
Esta es la clase singleton en la que tenemos inicializar nuestra implementación de la interfaz anterior este sistema de logs también es utilizado por la librería por lo que si queremos debugear las librerías seria recomendable utilizar este sistema
object LogStaticV2{
var logInterfaceV2 : LogInterfaceV2? = null
}
### Serializer En este apartado tenemos los siguientes serializadores y deserializadores
En este apartado disponemos de:
Un sistema que abstrae el control de preferencias de la aplicación android de forma única y no instanciable(No se pueden crear varios preference manager) Contiene la adición y estracción de los siguientes elementos.
En este apartado tenemos herramientas de UI que nos harán las funcionalidades mas habituales de forma mas sencilla
En este apartado tenemos una clase con sus extensiones de kotlin que nos permiten varias opciones
getResizedBitmap
esta función nos permite reducir un bitmap en su anchura en tamaño sin que esté en memoria
decodeSampledBitmapFromResource
Esta función nos nos permite lo mismo que la anterior funccion pero desde el resource de android
decodeSampledBitmapFromFile
Esta función nos nos permite lo mismo que la anterior funccion pero desde un File Bitmap.rotateBitmap Esta función nos permite rotar un bitmap desde con un origen de un archivo que tenga exif. Esto nos permite controlar cuando una imagen tiene que ser rotada
Bitmap.getEncoded64ImageStringFromBitmap
Esta funcion nos permite convertir un bitmap a un un string en base64 con una compresiobn de 70%
changeStatusbarColor
Esta funcion cambiar la status bar de color
Te permite saber que tipo de tarjeta de credito estas insertando Eletron, Maestro, Dankort, Interpayment, UnionPay, Visa, MasterCard, Amex, Diners, Discover, JCB
validador de Documento de identidad, por el momento solo el de español
validador de Documento de empresas, por el momento solo el de español
Un inputFilter que admite todos los carácteres menos los numéricos y los especiales
Un InputFilter que admite todos los carácteres menos los numéricos y especiales