• +34 685 967 885
  • +34 695 898 191
  • antgarprats@gmail.com
  • Antonio García Prats

curriculum digital con kotlin

Curriculum en una app

Mi propósito en el día de hoy será el de crear una aplicación para dispositivos móviles android que muestre un curriculum en una app escrita con el lenguaje de programación Kotlin. Es una forma original de llevarlo en tu teléfono móvil.

Cómo diseñar una app Android y publicarla

1. Diseño de la app:

– Define el propósito de la app (en este caso, un currículum personalizable).

a. Esquematiza las pantallas necesarias, como:

I. Pantalla principal: Información personal y profesional.

II. Secciones: Educación, experiencia laboral, habilidades, proyectos, etc

b. Diseña una interfaz moderna utilizando principios de Material Design para garantizar una experiencia de usuario profesional.

2. Herramientas necesarias:

Android Studio: IDE recomendado para desarrollo Android.

Kotlin: Lenguaje oficial para Android.

– Diseño visual: Utiliza herramientas como Figma para planificar la interfaz.

– Recursos visuales: Asegúrate de usar imágenes e íconos de alta calidad.

3. Publicación de la app:

– Regístrate como desarrollador en Google Play Console.

– Crea un paquete de la app en formato APK o AAB.

– Completa los detalles de la app, como título, descripción y capturas de pantalla.

– Sube la app a Google Play Store tras pasar la revisión.

    Código Fuente: Aplicación de Currículum en Kotlin

    Estructura del Proyecto

    La app incluye:

    – Pantalla principal con datos personales.

    – Secciones desplegables para educación, experiencia, habilidades, etc.

    – Diseño adaptativo para diferentes tamaños de pantalla.

    Código Completo

    1. Archivo build.gradle (Nivel App)

    plugins {
        id 'com.android.application'
        id 'org.jetbrains.kotlin.android'
    }
    
    android {
        compileSdk 34
    
        defaultConfig {
            applicationId "com.example.curriculumapp"
            minSdk 21
            targetSdk 34
            versionCode 1
            versionName "1.0"
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation "androidx.core:core-ktx:1.12.0"
        implementation "androidx.appcompat:appcompat:1.6.1"
        implementation "com.google.android.material:material:1.10.0"
        implementation "androidx.constraintlayout:constraintlayout:2.1.4"
    }

    2. Layout Principal (activity_main.xml)

    <androidx.constraintlayout.widget.ConstraintLayout
        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="match_parent"
        tools:context=".MainActivity">
    
        <ScrollView
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:padding="16dp">
    
                <!-- Header Section -->
                <TextView
                    android:id="@+id/tvName"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Tu Nombre"
                    android:textSize="24sp"
                    android:textStyle="bold"
                    android:gravity="center" />
    
                <TextView
                    android:id="@+id/tvTitle"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Título Profesional"
                    android:textSize="18sp"
                    android:gravity="center"
                    android:paddingTop="4dp" />
    
                <!-- Section: Education -->
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Educación"
                    android:textStyle="bold"
                    android:textSize="20sp"
                    android:paddingTop="16dp" />
    
                <TextView
                    android:id="@+id/tvEducation"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Universidad X, Licenciatura en Y, Año Z"
                    android:paddingTop="8dp" />
    
                <!-- Section: Experience -->
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Experiencia"
                    android:textStyle="bold"
                    android:textSize="20sp"
                    android:paddingTop="16dp" />
    
                <TextView
                    android:id="@+id/tvExperience"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Empresa A, Puesto B, Año C"
                    android:paddingTop="8dp" />
    
                <!-- Section: Skills -->
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Habilidades"
                    android:textStyle="bold"
                    android:textSize="20sp"
                    android:paddingTop="16dp" />
    
                <TextView
                    android:id="@+id/tvSkills"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Habilidad 1, Habilidad 2, Habilidad 3"
                    android:paddingTop="8dp" />
            </LinearLayout>
        </ScrollView>
    </androidx.constraintlayout.widget.ConstraintLayout>

    3. Actividad Principal (MainActivity.kt)

    package com.example.curriculumapp
    
    import android.os.Bundle
    import androidx.appcompat.app.AppCompatActivity
    
    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            // Personaliza los textos según las preferencias del usuario
            findViewById<TextView>(R.id.tvName).text = "Juan Pérez"
            findViewById<TextView>(R.id.tvTitle).text = "Ingeniero de Software"
            findViewById<TextView>(R.id.tvEducation).text = "Universidad Nacional, Ingeniería en Computación, 2023"
            findViewById<TextView>(R.id.tvExperience).text = "Empresa ABC, Desarrollador Android, 2020-2023"
            findViewById<TextView>(R.id.tvSkills).text = "Kotlin, Java, SQL, Diseño UI/UX"
        }
    }

    4. Personalización de Icono y Publicación

    Reemplaza el ícono predeterminado en la carpeta res/drawable con uno personalizado usando Android Asset Studio.

    Sigue los pasos descritos en la sección «Publicación de la app» para subir tu APK a Google Play.

    Explicación del Código

    Estructura del proyecto:

    build.gradle: Configura las dependencias y características del proyecto.

    activity_main.xml: Define la interfaz gráfica de la app.

    MainActivity.kt: Maneja la lógica de la aplicación, como asignar datos a la interfaz.

    Principales Componentes:

    ConstraintLayout: Permite diseñar interfaces complejas y adaptables.

    ScrollView: Habilita el desplazamiento en dispositivos pequeños.

    TextView: Se usa para mostrar textos estáticos y dinámicos.

    Personalización: Los textos pueden ser personalizados desde MainActivity.kt, haciendo que la app sea reutilizable.

    Publicación: Después de generar el APK, sigue las instrucciones de Google Play Console para distribuir tu app.

      Con este proyecto, cualquier persona puede crear y personalizar su propio currículum digital y compartirlo profesionalmente.


      Si tienes dudas o quieres crear tu propia app para tu negocio o cualquier necesidad que tengas, no dudes en contactar conmigo y haré realidad tu proyecto.

      Deja una respuesta

      Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *