entornos para el desarrollo de aplicaciones móviles -...

Post on 21-Apr-2018

224 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

146146

Entornos para el desarrollo de aplicaciones móviles

Martínez Castro, José M.Instituto Tecnológico de Chilpancingo

Chilpancingo, Guerrero, Méxicojmmtzc@hotmail.com

Cuevas Valencia, René E.Universidad Autónoma de Guerrero

Unidad Académica de IngenieríaChilpancingo Guerrero; México

reneecuevas@hotmail.com

Martínez Castro, Ricardo N.Centro de Bachillerato Tecnológico Industrial y

de Servicios No. 73Rio Bravo, Tamaulipas, México

rmartincas@hotmail.com

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