146146
Entornos para el desarrollo de aplicaciones móviles
Martínez Castro, José M.Instituto Tecnológico de Chilpancingo
Chilpancingo, Guerrero, Mé[email protected]
Cuevas Valencia, René E.Universidad Autónoma de Guerrero
Unidad Académica de IngenieríaChilpancingo Guerrero; México
Martínez Castro, Ricardo N.Centro de Bachillerato Tecnológico Industrial y
de Servicios No. 73Rio Bravo, Tamaulipas, México
Resumen
Elesquemadedesarrollodelasaplicacionesmóvilesesunatecnologíaqueseen-cuentra en auge, aun cuando los dispositivosmóviles existendesdehacemásde15años,laperspectivadelosvisionariosdelastecnologíasdelainformación,yladisminucióndecostosdefabricación,hapermitidoquetalesdispositivosesténalalcancedelosusuarios.Auncuandopartedelateoríaparaeldesarrollodeaplicacionesdeestatipoyaseencuentraplasmadaendiver-sosdocumentos,seconsiderarelevanteplantearlosnuevosusosquepuedendarseaestatecnología;loanteriorderivadoporlosavancestecnológicos:características,rendimiento,esquemasdecomunicación,sistemasoperativos,lenguajesdeprogramación,almacenamientoyrecuperacióndedatos,entreotras.
Palabras Clave: Dispositivosmóviles,gestiónconexión–desco-nexión,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. # NúmeRo #
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
ucnív
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. Introducción
Losdispositivosmóvilesposeenenlaactua-lidadcapacidadessimilares,enocasionessu-periores, a las computadoraspersonalesdelosqueseiniciaronenelmundodelacom-putaciónenladécadadelos80s.Loqueobli-ga a retomar el concepto de la optimización de recursosqueenaquellaépocaeradevitalimportancia, almacenamiento y espacio dememoria resurgen por símismos como losnuevos retos a vencer respectode losdise-ñadores;sindejardeladoelrendimientodelosprocesadoresquelaLeydeMoorenonospermiteolvidar.
1.1. Inalámbrico vs Móvil
Comosimilitudespodemosreferirqueelme-diodecomunicaciónutilizadonoestáconfi-nadoaunmedioguiadoocable.
Mallick[1]estableceunadiferenciaentrelosdesarrollos de aplicaciones inalámbricas enrelaciónalasaplicacionesmóviles.Noexiste
unarelaciónbidireccionalentreellas,yaqueno todas las aplicaciones inalámbricas sonmóvilesyviceversa(Figura1).
Figura 1.InalámbricasvsMóviles.
Ladiferenciasepuedeidentificarenlacober-turadelasaplicaciones,estoes,lanecesidaddeestablecerunacomunicacióncontínuaconlacontrapartecorrespondiente;porejemplo:enunareddeárea local inalámbricaexisti-rá comunicación entre losnodos siemprey
machote final.indd 147 01/11/2012 03:59:25 p.m.
148148
E N T o R N o S PA R A E L D E S A R R o L L o D E A P L I C A C I o N E S M ó V I L E S
Revista viculos vol. # NúmeRo #
A T
cuandoseencuentrendentrodelacobertura,deformasimilarocurriráconlasredesdon-de se requiera del enlace de comunicaciónconstanteentreloselementosdelared.
Por otra parte las aplicaciones móviles re-querirándel canalde comunicaciones (ina-lámbrico o alambico)sóloenloscasosdon-de lacomunicacióncon losotrosnodosseanecesaria,estoes,podrácontinuarlaopera-cióndeldispositivoaúnsinlaconexiónper-manenteconlared.
Esto puede semejarse al uso del FTP y delEmailpara transferenciadedatos;mientraselprimerorequieredeuncanaldecomuni-caciónpermanenteentreemisory receptor,elsegundosolorequieredeladireccióndelreceptorparaelenvíodelosdatos.
1.2. Comunicación
Respecto a las formas de comunicación delos dispositivosmóviles pueden referirse alosdiferentesesquemasdecomunicaciónen-trePCs(Figura2):
Wifi(802.11:a,b,g,n,h,i)BluetoothInfrarojoSerial(USB,RS-232)
Figura 2. ComunicaciónInalámbrica.
1.3. Tipo de Dispositivos
Dentrolostiposdedispositivosinalámbricossepuedenencontrar:
• Computadorasdeescritorioyportátiles(Laptop,Notebook,Netbook)
• Tablets• PDAs• Smartphone
Loscualessecomunicancontarjetasdered:integradas, adaptadores operiféricos (USB,PCI,PCMCIA).
2. Diseño
Lorealmenteimportanteenlasaplicacionesmóvileseslarecomendacióndenoabordareldesarrollocompletodeunsistemaalrede-dordelosdispositivosmóviles,yaqueéstasdebenformarpartedeunsistemacompleto,estoes,seránunmódulodecapturay/ocon-sultadeinformación.
Existen diversas formas de diseñar los sis-temas en red, sin embargo un elementoimportante a considerar en este diseño esuna característica inherentea las redes ina-lámbricas, esto es, la intermitencia en lascomunicaciones.
Latendenciaactualeneldesarrollodeapli-cacionesmóvilestratadeasumircondicionesmínimasdeoperaciónrequeridascomoson:conexiónalareddecomunicaciones,recur-soslimitados(almacenamiento,energía).
Seharáunareflexiónmayorsobrelareddecomunicacionesatravésdelsiguienteesque-madegestióndelared.
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. # NúmeRo #
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
ucnív
2.1. Limitantes en las redes de comunicación
Enlospaísesdesarrolladosnoesposiblecon-cebirespaciosdondenoexistacoberturadealgunareddecomunicaciones:celular,WiFi,locualimplicarlaposibilidaddeconectarseaInternetpormedioderedestolerantesafa-llas,dondelosperiodosdedesconexiónpo-dríanconsiderarsemínimos.
Sinembargoenlospaísesendesarrollo,unode las oportunidades demejora es precisa-mente laaplicacióndela infraestructuradecomunicaciones, donde no existe; y dondeexistemejorarlaenelsentidoampliodelcon-ceptooptimización(toleranteafallos,rendi-miento, ancho de banda, disponibilidad) yprincipalmente el costo de acceso al Inter-net;mismoqueenlaactualidadnoesaccesi-bleparatodoslosusuarios,auncuandoexis-ten empresas proveedoras del servicio deInternetinalámbricodebandaanchaatravésdelosenlacesdetelefoníacelular.
2.2. Gestión conexión / desconexión
Una respuesta a esta limitante se encuen-traeneluso limitadode lareddecomuni-cación a través del uso de la ArquitecturaMiddleware(intermediario)[2](Figura3).
Figura 3.Arquitectura
Donde: losclientes inteligentes (alámbricosoinalámbricos)secomunicanalservidor de sin-cronizaciónatravésdelmuro de fuegoparaac-cederalabase de datosentiemposespecíficosdelaejecucióndelaaplicación.
Enreferenciaa losdatossedebeestablecerenelniveldevisión[3],yaquesolosetoma-ranencuentalastablasquetenganrelacióncon lasaccionesa realizareneldispositivomóvil;denominándolas: catálogo, a aquellastablas de consulta; datos, a aquellas tablascuyocontenido será capturadocomoresul-tadodelaoperacióndelosdispositivos.
Serequiereestablecerdosestadosdelcliente inteligente: conexiónydesconexión,queha-cenreferenciadirectaalacomunicaciónconelMiddleware,ycomosecuenciadeenlaceseproponelasiguiente:
3. Implementacion
A este respecto se han realizado ejerciciosde implementación de aplicaciones móvi-les [4][5][6]con lossiguienteselementosdesoftware:
• Cliente:WinMobile,RIM,Android• Intermediario; Web services, ASP.Net,
IIS,Casini.• Servidor:SMBDSQLServer.
Cliente Intermediario
ListoSolicitaCatalogo Recibesolicitud
EnvíaCatalogo
CapturaDatos
EnvíaDatos RecibeDatos
ActualizaDatos
machote final.indd 149 01/11/2012 03:59:25 p.m.
150150
E N T o R N o S PA R A E L D E S A R R o L L o D E A P L I C A C I o N E S M ó V I L E S
Revista viculos vol. # NúmeRo #
A T
Tomandoencuentaelesquemadeconexióndescritoenla(figura4).
Figura 4.EsquemadeConexión.
Acontinuaciónsemuestranejemplosdeapli-cacionesdesarrolladasenlosdiferentessiste-masoperativosparadispositivosmóviles.
3.1. Middleware
SeiniciaimplementandounesquemadeBDenSQLServeryaccediéndolopormediodeunWebServicedesarrolladoenASP.Net[7](Figura5).
Figura 5. WebServices.
El cual implementa los servicios (WebMe-thods) de consulta de catálogos y actualiza-cióndedatos (Figura6).
Figura 6. ImplementaciónAccesoaBasedeDatos.
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. # NúmeRo #
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
ucnív
Figura 7.Serviciowebenejecución.
3.2. Win Mobile
Paralacreacióndeunaaplicaciónenestesis-temaoperativoserequirióde la instalacióndelVisualStudioDotNet2008[8],dedondeseseleccionó laplantillaparacrearunpro-yectoSmartDevice(Figura8).
Figura 8. ProyectoSmartDevice.
Mediante labarradeherramientassecons-truyeinterfazdelaaplicación(Figura9).
Figura 9.CreacióndelaInterfaz.
Unavezcreadaseprocedeaprogramarlasacciones a realizar en los botones corres-pondientes, por ejemplo la insercióndeunregistro 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-cionamientodelaaplicación(Figura10).
machote final.indd 151 01/11/2012 03:59:27 p.m.
152152
E N T o R N o S PA R A E L D E S A R R o L L o D E A P L I C A C I o N E S M ó V I L E S
Revista viculos vol. # NúmeRo #
A T
Figura 10.EjecucióndelaAplicación.
3.3. RIM
Enlosrequerimientosparadesarrollarapli-cacionesmóviles para el sistema operativoResearchInMotion(InvestigaciónenMovi-miento)seencuentralainstalacióndelossi-guienteselementosdesoftware[9]:
• Plug-in BlackBerry para el entorno dedesarrolloEclipse[10].
• SimuladorBlackBerry[9].• MDS(MovilDataService)• LibreríaKsoap[11].
ComorequisitoparaeliniciosedebeagregarlalibreríaKSOAPenunproyectovaciodeBlack-berry,parasuposterior referenciaenelpro-yectodelaaplicación(ProjectReferences),alrealizarlapruebascorrespondientesseidenti-ficóesteprocedimientocomoválido,yaquealhacerreferenciadirectaalalibreríamenciona-da,estanofuereconocida(Figura11).
Figura 11. ProyectovacíoparalaLibreríaKSOAP.
EnEclipseseseleccionaelproyectodeBlac-kberrypara iniciar el desarrollodenuestraaplicación(Figura12).
Figura 12. ProyectoBlackberry.
Secreanlosobjetosqueservirándeinterfazdelaaplicación(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. # NúmeRo #
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
ucnív
Figura 13. Interfazconobjetosautilizar.
ContinuamosconlacodificaciónenLengua-jedeProgramaciónJavaparaespecificarlasacciones 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,elalmacenamientolaBDlocalquesecreaconlaaplicación,sedebesimularunatarjetaSDmultimediaymontarlaenelsimulador,secreaunacarpetaencualquierrutadelacom-putadora,yseconfiguraelmenúChange SD card;seagregaeldirectoriodelaSDcard,queserálarutadondesecreólacarpeta;semontala“nuevaSDcard”alsimuladorseleccionan-dolaopcionMount Selected (Figura14).
Figura 14.SimulacióndelAlmacenamientoLocalparalaBD.
machote final.indd 153 01/11/2012 03:59:29 p.m.
154154
E N T o R N o S PA R A E L D E S A R R o L L o D E A P L I C A C I o N E S M ó V I L E S
Revista viculos vol. # NúmeRo #
A T
Paraejecutarlaaplicaciónenelsimuladoresnecesariocargar laaplicacióngeneradaconextension *.COD desde el menu File, en laopciónLoad BlackBerry(Figura15).
Figura 15.EjecucióndelaAplicación.
Enla(Figura16)seobservapartedelfuncio-namientodeunainterfazdelaaplicación.
3.4. Android
ParadesarrollarunaaplicaciónAndroid,esnecesario descargar, instalar y actualizar laversión más reciente del SDK del sistemaoperativo[12],asítambiénelJDKdeJava.
De lamisma formaque en el apartado an-teriorseutilizaEclipsecomoentornodede-sarrollo[10],paraellosedebeconfigurarelplugindeAndroid,tomandoencuentalossi-guientespasos:
• EnelmenúHelp,deseleccionarlaopciónInstall New Software.
• SeleccionarelbotónAdd,eingresarlasi-guienteURLhttps://dl-ssl.google.com/android/eclipse/(Figura15).
Figura 15.ConfiguracióndeEclipse
Unavez en el entorno se selecciona el tipodeproyectoadesarrollarylaversióndeAn-droidautilizar(Figura16).
Figura 16.SeleccionarProyectoyversióndeAndroid.
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. # NúmeRo #
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
ucnív
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(“Añadido 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();
}
Seejecutalaaplicaciónconlafinalidaddeve-rificarelcorrectofuncionamiento(Figura18).
Figura 18.ConfiguracióndeEclipse
machote final.indd 155 01/11/2012 03:59:31 p.m.
156156
E N T o R N o S PA R A E L D E S A R R o L L o D E A P L I C A C I o N E S M ó V I L E S
Revista viculos vol. # NúmeRo #
A T
4. Conclusiones
Se describieron los pasos generales para eldesarrollo de aplicacionesmóviles, sin em-bargoaúnpuedengenerarseunnúmeroma-yordeparaeldesarrollodeestastecnologías,detallarenlossistemasoperativosaplicacio-nes demayor complejidad, interacción conlosperiféricosdelastabletsysmartphones,asícomoinvestigarelprocesodecomercia-lizaciónde lasaplicacionesenelmarketdecadasistemaoperativo.
Deldocumentopresentadosedestacaqueyahasido implementadoporalumnosde tresinstitucionesdeeducaciónsuperiorenelEs-tado de Guerrero: Instituto Tecnológico deChilpancingo, Universidad Autónoma deGuerreroyUniversidadAmericanadeAca-pulco, queda a disposición la versión com-plelade
QuedapendienteelmundoIOS,yaqueloselementosdepruebapara sudesarrollo es-tánenprocesodeelaboración,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,Maestríaen Ciencias en Ciencias Computacio-nalesconespecialidadenSistemasDis-tribuidos del Centro Nacional de In-vestigación y Desarrollo Tecnológico,Cuernavaca,Morelos,México.
[3] Silberschatz&etall,(2002),Fundamen-tos de Bases de Datos, Cuarta edición.,
McGraw-Hill / Interamericana de Es-paña,S.A.U.
[4] Martínez C., J.M., (2012), Apuntes del Curso: Desarrollo de Aplicaciones para Tecnologías Móviles, Ingeniería en Sis-temas Computacionales especialidadenDesarrollodeSoftwaredelInstitutoTecnológico de Chilpancingo, Guerre-ro,México.http://jmmc.itchilpancingo.edu.mx/moodle/course/view.php?id=93
[5] Martínez C., J.M., (2012), Apuntes del Curso: Tecnologías Móviles,IngenieríaenComputacióndelaUnidadAcadémicade Ingenieríade laUniversidadAutó-nomadeGuerrero,Chilpancingo,Gue-rrero,México.
[6] Martínez C., J.M., (2012), Apuntes del Curso: Cómputo Móvil, Ingeniería enComputación de la Facultad de Inge-nieríadelaUniversidadAmericanadeAcapulco,Guerrero,México.
[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.
Top Related