Cando vas desenvolver unha aplicación para un dispositivo móbil, algunhas das primeiras preguntas que che podes facer son:
- Sobre que tipos de dispositivos móbiles pódense facer programas?
- Sobre que tipo de hardware pódese programar?
- Que sistema operativo pode levar ese hardware?
- Que plataformas de desenvolvemento existen para desenvolver sobre ese hardware e ese sistema operativo? Con que linguaxes podo programar? que ferramentas (compiladores, bibliotecas, contornas, etc.) hai dispoñibles?
No mercado é posible atopar, como viches xa, con teléfonos móbiles (smartPhones), tablets e con outros dispositivos. Neste módulo so vamos a ter en conta os teléfonos móbiles.
Plataformas de desenvolvemento de software para móbiles #
Se o que desexas é coñecer algo acerca das plataformas de desenvolvemento dispoñibles para cada contorna (hardware e/o sistema operativo), podemos falar de Java ME, ou ben de IDE como Xcode, Eclipse, Netbeans, Microsoft Visual Studio,….
Máis info #
- Mejores tecnologías para desarrollo de aplicaciones móviles 2022
- 7 Tecnologías usadas para el desarrollo de apps 2024
- Guía de las mejores herramientas de desarrollo de aplicaciones móviles (Android / iOS) en 2022
Smartphones #
Que é un smartPhone? #
Pódese definir un smartPhone ou «teléfono intelixente» como un terminal de telefonía móbil que proporciona unhas prestacións e unha funcionalidade maior que a que podería ofrecer un teléfono móbil normal.
Hoxe día unha boa parte dos teléfonos móbiles que se poden adquirir no mercado son deste tipo.
Este tipo de terminais caracterízase por ter instalado un sistema operativo e por tanto a posibilidade de executar aplicacións desenvolvidas ben polo propio fabricante do terminal, ben polo operador de telefonía móbil, ou ben por un terceiro (empresa de desenvolvemento de software).
Aínda que o dispositivo é un teléfono móbil moitas veces o seu uso principal non vai ser necesariamente o dun teléfono (facer e recibir chamadas) senón que poderá estar dedicado a moitos outros usos (facer fotos, navegar por Internet, reproducir arquivos de audio, xogar, xestionar a axenda persoal, consultar un mapa, usar un dicionario, escoitar a radio, ver unha película, trazar un roteiro para o navegador por satélite, etc.).
Dentro de moi pouco tempo é probable que se deixe de empregar o termo smartPhone ou «móbil intelixente» pois todos os terminais móbiles serán deste tipo e falarase simplemente de «teléfonos móbiles». De feito na práctica xa ocorre hoxe día, pois cando nos achegamos a algún catálogo de produtos a inmensa maioría de terminais que se nos ofrecen son deste tipo.
Características #
Algunhas outras características que adoitan ter este tipo de dispositivos son:
- Funcionamento en multitarea (execución concorrente de varios procesos no sistema operativo).
- Acceso a Internet.
- Conectividade Wi-fi, Bluetooth, etc.
- Posibilidade de conexión cun computador para cargar e descargar información. Normalmente con conexión USB ou ben unha conexión inalámbrica.
- Posibilidade de ampliación de memoria mediante tarxetas externas de memoria (por exemplo SD).
- Pequenas pantallas pero de alta resolución.
- Pantallas táctiles ou mesmo multitáctiles (multitouch).
- Sensores (de orientación, de temperatura, de presión, acelerómetros, magnetómetros, etc.).
- Cámaras dixitais integradas. Capacidades fotográficas. Gravación de audio e vídeo.
- Receptor GPS.
- Posibilidade de instalar e executar aplicacións sofisticadas:
- Aplicacións de asistente persoal (xestión de contactos, calendarios, citas, axendas, alarmas, etc.).
- Xestión do correo electrónico.
- Xestión do sistema arquivos do dispositivo.
- Aplicaciones de ofimática (procesador de textos, folla de cálculo, etc.).
- Aplicacións multimedia (reprodución de audio e vídeo en diversos formatos).
- Aplicacións de cartografía e navegación.
- Dicionarios.
- Pequenas aplicacións científicas (matemáticas, física, medicina, etc.).
- Xogos.
- Aplicacións de mensaxería instantánea. Chats.
Fabricantes de smarthphones con máis ventas #
O interior dun smartPhone #
Se se che ocorrese abrir un teléfono móbil actual atopariámosche unha placa de circuíto impreso cunha serie de dispositivos electrónicos integrados ou insertos nela. En certo xeito podería lembrar un pouco á placa basee dun PC.
Entre os dispositivos que poderías observar atoparíanse o procesador principal, procesadores dixitais de sinal (DSP), procesadores de imaxe e de audio, módem, memorias caché, codecs de audio e vídeo, etc.
A este conxunto de dispositivos integrados na placa adóitaselle chamar chipset (o cal che debería lembrar ao mundo do hardware dos PCs e aos conceptos estudados no módulo Sistemas Informáticos).
A principal arquitectura de microprocesadores utilizada para telefonía móbil é a deseñada pola empresa ARM («Advanced RISC Machines», hoxe día ARM Holdings), tendo actualmente máis do 90% da cota de mercado non xa só para teléfonos móbiles, senón en xeral para todo tipo de pequenos dispositivos electrónicos que necesitan un microprocesador.
Hoxe día moitas outras empresas deseñan microprocesadores baseados nas patentes da arquitectura dos procesadores ARM por exemplo DEC, IBM, Texas Instrument, Samsung, Intel, Atmel, Alcatel-Lucent, Apple, Qualcomm, LG, Nintendo, Philips, Oki, Yamaha, etc. Uno dos máis coñecidos é por exemplo o Intel XScale.
Máis info… #
Máis info: ARM:¿Qué es y para que sirven? ¿Qué aportan estos procesadores?
Sistemas Operativos #
Introdución #
En canto aos sistemas operativos, dependendo do hardware haberá sistemas deseñados para uns ou outros dispositivos.
Basicamente, os sistemas operativos principais dos smarphones baseanse en:
- Apple iOS. O sistema operativo Apple iOS é o usado en todos os móbiles iPhone, ademais de versións antigas de iPad (agora usan a variante iPadOS) e os iPod Touch.
- Android (baseado en Linux). O gran competidor de iOS, sen dúbida, é Android. Estes dous son os sistemas operativos móbiles máis importantes da historia e, sen eles, o mundo dos smartphones non sería o que é.
Non todo é Android e iOS no mundo dos sistemas operativos móbiles. Aínda que teñan unha cota de mercado ínfima, hai outros SO que teñen o seu nicho de usuarios e as súas características especiais.
- Tizen é un sistema operativo móbil baseado en Linux que foi desenvolto por Samsung, inicialmente en 2012. Creouse a partir de Bada, o sistema que a compañía usou antes de Android.
Ademais dos sistemas actuais, no pasado houbo unha gran cantidade de sistemas que hoxe están en desuso. Repasemos os máis importantes.
- Windows Phone e Windows 10 Mobile. Ata a chegada dos smartphones, a maioría de PDAs contaban co sistema Windows Mobile. En canto chegaron Android e iOS, Microsoft quixo competir con eles lanzando Windows Phone.
- Outro caso de sistema operativo que caeu no esquecemento é Blackberry OS, dos míticos terminais Blackberry, pioneiros no mundo dos smartphone.
- Finalizamos esta revisión de sistemas operativos móbiles co que chegou a dominar o mercado antes da chegada de iOS e Android, Symbian, un sistema usado principalmente por Nokia, pero tamén por Samsung, Motorola ou Sony Ericsson
Máis info #
Sistemas operativos móviles, así definen la historia de los smartphones
Android #
Android foi inicialmente desenvolto por Android Inc., hoxe día parte da compañía Google. Está baseado nunha versión modificada do kernel de Linux.
O primeiro fabricante que incorporou Android nos seus dispositivos foi HTC co seu terminal HTC Dream (comercializado tamén como T-Mobile G1 e popularmente coñecido cos nomes de Google Phone ou GPhone) en 2008.
É un dos máis «novos» dentro do grupo de sistemas operativos para dispositivos móbiles e fíxose un notable oco alcanzando un terzo da cota de mercado a comezos de 2011.
Existen miles de aplicacións que funcionan sobre Android, cun crecemento cada vez maior.
Para desenvolver aplicacións sobre Android necesítase o kit de desenvolvemento de software para Android (Android SDK), proporcionado gratuitamente por Google. Este paquete inclúe todo o necesario para construír aplicacións sobre a contorna Android (depurador, bibliotecas, emulador, documentación, etc.).
A linguaxe de programación que se utiliza é Java.
Máis info: https://es.wikipedia.org/wiki/Android
iOS #
Trátase do sistema operativo desenvolvido por Apple orixinalmente para o seu iPhone, aínda que hoxe día tamén é utilizado por outros dispositivos da empresa.
Apple só permite que este sistema operativo funcione sobre hardware Apple. É un sistema operativo derivado do Mac OS X, tamén de Apple.
Como se comentou antes, os únicos dispositivos que incorporan este sistema operativo son os distintos modelos de dispositivos fabricados pola propia compañía Apple.
Para desenvolver aplicacións sobre iOS, as aplicacións deben ser compiladas especificamente para este sistema operativo baseado na arquitectura ARM.
Para iso pode utilizarse o kit de desenvolvemento iOS SDK. A linguaxe de programación principal para este conxunto de ferramentas é o Swift (aínda que antigamente tamén se empregaba Objective-C). Para poder utilizar este kit de desenvolvemento é necesario un computador Mac cun sistema operativo macOS.
O iOS SDK pódese descargar gratuitamente, aínda que é necesario rexistrarse no Programa de Desenvolvemento de Apple para poder publicar o software creado.
Máis info #
Plataformas de desenvolvemento #
Introdución #
Para poder desenvolver aplicacións para algún dos anteriores sistemas operativos é necesario dispoñer dalgunha plataforma de desenvolvemento que permita xerar código executable sobre eses sistemas, ou ben sobre algunha máquina virtual, ou algún intérprete que estea instalado no dispositivo e que sexa soportado polo sistema operativo.
Dependendo da versatilidade da plataforma de desenvolvemento, a aplicación poderá ser, máis ou menos portable a outros sistemas operativos e/o dispositivos.
- Por exemplo, se realizamos programas en Swift utilizando o iOS SDK de Apple, o máis probable é que a nosa aplicación poida ser unicamente executada nun smartPhone Apple (iPhone) sobre o que estea implantado iOS.
- Se, pola contra, desenvolvemos un programa en Java usando o Java ME de Oracle, e xeramos unha aplicación tipo midlet, esta poderá ser executada en calquera dispositivo que dispoña dunha pequena máquina virtual de Java (KVM).
Trátase novamente da mesma problemática que podemos atopar no mundo dos computadores convencionais.
Plataformas de desenvolvemento #
Entre as plataformas de desenvolvemento para móbiles máis populares atópanse normalmente as que os propios autores dos sistemas operativos ofrecen para traballar sobre a súa plataforma. De feito xa falamos algo sobre algunhas delas ao describir os sistemas operativos. Facemos un repaso rápido das máis coñecidas:
- Android. Google proporciona tamén de maneira gratuíta o Android SDK para programar aplicacións en Java sobre o seu sistema operativo. Os IDE máis utilizados son Android Studio é Eclipse.
- iOS. O SDK tamén se pode descargar gratis, pero para poder comercializar o software a través da súa tenda de aplicacións hai que rexistrarse no programa de desenvolvemento do iPhone, o cal non é gratuíto. A linguaxe de programación é Swift (anteriormente empregábase Objective-C) e sóese empregar o IDE Xcode, que se pode descargar de xeito gratuíto dende a Mac App Store de macOS.
Máis info: https://geekflare.com/es/best-ide-for-mobile-app-development/
Que plataforma de desenvolvemento vamos a empregar neste módulo? #
Poderíamos aprender a programar en Android empregando a linguaxe Java unha boa elección dado que é a linguaxe co que aprendiches a programar no módulo de Programación e, por tanto, non terías que aprender unha nova linguaxe, dedicándote de cheo á aprendizaxe das características específicas para o desenvolvemento de aplicacións para dispositivos móbiles.
Pero xa que coñeces a linguaxe Java, vamos a darlle a volta e aprender Swift e SwiftUI empregando o IDE Xcode, xa que:
- Así aprenderás unha nova linguaxe, Swift. Neste caso é unha linguaxe moderna, que Apple creou fai relativamente pouco tempo.
- Se algunha vez tes que programar unha app para Android, xa coñeces Java, polo que en seguida te adaptarás á programación Android.
- Na maioría dos ciclos superiores DAM de FP de Galicia ensinan a programar apps Android, polo que programando en Swift, teredes un gran nicho de marcado no que dedicarvos sen tanta competencia.