Plantilla para la pantalla "Sobre la app" que puedes usar en tus proyectos con tan solo cambiar algunos literales

Related tags

App about-app
Overview

About App Screen

Este repositorio se trata de una plantilla para una pantalla tipo "Sobre la app", realizado totalmente en Kotlin con la biblioteca Preference de Jetpack's. Puedes añadirla en tus proyectos con tan efectuar los cambios que voy a explicar más abajo.

Instalación

En primer lugar, descargamos el proyecto a nuestro ordenador desde Code -> Download ZIP.

Una vez lo extraemos vas a ver que tenemos varias carpetas, de entre todas ellas la que nos interesa es la que se llama aboutlibrary.

Vamos a la raíz de nuestro proyecto y pegamos aquí esta carpeta. Manos a la obra en Android Studio.

Vamos al fichero settings.gradle de nuestro proyecto y vamos a configurar el directorio que acabamos de añadir para que sea detectado como un módulo. Añadimos:

include ':aboutlibrary'

En el caso de cambiar el nombre a la carpeta y en vez de llamarla aboutlibrary le pongamos otro nombre, hay que modificar este valor para adecuarlo al nombre que le hemos puesto.


A continuación, vamos al fichero build.gradle a nivel de aplicación y añadimos:

dependencies {
    ···
    implementation project(path: ':aboutlibrary')
    ···
}

Hacemos una sincronización de nuestros archivos gradle y veremos como el icono del directorio que habíamos añadido ha cambiado, esto es señal de que lo que hemos realizado hasta ahora es correcto.

Añadiendo los colores

Para que la pantalla compile correctamente, hay que declarar los atributos de colores en el archivo themes.xml de nuestra aplicación (no en el de la librería), para ello, podemos ver estos atributos en el fichero res -> values -> attrs.xml. Depende de si en nuestro proyecto tenemos modo noche o no, debemos declarar los atributos en uno o en ambos:

<item name="about_app_background_color">#000000</item>
<item name="about_app_text_color">#000000</item>
<item name="about_app_name_color">#000000</item>
<item name="about_app_version_color">#000000</item>

Si no declaramos los colores, cuando intentemos acceder a esta pantalla, obtendremos un error al inflar la vista XML, debido a que no ha encontrado el atributo de color que está declarado.

Idiomas disponibles

La librería está disponible en seis idiomas: español, inglés, alemán, italiano, francés y portugués. Puedes mantenerlos todos, aunque si quieres ahorrar espacio y eliminar los que no vas a utilizar, puedes hacerlo eliminando su carpeta correspondiente en la carpeta de recursos y dejar solo los que te interesan. Estas carpetas son:

values-es
values-de
values-it
values-fr
values-pt

En el caso de que tu aplicación solo tenga un único idioma, este irá en su correspondiente fichero strings.xml dentro de la carpeta values.

¿Como modifico los literales?

Hay un fichero de literales diferente al que se genera de manera automática por el proyecto, para poder tener mejor localizado donde debemos realizar los cambios. Este fichero lo encontrarás en res -> values -> mutables.xml

<resources>

    <!-- Enlace hacia el apartado de todas tus aplicaciones de Google Play -->

    <string name="other_apps_link" translatable="false">https://play.google.com/store/apps/collection/cluster?clp=igM4ChkKEzY3NDY1MTU1MzI0MDYzMjQzODQQCBgDEhkKEzY3NDY1MTU1MzI0MDYzMjQzODQQCBgDGAA%3D:S:ANO1ljJ_J6I&amp;gsr=CjuKAzgKGQoTNjc0NjUxNTUzMjQwNjMyNDM4NBAIGAMSGQoTNjc0NjUxNTUzMjQwNjMyNDM4NBAIGAMYAA%3D%3D:S:ANO1ljKZSDE</string>

    <!-- Enlace hacia tu política de privacidad -->

    <string name="privacy_policy_link" translatable="false">https://isaacdelosreyes.netlify.app/eula</string>

    <!-- Enlace hacia tu perfil de usuario de Twitter -->

    <string name="follow_twitter_link" translatable="false">https://twitter.com/iesedobleac</string>

    <!-- Nombre de tu usuario de Twitter -->

    <string name="follow_twitter_summary" translatable="false">\@iesedobleac</string>

    <!-- Enlace de tu página de desarrollador de Google Play -->

    <string name="developer_page_link" translatable="false">https://play.google.com/store/apps/dev?id=6746515532406324384</string>

    <!-- Email de contacto, personal o el que quieras usar -->

    <string name="email_contact_summary" translatable="false">[email protected]</string>

    <!-- Texto que aparece en el footer de las preferencias -->

    <string name="developer_copyright" translatable="false">Developer by Isaac de los Reyes Díaz</string>

</resources>

¿Cómo cambio el icono de la aplicación?

El logo se encuentra en un componente de Material Design llamado ShapeableImageView, ubicado en el header que es una vista customizada de Preference. Para acceder a este archivo podemos ir a res -> layout -> preference_about_header.xml. Solo hay que sustituir la imagen que está cargando actualmente por la de tu aplicación.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    ···

    <LinearLayout
        android:id="@+id/about_header__container__information"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingHorizontal="@dimen/dp20">

        <com.google.android.material.imageview.ShapeableImageView
            android:id="@+id/about_header__img__app_logo"
            android:layout_width="@dimen/dp68"
            android:layout_height="@dimen/dp68"
            android:src="@drawable/logo_test"
            app:shapeAppearanceOverlay="@style/CornerSize50Percent" />

        ···

    </LinearLayout>

</FrameLayout>

Características extra

Modo noche

La librería cuenta con modo noche u oscuro como se aprecia en las imágenes. Podemos modificar y adaptar los colores desde la carpeta de recursos en cada fichero de temas, colores y atributos.

Secciones

No voy a crear un tutorial específico sobre como añadir una nueva sección, pero es realmente sencillo si seguimos la guía oficial de Google:

https://developer.android.com/guide/topics/ui/settings

En el caso de esta librería vamos a encontrar el xml de configuración en la carpeta de recursos res -> xml -> fragment_about_app.xml

Consideraciones

Está pensada para ser usada como un fragment, ya que extiende de PreferenceFragmentCompat la cual es una subclase de Fragment, así que debes de tener un activity donde poder cargarlo.

La forma en la que lo inicies depende de ti, puedes utilizar el método habitual para cargar fragments o si lo prefieres, usar Navigation de la librería de Jetpack's.

You might also like...
App de recetario para Android
App de recetario para Android

Recetario-Kotln App de recetario para Android Capturas de pantalla Menú principal de la aplicación Lista de Recetas que se muestra al seleccionar cual

App desenvolvido para um desafio de vaga.
App desenvolvido para um desafio de vaga.

Desafio - Filmes 🎥 📼 O desafio consistia em criar um app que se assemelhasse a tela de informações do filme do app TodoMovies. Screenshot de referên

Projeto Final do módulo de Kotlin, para testar as habilidades adquiridas durante as aulas

Kotlin Programming Fundamentals - Assessment É hora de vermos o quanto você aprendeu sobre Kotlin e Programação Orientada a Objetos Parte 1: Entendend

Proyecto del Track Covadonga para el Hackathon Orizaba 2021
Proyecto del Track Covadonga para el Hackathon Orizaba 2021

Hospital_Covadonga Proyecto del Track Covadonga para el Hackathon Orizaba 2021 Aplicación móvil creada en lenguaje Kotlin Descripción general Aplicaci

Projeto de aula para mostrar o uso de intents implicitas e explicítas.
Projeto de aula para mostrar o uso de intents implicitas e explicítas.

1. Introdução Nessa aula você irá criar uma aplicação que usa e Intents para navegar entre activitys. 1.1 Pré-requisitos Para essa aula é necessario q

Um aplicativo Android desenvolvido para fazer downloads de branches de repositórios do Github.
Um aplicativo Android desenvolvido para fazer downloads de branches de repositórios do Github.

Branch Downloader Branch Downloader é um aplicativo Android desenvolvido para que o usuário possa baixar branches de repositórios do Github. Índice Fu

Detector de faces -  Aplicativo android para detecção de rostos em imagens.
Detector de faces - Aplicativo android para detecção de rostos em imagens.

Detector de Faces Aplicativo android para detecção de rostos em imagens. Este aplicativo faz uso do ML Kit do Android. Principais funcionalidades Dest

Retos semanales de la comunidad MoureDev para practicar Kotlin & Android
Retos semanales de la comunidad MoureDev para practicar Kotlin & Android

Code Weekly Challenge Kotlin/Android 2022 Proyecto de retos semanales de la comunidad MoureDev para practicar Kotlin y Android. Existen repositorios d

Meu segundo aplicativo Android, a ideia desse é tornar mais fácil para pessoas idosas utilizarem um smartphone.
Meu segundo aplicativo Android, a ideia desse é tornar mais fácil para pessoas idosas utilizarem um smartphone.

KeepItSimple Meu segundo aplicativo Android, a ideia desse é tornar mais fácil para pessoas idosas utilizarem um smartphone. Para isso, o aplicativo c

Comments
  • Primera release de la librería

    Primera release de la librería

    Se crea la librería About App que se puede añadir a la sección de ajustes de cualquier aplicación para proporcionar información acerca de esta y su desarrollador.

    opened by iesedobleac 0
Owner
Isaac de los Reyes
Desarrollador al que le apasiona el mundo de la tecnología, estar al día de las últimas novedades y aprender cada día.
Isaac de los Reyes
Aplicativo que carrega os dados da News-Api usando o Hilt-Dagger para a injeção de dependência

News Api. Aplicativo Android cuja proposta que consulta a api rest da News API e retornar noticías da categoria de tecnologia. A consulta é feita usan

Marcelo Souza 1 May 27, 2022
um sistema composto por vários microsserviços que comunicam entre si de forma transparente, escalável e com balanceamento de carga.

kotlin-spring-boot-microsservicos-spring-cloud ?? ?? ... sistema composto por vários microsserviços que comunicam entre si de forma transparente, esca

null 3 Nov 9, 2022
Aplicativo Android que consulta a Books API e exibe a lista dos livros mais vendidos.

NY Books API - The Books API provides information about book reviews and The New York Times Best Sellers lists. Aplicativo Android cuja proposta foi m

Marcelo Souza 0 Oct 25, 2021
Um app que você pode salvar, adicionar, editar e excluir suas receitas.

Sobre Fiz esse app com o objetivo de aprender e praticar o manuseio de banco de dados em uma aplicação mobile. Recursos Adicionar Receitas Editar Rece

Thiago Pereira Lins 2 Oct 16, 2021
Aplicativo que disponibiliza previsões sobre o clima de determinado local.

Klíma Aplicativo que disponibiliza previsões sobre o clima de determinado local. Sobre • Screenshots • Bibliografia • Contribuição ?? Sobre Aplicativo

null 6 Jul 27, 2022
Aplicación android con MVVM, Room, Retrofit y Dagger Hilt, coonsumiento la API de TMDB.

TMDB Aplicación android con MVVM, Room, Retrofit y Dagger Hilt, coonsumiento la API de TMDB. To-Do: ☑ Diseño de aplicación con MVVM e inyeccion de dep

Arturo Herrera 0 Nov 29, 2021
🗓 Um projeto para registro de tarefas do usuário

✅ Um projeto para registro de tarefas do usuário ?? Captura de telas Clique na imagem para expandir ?? Tecnologias Esse projeto foi desenvolvido com a

Michael Martins 14 Sep 14, 2022
App para consumir The Movie DB

AppTheMovie The app contains an Movies module, Images and a Locations module, the locations update every 30 minutes, the api The Movies DB was integra

Amadeus Portes 0 Oct 23, 2021
App de test para ingreso a Mercado Libre

Proyecto Mercado Libre Proyecto de prueba para ingreso en Mercado Libre Tabla de contenidos Acerca del projecto Construido con Primeros pasos Pre-requ

null 0 Oct 27, 2021
Criando um App para Apresentar seu Portfólio do GitHub

LAB - Criando um App para Apresentar seu Portfólio do GitHub O curso pode ser acessado na plataforma da Digital Innovation One. Sobre o Autor Sou um d

null 0 Nov 3, 2021