SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
An Evening with…

Ionic Framework
Arkho Innova Meetup Series
• Un espacio para compartir experiencias
y conocimiento
• Un espacio para hacer relaciones entre
equipos con intereses afines
• Un espacio para pasarla bien
Gracias por su asistencia!!!
1. El framework
2. El proyecto
3. La experiencia
4. Lo que viene
Nuestro viaje para hoy…
El framework
Item Híbrido Nativo
Tecnología
HTML 5, Javascript (JS), CSS y Apache
Cordova
iOS /Swift; Android/Java
Reusabilidad de la
implementación
Alta Ninguna, código independiente
Desempeño
Medio (depende de ejecución de JS y
plugins nativos)
Alto (máximo desempeño posible)
Soporte de plataforma
Medio (depende de plugins nativos Apache
Cordova)
Completo (características del SDK y el
sistema operativo)
UI Medio (emulación de controles UI nativos)
Completo (características del SDK y el
sistema operativo)
Presupuesto Medio Alto
La batalla nativo vs. híbrido
Ionic
Ionic
El proyecto
Objetivos
1. Aumentar la calidad de servicio para los clientes y en
específico en el proceso de reserva de taxis, creando
herramientas de auto-atención, de fácil acceso
y uso.
2. Reducir costos de atención en operación y atención de
llamadas de reserva al callcenter.
Alcance del proyecto
1. Login
2. Reservar servicio de taxi
3. Solicitar nuevo servicio
4. Calificación del servicio
La experiencia
Los números del proyecto
• 4 integrantes en el equipo
• 3 meses de trabajo
• 356 historias
• Más de 10 sprints (todos con review)
• 25 branches en GitLab
• 4 contextos de prueba (ionic serve, ionic view,
xcode/android studio, teléfonos reales)
• Más de 60 incidencias (15 reportadas por el cliente)
• 2 plataformas (iOS & Android)
Equipo
Líder de Proyecto Arquitecto Ingeniería UI QA
• Responsable de
entrega
• Relación con
cliente
• Participante del
desarrollo
• Responsabilidad
de equipo.
• Se tomaron
decisiones
conjuntas.
• Javascript/
HTML/CSS
• Responsabilid
ad de equipo.
• Se tomaron
decisiones
conjuntas.
• Desempeñado
por el equipo
de ingeniería
en las últimas
etapas
Método
Gestión
PoCs
• Más de 15 PoCs distintas en diferentes Sprints
• Integraciones con Google
• Pruebas de Cordova Plugins
Servicios
• Diseño de servicios en SOAPUI.
mockServices para cada uno de los
casos de prueba
• Inclusión de headers para evitar
CORS y tipo de contenido
adecuado.
• Manejo de errores tipo
500,401,404, etc.
• Cada servicio con múltiples
respuestas usando scripts Groovy
• Prueba con POSTMAN
• Shell para automatización de inicio
de servicios para integración
continua
Mapa
• La parte central de la APP
• Dos distintas integraciones:
desde cero y usando ng-map
• Inhabilitamos UI y tooltips
Geo*
• Usamos Geolocation por Cordova plugin y por HTML5 geolocation API. Estamos usando
Cordova*
• Integrado con Google Maps API SDK 3 (markers, display, etc.)
• Integrado con servicios Google Places Autocomplete
• Integrado con servicios Google Reverse Geocoding
{
"name": "TheApp",
"app_id": "bb32da5c",
"gulpStartupTasks": [
"sass",
"watch"
],
"watchPatterns": [
"www/**/*",
"!www/lib/**/*"
],
"proxies": [{
"path": "/theapp-app/",
"proxyUrl": "https://servicios.theclient.cl:443/theapp-app/"
}]
}
Proxies
• Invocar los servicios en modo
“desarrollo”
• Evitar problemas de acceso desde un
ambiente no real a los servicios (Cors)
.constant('webservices', {
url : 'http://localhost:8100/theapp-app/',
config : {
headers : {
'Accept' : 'application/json, text/plain, */*',
'Content-Type' : 'application/json; charset=utf-8;'
},
timeout : 15000
}
})
{
"dev" : {
...
},
"qa" : {
"google_analytics" : "UA-82813354-1",
"google_maps" : "https://maps.googleapis.com/maps/api/js?
key=AIzaSyC8a6uEEoOLqqthc4_psw7Y1vtX2mWS_N4&libraries=places",
"gcm_number" : "351097259074",
"app_version" : "0.5.0",
"url_services" : “https://servicios.theclient.cl:443/theapp-app/",
"url_term_and_cond" : "https://servicios.theclient.cl:443/theapp-app/conditions"
},
"production" : {
...
}
}
Parámetros
...gulp.task(‘remove-proxy’, function() {
return replace({
regex: "http://localhost:8100/theapp-app/",
replacement: param. url_services,
paths: appFile,
recursive: false,
silent: false,
});
});
...
• Múltiples configuraciones por ambiente
• Reemplazo de código usando Gulp
Cordova
• cordova-plugin-dialogs (alerts y dialogs)
• cordova-plugin-geolocation (geo?)
• cordova-plugin-x-toast (toast alerts)
• cordova-plugin-splashscreen (splash)
• cordova-plugin-network-information
(offline)
• cordova-plugin-whitelist (?)
• ionic-plugin-keyboard (bug iOS)
• cordova-plugin-ios-disableshaketoedit
(shake to edit)
• cordova-plugin-google-analytics
(analytics)
• cordova-plugin-app-version (app
version)
• cordova-plugin-device (?)
Efectos
• Distintas pruebas para la usabilidad del marker en el mapa
• Slide out/in en estado del servicio
• Mensajes emergentes Toast
Analítica
• Plugin de Cordova
• Integración de screen
view (en cada ingreso)
y éxito/error de
servicios
• También se registra el
tiempo de
respuesta de
servicios
Lo que viene
Lo que viene
• Profundizar en Ionic 2
• Angular 2
• Organisation and Structure
• Tooling
• Navigation
• Template Syntax
• ES6 Syntax
• Profundizar en frameworks alternativos
como AppCelerator
Referencias
1. http://mobile-frameworks-comparison-chart.com/
2. http://ionicframework.com/
3. http://ngcordova.com/
4. https://ngmap.github.io/
5. https://developers.google.com/maps/documentation/javascript/places
6. https://developers.google.com/maps/documentation/javascript/geocoding#ReverseGeocoding
7. https://github.com/driftyco/ionic/issues/1798
8. http://jimhoskins.com/2012/12/17/angularjs-and-apply.html
9. http://codepen.io/mhartington/pen/bwdoA
10. https://github.com/apache/cordova-plugin-geolocation
11. https://www.thepolyglotdeveloper.com/2014/09/show-native-toast-notifications-using-ionic-framework/
12. https://github.com/nleclerc/cordova-plugin-ios-disableshaketoedit
13. https://www.thepolyglotdeveloper.com/2014/06/using-google-analytics-ionicframework/
14. http://caniuse.com/
15. https://developers.google.com/maps/documentation/javascript/events?hl=es
16. http://blog.ionic.io/handling-cors-issues-in-ionic/
17. https://github.com/wallin/angular-gravatar
18. http://www.joshmorony.com/7-reasons-why-ionic-2-is-better-than-ionic-1/
19. http://www.joshmorony.com/how-to-convert-an-ionic-1-application-to-ionic-2/
20. http://www.joshmorony.com/a-simple-guide-to-navigation-in-ionic-2/
21. http://www.joshmorony.com/intro-to-ecmascript-6-and-angular-2-for-ionic-developers/
22. https://crosswalk-project.org
An Evening with…

Ionic Framework
Arkho Innova Meetup Series

Más contenido relacionado

Destacado

Ionic y angular.js
Ionic y angular.jsIonic y angular.js
Ionic y angular.jsGDG Cali
 
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaDesarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaAlián Rigñack Quevedo
 
Hybrid Mobile Apps with Ionic
Hybrid Mobile Apps with IonicHybrid Mobile Apps with Ionic
Hybrid Mobile Apps with IonicErik Porroa
 
Mobile Day - Ionic 2
Mobile Day - Ionic 2Mobile Day - Ionic 2
Mobile Day - Ionic 2Software Guru
 
Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework Marcos Reynoso
 
Build Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic FrameworkBuild Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic FrameworkSalesforce Developers
 
Mini curso - Ionic Framework
Mini curso - Ionic FrameworkMini curso - Ionic Framework
Mini curso - Ionic Frameworkjuniorschroder
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasScio Consulting
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesSergio Castillo Yrizales
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoAlamo Saravali
 

Destacado (14)

Ionic framework UTPL
Ionic framework UTPLIonic framework UTPL
Ionic framework UTPL
 
Ionic y angular.js
Ionic y angular.jsIonic y angular.js
Ionic y angular.js
 
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaDesarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
 
Hybrid Mobile Apps with Ionic
Hybrid Mobile Apps with IonicHybrid Mobile Apps with Ionic
Hybrid Mobile Apps with Ionic
 
Mobile Day - Ionic 2
Mobile Day - Ionic 2Mobile Day - Ionic 2
Mobile Day - Ionic 2
 
Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework
 
Hybrid app development with ionic
Hybrid app development with ionicHybrid app development with ionic
Hybrid app development with ionic
 
Build Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic FrameworkBuild Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic Framework
 
Mini curso - Ionic Framework
Mini curso - Ionic FrameworkMini curso - Ionic Framework
Mini curso - Ionic Framework
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles Híbridas
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móviles
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
 
Ionic 2 - Introduction
Ionic 2 - IntroductionIonic 2 - Introduction
Ionic 2 - Introduction
 

Similar a An evening with ... Ionic Framework Meetup

Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015Globant
 
App engine
App engineApp engine
App engineThirdWay
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparencytrustparency
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guestd24c393
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTBEEVA_es
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasSoftware Guru
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guest976d083
 

Similar a An evening with ... Ionic Framework Meetup (20)

Arquitectura
Arquitectura Arquitectura
Arquitectura
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Introduccion android
Introduccion androidIntroduccion android
Introduccion android
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
App engine
App engineApp engine
App engine
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
 
PhoneGap Basics v1.0
PhoneGap Basics v1.0PhoneGap Basics v1.0
PhoneGap Basics v1.0
 
Serverless Wars
Serverless WarsServerless Wars
Serverless Wars
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparency
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativas
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Servicios web
Servicios webServicios web
Servicios web
 
Open edge mobile
Open edge mobileOpen edge mobile
Open edge mobile
 

Más de Arkhotech

An Evening with Agile lean design_thinking
An Evening with Agile lean design_thinkingAn Evening with Agile lean design_thinking
An Evening with Agile lean design_thinkingArkhotech
 
An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2Arkhotech
 
An evening with...Rust
An evening with...RustAn evening with...Rust
An evening with...RustArkhotech
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go LangArkhotech
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... DockerArkhotech
 
An evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajarAn evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajarArkhotech
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1Arkhotech
 
An evening with... Scrum
An evening with... ScrumAn evening with... Scrum
An evening with... ScrumArkhotech
 
An evening with... Liquidbase
An evening with... LiquidbaseAn evening with... Liquidbase
An evening with... LiquidbaseArkhotech
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOpsArkhotech
 
An evening with... BPM redhat Meetup
An evening with... BPM redhat MeetupAn evening with... BPM redhat Meetup
An evening with... BPM redhat MeetupArkhotech
 
An evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupAn evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupArkhotech
 
An evening with... Agile Metrics Meetup
An evening with... Agile Metrics MeetupAn evening with... Agile Metrics Meetup
An evening with... Agile Metrics MeetupArkhotech
 
An evening with... Apache hadoop Meetup
An evening with...  Apache hadoop MeetupAn evening with...  Apache hadoop Meetup
An evening with... Apache hadoop MeetupArkhotech
 
An evening with... Polymer Intro Meetup
An evening with... Polymer Intro MeetupAn evening with... Polymer Intro Meetup
An evening with... Polymer Intro MeetupArkhotech
 
An evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager MeetupAn evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager MeetupArkhotech
 
An evening with... No SQL Meetup
An evening with... No SQL MeetupAn evening with... No SQL Meetup
An evening with... No SQL MeetupArkhotech
 

Más de Arkhotech (17)

An Evening with Agile lean design_thinking
An Evening with Agile lean design_thinkingAn Evening with Agile lean design_thinking
An Evening with Agile lean design_thinking
 
An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2
 
An evening with...Rust
An evening with...RustAn evening with...Rust
An evening with...Rust
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... Docker
 
An evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajarAn evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajar
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1
 
An evening with... Scrum
An evening with... ScrumAn evening with... Scrum
An evening with... Scrum
 
An evening with... Liquidbase
An evening with... LiquidbaseAn evening with... Liquidbase
An evening with... Liquidbase
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOps
 
An evening with... BPM redhat Meetup
An evening with... BPM redhat MeetupAn evening with... BPM redhat Meetup
An evening with... BPM redhat Meetup
 
An evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupAn evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro Meetup
 
An evening with... Agile Metrics Meetup
An evening with... Agile Metrics MeetupAn evening with... Agile Metrics Meetup
An evening with... Agile Metrics Meetup
 
An evening with... Apache hadoop Meetup
An evening with...  Apache hadoop MeetupAn evening with...  Apache hadoop Meetup
An evening with... Apache hadoop Meetup
 
An evening with... Polymer Intro Meetup
An evening with... Polymer Intro MeetupAn evening with... Polymer Intro Meetup
An evening with... Polymer Intro Meetup
 
An evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager MeetupAn evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager Meetup
 
An evening with... No SQL Meetup
An evening with... No SQL MeetupAn evening with... No SQL Meetup
An evening with... No SQL Meetup
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (13)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

An evening with ... Ionic Framework Meetup

  • 1. An Evening with…
 Ionic Framework Arkho Innova Meetup Series
  • 2. • Un espacio para compartir experiencias y conocimiento • Un espacio para hacer relaciones entre equipos con intereses afines • Un espacio para pasarla bien Gracias por su asistencia!!!
  • 3. 1. El framework 2. El proyecto 3. La experiencia 4. Lo que viene Nuestro viaje para hoy…
  • 5. Item Híbrido Nativo Tecnología HTML 5, Javascript (JS), CSS y Apache Cordova iOS /Swift; Android/Java Reusabilidad de la implementación Alta Ninguna, código independiente Desempeño Medio (depende de ejecución de JS y plugins nativos) Alto (máximo desempeño posible) Soporte de plataforma Medio (depende de plugins nativos Apache Cordova) Completo (características del SDK y el sistema operativo) UI Medio (emulación de controles UI nativos) Completo (características del SDK y el sistema operativo) Presupuesto Medio Alto La batalla nativo vs. híbrido
  • 6.
  • 7.
  • 11. Objetivos 1. Aumentar la calidad de servicio para los clientes y en específico en el proceso de reserva de taxis, creando herramientas de auto-atención, de fácil acceso y uso. 2. Reducir costos de atención en operación y atención de llamadas de reserva al callcenter. Alcance del proyecto 1. Login 2. Reservar servicio de taxi 3. Solicitar nuevo servicio 4. Calificación del servicio
  • 13. Los números del proyecto • 4 integrantes en el equipo • 3 meses de trabajo • 356 historias • Más de 10 sprints (todos con review) • 25 branches en GitLab • 4 contextos de prueba (ionic serve, ionic view, xcode/android studio, teléfonos reales) • Más de 60 incidencias (15 reportadas por el cliente) • 2 plataformas (iOS & Android)
  • 14. Equipo Líder de Proyecto Arquitecto Ingeniería UI QA • Responsable de entrega • Relación con cliente • Participante del desarrollo • Responsabilidad de equipo. • Se tomaron decisiones conjuntas. • Javascript/ HTML/CSS • Responsabilid ad de equipo. • Se tomaron decisiones conjuntas. • Desempeñado por el equipo de ingeniería en las últimas etapas
  • 17. PoCs • Más de 15 PoCs distintas en diferentes Sprints • Integraciones con Google • Pruebas de Cordova Plugins
  • 18. Servicios • Diseño de servicios en SOAPUI. mockServices para cada uno de los casos de prueba • Inclusión de headers para evitar CORS y tipo de contenido adecuado. • Manejo de errores tipo 500,401,404, etc. • Cada servicio con múltiples respuestas usando scripts Groovy • Prueba con POSTMAN • Shell para automatización de inicio de servicios para integración continua
  • 19. Mapa • La parte central de la APP • Dos distintas integraciones: desde cero y usando ng-map • Inhabilitamos UI y tooltips
  • 20. Geo* • Usamos Geolocation por Cordova plugin y por HTML5 geolocation API. Estamos usando Cordova* • Integrado con Google Maps API SDK 3 (markers, display, etc.) • Integrado con servicios Google Places Autocomplete • Integrado con servicios Google Reverse Geocoding
  • 21. { "name": "TheApp", "app_id": "bb32da5c", "gulpStartupTasks": [ "sass", "watch" ], "watchPatterns": [ "www/**/*", "!www/lib/**/*" ], "proxies": [{ "path": "/theapp-app/", "proxyUrl": "https://servicios.theclient.cl:443/theapp-app/" }] } Proxies • Invocar los servicios en modo “desarrollo” • Evitar problemas de acceso desde un ambiente no real a los servicios (Cors) .constant('webservices', { url : 'http://localhost:8100/theapp-app/', config : { headers : { 'Accept' : 'application/json, text/plain, */*', 'Content-Type' : 'application/json; charset=utf-8;' }, timeout : 15000 } })
  • 22. { "dev" : { ... }, "qa" : { "google_analytics" : "UA-82813354-1", "google_maps" : "https://maps.googleapis.com/maps/api/js? key=AIzaSyC8a6uEEoOLqqthc4_psw7Y1vtX2mWS_N4&libraries=places", "gcm_number" : "351097259074", "app_version" : "0.5.0", "url_services" : “https://servicios.theclient.cl:443/theapp-app/", "url_term_and_cond" : "https://servicios.theclient.cl:443/theapp-app/conditions" }, "production" : { ... } } Parámetros ...gulp.task(‘remove-proxy’, function() { return replace({ regex: "http://localhost:8100/theapp-app/", replacement: param. url_services, paths: appFile, recursive: false, silent: false, }); }); ... • Múltiples configuraciones por ambiente • Reemplazo de código usando Gulp
  • 23. Cordova • cordova-plugin-dialogs (alerts y dialogs) • cordova-plugin-geolocation (geo?) • cordova-plugin-x-toast (toast alerts) • cordova-plugin-splashscreen (splash) • cordova-plugin-network-information (offline) • cordova-plugin-whitelist (?) • ionic-plugin-keyboard (bug iOS) • cordova-plugin-ios-disableshaketoedit (shake to edit) • cordova-plugin-google-analytics (analytics) • cordova-plugin-app-version (app version) • cordova-plugin-device (?)
  • 24. Efectos • Distintas pruebas para la usabilidad del marker en el mapa • Slide out/in en estado del servicio • Mensajes emergentes Toast
  • 25. Analítica • Plugin de Cordova • Integración de screen view (en cada ingreso) y éxito/error de servicios • También se registra el tiempo de respuesta de servicios
  • 27. Lo que viene • Profundizar en Ionic 2 • Angular 2 • Organisation and Structure • Tooling • Navigation • Template Syntax • ES6 Syntax • Profundizar en frameworks alternativos como AppCelerator
  • 28. Referencias 1. http://mobile-frameworks-comparison-chart.com/ 2. http://ionicframework.com/ 3. http://ngcordova.com/ 4. https://ngmap.github.io/ 5. https://developers.google.com/maps/documentation/javascript/places 6. https://developers.google.com/maps/documentation/javascript/geocoding#ReverseGeocoding 7. https://github.com/driftyco/ionic/issues/1798 8. http://jimhoskins.com/2012/12/17/angularjs-and-apply.html 9. http://codepen.io/mhartington/pen/bwdoA 10. https://github.com/apache/cordova-plugin-geolocation 11. https://www.thepolyglotdeveloper.com/2014/09/show-native-toast-notifications-using-ionic-framework/ 12. https://github.com/nleclerc/cordova-plugin-ios-disableshaketoedit 13. https://www.thepolyglotdeveloper.com/2014/06/using-google-analytics-ionicframework/ 14. http://caniuse.com/ 15. https://developers.google.com/maps/documentation/javascript/events?hl=es 16. http://blog.ionic.io/handling-cors-issues-in-ionic/ 17. https://github.com/wallin/angular-gravatar 18. http://www.joshmorony.com/7-reasons-why-ionic-2-is-better-than-ionic-1/ 19. http://www.joshmorony.com/how-to-convert-an-ionic-1-application-to-ionic-2/ 20. http://www.joshmorony.com/a-simple-guide-to-navigation-in-ionic-2/ 21. http://www.joshmorony.com/intro-to-ecmascript-6-and-angular-2-for-ionic-developers/ 22. https://crosswalk-project.org
  • 29. An Evening with…
 Ionic Framework Arkho Innova Meetup Series