calculadora científica Android utilizando Kotlin

App de calculadora científica en Android utilizando Kotlin

Para crear una aplicación de calculadora científica en Android utilizando Kotlin, debes seguir una serie de pasos. Kotlin es el lenguaje oficial recomendado para el desarrollo de aplicaciones Android y facilita mucho el proceso de creación.

aplicación calculadora científica Android utilizando Kotlin

Aquí te explico el flujo básico:

1. Configuración del entorno

  1. Instala Android Studio: Android Studio es el IDE oficial de Google para el desarrollo de aplicaciones Android. Puedes descargarlo desde aquí.
  2. Crea un nuevo proyecto:
    • Abre Android Studio y selecciona “New Project”.
    • Elige una “Empty Activity” como plantilla.
    • Configura el nombre del proyecto (por ejemplo, “ScientificCalculator”) y selecciona el lenguaje “Kotlin”.

2. Estructura del proyecto

Cuando se crea el proyecto, se generarán archivos como:

  • MainActivity.kt: Este archivo será el punto de entrada de tu aplicación.
  • activity_main.xml: Este es el archivo de diseño (layout) donde colocarás los botones y pantallas de la calculadora.
aplicación calculadora científica Android utilizando Kotlin

3. Diseño de la interfaz (XML)

En el archivo activity_main.xml, deberás crear la interfaz de la calculadora. Esto implica colocar botones para los números, operadores y funciones científicas (seno, coseno, tangente, etc.).

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- Pantalla de resultado -->
    <TextView
        android:id="@+id/resultTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="end"
        android:textSize="30sp"
        android:text="0"/>

    <!-- Fila de botones de funciones científicas -->
    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:rowCount="6"
        android:columnCount="4">

        <!-- Botones numéricos y operadores -->
        <Button
            android:id="@+id/button1"
            android:text="1"/>
        <!-- Continúa añadiendo más botones de la misma forma -->

        <!-- Ejemplo de botón de función científica -->
        <Button
            android:id="@+id/buttonSin"
            android:text="sin"/>

    </GridLayout>
</LinearLayout>

4. Lógica de la calculadora en Kotlin (MainActivity.kt)

La parte lógica es donde conectarás los botones a las acciones que deseas ejecutar. En MainActivity.kt implementas las funciones que realizan las operaciones matemáticas.

package com.example.scientificcalculator

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import kotlin.math.*

class MainActivity : AppCompatActivity() {

    lateinit var resultTextView: TextView
    var currentNumber: String = ""
    var operator: String? = null
    var firstNumber: Double = 0.0
    var secondNumber: Double = 0.0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        resultTextView = findViewById(R.id.resultTextView)

        val button1: Button = findViewById(R.id.button1)
        val buttonSin: Button = findViewById(R.id.buttonSin)
        
        button1.setOnClickListener {
            appendToResult("1")
        }

        buttonSin.setOnClickListener {
            performScientificOperation("sin")
        }
    }

    private fun appendToResult(value: String) {
        currentNumber += value
        resultTextView.text = currentNumber
    }

    private fun performScientificOperation(operation: String) {
        if (currentNumber.isNotEmpty()) {
            val num = currentNumber.toDouble()
            val result = when (operation) {
                "sin" -> sin(Math.toRadians(num))
                "cos" -> cos(Math.toRadians(num))
                "tan" -> tan(Math.toRadians(num))
                else -> 0.0
            }
            resultTextView.text = result.toString()
            currentNumber = ""
        }
    }
}

5. Agregar las funcionalidades básicas

Aquí te dejo algunas funciones que puedes implementar para manejar las operaciones básicas:

  • Operaciones de suma, resta, multiplicación, división:
private fun performOperation(operator: String) {
    if (currentNumber.isNotEmpty()) {
        firstNumber = currentNumber.toDouble()
        this.operator = operator
        currentNumber = ""
    }
}

private fun calculateResult() {
    if (operator != null && currentNumber.isNotEmpty()) {
        secondNumber = currentNumber.toDouble()
        val result = when (operator) {
            "+" -> firstNumber + secondNumber
            "-" -> firstNumber - secondNumber
            "*" -> firstNumber * secondNumber
            "/" -> firstNumber / secondNumber
            else -> 0.0
        }
        resultTextView.text = result.toString()
        currentNumber = result.toString()
        operator = null
    }
}

6. Funcionalidades adicionales

Para hacerla realmente científica, puedes agregar operaciones avanzadas como:

  • Potencias y raíces cuadradas (Math.pow() y sqrt()).
  • Logaritmos (Math.log10()).
  • Funciones trigonométricas inversas (Math.asin(), Math.acos()).
  • Manejo de constantes como PI y e.

7. Compilar y probar

Una vez que has implementado la lógica, puedes compilar y probar la app en un emulador o dispositivo físico.

8. Mejorar la UI

Puedes mejorar la interfaz utilizando colores, ajustar el diseño para pantallas más grandes o incluso hacer que la calculadora se vea más moderna con animaciones y transiciones.

Conclusión

Crear una calculadora científica en Android usando Kotlin es un proyecto interesante que cubre aspectos como el diseño de interfaces de usuario y la implementación de lógica matemática avanzada. Además, te permite aprender más sobre el ciclo de vida de las aplicaciones Android y cómo conectar el diseño (XML) con el código Kotlin.

1 comentario

Deja un comentario

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