become a mobile developer from scratch

106
Become a Mobile developer from scratch Free OutSystems webinar

Upload: ruben-goncalves

Post on 14-Apr-2017

589 views

Category:

Mobile


2 download

TRANSCRIPT

Become a Mobile developer from scratch

Become a Mobile developer from scratchFree OutSystems webinar

Rben GonalvesMobile team leader @ OutSystems@techrug

2

Become a Mobile developer from scratch

Disclaimer! Dense and deep introduction to Mobile !

Agenda Framing the Mobile challenge4 Mobile Glossary What is a mobile device? Just a small computer? Mobile device characteristics UX considerations Choose the right architecture

Become a Mobile developer from scratch

Agenda Framing the Mobile challenge How OutSystems Platform helps?5 Preview in devices Prefetching resources Notify mechanism

Become a Mobile developer from scratch

Agenda Framing the Mobile challenge How OutSystems Platform helps? Leveraging Silk UI Framework 6 Templates Mobile patterns Demo

Become a Mobile developer from scratch

Agenda Framing the Mobile challenge How OutSystems Platform helps? Leveraging Silk UI Framework Going further with OutSystems Now7 What is it? Features Architecture overview Demo Customizing OutSystems Now Adding new plugins Checklist to app stores

Become a Mobile developer from scratch

8When building the first mobile app!

Become a Mobile developer from scratch

Framing the Mobile challenge

Agenda Framing the Mobile challenge

How OutSystems Platform helps? Leveraging Silk UI Framework Going further with OutSystems Now

10 Mobile Glossary What is a mobile device? Just a small computer? Mobile device characteristics UX considerations Choosing the right architecture

Become a Mobile developer from scratch

Mobile Glossary Android Studio Android IDE for creating native apps (Java) B2C Business to Customer (public distribution via app stores) B2E Business to Employee (internal distribution via non app store) BYOD Bring Your Own Device Hybrid apps web apps running inside a native shell MAM Mobile Application Management MDM Mobile Device Management (eg. AirWatch) RWD Responsive Web Design X Code iOS IDE for creating native apps (Objective-C, Swift)11

Become a Mobile developer from scratch

What is a mobile device?12

http://dunnnk.com/

Become a Mobile developer from scratch

What is a smartphone device?13

Pocket

EXTREMELY PERSONAL

Become a Mobile developer from scratch

Just a small computer? 14

Source: techarea

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarily

Source: Design for Touch15

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarilyInputs are different16Source: Mobily input types

And hard for the user

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarilyInputs are different and more powerful!17Location detectionMulti-touch sensorsDevice positioning & motion: from accelerometerGyroscope: 360 Degrees of motionOrientation: direction from a digital compassVideo & image: capture/input from a cameraDual cameras: front and backAudio: input from a microphoneAmbient Light: light/dark environment awarenessProximity: device closeness to physical objectsNFC: Near Field Communications through RFID readersDevice connections: through Bluetooth between devices

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarilyInputs are different and more powerful!Outputs are different18

The app itselfNotifications

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarilyInputs are different and more powerful!Outputs are different19

The app itselfNotifications

Device speakerVibration mechanism

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarilyInputs are different and more powerful!Outputs are differentContext of usage20Source: Liz Hafalia, The Chronicle

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarilyInputs are different and more powerful!Outputs are differentContext of usage21Source: unable to find the source of the image

Become a Mobile developer from scratch

Just a small computer? Small? Not necessarilyInputs are different and more powerful!Outputs are differentContext of usage22

Source: we are social39%of internet traffic

Become a Mobile developer from scratch

RecapMobile devices are NOT small computersIts a whole new way to engage

Inputs and outputs are differentAnd we should leverage it as much as possible

Mobile is used on the goAnd pretty much for everything23

Become a Mobile developer from scratch

Framing the Mobile challengeMobile device characteristics24

Become a Mobile developer from scratch

Mobile device characteristicsTypical Laptop Intel cpu 8 Gb RAM 1,3M pixelsTypical Android ARM cpu 2 Gb RAM 2M pixels25

Source: Screen time-75%-2,7x slower+53% to paint

Less capacity

Become a Mobile developer from scratch

Mobile device characteristicsNot only less capacity but different browsers26

1,5x3,9x9,8xDELL E6440Chrome 42237msIPhone 6 PlusSafari360msNokia Lumia 925IE 11924msSamsung Tab4chrome2312msTest made on webkit.org

Become a Mobile developer from scratch

Mobile device characteristicsConnected to network27GPRS (2G)EDGE (2G, 2.5G or 3G)UTMS (3G)WCDMA (3G)HSPA (3G)EVDO (3G)HSPA (3G or 4G)Mobile WiMax(4G)LTE (4G)

We have 4G now! We dont have performance problems on the network anymore

Anonymous developer

Assumptions are themother of allBad things!

Become a Mobile developer from scratch

Mobile device characteristicsLTE is not everywhere2864%55%30%6%20%25%2G3GLTEWorldwide averageUSA averageSource: data from 201470% of timethe connection is3G or 2G

Become a Mobile developer from scratch

Mobile device characteristicsHow mobile network works under the hood?29

how many cell phone towers are in the vicinity?

how many users are sharing these towers?

what is the bandwidth available to these cellphone towers to connect to the Internet or the carrier's network?

RNCRadio NetworkControllerSGSNServiceGPRSSupportNodeGGSNGatewayGPRSSupportNodeInternetIP network

Cell towerFirewallTypical 3G (UMTS) network

Become a Mobile developer from scratch

Mobile device characteristicsHow mobile network works under the hood?how many cell phone towers are in the vicinity?

how many users are sharing these towers?

the bandwidth available to these cellphone towers to connect to the Internet or the carrier's network?

LATENCYfunction of the electrical characteristics of the circuit

30

Become a Mobile developer from scratch

Mobile device characteristicsHow mobile network works under the hood?how many cell phone towers are in the vicinity?

how many users are sharing these towers?

the bandwidth available to these cellphone towers to connect to the Internet or the carrier's network?

LATENCYfunction of the electrical characteristics of the circuit31

Mobile50 550ms350 msDesktop20 150ms80 msBe careful with the amount of requests done to the server!

Become a Mobile developer from scratch

Mobile device characteristicsHow mobile network works under the hood?32AntennaWhen not in use, goes idle after a given amount of time to spare battery, then needs to power up

3G 2.5s4G 100msWiFiTurned On but not connected consumes more energy than radio

Become a Mobile developer from scratch

Requests done to the server?> By far the biggest hurdle33

71 requests~8s to Load17 CSS25 JS21 img4 fonts3G (750 Kbps 100ms RTT)762 KB downloaded

Your typicalWeb app

Become a Mobile developer from scratch

RecapBig resolution, less capacity

LTE (4G) is hereBut aim for the worst scenario

Latency is a big performance hurdleCareful with # requests to the server34

Become a Mobile developer from scratch

Framing the Mobile challengeUX considerations35

Become a Mobile developer from scratch

Why apps fail?Lack of consistencySlow to change and adaptPoor strategyNot considering the complete journeyBrand recognitionBuilding mobile customer engagementKeep it simple

Not solving a real world problem Not understand the target audience Not sure about the Mobile Platform Too many or too less features Making it too complex for the users Incompatible User Experience Neglecting the backend support Not enough Marketing Not using App Optimization Techniques Failure listening to Users Feedback

36Source: Wired and Net solutions

Become a Mobile developer from scratch

Why apps fail?Lack of consistencySlow to change and adaptPoor strategyNot considering the complete journeyBrand recognitionBuilding mobile customer engagementKeep it simple

Not solving a real world problem Not understand the target audience Not sure about the Mobile Platform Too many or too less features Making it too complex for the users Incompatible User Experience Neglecting the backend support Not enough Marketing Not using App Optimization Techniques Failure listening to Users Feedback

37Source: Wired and Net solutions UX related issues

Become a Mobile developer from scratch

UX considerations Any place, any time38Mobile phones areportableattention is fragmentedPortable = Interruptiblesessions are shortUsers have attention spanequivalent of a 6 years oldSource: image from Mobile Input and text from Mobile User Experience: Limitations and Strenghts

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands39Source: Read and Write in Mobile

1,333 observations of people using mobile devices on the street

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands40Source: Read and Write in Mobile

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands41Source: How to design for thumbs

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands42Source: How to design for thumbs

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands43Source: How to design for thumbs

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands44Source: How to design for thumbs

http://thumbzone.co/

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers45

Source: Design for Touch

Touchenabled

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers46

Source: Design for Touch

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers47

Source: Design for Touch

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers RWD is not always the right answer

48Source: Mobile Design Essentials, Luke Wroblewski

University of Notre Dame, Indiana, USA4,5m

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers RWD is not always the right answer49

responsive web design isnt intended to serve as a replacement for mobile web sitesEthan MarcotteB2CFor apps thatMobile is a nice to have

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers RWD is not always the right answer Use known mobile patterns50LoadingCarouselList ItemBalloonPull To RefreshAction Sheet (Context Menu)ModalToggleGlobal SearchCardTabsBlank SlateSwipe Page NavigationTitle bar / Top Header BarAlertsCard Stacked (tinder)Carousel - Horizontal Photo LightBoxChatInfinite ScrollCollapsible AreaProgress BarShareFloating menuFeedback MessageSidebar PanelPostSpinners / Numeric Text BoxCountersForm labelSide NavigationRange SliderGalleryBottom Menu (tab bar)Swipe List ItemsCalendarTooltipAccordionTimelineWalkthrough (Focused Onboarding)VideoUploadInput IconsTag EditorWizardBadge (with placehoder)PanelTile (research types)Check ItemButton GroupUserInitialsDropDownBoxBreadCrumbsCharacter CountButton AreaTables

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers RWD is not always the right answer Use known mobile patterns Work and Personal apps51B2C appCustomer oriented appsDistributed in public storesNeeds lot of UX/UI investment

B2E appEnterprise appsOnly to be used by EmployeesDistributed internallyCan have less investment in UX/UI (assumption)

Become a Mobile developer from scratch

RWD is not always the right answer

UX considerations Any place, any time Used with hands big fat fingers RWD is not always the right answer Use known mobile patterns Work and Personal apps52BYOD PolicyUsers device will have B2E and B2C apps installed. Comparison and high expectations are inevitable.

Become a Mobile developer from scratch

UX considerations53 Any place, any time Used with hands big fat fingers RWD is not always the right answer Use known mobile patterns Work and Personal apps Design for perceived Performance

Perceived Performancehow quickly a software feature appears to perform its task

Become a Mobile developer from scratch

UX considerations Any place, any time Used with hands big fat fingers RWD is not always the right answer Use known mobile patterns Work and Personal apps Design for perceived Performance54Become a Mobile developer from scratch

Perceived Performancehow quickly a software feature appears to perform its taskShow info already available

Replace This image in master

UX considerations Any place, any time Used with hands big fat fingers RWD is not always the right answer Use known mobile patterns Work and Personal apps Design for perceived Performance55Become a Mobile developer from scratch

Perceived Performancehow quickly a software feature appears to perform its taskLoad remaining asynchronously

Replace This image in master

RecapYou cant fit it all

Who is your target user

What are they aiming to do?

What will you remove?

Expectation are high!

We are required a Mind Shift56B2C? You cant use RWD!Expect a lot more effortfor UX and UI!What is the applicationtrying to solve?Without making theuser frustrated.Due to amazing B2C apps out there29 years

Become a Mobile developer from scratch

Framing the Mobile challengeChoose the right architecture57

Become a Mobile developer from scratch

Choose the right architectureSource: OutSystems Blog58

Become a Mobile developer from scratch

Choose the right architecture59 Is your app single screen with lot of animations and sounds? Do you need to access the devices sensors? Do you need access to custom native functionality? Do you need your app on the store? Do you need to support multiple operating systems? Do you need to support devices with poor performance?

See this and more in OutSystems Blog!

Become a Mobile developer from scratch

How OutSystems Platform helps?

Agenda Framing the Mobile challenge How OutSystems Platform helps?61 Preview in devices Prefetching resources Notify mechanism

Become a Mobile developer from scratch

Preview in devices62

Become a Mobile developer from scratch

Prefetching resources Can be activated per application

Runs only once per session

Downloads the application resources and caches CSS, JavaScript, img, Fonts

On 2nd access only downloads resources not cachedBecome a Mobile developer from scratch

63Available from 9.0.1.25

Replace This image in master

Prefetching resourcesBecome a Mobile developer from scratch

64Available from 9.0.1.25

Replace This image in master

Prefetching resourcesBecome a Mobile developer from scratch

65Available from 9.0.1.25

To customize

Replace This image in master

Notify mechanismAvailable from 9.1

MobileServerButton.ClickOnNotifyOnNotifyAjax.Update

MobileServerButton.ClickAjax.UpdateBaliLATENCYfunction of the electrical characteristics of the circuit

66

Become a Mobile developer from scratch

RecapPreview in devices good starting pointNot the same as testing in a device

Prefetching will help on first accessCan be customized

Notify server sideAvoids unnecessary round trips to the server67

Become a Mobile developer from scratch

Leveraging Silk UI Framework

Agenda Framing the Mobile challenge How OutSystems Platform helps? Leveraging Silk UI Framework 69 Templates Mobile patterns Demo

Become a Mobile developer from scratch

Become a Mobile developer from scratch

Why Silk UI?71

Become a Mobile developer from scratch

Why Silk UI? Because CSS is Awesome*!72

*When you know what youre doing

Become a Mobile developer from scratch

Why Silk UI?

View presentation and recording73

Become a Mobile developer from scratch

http://www.outsystems.com/forums/discussion/17399/webinar-silkui-from-basic-to-advanced/#Post66906

Information from Silk UI Device: desktop, tablet, phone Dimension: big, hd, small Operating systems: iOS, Android, Windows, Browser: chrome, firefox, IE10, IE11, Safari, etc. Orientation: landscape, portrait Locale: en, pt,

74

Become a Mobile developer from scratch

Templates75

DublinLiverpoolLisbonTokyoVanilla

Become a Mobile developer from scratch

Tokyo Template76

If your target are smartphones, this is the template to use. It's optimized for touch and devices, and the recipient for the mobile patterns.

Become a Mobile developer from scratch

Leveraging Silk UI FrameworkMobile Patterns77

Become a Mobile developer from scratch

Mobile PatternsSilkUIFramework moduleGlobal SearchListItemListItemToggleListItemGroupBottom Menu

Tokyo Theme moduleMainContentMarginButtonBackButtonMenu

78

Become a Mobile developer from scratch

Mobile PatternsSilkUIFramework moduleGlobal SearchListItemListItemToggleListItemGroupBottom Menu

Tokyo Theme moduleMainContentMarginButtonBackButtonMenu

79

Become a Mobile developer from scratch

Mobile PatternsSilkUIFramework moduleGlobal SearchListItemListItemToggleListItemGroupBottom Menu

Tokyo Theme moduleMainContentMarginButtonBackButtonMenu

80

Become a Mobile developer from scratch

Mobile patternsSilkUIFramework moduleGlobal SearchListItemListItemToggleListItemGroupBottom Menu

Tokyo Theme moduleMainContentMarginButtonBackButtonMenu

81

Become a Mobile developer from scratch

Demo82

Become a Mobile developer from scratch

RecapSilk UI Framework helpsWith specific templates and mobile patterns

Tokyo template is the smartphone templateContaining specific patterns and behaviors

Leverage the information made availableTo tweak the experience per platform83

Become a Mobile developer from scratch

Going further with OutSystems Now

Agenda Framing the Mobile challenge How OutSystems Platform helps? Leveraging Silk UI Framework Going further with OutSystems Now85 What is it? Features Architecture overview Demo Customizing OutSystems Now Adding new plugins Checklist to app stores

Become a Mobile developer from scratch

What is it? Transforms apps build in OutSystems Platform in Hybrid apps iOS, Android and Windows apps

Enabling access to device capabilities Camera, location, local storage or other device APIs

Apps can then be released to public stores

86

Become a Mobile developer from scratch

OutSystems Now screens

1. The Icon2. Splash4. Login5. The List6. App

3. EnvironmentOn B2E this should be removedOn B2C these must be removed87

Become a Mobile developer from scratch

Going further with OutSystems NowFeatures88

Become a Mobile developer from scratch

Cordova plugins89

Become a Mobile developer from scratch

Supported features 90

Become a Mobile developer from scratch

Easy configuration91

Become a Mobile developer from scratch

Going further with OutSystems NowArchitecture overview92

Become a Mobile developer from scratch

What is Apache Cordova? Open-source mobile development framework

Allows use of standard web technologies (HTML5, CSS3, and JavaScript) for cross-platform development

Applications execute within wrappers targeted to each platform

Standards-compliant API bindings to access each device's sensors, data, and network status.93

Become a Mobile developer from scratch

Cordova vs PhoneGapCordova: open source project maintained by ApachePhoneGap: is powered by Cordova but maintained by Adobe

94

Become a Mobile developer from scratch

Architecture overview95OutSystems Now Native ShellNative FunctionalitiesPlugins/AddonsAuthentication OutSystemsNowServicesOutSystems Platform FunctionalitiesPlugins ModulesAuthentication ProviderREST APIHTTPS CommunicationServer sideDevice

Become a Mobile developer from scratch

Architecture overview96OutSystems Now Native ShellNative FunctionalitiesPlugins/AddonsAuthentication Web ViewOffline Mode

Become a Mobile developer from scratch

DemoLets add to calendar a reminder with the deadline

Become a Mobile developer from scratch

Going further with OutSystems NowCustomizing OutSystems Now98

Become a Mobile developer from scratch

Customizing OutSystems Now99

Become a Mobile developer from scratch

Available Cordova Plugins

100

Become a Mobile developer from scratch

Plugins on Forge101

Become a Mobile developer from scratch

Plugins on Forge102

Become a Mobile developer from scratch

Going further with OutSystems NowSubmitting to the app stores103

Become a Mobile developer from scratch

Available Cordova Plugins104

Become a Mobile developer from scratch

RecapOutSystems Now is in major app storesFor everyone to start using it and testing their applications

OutSystems Now is Open sourceEnabling everyone to customize it and extend

Built on top of cordovaLeverage this by using plugins created by the cordova community105

Become a Mobile developer from scratch

Thank you