netconfuy: maximizando la productividad del desarrollo móvil

87
v2016 October 1 st 2016 Xamarin Forms: Máximizando la productividad del desarrollo móvil Chief Mobile Architect Sorey García

Upload: sorey-garcia

Post on 19-Feb-2017

288 views

Category:

Software


1 download

TRANSCRIPT

Page 1: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

XamarinForms:Máximizandolaproductividaddel

desarrollomóvil

Chief MobileArchitectSoreyGarcía

Page 2: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

SoreyGarcía(@soreygarcia)

ConsultoraenMovilidadyFreelancer XAML

Ingenieria InformaticaPolitécnicoJaimeIsazaCadavid

EspecialistaenDesarrollodeSoftwareUniversidadEAFIT

DocentedeCátedraInstituciónUniversitariaPascualBravo

Co-fundadoradelacomunidaddeDesarrolladoresAvanet yCodies

Speaker

Page 3: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Comolawebundía,hoy,hacerpartedeuniversodelasappsesdeterminante

Page 4: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Ypareceserquetodoslotienenclaro,sinembargo…

Page 5: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Hacerideasmanteníbles eneltiempodeberíasertendenciatantocomoquerertenerbuenasideas…

Page 6: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Puesestoapenascomienza…

Page 7: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Sibienlasideas“modernas”sobrehacersoftwarenoestánmal,entornoscorporativosoproyectosconpresupuestolimitadose

enfrentanasituacionescomplejas

Page 8: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Entreellaselpensarenresolverproblemasparticularesynovisionarestrategiasde

largoplazo

Page 9: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

En queplataforma desarrollar,hoyen día noes lapreguntamás importante

• MacOSX• XCode• Objective-C• Swift• iOS SDK• AppleTools

• OS• EclipseorAndroidStudio

or…• Java• AndroidSDK• SDKTools

• WindowsOS• VisualStudio• C#• .NETFramework• WindowsSDK

Page 10: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Llevar ideasynegocios alamayorcantidaddeusuarios posibles en todas las plataformasyhacerlo conagilidad es una necesidad clara

Page 11: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

C#yXAMLrepresentanlaposibilidaddecubrirlosecosistemasmáspopulares,consolounequipodedesarrolloenfocadoyalineado.

Page 12: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Lateoríaparecesencilla,peronoquisimosquedarnosenpalabras...

Page 13: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Comocomunidaddedesarrolladoresavecesnosquedamosendemostracionesynoaplicamos

aquelloaloquemotivamosaotros

Page 14: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

TopAppsBuilder

NuestroconocimientotécnicoesprincipalmentetecnologíasMicrosoft,porloqueelretoeraclaro.

Page 15: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 16: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 17: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 18: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 19: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Losusuarios demandan experiencias nativas

XAMARINGENERAEXPERIENCIASNATIVAS.

NativeUserInterfaces NativeAPIAccess NativePerformance

Page 20: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Cualquier cosa quepueda hacerse conObjective-C,Swift,oJavapuede hacerse con C#yVisualStudioconXamarin.

Page 21: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

XAMARINHACESUPARTE

Elporcentajedecódigocompartidoconlastécnicasadecuadas“podríallegar” hastaun85%,yXamarin realizóunanuevapropuestaconlaquese

puedelograrhastael“99%” decódigocompartido

Page 22: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

XAMARIN+ XAMARINFORMS

Page 23: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Elcrossplatform nativopropuestoconXamarin Forms,quiereresolverlosproblemasdelosescenariosnativosehíbridosentregandolomejordelosdosmundos,peroesnecesarioentendersualcance,tantoparanousarloenescenariosequivocados,comoparanomenospreciarsu

capacidad.

Page 24: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 25: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 26: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 27: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 28: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Algunasexperienciasentodaslasplataformassonsimilares

Page 29: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Sinembargoson100%Nativas

Page 30: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Elporcentajedecódigocompartido

enCroosyfuede90%a95%

Page 31: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 32: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 33: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 34: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 35: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

¿Cómomaximizar elcódigocrossplatformusandoC#?

Page 36: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

ShareCode:PortableClassLibraries

Page 37: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Nuget

Page 38: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

SharedProjects

Page 39: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

LinkedFiles

CompilerDirectives

Page 40: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Separación deresponsabilidades

UserInterface

AppLogic

General Model-View-ViewModel (MVVM)

Page 41: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Laimportancia derespetar las responsabilidades enelcódigo

http://blog.soreygarcia.me/2014/07/xaml-para-principiantes-fordummies.html

Page 42: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

ConXamarin Forms,elconceptoclaveparaalcanzarlamayoríadelasmetasnativasposibles,eslainyeccióndedependencias.

Page 43: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Pantallas(XAML)

ViewModels

(Origendelosdatos)

Servicios

InstancelLocator(Dependency Injection)

Resources

FrameworkMVVM

(MVVMLight,MVVMCross,

*Infrastructure.Common)

ApiService LocalDataService

SettingsService

NavigationService

NetworkService

CrossService

DialogService

Models

Page 44: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Android iOS

Cross(Xamarin Forms)

PCL(Logic)

Windows

+

Compartido

CalendarService CalendarService CalendarService

Xamarin Forms

NavigationService

MainViewModel

ApiService

DepencyContaider

ICalendarService

LocalDataService

DbConnectionService DbConnectionService

IDbConnectionService

Page 45: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Blu RadioUniversalWindows/WindowsPhone

Page 46: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 47: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 48: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 49: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 50: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 51: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 52: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 53: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Blu RadioXamarin FormsAndroid/iOS

Page 54: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 55: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 56: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 57: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 58: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 59: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 60: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 61: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Apps,apps,apps…

Page 62: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 63: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 64: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 65: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 66: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 67: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 68: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 69: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 70: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 71: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Laapuestavalelapena.Elecosistematécnicocreeenello.

Page 72: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

MicrosoftadquirióXamarin

Page 73: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Controles deTerceros

Page 74: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Másherramientas

• Xamarin Forms Previewer (BETA)• Gorillla Player• Xamarin Forms Player• XAMLPower Toys• …

Page 75: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Ademásnohayqueperderdevistalasbuenasprácticasdecodificación

Page 76: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Lacapacidaddehacercódigocompartido,sepotenciaconladisposiciónaimplementarmejoresprácticasde

codificación

Page 77: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Ylosequiposdediseño,debendejardeconsiderarseajenosalproceso

Page 78: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

TeamFoundationServer

Page 79: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

XamarinTestCloud

Page 80: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Xamarin Insights/HockeyApp

Page 81: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Peroademásdeeso,elecosistemasecompletaconAzure

Page 82: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

API APPSEasilybuild andconsumeAPIs

inthecloud

WEBAPPSWebappsthatscalewithyour

business

LOGICAPPSAutomatebusiness processacrossSaaSandon-premises

MOBILEAPPSBuildMobileappsforany

device

AzureAppService

Page 83: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Offlinesync

AzureMobileApps

WindowsiOSAndroidHTML5/JS

XamarinPhoneGapSencha

WindowsAndroidChrome

iOSOSX In-AppKindle

Facebook Twitter Microsoft Google AzureActiveDirectory

SQL MongoTables O365

OfflineSync

RESTAPI

Backendcode.NETNode.js

APIApps

WebApp

Page 84: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Nuestrosequiposdedesarrollo.NETyasabenloquenecesitan,muyprobablementesolonecesitanafianzarlo,ycompartirloconotrosparaquelacomunidadentornoalaplataformasefortalezcaysigacreciendo.

Nosotros,locreemos,ydesdehacemásde2años,lohacemosposible.

Page 85: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Comunidad

ForosdeXamarinBugZilla

VERSIONFINALhttps://blogs.msdn.microsoft.com/microsoft_press/2016/03/31/free-ebook-creating-mobile-apps-with-xamarin-forms/

OFFICIALSITEhttps://developer.xamarin.com/

ALGUNOSVIDEOShttps://www.youtube.com/user/soreygarcia

Page 86: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

Page 87: NetConfUY: Maximizando la productividad del desarrollo móvil

v2016 October1st 2016

SoreyGarcía

[email protected]

soreygarcia

blog.soreygarcia.me/avanet.community

Gracias