26
Smart Devices con las aplicaciones de gestión Alfonso Fernández José Bordón

097 smart devices-con_las_aplicaciones_de_gestión

  • Upload
    genexus

  • View
    956

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 097 smart devices-con_las_aplicaciones_de_gestión

Smart Devices con las aplicaciones de gestiónAlfonso FernándezJosé Bordón

Page 2: 097 smart devices-con_las_aplicaciones_de_gestión

Agenda

Smart Devices y la actualidad1

Presentación de GXEv2 a los clientes2

Integración de GXEv2 con las aplicaciones3

Beneficios4

Page 3: 097 smart devices-con_las_aplicaciones_de_gestión

SD vs Pc

Ventas en el T4 2010 (millones)86

88

90

92

94

96

98

100

102

SmartPhonesPCs

Fuente: Consultora IDC

Page 4: 097 smart devices-con_las_aplicaciones_de_gestión

Wordwide smartphone sales to end users by operating system (Marquet share in %)

Android IOS Symbian Research in Motion

Bada Microsoft0

5

10

15

20

25

30

35

40

45

50

Cantidad vendida: 107,8 mill

2Q112Q10

Fuente: Gartner (August 2011)

Page 5: 097 smart devices-con_las_aplicaciones_de_gestión
Page 6: 097 smart devices-con_las_aplicaciones_de_gestión

Smart devices

Cloud

Page 7: 097 smart devices-con_las_aplicaciones_de_gestión

DEMOAPPs

Page 8: 097 smart devices-con_las_aplicaciones_de_gestión

SD/Apps de gestión

DBRET

Transaction

Page 9: 097 smart devices-con_las_aplicaciones_de_gestión

mobile

web

servidores

Page 10: 097 smart devices-con_las_aplicaciones_de_gestión

SD/Apps de gestión

Page 11: 097 smart devices-con_las_aplicaciones_de_gestión

Geolocationpublic static Location getLastKnownLocation(){LocationManager aLocationManager = (LocationManager)

MyApplication.getInstance().getSystemService(Context.LOCATION_SERVICE);if (aLocationManager != null) {// Should get the last in time location, comparing location.getTime() ?Location gpsLocation = aLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);Location networkLocation =

aLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);Location location = getLastLocation(gpsLocation, networkLocation);if (location != null)return location;else {Criteria crit = new Criteria();crit.setAccuracy(Criteria.ACCURACY_FINE);String provider = aLocationManager.getBestProvider(crit, true);location = aLocationManager.getLastKnownLocation(provider);if (location != null)return location;}}

Page 12: 097 smart devices-con_las_aplicaciones_de_gestión

return null;}private static Location getLastLocation(Location gpsLocation,Location networkLocation) {if (gpsLocation!=null)return gpsLocation;return networkLocation;}

public static JSONObject getLastKnownLocationJsonGeoLocationInfo(){Location location = getLastKnownLocation();JSONObject result = new JSONObject();if (location!=null)result = locationToJson(location);return result;}public static void requestLocationUpdates(Integer minAccuracy, Integer timeout, boolean

includeHeadingAndSpeed){

Page 13: 097 smart devices-con_las_aplicaciones_de_gestión

LocationManager locationManager = (LocationManager) MyApplication.getInstance().getSystemService(Context.LOCATION_SERVICE);

String provider = getBestProviderFromCriteria(includeHeadingAndSpeed,locationManager);locationManager.requestLocationUpdates(provider, 0, 0, locationListener);}public static Location getLocationGeoLocationInfo(Integer minAccuracy, Integer timeout, boolean

includeHeadingAndSpeed){//Date startTime = new Date();//default to returnLocation location = null;LocationManager locationManager = (LocationManager)

MyApplication.getInstance().getSystemService(Context.LOCATION_SERVICE);String provider = getBestProviderFromCriteria(includeHeadingAndSpeed,locationManager);location = locationManager.getLastKnownLocation(provider);long difLocInSeconds = 0;if (location!=null){

Page 14: 097 smart devices-con_las_aplicaciones_de_gestión

difLocInSeconds = getDifInSeconds(location.getTime(), startTime.getTime());}while(location==null //has no location || (minAccuracy!=0 && (!location.hasAccuracy() || location.getAccuracy()> minAccuracy)) //has not accuracy || difLocInSeconds>tenMinutes ) //is old location{//wait one sec to new location to arrivetry {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}if (newCurrentLocation!=null){location = newCurrentLocation;difLocInSeconds = 0;}Date endTime = new Date();long difInSeconds = getDifInSeconds(startTime.getTime(), endTime.getTime());

Page 15: 097 smart devices-con_las_aplicaciones_de_gestión

if (difInSeconds>timeout){break;}}//default to returnif(location==null)location = getLastKnownLocation();return location;}

public static JSONObject getLocationJsonGeoLocationInfo(Integer minAccuracy, Integer timeout, boolean includeHeadingAndSpeed)

{Location location = getLocationGeoLocationInfo(minAccuracy, timeout, includeHeadingAndSpeed);//return resultJSONObject result = new JSONObject();if (location!=null){result = locationToJson(location);

Page 16: 097 smart devices-con_las_aplicaciones_de_gestión

Services.Log.info("getLocationInfo", "Location: " + location.toString());}return result;}

private static long getDifInSeconds(long startTime, long endTime) {long dif = endTime - startTime;long difInSeconds = dif / 1000;return difInSeconds;}public static void removeLocationUpdates(Integer minAccuracy, Integer timeout, boolean

includeHeadingAndSpeed){LocationManager locationManager = (LocationManager)

MyApplication.getInstance().getSystemService(Context.LOCATION_SERVICE);locationManager.removeUpdates( locationListener);}private static String getBestProviderFromCriteria(boolean includeHeadingAndSpeed, LocationManager locationManager) {//Calculate new location with the criteria.

Page 17: 097 smart devices-con_las_aplicaciones_de_gestión

Criteria crit = new Criteria();crit.setAccuracy(Criteria.ACCURACY_FINE);crit.setAltitudeRequired(false);crit.setBearingRequired(includeHeadingAndSpeed);crit.setCostAllowed(true);String provider = locationManager.getBestProvider(crit, true);return provider;}private static JSONObject locationToJson(Location location) {JSONObject jsonProperty = new JSONObject();try {jsonProperty.put("Location", String.valueOf(location.getLatitude()) + "," +

String.valueOf(location.getLongitude()) );jsonProperty.put("Description", "LocationInfo (" + location.getProvider() + ")");Date date = new Date();date.setTime(location.getTime());jsonProperty.put("Time", Services.Strings.getDateTimeStringForServer(date) );jsonProperty.put("Precision", String.valueOf(location.getAccuracy()) );if (location.hasBearing())jsonProperty.put("Heading", String.valueOf(location.getBearing()));

Page 18: 097 smart devices-con_las_aplicaciones_de_gestión

elsejsonProperty.put("Heading", String.valueOf(-1));if (location.hasSpeed())jsonProperty.put("Speed", String.valueOf(location.getSpeed()));elsejsonProperty.put("Speed", String.valueOf(-1));} catch (JSONException e) {e.printStackTrace();Services.Log.Error("locationToJson", "Exception in JSONObject.put()", e); }return jsonProperty;}public static String getLocationString(Location myLocation){if (myLocation!=null)return String.valueOf(myLocation.getLatitude()) + "," + String.valueOf(myLocation.getLongitude() );return "";}private static final LocationListener locationListener = new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {

Page 19: 097 smart devices-con_las_aplicaciones_de_gestión

}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {}@Overridepublic void onLocationChanged(Location location) {//update my locationServices.Log.info("onLocationChanged", "Location: " + location.toString());newCurrentLocation = location;}};

Page 20: 097 smart devices-con_las_aplicaciones_de_gestión

Beneficios• Integración con aplicaciones desarrolladas con

Genexus.• Integración con sistemas no Genexus.• Reutilización de los objetos Genexus.• No requiere inversión en capacitación.• Fácil mantenimiento para los clientes.• Deploy en varios OS. • Seguridad Integrada.

Page 21: 097 smart devices-con_las_aplicaciones_de_gestión

La evolución continua

Line of business applications

Consumerapplications

Page 22: 097 smart devices-con_las_aplicaciones_de_gestión

La evolución continua

Line of business applications Display applications

Transaction applications

Page 23: 097 smart devices-con_las_aplicaciones_de_gestión

Resumen

Smart Devices en la actualidad1

LBA vs CA2Necesidades del

mercado corporativo3Beneficios GxEv24

Page 24: 097 smart devices-con_las_aplicaciones_de_gestión

Asesor del pentágonoCoronel Jhon Boyd

“Aquel que gana la batalla no es el más fuerte , ni siquiera el más valiente, es aquel que tiene la mayor capacidad de adaptarse a los cambios”

Page 25: 097 smart devices-con_las_aplicaciones_de_gestión