146146
Entornos para el desarrollo de aplicaciones mviles
Martnez Castro, Jos M.Instituto Tecnolgico de Chilpancingo
Chilpancingo, Guerrero, [email protected]
Cuevas Valencia, Ren E.Universidad Autnoma de Guerrero
Unidad Acadmica de IngenieraChilpancingo Guerrero; Mxico
Martnez Castro, Ricardo N.Centro de Bachillerato Tecnolgico Industrial y
de Servicios No. 73Rio Bravo, Tamaulipas, Mxico
Resumen
Elesquemadedesarrollodelasaplicacionesmvilesesunatecnologaqueseen-cuentra en auge, aun cuando los dispositivosmviles existendesdehacemsde15aos,laperspectivadelosvisionariosdelastecnologasdelainformacin,yladisminucindecostosdefabricacin,hapermitidoquetalesdispositivosestnalalcancedelosusuarios.Auncuandopartedelateoraparaeldesarrollodeaplicacionesdeestatipoyaseencuentraplasmadaendiver-sosdocumentos,seconsiderarelevanteplantearlosnuevosusosquepuedendarseaestatecnologa;loanteriorderivadoporlosavancestecnolgicos:caractersticas,rendimiento,esquemasdecomunicacin,sistemasoperativos,lenguajesdeprogramacin,almacenamientoyrecuperacindedatos,entreotras.
Palabras Clave: Dispositivosmviles,gestinconexindesco-nexin,android,blackberry,windowsmobile.
machote final.indd 146 01/11/2012 03:59:25 p.m.
147147
m a R t N e z c a s t R o , J o s m . - c u e v a s v a l e N c i a , R e N e . - m a R t N e z c a s t R o , R i c a R d o N .
Revista viculos vol. # NmeRo #
l o sE N E R o D E 2 0 1 2V o L U M E N 9 N M E R o 1
ucnv
Abstract
Thepatternofdevelopmentofmobileapplicationsisatechnologythatisbooming,evenwhenmobiledeviceshavebeenaroundforover15years,thevisionaryperspectiveofinformationtechnolo-gy,andlowermanufacturingcosts,hasallowedsuchdevicesareavailable tousers.Althoughpartof the theory for thedevelop-mentof applicationsof this type is already reflected invariousdocuments,isconsideredrelevanttoraisethenewusesthatcanbegiventothistechnology,theabovederivativebytechnologicaladvances: features, performance, layout communication, opera-tingsystems,programminglanguages,datastorageandretrieval,amongothers.
keywords:Mobiledevicemanagementon-off,android,blackbe-rry,windowsmobile.
1. Introduccin
Losdispositivosmvilesposeenenlaactua-lidadcapacidadessimilares,enocasionessu-periores, a las computadoraspersonalesdelosqueseiniciaronenelmundodelacom-putacinenladcadadelos80s.Loqueobli-ga a retomar el concepto de la optimizacin de recursosqueenaquellapocaeradevitalimportancia, almacenamiento y espacio dememoria resurgen por smismos como losnuevos retos a vencer respectode losdise-adores;sindejardeladoelrendimientodelosprocesadoresquelaLeydeMoorenonospermiteolvidar.
1.1. Inalmbrico vs Mvil
Comosimilitudespodemosreferirqueelme-diodecomunicacinutilizadonoestconfi-nadoaunmedioguiadoocable.
Mallick[1]estableceunadiferenciaentrelosdesarrollos de aplicaciones inalmbricas enrelacinalasaplicacionesmviles.Noexiste
unarelacinbidireccionalentreellas,yaqueno todas las aplicaciones inalmbricas sonmvilesyviceversa(Figura1).
Figura 1.InalmbricasvsMviles.
Ladiferenciasepuedeidentificarenlacober-turadelasaplicaciones,estoes,lanecesidaddeestablecerunacomunicacincontnuaconlacontrapartecorrespondiente;porejemplo:enunaredderea local inalmbricaexisti-r comunicacin entre losnodos siemprey
machote final.indd 147 01/11/2012 03:59:25 p.m.
148148
E N To RNo S PA R A E L D E S A R R o L Lo D E A P L I C AC I oN E S M V I L E S
Revista viculos vol. # NmeRo #
A T
cuandoseencuentrendentrodelacobertura,deformasimilarocurrirconlasredesdon-de se requiera del enlace de comunicacinconstanteentreloselementosdelared.
Por otra parte las aplicaciones mviles re-querirndel canalde comunicaciones (ina-lmbrico o alambico)sloenloscasosdon-de lacomunicacincon losotrosnodosseanecesaria,estoes,podrcontinuarlaopera-cindeldispositivoansinlaconexinper-manenteconlared.
Esto puede semejarse al uso del FTP y delEmailpara transferenciadedatos;mientraselprimerorequieredeuncanaldecomuni-cacinpermanenteentreemisory receptor,elsegundosolorequieredeladireccindelreceptorparaelenvodelosdatos.
1.2. Comunicacin
Respecto a las formas de comunicacin delos dispositivosmviles pueden referirse alosdiferentesesquemasdecomunicacinen-trePCs(Figura2):
Wifi(802.11:a,b,g,n,h,i)BluetoothInfrarojoSerial(USB,RS-232)
Figura 2. ComunicacinInalmbrica.
1.3. Tipo de Dispositivos
Dentrolostiposdedispositivosinalmbricossepuedenencontrar:
Computadorasdeescritorioyporttiles(Laptop,Notebook,Netbook)
Tablets PDAs Smartphone
Loscualessecomunicancontarjetasdered:integradas, adaptadores operifricos (USB,PCI,PCMCIA).
2. Diseo
Lorealmenteimportanteenlasaplicacionesmvileseslarecomendacindenoabordareldesarrollocompletodeunsistemaalrede-dordelosdispositivosmviles,yaquestasdebenformarpartedeunsistemacompleto,estoes,sernunmdulodecapturay/ocon-sultadeinformacin.
Existen diversas formas de disear los sis-temas en red, sin embargo un elementoimportante a considerar en este diseo esuna caracterstica inherentea las redes ina-lmbricas, esto es, la intermitencia en lascomunicaciones.
Latendenciaactualeneldesarrollodeapli-cacionesmvilestratadeasumircondicionesmnimasdeoperacinrequeridascomoson:conexinalareddecomunicaciones,recur-soslimitados(almacenamiento,energa).
Seharunareflexinmayorsobrelareddecomunicacionesatravsdelsiguienteesque-madegestindelared.
machote final.indd 148 01/11/2012 03:59:25 p.m.
149149
m a R t N e z c a s t R o , J o s m . - c u e v a s v a l e N c i a , R e N e . - m a R t N e z c a s t R o , R i c a R d o N .
Revista viculos vol. # NmeRo #
l o sE N E R o D E 2 0 1 2V o L U M E N 9 N M E R o 1
ucnv
2.1. Limitantes en las redes de comunicacin
Enlospasesdesarrolladosnoesposiblecon-cebirespaciosdondenoexistacoberturadealgunareddecomunicaciones:celular,WiFi,locualimplicarlaposibilidaddeconectarseaInternetpormedioderedestolerantesafa-llas,dondelosperiodosdedesconexinpo-dranconsiderarsemnimos.
Sinembargoenlospasesendesarrollo,unode las oportunidades demejora es precisa-mente laaplicacindela infraestructuradecomunicaciones, donde no existe; y dondeexistemejorarlaenelsentidoampliodelcon-ceptooptimizacin(toleranteafallos,rendi-miento, ancho de banda, disponibilidad) yprincipalmente el costo de acceso al Inter-net;mismoqueenlaactualidadnoesaccesi-bleparatodoslosusuarios,auncuandoexis-ten empresas proveedoras del servicio deInternetinalmbricodebandaanchaatravsdelosenlacesdetelefonacelular.
2.2. Gestin conexin / desconexin
Una respuesta a esta limitante se encuen-traeneluso limitadode lareddecomuni-cacin a travs del uso de la ArquitecturaMiddleware(intermediario)[2](Figura3).
Figura 3.Arquitectura
Donde: losclientes inteligentes (almbricosoinalmbricos)secomunicanalservidor de sin-cronizacinatravsdelmuro de fuegoparaac-cederalabase de datosentiemposespecficosdelaejecucindelaaplicacin.
Enreferenciaa losdatossedebeestablecerenelniveldevisin[3],yaquesolosetoma-ranencuentalastablasquetenganrelacincon lasaccionesa realizareneldispositivomvil;denominndolas: catlogo, a aquellastablas de consulta; datos, a aquellas tablascuyocontenido ser capturadocomoresul-tadodelaoperacindelosdispositivos.
Serequiereestablecerdosestadosdelcliente inteligente: conexinydesconexin,queha-cenreferenciadirectaalacomunicacinconelMiddleware,ycomosecuenciadeenlaceseproponelasiguiente:
3. Implementacion
A este respecto se han realizado ejerciciosde implementacin de aplicaciones mvi-les [4][5][6]con lossiguienteselementosdesoftware:
Cliente:WinMobile,RIM,Android Intermediario; Web services, ASP.Net,
IIS,Casini. Servidor:SMBDSQLServer.
Cliente Intermediario
ListoSolicitaCatalogo Recibesolicitud
EnvaCatalogo
CapturaDatos
EnvaDatos RecibeDatos
ActualizaDatos
machote final.indd 149 01/11/2012 03:59:25 p.m.
150150
E N To RNo S PA R A E L D E S A R R o L Lo D E A P L I C AC I oN E S M V I L E S
Revista viculos vol. # NmeRo #
A T
Tomandoencuentaelesquemadeconexindescritoenla(figura4).
Figura 4.EsquemadeConexin.
Acontinuacinsemuestranejemplosdeapli-cacionesdesarrolladasenlosdiferentessiste-masoperativosparadispositivosmviles.
3.1. Middleware
SeiniciaimplementandounesquemadeBDenSQLServeryaccedindolopormediodeunWebServicedesarrolladoenASP.Net[7](Figura5).
Figura 5. WebServices.
El cual implementa los servicios (WebMe-thods) de consulta de catlogos y actualiza-cindedatos (Figura6).
Figura 6. ImplementacinAccesoaBasedeDatos.
UnavezcreadoelserviciowebsepublicaenIIS o Casini comoWeb Application Server(Figura7).
machote final.indd 150 01/11/2012 03:59:26 p.m.
151151
m a R t N e z c a s t R o , J o s m . - c u e v a s v a l e N c i a , R e N e . - m a R t N e z c a s t R o , R i c a R d o N .
Revista viculos vol. # NmeRo #
l o sE N E R o D E 2 0 1 2V o L U M E N 9 N M E R o 1
ucnv
Figura 7.Serviciowebenejecucin.
3.2. Win Mobile
Paralacreacindeunaaplicacinenestesis-temaoperativoserequiride la instalacindelVisualStudioDotNet2008[8],dedondeseseleccion laplantillaparacrearunpro-yectoSmartDevice(Figura8).
Figura 8. ProyectoSmartDevice.
Mediante labarradeherramientassecons-truyeinterfazdelaaplicacin(Figura9).
Figura 9.CreacindelaInterfaz.
Unavezcreadaseprocedeaprogramarlasacciones a realizar en los botones corres-pondientes, por ejemplo la insercindeunregistro nuevo se realiza con las siguientesinstrucciones:
private void menuItem3_Click_1(object sender, EventArgs e){pedidoBindingSource1.AddNew();Proyecto3.PedidoEditViewDialog
pedidoEditViewDialog = Proyecto3.PedidoEditViewDialog.Instance(this.pedidoBindingSource1);
pedidoEditViewDialog.ShowDialog();this.pedidoTableAdapter1.Update(this.
catalogoDataSet1.Pedido);this.pedidoBindingSource1.MoveFirst();
}
Parafinalizarserealizanlaspruebasdefun-cionamientodelaaplicacin(Figura10).
machote final.indd 151 01/11/2012 03:59:27 p.m.
152152
E N To RNo S PA R A E L D E S A R R o L Lo D E A P L I C AC I oN E S M V I L E S
Revista viculos vol. # NmeRo #
A T
Figura 10.EjecucindelaAplicacin.
3.3. RIM
Enlosrequerimientosparadesarrollarapli-cacionesmviles para el sistema operativoResearchInMotion(InvestigacinenMovi-miento)seencuentralainstalacindelossi-guienteselementosdesoftware[9]:
Plug-in BlackBerry para el entorno dedesarrolloEclipse[10].
SimuladorBlackBerry[9]. MDS(MovilDataService) LibreraKsoap[11].
ComorequisitoparaeliniciosedebeagregarlalibreraKSOAPenunproyectovaciodeBlack-berry,parasuposterior referenciaenelpro-yectodelaaplicacin(ProjectReferences),alrealizarlapruebascorrespondientesseidenti-ficesteprocedimientocomovlido,yaquealhacerreferenciadirectaalalibreramenciona-da,estanofuereconocida(Figura11).
Figura 11. ProyectovacoparalaLibreraKSOAP.
EnEclipseseseleccionaelproyectodeBlac-kberrypara iniciar el desarrollodenuestraaplicacin(Figura12).
Figura 12. ProyectoBlackberry.
Secreanlosobjetosqueservirndeinterfazdelaaplicacin(Figura13).
machote final.indd 152 01/11/2012 03:59:28 p.m.
153153
m a R t N e z c a s t R o , J o s m . - c u e v a s v a l e N c i a , R e N e . - m a R t N e z c a s t R o , R i c a R d o N .
Revista viculos vol. # NmeRo #
l o sE N E R o D E 2 0 1 2V o L U M E N 9 N M E R o 1
ucnv
Figura 13. Interfazconobjetosautilizar.
ContinuamosconlacodificacinenLengua-jedeProgramacinJavaparaespecificarlasacciones a realizar por parte de los objetoscontenidosenlainterfaz.Porejemploagre-garunnuevoregistro.
agregar_Boton = new ButtonField (AGREGAR, Field.FOCUSABLE);agregar_Boton.setChangeListener(new ClickBotonAgregar());
publicclass ClickBotonAgregar implements FieldChangeListener{
publicvoid fieldChanged(Field field, int context) {
objFunc.insertarPedidos(Integer.parseInt(idPedido_Field.getText()),String.valueOf(comboClientes.getSelectedIndex()+1).toString(),String.valueOf(comboProductos.getSelectedIndex()+1).toString(),fecha_Field.getText(),cantidad_Field.getText()
);cargaListaPedidos();}}
publicvoidinsertarPedidos(int id,String cliente,String producto, String fecha, String cantidad)
{try{
URI myURI = URI.create(file:///SDCard/Databases/ + BDPedidos.db);
db = DatabaseFactory.open(myURI);Statement st = db.createStatement (INSERT INTO \pedidos\( \id\, \cliente\, \producto\, \fecha\, \cantidad\)
VALUES (+id+, + cliente + , + producto + , + fecha + , + cantidad +
););ejecutar(st);db.close();
}catch ( Exception ex ){Dialog.alert(Error al insertar: +ex.getMessage() );ex.printStackTrace();}}
Para realizar laspruebasde funcionamientoesnecesarioejecutarelsimuladordeBlackBe-rry,elalmacenamientolaBDlocalquesecreaconlaaplicacin,sedebesimularunatarjetaSDmultimediaymontarlaenelsimulador,secreaunacarpetaencualquierrutadelacom-putadora,yseconfiguraelmenChange SD card;seagregaeldirectoriodelaSDcard,queserlarutadondesecrelacarpeta;semontalanuevaSDcardalsimuladorseleccionan-dolaopcionMount Selected (Figura14).
Figura 14.SimulacindelAlmacenamientoLocalparalaBD.
machote final.indd 153 01/11/2012 03:59:29 p.m.
154154
E N To RNo S PA R A E L D E S A R R o L Lo D E A P L I C AC I oN E S M V I L E S
Revista viculos vol. # NmeRo #
A T
Paraejecutarlaaplicacinenelsimuladoresnecesariocargar laaplicacingeneradaconextension *.COD desde el menu File, en laopcinLoad BlackBerry(Figura15).
Figura 15.EjecucindelaAplicacin.
Enla(Figura16)seobservapartedelfuncio-namientodeunainterfazdelaaplicacin.
3.4. Android
ParadesarrollarunaaplicacinAndroid,esnecesario descargar, instalar y actualizar laversin ms reciente del SDK del sistemaoperativo[12],astambinelJDKdeJava.
De lamisma formaque en el apartado an-teriorseutilizaEclipsecomoentornodede-sarrollo[10],paraellosedebeconfigurarelplugindeAndroid,tomandoencuentalossi-guientespasos:
EnelmenHelp,deseleccionarlaopcinInstall New Software.
SeleccionarelbotnAdd,eingresarlasi-guienteURLhttps://dl-ssl.google.com/android/eclipse/(Figura15).
Figura 15.ConfiguracindeEclipse
Unavez en el entorno se selecciona el tipodeproyectoadesarrollarylaversindeAn-droidautilizar(Figura16).
Figura 16.SeleccionarProyectoyversindeAndroid.
machote final.indd 154 01/11/2012 03:59:30 p.m.
155155
m a R t N e z c a s t R o , J o s m . - c u e v a s v a l e N c i a , R e N e . - m a R t N e z c a s t R o , R i c a R d o N .
Revista viculos vol. # NmeRo #
l o sE N E R o D E 2 0 1 2V o L U M E N 9 N M E R o 1
ucnv
Se est en condiciones de a crear la interfazgrafica, para ello se debemodificar el archi-vores>layout>main.xmlycolocarlasetiquetas,cuadrosdetexto,botonesylagrilla(Figura17).
Figura 17. InterfazdeProyectoenAndroid.
Seprocedeadefinirlasaccionesaejecutarenlosbotonesdelainterfaz,porejemploagre-garunregistroalabasededatos.
public void onAdd(View botton) {objetoFunciones.AgregarBaseDatos(Integer.valueOf(clave.getText().toString()),clientes[cliente.getSelectedItemPosition()][0],productos[producto.getSelectedItemPosition()][0],fecha.getText().toString(),cantidad.getText().toString()
);mensaje(Aadido a la Base de Datos);actualizar();clave.setText();fecha.setText();cantidad.setText();
}
public void AgregarBaseDatos (int clave, String empleado, String producto,String fecha, String cantidad
){SQLiteDatabase db = sqlhelper.getWritableDatabase();db.execSQL(INSERT INTO pedidos (clave, empleado, producto, fecha, cantidad) VALUES ( + clave + , + empleado + , + producto + , + fecha + , + cantidad + )
);db.close();
}
Seejecutalaaplicacinconlafinalidaddeve-rificarelcorrectofuncionamiento(Figura18).
Figura 18.ConfiguracindeEclipse
machote final.indd 155 01/11/2012 03:59:31 p.m.
156156
E N To RNo S PA R A E L D E S A R R o L Lo D E A P L I C AC I oN E S M V I L E S
Revista viculos vol. # NmeRo #
A T
4. Conclusiones
Se describieron los pasos generales para eldesarrollo de aplicacionesmviles, sin em-bargoanpuedengenerarseunnmeroma-yordeparaeldesarrollodeestastecnologas,detallarenlossistemasoperativosaplicacio-nes demayor complejidad, interaccin conlosperifricosdelastabletsysmartphones,ascomoinvestigarelprocesodecomercia-lizacinde lasaplicacionesenelmarketdecadasistemaoperativo.
Deldocumentopresentadosedestacaqueyahasido implementadoporalumnosde tresinstitucionesdeeducacinsuperiorenelEs-tado de Guerrero: Instituto Tecnolgico deChilpancingo, Universidad Autnoma deGuerreroyUniversidadAmericanadeAca-pulco, queda a disposicin la versin com-plelade
QuedapendienteelmundoIOS,yaqueloselementosdepruebapara sudesarrollo es-tnenprocesodeelaboracin,encuentoseconcluyan los trabajos correspondientes secontar con la evidencia documental paraabordareltema.
5. Referencias
[1] MallickM., (2003),Mobile and Wireless Design Essentials,ISBN:0471214191JohnWiley&Sons.
[2] Gonzales S., Juan, (2001), Apuntes del Curso SistemasDistribuidos II,Maestraen Ciencias en Ciencias Computacio-nalesconespecialidadenSistemasDis-tribuidos del Centro Nacional de In-vestigacin y Desarrollo Tecnolgico,Cuernavaca,Morelos,Mxico.
[3] Silberschatz&etall,(2002),Fundamen-tos de Bases de Datos, Cuarta edicin.,
McGraw-Hill / Interamericana de Es-paa,S.A.U.
[4] Martnez C., J.M., (2012), Apuntes del Curso: Desarrollo de Aplicaciones para Tecnologas Mviles, Ingeniera en Sis-temas Computacionales especialidadenDesarrollodeSoftwaredelInstitutoTecnolgico de Chilpancingo, Guerre-ro,Mxico.http://jmmc.itchilpancingo.edu.mx/moodle/course/view.php?id=93
[5] Martnez C., J.M., (2012), Apuntes del Curso: Tecnologas Mviles,IngenieraenComputacindelaUnidadAcadmicade Ingenierade laUniversidadAut-nomadeGuerrero,Chilpancingo,Gue-rrero,Mxico.
[6] Martnez C., J.M., (2012), Apuntes del Curso: Cmputo Mvil, Ingeniera enComputacin de la Facultad de Inge-nieradelaUniversidadAmericanadeAcapulco,Guerrero,Mxico.
[7] Microsoft (2012), Centro de desarrollo de ASP.NET, http://msdn.microsoft.com/es-mx/aa336522.
[8] Microsoft(2012),Microsoft Visual Studio Dot Net, http://msdn.microsoft.com/es-mx/vstudio/aa718325
[9] RIM, (2012), Blackberry Develo-pers, http://us.blackberry.com/developers/javaappdev/
[10] EclipseFoundation,(2012),Eclipse Pro-ject,http://www.eclipse.org/
[11] KSOAP, (2012), KSoap 2.1.2, http://sourceforge.net/projects/ksoap2/files/ksoap2/2.1.2/
[12] Google, (2012), Android Developers,http://developer.android.com/index.html
machote final.indd 156 01/11/2012 03:59:31 p.m.