12. Entornos Para El Desarrollo de Aplicaciones Moviles

Preview:

DESCRIPTION

fddf

Citation preview

  • 146146

    Entornos para el desarrollo de aplicaciones mviles

    Martnez Castro, Jos M.Instituto Tecnolgico de Chilpancingo

    Chilpancingo, Guerrero, Mxicojmmtzc@hotmail.com

    Cuevas Valencia, Ren E.Universidad Autnoma de Guerrero

    Unidad Acadmica de IngenieraChilpancingo Guerrero; Mxico

    reneecuevas@hotmail.com

    Martnez Castro, Ricardo N.Centro de Bachillerato Tecnolgico Industrial y

    de Servicios No. 73Rio Bravo, Tamaulipas, Mxico

    rmartincas@hotmail.com

    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.