1. Desarrollo de una calculadora
("BaseCalc") para operar en números
de cualquier base en el dispositivo
"iPhone".
Director:
Calderón Almendros,
Julián
Autor:
Lora Aranda,
Octavio
Universidad de Málaga
Proyecto Fin de Carrera:
Departamento de Tecnología Electrónica
2. Propósito
aplicación para iPhone
iOS 5 y posteriores (Sistema operativo móvil de
Apple Inc.)
librería "CSzVarNum"
Calculadora de números en distinta base
Librería que permite operar con números
en distinta base (c++)
4. Motivaciones
Académicas
Personales
Obtención del título de ingeniero técnico industrial, especialidad
electrónica industrial
Poner en práctica los conocimientos y habilidades adquiridas
Inmersión en nuevos campos (Objective-C)
Proporcionar una herramienta para la representación de números
5. Profesionales
17.3
%
0%
iOS acapara un 17,3% de la cuota
global de mercado (Fuente *IDC)
No existe una aplicación similar en la
App Store ni en Google Play
Mercado en Auge
6. Calculadora
operaciones con números en distinta base
tipos de números:
Dig_t: un dígito en base desde 0 a 256
Pardigs_t: un par de dígitos en base desde 0 a 256
Spardigs_t: un par de dígitos con signo en base desde 0 a 256
aritméticas (+,-,*,/,%)
comparación (>,<,>=,<=)
Complementación
representación numérica:
Complemento a la base
7. Magnitud y signo Complemento a la base
Dígito en base B: Lista de dígitos en base 10
facilidad para las comparaciones:
M&S C_B
Representación de Numeros
8. Model-View-Controller
Nuestra aplicación se basa en el modelo MVC
Model: Incluye los datos y su manipulación
View:Interfaz de usuario
COntroller: Coordina las dos partes anteriores
Estas partes son independientes
9. Archivos
ViewController y SecondViewController
.h = Archivo de cabecera
..MM=Archivo de implementación.m=Archivo de implementación
.storyboard= Interfaz gráfica
*AppDelegate= Responsable de los procesos
10. Dificultades y soluciones
Tiempos de Trabajo
Intérprete
Flex y Bison
Sentencias en objective-C
Tiempo de compilación
Tiempo de ejecución
Interfaz
Interfaz gráfica táctil
Sentencias en objective-C
Creación del tipo Variant
11. Tipo Variant
“Wrapper Class”
Problema: No son tipos puros de c++, se requiere la base en tiempo
de compilación
Redefinir una interfaz pobre o compleja
Permitir a códigos incompatibles trabajar juntos
Interoperabilidad en tiempo de ejecución
Plantillas para hacer tipos
Solución: Se realiza un envoltorio de la librería.
una plantilla a plantilla que genera los tipos que necesitamos
Todo está envuelto mediante la clase Union_Type
12. Intérprete
Gestiona la entrada recibida por el usuario
Tipo de dato a utilizar:
Mensajes de error
sentencias en objective-C
Dig_t: Primer botón igual
Operador incorrecto
Spardigs_t:Segundo botón igual y SPD= ON
pardigs_t:Segundo botón igual y SPD= OFF
Ningún dato introducido
Dígitos incorrectos
base incorrecta [2-255]
13. Interfaz Gráfica Táctil
Icono
Lanzamiento de la aplicación desde el escritorio del iPhone.
El dispositivo móvil iphone recibe prácticamente todas las ordenes desde
una pantalla táctil capacitiva capaz de comprender gestos complejos.
16. campos de texto editables
Saltar de un campo a otro
Devolver el teclado pulsando en la
pantalla
El teclado de puntuación cuenta con
la tecla Done
Recepción de datos
Desplegar el teclado