SlideShare a Scribd company logo
Troubleshooting Mobile Apps
Performance
Replace This image
in master
Presentation
Daniel Reis
Front-End Expert @ OutSystems
Hello World!!
Linkdin https://goo.gl/RtT7qU
Troubleshooting Mobile Apps Performance 2
This Webinar is about
● Troubleshooting
● Performance
● It is not about solving performance issues
● How to detect those performance issues
Agenda 3
Agenda
● Know how it works
● Know available tools
● Typical issues in Mobile Apps
● Putting into practice
Agenda 4
Introduction
Introduction
Introduction
● 51% of Population has a phone
6We Are Social Digital Report 2016 http://goo.gl/9Fl9Gc
7Introduction
Introduction
● 51% of Population has a phone
● 83% of the Facebook’s users
accessed by smartphone
We Are Social Digital Report 2016 http://goo.gl/9Fl9Gc
8Introduction
Introduction
● 51% of Population has a phone
● 83% of the Facebook’s users
accessed by smartphone
● +21% share of traffic via mobile
phones
We Are Social Digital Report 2016 http://goo.gl/9Fl9Gc
What people expect about mobile apps?
● 47% expect a page to load less than 2 secs
● 77% expect a website load faster in mobile than desktop
● 40% abandon a website after waiting more than 3 secs
● 52% state that quick page loading is important to their site loyalty
Introduction 9
Know how it works
Agenda
● Know how it works
○ How the web works?
○ How the browser works?
○ How mobile apps works?
● Know available tools
● Typical issues in Mobile Apps
● Putting into in practice
Agenda 11
How the web works?
12
Know how it works
Know how it works - How the web works?
Page life cycle
13
● Domain Name Service Lookup
DNS Lookup
Know how it works - How the web works?
○ Provides a distributed name resolution service by
performing a lookup
○ The DNS can translate an Internet domain name such
as www.yoursite.com, into an IP address where the
website is located
Page life cycle
14
● Transmission Control Protocol Connection
DNS Lookup
TCP Connection
○ Establish a connection with the server
○ 3-way handshake
■ SYN - Synchronize
■ SYN-ACK - Synchronize-Acknowledgement
■ ACK - Acknowledgement
Know how it works - How the web works?
Page life cycle
15
● HyperText Transfer Protocol
○ Transfer web pages from a server to a client browser
● HyperText Transfer Protocol Request
○ Inform the web server what the client is looking for
● HyperText Transfer Protocol Response
○ Sends back a numeric response code
DNS Lookup
TCP Connection
HTTP Request and
Response
Know how it works - How the web works?
Page life cycle
16
● Server Response
DNS Lookup
TCP Connection
HTTP Request and
Response
Server Response
○ Allows the client to display the response result
or to inform the user why a request failed
■ 200 OK
■ 304 Not Modified
■ 404 Not Found
■ 500 Internal Server Error
Know how it works - How the web works?
Page life cycle
17
DNS Lookup
TCP Connection
HTTP Request and
Response
Server Response
Client-Side
Rendering
● Client-Side Rendering
○ Render the page in the browser
Know how it works - How the web works?
Bandwith
18
● Capacity of a communications
channel that determines the rate of
data transfer
● With bigger bandwidth more data
can be transferred at a quicker speed
Know how it works - How the web works?
Bandwith
19
4G - 4th Generation Wireless Network
● Designed primarily for data
● IP-based protocols (Long Term Evolution)
● True mobile broadband
4G is (not) everywhere
● 64% of world connected in 2G
● 30% through 3G
● 6% through 4G
Know how it works - How the web works?Webinar Become a mobile developer from scratch https://goo.gl/OfR0AS
Latency
20
● Time Required to PING
● Time Required for a packet to
reach the destination and
bounce back
For a connection between London and
New York, across the Internet the
latency will be something like 71ms
Know how it works - How the web works?Network Latency Grid https://goo.gl/9Zw7YK
TCP Slow Start
21
● Mechanism to estimate and adapt speeds
to the network’s changing conditions
● Multiple Round-trips to reach full capacity
● Latency will be charged on each trip
Know how it works - How the web works?Slow-Start http://goo.gl/tO9TDk
TCP Slow Start
22
● Exponential Growth
cwnd - Congestion Window var
RTT - Round-Trip Time
Know how it works - How the web works?Slow-Start http://goo.gl/tO9TDk
● Packet Loss Fallback
Parallel requests
23
● Avoid overloading web servers
● Reduce internet congestion
Know how it works - How the web works?
How the browser works
24
Know how it works
Know how it works - How the browser works?
How the browser works
● Critical Rendering Path
● Re-Paint
● Reflow
● Composite
25Know how it works - How the browser works?
Critical Render Path
26
HTML
DOM
● DOM - Document Object Model
○ The parsing of the HTML document received
by the server
○ Defines the properties, methods and events
for all HTML elements
Know how it works - How the browser works?
Critical Render Path
27
HTML CSS
DOM CSSOM
● CSSOM - Cascading Style Sheets Object Model
○ It is much like the DOM, but for the CSS
rather than the HTML
○ It is a map from the specified stylesheet
rules and resources
○ It maps out the rules in your stylesheet to
the things on the page which need styling
Know how it works - How the browser works?
Critical Render Path
28
HTML CSS
DOM CSSOM
Render Tree
● Render Tree
○ Contains only the nodes required to render
the page
○ Reflects the DOM structure without the
invisible elements
Know how it works - How the browser works?
Critical Render Path
29Know how it works - How the browser works?
Critical Render Path
30
HTML CSS
DOM CSSOM
Render Tree
Layout
● Layout
○ Exact position and size of each element from
the Render Tree
○ Maps the exact coordinates of where each
element must appear on the screen, starting
at the top left position: 0,0
Know how it works - How the browser works?
Critical Render Path
31
HTML CSS
DOM CSSOM
Render Tree
Layout
Paint
● Paint
○ Displayed page in the browser window
Know how it works - How the browser works?
Critical Render Path
32
HTML CSS
DOM CSSOM
Render Tree
Layout
Paint
● Reflow
Render Tree
Layout
Paint
○ Computes the layout of the page
○ Computes the dimensions and position of
the element
○ Triggers further reflows on that element’s
children, ancestors and elements that
appear after it in the DOM
○ Calls a final Repaint
Know how it works - How the browser works?
Reflow can be triggered easily, such as
33
● Insert, remove or update an element in the DOM
● Move or a animate a DOM element
● Take measurements of an element like offsetWidth or offsetHeight
● Change a CSS style rule
● Manipulating the class attribute
● Add or remove a stylesheet
● Scroll or resize the window
● Setting a property of the style attribute
Know how it works - How the browser works?
Critical Render Path
34
HTML CSS
DOM CSSOM
Render Tree
Layout
Paint
● Repaint
Render Tree
Paint
○ Goes through all the elements and determines
their visual style properties, then it updates
the relevant parts of the screen
○ When changing element styles which don't
affect the element's position on a page, the
browser just repaints the element again with
the new styles applied
Know how it works - How the browser works?
Out of the Critical Render Path
35
HTML CSS
DOM CSSOM
Render Tree
Layout
Paint
● Composite
Composite
Out of the CRP
○ Manage Graphics Layer Trees
○ Draw the Compositing Layers of the page
○ Use of GPU (Graphics Processing Unit)
CPU
GPU
Know how it works - How the browser works?
Promote element to a Layer
36
● Use of GPU (Graphics Processing Unit)
● Avoid non-trivial Paint
● Faster and Smoother Render
● Trigger a Compositing Layer
Know how it works - How the browser works?
How to promote element to a Layer?
37
● will-change property
○ Method for optimizing animations
○ Informs the browser which elements will
change and what properties will change
● Manipulation of the Z axis
○ transform: translate3d(0,0,0);
○ transform: translateZ(0);
Know how it works - How the browser works?Optimising for 60fps everywhere https://goo.gl/FgKJrs
Out of the Critical Render Path
38
HTML CSS
DOM CSSOM
Render Tree
Layout
Paint
● Promoting an element to a Layer
Out of the CRP
Composite
CPU
GPU
Composite
○ Will use Composite
○ Out of the CRP
Know how it works - How the browser works?
Out of the Critical Render Path
39
…
17º
27º
30º
66º
72º
Know how it works - How the browser works?CSS properties usage by style https://goo.gl/hhoyc0
How mobile apps works
40
Know how it works
Know how it works - How mobile apps works?
iOS Pseudo-Browsers
● There is only one browser in iOS
● For experience purposes
● All browsers use Safari Render Engine
Chrome for iOS is different from Chrome for Android
41Know how it works - How mobile apps works?
WebView for Android / Chromium
● Since Android 4.4 the WebView component is based on the Chromium open
source project
● In Android 5.0 the WebView can be updated in Google Play separately to the
Android platform
42Know how it works - How mobile apps works?
WebView for Android / Chromium
43
● Chromium based WebView is faster
● Performance increased
○ Overall results
○ Up to 354% for HTML5 Canvas
○ Up to 358% for Javascript
Know how it works - How mobile apps works?Old WebView vs. Chromium backed WebView Benchmark https://goo.gl/Uy2wNs
Mobile delay while click on a link
44
● The browser wait approximately 300ms
from the time you tap the button until
fire the click event
● In order to identify if it was a single
click event or a double tap event
● Nowadays only happens in iOS
Know how it works - How the web works?
Recap
● Webpages are slower in Mobile Devices than Desktop
● Many things happen before we see the page in the browser
● While on network, most of the time we use 2G or 3G
● Avoid the use of Repaint and Reflow, instead, use Composite
45Know how it works
Know available tools
Agenda
● Know how it works
● Know available tools
○ Deep dive in Chrome DevTools
○ Remote Debug Inspectors
○ Connecting your device
● Typical issues in Mobile Apps
● Putting into in practice
Agenda 47
Deep dive in Chrome DevTools
48Know available tools - Deep dive in Chrome DevTools
Network
49Know available tools - Deep dive in Chrome DevToolsEvaluating network performance https://goo.gl/GKL5c8
Network
● Columns
50Know available tools - Deep dive in Chrome DevTools
Network
● Queuing
○ Time waiting to tag this request into an open TCP connection
● Stalled
○ Time spent negotiating with a proxy server connection
● Request sent
● Waiting
○ Time to first byte
● Content Download
51Know available tools - Deep dive in Chrome DevTools
Timeline
● Paint
○ Similar to Canvas
○ List of Draws grouped together
as a data structure
● Rasterize Paint
○ Render the Draws into pixels
52Know available tools - Deep dive in Chrome DevTools
Timeline
● Reflow
○ To avoid constant Reflow, the browser
will setup a queue of the changes
○ This way several changes will be
combined and only one reflow will be
computed
○ Browsers flush the queue once a
certain amount of time passes or a
certain number of changes is reached
53Know available tools - Deep dive in Chrome DevTools
Timeline
● Reflow
○ Sometimes the script force a reflow,
flushing the queue
○ This happens when you request style
information, such as
■ offsetWidth
■ offsetHeight
■ scrollTop
54Know available tools - Deep dive in Chrome DevTools
Timeline
● Layers
55Know available tools - Deep dive in Chrome DevTools
Timeline
● Layers
56Know available tools - Deep dive in Chrome DevTools
Remote Debug Inspectors
57
Know available tools
Know available tools - Remote Debug Inspectors
Remote Debug Inspectors
● weinre - WEb INspector REmote
○ http://goo.gl/1TiBjO
● Adobe Edge Inspect
○ http://goo.gl/hmOkAb
58How to Troubleshoot
Connecting your device
59
Know available tools
Know available tools - Connecting your device
Remote Debug installation
60
Android on Windows - http://goo.gl/QYjKEX
1. Chrome Remote Debugging Requirements
○ https://goo.gl/g6AO63
2. Samsung Android USB Driver for Windows
○ http://goo.gl/vnk108
3. Android SDK
○ http://goo.gl/II9nyw
○ http://goo.gl/AcnPhT
4. adb devices (need to be started every time you debug)
○ https://goo.gl/Bw8h1b
Know available tools - Connecting your device
Connecting your device
61
1. Start adb
○ https://goo.gl/Bw8h1b
2. Open chrome://inspect/#devices
Know available tools - Connecting your device
Connecting your device
Remote Debug installation on Mac
● Just plug-in the cable!!
62Know available tools - Connecting your device
Recap
● Understanding Network requests
● Detect Reflow and Repaint
● Know how to debug remotely
63Know available tools - Deep dive in Chrome DevTools
Typical Issues in Mobile Apps
Agenda
● Know how it works
● Know available tools
● Typical issues in Mobile Apps
● Putting into in practice
Agenda 65
Typical issues in Mobile Apps
No Image Optimization
66Typical issues in Mobile Apps
Typical issues in Mobile Apps
No Image Optimization
● Original Image
○ PNG
○ 1,72 MB
67Typical issues in Mobile Apps
Typical issues in Mobile Apps
No Image Optimization
● optimizilla.com
○ JPG
○ 14,2 KB
68Typical issues in Mobile Apps
Typical issues in Mobile Apps
No Image Optimization
69Typical issues in Mobile Apps
Typical issues in Mobile Apps
No Image Optimization
● 1px with
○ JPG
○ 1,09 KB
○ repeat-x
70Typical issues in Mobile Apps
Typical issues in Mobile Apps
No Image Optimization
71Typical issues in Mobile Apps
Typical issues in Mobile Apps
No Image Optimization
● CSS background-color
○ instant render
72Typical issues in Mobile Apps
Typical issues in Mobile Apps
No Image Optimization
73Typical issues in Mobile Apps
Typical issues in Mobile Apps
Image Download
74
.Phone
Typical issues in Mobile Apps
Typical issues in Mobile Apps
Image Download
● display: none or visibility: hidden
○ Still download the image
75
.Phone
Typical issues in Mobile Apps
Typical issues in Mobile Apps
Image Download
● SilkUI Device Class
76
.Phone.Phone
Typical issues in Mobile Apps
Typical issues in Mobile Apps
Image Download
● SilkUI DisplayOnDevice
77
.Phone
Typical issues in Mobile AppsWebinar SILKUI from basics to advanced https://goo.gl/1bgXQC
Typical issues in Mobile Apps
Improve usage of Fonts
● Web Fonts Concerns
○ Larger font files or too many fonts,
slow down loading of the page,
especially on mobile devices.
○ Load after 1st Paint (glitch visible in
Mobile)
○ Unicode fonts can contain
thousands of glyphs
○ No single Universal Format
78
● Web Font Formats
○ woff / woff2
○ ttf (below Android 4.4)
○ eot (below IE9)
○ svg (it's being deprecated)
Typical issues in Mobile Apps
Typical issues in Mobile Apps
Improve usage of Fonts
79Typical issues in Mobile Apps
Typical issues in Mobile Apps
Improve usage of Fonts
80
.Phone
.Desktop
Typical issues in Mobile Apps
Typical issues in Mobile Apps
Uncompressed Resources
● Content-Encoding: gzip
81Typical issues in Mobile Apps
Typical issues in Mobile Apps
Uncompressed Resources
● Gzipping
○ Process of finding all repetitive strings and replaces them
with pointers to the first instance of that string
■ Reduce until 70% to 80% page size
■ All modern browsers support GZIP and will request
it by default
■ Most of the sites are using Gzip compression across
the web
82Typical issues in Mobile Apps
Typical issues in Mobile Apps
External Resources
● Domain Path
83Typical issues in Mobile Apps
Typical issues in Mobile Apps
Excessive Resources
84Typical issues in Mobile Apps
Typical issues in Mobile Apps
Uncached Resources
● Cache avoid unnecessary HTTP requests on subsequent page views
85Typical issues in Mobile Apps
Typical issues in Mobile Apps
Parser-Blocking JavaScript
● Usage of external widgets
● Large Javascript files
● Synchronous JavaScript resources
● Long running JavaScript
● Repaint and Reflow the DOM
86Typical issues in Mobile Apps
Recap
● Optimize your images
● Do not use images for any sort of layout styling
● Use font icons instead of sprites
● Improve the usage of Fonts
● Compress and Cache your Resources
● Attention to Excessive and External Resources
● Take a look to Parser-Blocking JavaScript
87Typical issues in Mobile Apps
Putting into practice
Agenda
● Know how it works
● Know available tools
● Typical issues in Mobile Apps
● Putting into in practice
Agenda 89
My app is slow… where to start?
1. By default, troubleshoot first in the
desktop browser console
2. In DevTools Network
a. Search for the Typical Issues
3. In DevTools Timeline
a. Look deeper into Painting and Scripting
b. Try to find some Forced Reflow bottlenecks
4. If all this fail… then go to mobile remote debugging
Putting into practice 90
Troubleshooting in OutSystems Now
What is OutSystems Now?
● 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
91How to TroubleshootOutSystems Now Website https://goo.gl/ihIhaI
How to Troubleshoot in OutSystems Now
OutSystems Now iOS concerns
● Slow apps on Safari and iOS 9+
○ http://goo.gl/qAPxQJ
● Slow in page transitions
○ Transition made with images
92Putting into practice
Recap
● Review the Bases
● Deep dive in DevTools
● Typical issues in mobile
● Putting into practice
93Putting into practice
○ Look for the signals
○ Know where/how to change
○ How to debug remotely
Final Recap
Final Recap
● Know how it works
○ Webpages are slower in Mobile Devices than Desktop
○ Many things happen before we see the page in the browser
○ While on network, most of the time we use 2G or 3G
○ Avoid the use of Repaint and Reflow, instead, use Composite
Final Recap 95
Final Recap
● Know how it works
● Know available tools
○ Understanding Network requests
○ Detect Reflow and Repaint
○ Know how to debug remotely
96Final Recap
Final Recap
● Review the Bases
● Deep dive in DevTools
● Typical issues in mobile
○ No Image Optimization
○ Improve usage of Fonts
○ Uncompressed Resources
○ External Resources
○ Excessive Resources
○ Uncached Resources
○ Parser-Blocking JavaScript
97Final Recap
Final Recap
● Review the Bases
● Deep dive in DevTools
● Typical issues in mobile
● Putting into practice
○ Look for the signals
○ Know where/how to change
○ How to debug remotely
98Final Recap
Replace This image
in master
Daniel Reis
Front-End Expert @ OutSystems
Thank You!!
How Troubleshoot Mobile App Performance 99
Further Reading
● Mobile Web Performance Auditing by Paul Lewis
○ https://goo.gl/COcxFh
● Optimising for 60fps everywhere by JT
○ https://goo.gl/FgKJrs
● Pixels are expensive by Paul Lewis
○ https://goo.gl/H4fzJf
● Why Moving Elements With Translate() Is Better Than Pos:abs Top/left by Paul Irish
○ http://goo.gl/6q21D
● Top CSS techniques for optimal performance by Dinis Carvalho
○ https://goo.gl/E7cXTA
● Measuring web app runtime performance by Sara Gonçalves
○ https://goo.gl/M2eyb2
● Evaluating network performance
○ https://goo.gl/GKL5c8
● Performance profiling with the Timeline
○ https://goo.gl/UBVd9Y
100How Troubleshoot Mobile App Performance
OutSystems Webinars
Previous Webinars
● SILKUI from basics to advanced by Samuel Jesus
○ Watch the video here https://goo.gl/1bgXQC
● Become a mobile developer from scratch by Ruben Gonçalves
○ Watch the video here https://goo.gl/OfR0AS
Next Webinars
● Infrastructure Monitoring - the tool and practice by Paulo Cunha, March 24th
● Detect performance bottlenecks (Performance CSI) by Paulo Garrudo, April 7th
● Building a Live Style Guide by Ruben Gonçalves, April 21th
101Final Recap

More Related Content

Viewers also liked

Startup Engineering Cookbook for Mobile Apps
Startup Engineering Cookbook for Mobile AppsStartup Engineering Cookbook for Mobile Apps
Startup Engineering Cookbook for Mobile Apps
Manish Jain
 
Build the future of mobile apps with facebook mobile app europe berlin sept 14
Build the future of mobile apps with facebook   mobile app europe berlin sept 14Build the future of mobile apps with facebook   mobile app europe berlin sept 14
Build the future of mobile apps with facebook mobile app europe berlin sept 14
Julien Lesaicherre
 
Training Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed cachingTraining Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed caching
OutSystems
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
OutSystems
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
OutSystems
 
Performance Testing in a Mobile World
Performance Testing in a Mobile WorldPerformance Testing in a Mobile World
Performance Testing in a Mobile World
stuartmoncrieff
 
Training Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinarTraining Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinar
OutSystems
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of Applications
OutSystems
 
Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...
OutSystems
 
OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff
OutSystems
 

Viewers also liked (10)

Startup Engineering Cookbook for Mobile Apps
Startup Engineering Cookbook for Mobile AppsStartup Engineering Cookbook for Mobile Apps
Startup Engineering Cookbook for Mobile Apps
 
Build the future of mobile apps with facebook mobile app europe berlin sept 14
Build the future of mobile apps with facebook   mobile app europe berlin sept 14Build the future of mobile apps with facebook   mobile app europe berlin sept 14
Build the future of mobile apps with facebook mobile app europe berlin sept 14
 
Training Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed cachingTraining Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed caching
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
 
Performance Testing in a Mobile World
Performance Testing in a Mobile WorldPerformance Testing in a Mobile World
Performance Testing in a Mobile World
 
Training Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinarTraining Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinar
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of Applications
 
Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...
 
OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff
 

Similar to Training Webinar: Troubleshooting Mobile Apps Performance

Parallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptxParallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptx
Guy Bary
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)
Igalia
 
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)
Ontico
 
Developing high performance and responsive web apps using web worker
Developing high performance and responsive web apps using web workerDeveloping high performance and responsive web apps using web worker
Developing high performance and responsive web apps using web worker
Suresh Patidar
 
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Devin Walker
 
Responsive Design: Building for a Modern Web
Responsive Design: Building for a Modern WebResponsive Design: Building for a Modern Web
Responsive Design: Building for a Modern Web
Harvard Web Working Group
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performance
Sagar Desarda
 
Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applications
JustinGillespie12
 
Predicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentationPredicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentation
Justin Dorfman
 
New Ranking Metrics by Google
New Ranking Metrics by GoogleNew Ranking Metrics by Google
New Ranking Metrics by Google
Phil Marx
 
Performance & dev tools
Performance & dev toolsPerformance & dev tools
Performance & dev tools
Guy Yogev
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
rc2209
 
Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)
Ontico
 
20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performance
Andrew Siemer
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testing
Roman Ananev
 
Javascript & SEO 2019
Javascript & SEO 2019Javascript & SEO 2019
Javascript & SEO 2019
Edd Wilson
 
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
Tarun Gehani
 
Performance Monitoring at Spreadshirt
Performance Monitoring at SpreadshirtPerformance Monitoring at Spreadshirt
Performance Monitoring at Spreadshirt
Martin Breest
 
Web Performance Matters: Challenges, Solutions, Best Practices
Web Performance Matters: Challenges, Solutions, Best PracticesWeb Performance Matters: Challenges, Solutions, Best Practices
Web Performance Matters: Challenges, Solutions, Best Practices
Cloudflare
 
Chrome extensions
Chrome extensions Chrome extensions
Chrome extensions
Ahmad Tahhan
 

Similar to Training Webinar: Troubleshooting Mobile Apps Performance (20)

Parallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptxParallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptx
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)
 
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)
 
Developing high performance and responsive web apps using web worker
Developing high performance and responsive web apps using web workerDeveloping high performance and responsive web apps using web worker
Developing high performance and responsive web apps using web worker
 
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
 
Responsive Design: Building for a Modern Web
Responsive Design: Building for a Modern WebResponsive Design: Building for a Modern Web
Responsive Design: Building for a Modern Web
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performance
 
Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applications
 
Predicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentationPredicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentation
 
New Ranking Metrics by Google
New Ranking Metrics by GoogleNew Ranking Metrics by Google
New Ranking Metrics by Google
 
Performance & dev tools
Performance & dev toolsPerformance & dev tools
Performance & dev tools
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
 
Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)
 
20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performance
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testing
 
Javascript & SEO 2019
Javascript & SEO 2019Javascript & SEO 2019
Javascript & SEO 2019
 
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
 
Performance Monitoring at Spreadshirt
Performance Monitoring at SpreadshirtPerformance Monitoring at Spreadshirt
Performance Monitoring at Spreadshirt
 
Web Performance Matters: Challenges, Solutions, Best Practices
Web Performance Matters: Challenges, Solutions, Best PracticesWeb Performance Matters: Challenges, Solutions, Best Practices
Web Performance Matters: Challenges, Solutions, Best Practices
 
Chrome extensions
Chrome extensions Chrome extensions
Chrome extensions
 

More from OutSystems

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
OutSystems
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
OutSystems
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
OutSystems
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
OutSystems
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
OutSystems
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
OutSystems
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?
OutSystems
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
OutSystems
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
OutSystems
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
OutSystems
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
OutSystems
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
OutSystems
 
Service Actions
Service ActionsService Actions
Service Actions
OutSystems
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
OutSystems
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
OutSystems
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
OutSystems
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
OutSystems
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
OutSystems
 
OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
OutSystems
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
OutSystems
 

More from OutSystems (20)

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
 
Service Actions
Service ActionsService Actions
Service Actions
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
 
OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
 

Recently uploaded

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

Training Webinar: Troubleshooting Mobile Apps Performance

  • 2. Replace This image in master Presentation Daniel Reis Front-End Expert @ OutSystems Hello World!! Linkdin https://goo.gl/RtT7qU Troubleshooting Mobile Apps Performance 2
  • 3. This Webinar is about ● Troubleshooting ● Performance ● It is not about solving performance issues ● How to detect those performance issues Agenda 3
  • 4. Agenda ● Know how it works ● Know available tools ● Typical issues in Mobile Apps ● Putting into practice Agenda 4
  • 6. Introduction Introduction ● 51% of Population has a phone 6We Are Social Digital Report 2016 http://goo.gl/9Fl9Gc
  • 7. 7Introduction Introduction ● 51% of Population has a phone ● 83% of the Facebook’s users accessed by smartphone We Are Social Digital Report 2016 http://goo.gl/9Fl9Gc
  • 8. 8Introduction Introduction ● 51% of Population has a phone ● 83% of the Facebook’s users accessed by smartphone ● +21% share of traffic via mobile phones We Are Social Digital Report 2016 http://goo.gl/9Fl9Gc
  • 9. What people expect about mobile apps? ● 47% expect a page to load less than 2 secs ● 77% expect a website load faster in mobile than desktop ● 40% abandon a website after waiting more than 3 secs ● 52% state that quick page loading is important to their site loyalty Introduction 9
  • 10. Know how it works
  • 11. Agenda ● Know how it works ○ How the web works? ○ How the browser works? ○ How mobile apps works? ● Know available tools ● Typical issues in Mobile Apps ● Putting into in practice Agenda 11
  • 12. How the web works? 12 Know how it works Know how it works - How the web works?
  • 13. Page life cycle 13 ● Domain Name Service Lookup DNS Lookup Know how it works - How the web works? ○ Provides a distributed name resolution service by performing a lookup ○ The DNS can translate an Internet domain name such as www.yoursite.com, into an IP address where the website is located
  • 14. Page life cycle 14 ● Transmission Control Protocol Connection DNS Lookup TCP Connection ○ Establish a connection with the server ○ 3-way handshake ■ SYN - Synchronize ■ SYN-ACK - Synchronize-Acknowledgement ■ ACK - Acknowledgement Know how it works - How the web works?
  • 15. Page life cycle 15 ● HyperText Transfer Protocol ○ Transfer web pages from a server to a client browser ● HyperText Transfer Protocol Request ○ Inform the web server what the client is looking for ● HyperText Transfer Protocol Response ○ Sends back a numeric response code DNS Lookup TCP Connection HTTP Request and Response Know how it works - How the web works?
  • 16. Page life cycle 16 ● Server Response DNS Lookup TCP Connection HTTP Request and Response Server Response ○ Allows the client to display the response result or to inform the user why a request failed ■ 200 OK ■ 304 Not Modified ■ 404 Not Found ■ 500 Internal Server Error Know how it works - How the web works?
  • 17. Page life cycle 17 DNS Lookup TCP Connection HTTP Request and Response Server Response Client-Side Rendering ● Client-Side Rendering ○ Render the page in the browser Know how it works - How the web works?
  • 18. Bandwith 18 ● Capacity of a communications channel that determines the rate of data transfer ● With bigger bandwidth more data can be transferred at a quicker speed Know how it works - How the web works?
  • 19. Bandwith 19 4G - 4th Generation Wireless Network ● Designed primarily for data ● IP-based protocols (Long Term Evolution) ● True mobile broadband 4G is (not) everywhere ● 64% of world connected in 2G ● 30% through 3G ● 6% through 4G Know how it works - How the web works?Webinar Become a mobile developer from scratch https://goo.gl/OfR0AS
  • 20. Latency 20 ● Time Required to PING ● Time Required for a packet to reach the destination and bounce back For a connection between London and New York, across the Internet the latency will be something like 71ms Know how it works - How the web works?Network Latency Grid https://goo.gl/9Zw7YK
  • 21. TCP Slow Start 21 ● Mechanism to estimate and adapt speeds to the network’s changing conditions ● Multiple Round-trips to reach full capacity ● Latency will be charged on each trip Know how it works - How the web works?Slow-Start http://goo.gl/tO9TDk
  • 22. TCP Slow Start 22 ● Exponential Growth cwnd - Congestion Window var RTT - Round-Trip Time Know how it works - How the web works?Slow-Start http://goo.gl/tO9TDk ● Packet Loss Fallback
  • 23. Parallel requests 23 ● Avoid overloading web servers ● Reduce internet congestion Know how it works - How the web works?
  • 24. How the browser works 24 Know how it works Know how it works - How the browser works?
  • 25. How the browser works ● Critical Rendering Path ● Re-Paint ● Reflow ● Composite 25Know how it works - How the browser works?
  • 26. Critical Render Path 26 HTML DOM ● DOM - Document Object Model ○ The parsing of the HTML document received by the server ○ Defines the properties, methods and events for all HTML elements Know how it works - How the browser works?
  • 27. Critical Render Path 27 HTML CSS DOM CSSOM ● CSSOM - Cascading Style Sheets Object Model ○ It is much like the DOM, but for the CSS rather than the HTML ○ It is a map from the specified stylesheet rules and resources ○ It maps out the rules in your stylesheet to the things on the page which need styling Know how it works - How the browser works?
  • 28. Critical Render Path 28 HTML CSS DOM CSSOM Render Tree ● Render Tree ○ Contains only the nodes required to render the page ○ Reflects the DOM structure without the invisible elements Know how it works - How the browser works?
  • 29. Critical Render Path 29Know how it works - How the browser works?
  • 30. Critical Render Path 30 HTML CSS DOM CSSOM Render Tree Layout ● Layout ○ Exact position and size of each element from the Render Tree ○ Maps the exact coordinates of where each element must appear on the screen, starting at the top left position: 0,0 Know how it works - How the browser works?
  • 31. Critical Render Path 31 HTML CSS DOM CSSOM Render Tree Layout Paint ● Paint ○ Displayed page in the browser window Know how it works - How the browser works?
  • 32. Critical Render Path 32 HTML CSS DOM CSSOM Render Tree Layout Paint ● Reflow Render Tree Layout Paint ○ Computes the layout of the page ○ Computes the dimensions and position of the element ○ Triggers further reflows on that element’s children, ancestors and elements that appear after it in the DOM ○ Calls a final Repaint Know how it works - How the browser works?
  • 33. Reflow can be triggered easily, such as 33 ● Insert, remove or update an element in the DOM ● Move or a animate a DOM element ● Take measurements of an element like offsetWidth or offsetHeight ● Change a CSS style rule ● Manipulating the class attribute ● Add or remove a stylesheet ● Scroll or resize the window ● Setting a property of the style attribute Know how it works - How the browser works?
  • 34. Critical Render Path 34 HTML CSS DOM CSSOM Render Tree Layout Paint ● Repaint Render Tree Paint ○ Goes through all the elements and determines their visual style properties, then it updates the relevant parts of the screen ○ When changing element styles which don't affect the element's position on a page, the browser just repaints the element again with the new styles applied Know how it works - How the browser works?
  • 35. Out of the Critical Render Path 35 HTML CSS DOM CSSOM Render Tree Layout Paint ● Composite Composite Out of the CRP ○ Manage Graphics Layer Trees ○ Draw the Compositing Layers of the page ○ Use of GPU (Graphics Processing Unit) CPU GPU Know how it works - How the browser works?
  • 36. Promote element to a Layer 36 ● Use of GPU (Graphics Processing Unit) ● Avoid non-trivial Paint ● Faster and Smoother Render ● Trigger a Compositing Layer Know how it works - How the browser works?
  • 37. How to promote element to a Layer? 37 ● will-change property ○ Method for optimizing animations ○ Informs the browser which elements will change and what properties will change ● Manipulation of the Z axis ○ transform: translate3d(0,0,0); ○ transform: translateZ(0); Know how it works - How the browser works?Optimising for 60fps everywhere https://goo.gl/FgKJrs
  • 38. Out of the Critical Render Path 38 HTML CSS DOM CSSOM Render Tree Layout Paint ● Promoting an element to a Layer Out of the CRP Composite CPU GPU Composite ○ Will use Composite ○ Out of the CRP Know how it works - How the browser works?
  • 39. Out of the Critical Render Path 39 … 17º 27º 30º 66º 72º Know how it works - How the browser works?CSS properties usage by style https://goo.gl/hhoyc0
  • 40. How mobile apps works 40 Know how it works Know how it works - How mobile apps works?
  • 41. iOS Pseudo-Browsers ● There is only one browser in iOS ● For experience purposes ● All browsers use Safari Render Engine Chrome for iOS is different from Chrome for Android 41Know how it works - How mobile apps works?
  • 42. WebView for Android / Chromium ● Since Android 4.4 the WebView component is based on the Chromium open source project ● In Android 5.0 the WebView can be updated in Google Play separately to the Android platform 42Know how it works - How mobile apps works?
  • 43. WebView for Android / Chromium 43 ● Chromium based WebView is faster ● Performance increased ○ Overall results ○ Up to 354% for HTML5 Canvas ○ Up to 358% for Javascript Know how it works - How mobile apps works?Old WebView vs. Chromium backed WebView Benchmark https://goo.gl/Uy2wNs
  • 44. Mobile delay while click on a link 44 ● The browser wait approximately 300ms from the time you tap the button until fire the click event ● In order to identify if it was a single click event or a double tap event ● Nowadays only happens in iOS Know how it works - How the web works?
  • 45. Recap ● Webpages are slower in Mobile Devices than Desktop ● Many things happen before we see the page in the browser ● While on network, most of the time we use 2G or 3G ● Avoid the use of Repaint and Reflow, instead, use Composite 45Know how it works
  • 47. Agenda ● Know how it works ● Know available tools ○ Deep dive in Chrome DevTools ○ Remote Debug Inspectors ○ Connecting your device ● Typical issues in Mobile Apps ● Putting into in practice Agenda 47
  • 48. Deep dive in Chrome DevTools 48Know available tools - Deep dive in Chrome DevTools
  • 49. Network 49Know available tools - Deep dive in Chrome DevToolsEvaluating network performance https://goo.gl/GKL5c8
  • 50. Network ● Columns 50Know available tools - Deep dive in Chrome DevTools
  • 51. Network ● Queuing ○ Time waiting to tag this request into an open TCP connection ● Stalled ○ Time spent negotiating with a proxy server connection ● Request sent ● Waiting ○ Time to first byte ● Content Download 51Know available tools - Deep dive in Chrome DevTools
  • 52. Timeline ● Paint ○ Similar to Canvas ○ List of Draws grouped together as a data structure ● Rasterize Paint ○ Render the Draws into pixels 52Know available tools - Deep dive in Chrome DevTools
  • 53. Timeline ● Reflow ○ To avoid constant Reflow, the browser will setup a queue of the changes ○ This way several changes will be combined and only one reflow will be computed ○ Browsers flush the queue once a certain amount of time passes or a certain number of changes is reached 53Know available tools - Deep dive in Chrome DevTools
  • 54. Timeline ● Reflow ○ Sometimes the script force a reflow, flushing the queue ○ This happens when you request style information, such as ■ offsetWidth ■ offsetHeight ■ scrollTop 54Know available tools - Deep dive in Chrome DevTools
  • 55. Timeline ● Layers 55Know available tools - Deep dive in Chrome DevTools
  • 56. Timeline ● Layers 56Know available tools - Deep dive in Chrome DevTools
  • 57. Remote Debug Inspectors 57 Know available tools Know available tools - Remote Debug Inspectors
  • 58. Remote Debug Inspectors ● weinre - WEb INspector REmote ○ http://goo.gl/1TiBjO ● Adobe Edge Inspect ○ http://goo.gl/hmOkAb 58How to Troubleshoot
  • 59. Connecting your device 59 Know available tools Know available tools - Connecting your device
  • 60. Remote Debug installation 60 Android on Windows - http://goo.gl/QYjKEX 1. Chrome Remote Debugging Requirements ○ https://goo.gl/g6AO63 2. Samsung Android USB Driver for Windows ○ http://goo.gl/vnk108 3. Android SDK ○ http://goo.gl/II9nyw ○ http://goo.gl/AcnPhT 4. adb devices (need to be started every time you debug) ○ https://goo.gl/Bw8h1b Know available tools - Connecting your device
  • 61. Connecting your device 61 1. Start adb ○ https://goo.gl/Bw8h1b 2. Open chrome://inspect/#devices Know available tools - Connecting your device
  • 62. Connecting your device Remote Debug installation on Mac ● Just plug-in the cable!! 62Know available tools - Connecting your device
  • 63. Recap ● Understanding Network requests ● Detect Reflow and Repaint ● Know how to debug remotely 63Know available tools - Deep dive in Chrome DevTools
  • 64. Typical Issues in Mobile Apps
  • 65. Agenda ● Know how it works ● Know available tools ● Typical issues in Mobile Apps ● Putting into in practice Agenda 65
  • 66. Typical issues in Mobile Apps No Image Optimization 66Typical issues in Mobile Apps
  • 67. Typical issues in Mobile Apps No Image Optimization ● Original Image ○ PNG ○ 1,72 MB 67Typical issues in Mobile Apps
  • 68. Typical issues in Mobile Apps No Image Optimization ● optimizilla.com ○ JPG ○ 14,2 KB 68Typical issues in Mobile Apps
  • 69. Typical issues in Mobile Apps No Image Optimization 69Typical issues in Mobile Apps
  • 70. Typical issues in Mobile Apps No Image Optimization ● 1px with ○ JPG ○ 1,09 KB ○ repeat-x 70Typical issues in Mobile Apps
  • 71. Typical issues in Mobile Apps No Image Optimization 71Typical issues in Mobile Apps
  • 72. Typical issues in Mobile Apps No Image Optimization ● CSS background-color ○ instant render 72Typical issues in Mobile Apps
  • 73. Typical issues in Mobile Apps No Image Optimization 73Typical issues in Mobile Apps
  • 74. Typical issues in Mobile Apps Image Download 74 .Phone Typical issues in Mobile Apps
  • 75. Typical issues in Mobile Apps Image Download ● display: none or visibility: hidden ○ Still download the image 75 .Phone Typical issues in Mobile Apps
  • 76. Typical issues in Mobile Apps Image Download ● SilkUI Device Class 76 .Phone.Phone Typical issues in Mobile Apps
  • 77. Typical issues in Mobile Apps Image Download ● SilkUI DisplayOnDevice 77 .Phone Typical issues in Mobile AppsWebinar SILKUI from basics to advanced https://goo.gl/1bgXQC
  • 78. Typical issues in Mobile Apps Improve usage of Fonts ● Web Fonts Concerns ○ Larger font files or too many fonts, slow down loading of the page, especially on mobile devices. ○ Load after 1st Paint (glitch visible in Mobile) ○ Unicode fonts can contain thousands of glyphs ○ No single Universal Format 78 ● Web Font Formats ○ woff / woff2 ○ ttf (below Android 4.4) ○ eot (below IE9) ○ svg (it's being deprecated) Typical issues in Mobile Apps
  • 79. Typical issues in Mobile Apps Improve usage of Fonts 79Typical issues in Mobile Apps
  • 80. Typical issues in Mobile Apps Improve usage of Fonts 80 .Phone .Desktop Typical issues in Mobile Apps
  • 81. Typical issues in Mobile Apps Uncompressed Resources ● Content-Encoding: gzip 81Typical issues in Mobile Apps
  • 82. Typical issues in Mobile Apps Uncompressed Resources ● Gzipping ○ Process of finding all repetitive strings and replaces them with pointers to the first instance of that string ■ Reduce until 70% to 80% page size ■ All modern browsers support GZIP and will request it by default ■ Most of the sites are using Gzip compression across the web 82Typical issues in Mobile Apps
  • 83. Typical issues in Mobile Apps External Resources ● Domain Path 83Typical issues in Mobile Apps
  • 84. Typical issues in Mobile Apps Excessive Resources 84Typical issues in Mobile Apps
  • 85. Typical issues in Mobile Apps Uncached Resources ● Cache avoid unnecessary HTTP requests on subsequent page views 85Typical issues in Mobile Apps
  • 86. Typical issues in Mobile Apps Parser-Blocking JavaScript ● Usage of external widgets ● Large Javascript files ● Synchronous JavaScript resources ● Long running JavaScript ● Repaint and Reflow the DOM 86Typical issues in Mobile Apps
  • 87. Recap ● Optimize your images ● Do not use images for any sort of layout styling ● Use font icons instead of sprites ● Improve the usage of Fonts ● Compress and Cache your Resources ● Attention to Excessive and External Resources ● Take a look to Parser-Blocking JavaScript 87Typical issues in Mobile Apps
  • 89. Agenda ● Know how it works ● Know available tools ● Typical issues in Mobile Apps ● Putting into in practice Agenda 89
  • 90. My app is slow… where to start? 1. By default, troubleshoot first in the desktop browser console 2. In DevTools Network a. Search for the Typical Issues 3. In DevTools Timeline a. Look deeper into Painting and Scripting b. Try to find some Forced Reflow bottlenecks 4. If all this fail… then go to mobile remote debugging Putting into practice 90
  • 91. Troubleshooting in OutSystems Now What is OutSystems Now? ● 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 91How to TroubleshootOutSystems Now Website https://goo.gl/ihIhaI
  • 92. How to Troubleshoot in OutSystems Now OutSystems Now iOS concerns ● Slow apps on Safari and iOS 9+ ○ http://goo.gl/qAPxQJ ● Slow in page transitions ○ Transition made with images 92Putting into practice
  • 93. Recap ● Review the Bases ● Deep dive in DevTools ● Typical issues in mobile ● Putting into practice 93Putting into practice ○ Look for the signals ○ Know where/how to change ○ How to debug remotely
  • 95. Final Recap ● Know how it works ○ Webpages are slower in Mobile Devices than Desktop ○ Many things happen before we see the page in the browser ○ While on network, most of the time we use 2G or 3G ○ Avoid the use of Repaint and Reflow, instead, use Composite Final Recap 95
  • 96. Final Recap ● Know how it works ● Know available tools ○ Understanding Network requests ○ Detect Reflow and Repaint ○ Know how to debug remotely 96Final Recap
  • 97. Final Recap ● Review the Bases ● Deep dive in DevTools ● Typical issues in mobile ○ No Image Optimization ○ Improve usage of Fonts ○ Uncompressed Resources ○ External Resources ○ Excessive Resources ○ Uncached Resources ○ Parser-Blocking JavaScript 97Final Recap
  • 98. Final Recap ● Review the Bases ● Deep dive in DevTools ● Typical issues in mobile ● Putting into practice ○ Look for the signals ○ Know where/how to change ○ How to debug remotely 98Final Recap
  • 99. Replace This image in master Daniel Reis Front-End Expert @ OutSystems Thank You!! How Troubleshoot Mobile App Performance 99
  • 100. Further Reading ● Mobile Web Performance Auditing by Paul Lewis ○ https://goo.gl/COcxFh ● Optimising for 60fps everywhere by JT ○ https://goo.gl/FgKJrs ● Pixels are expensive by Paul Lewis ○ https://goo.gl/H4fzJf ● Why Moving Elements With Translate() Is Better Than Pos:abs Top/left by Paul Irish ○ http://goo.gl/6q21D ● Top CSS techniques for optimal performance by Dinis Carvalho ○ https://goo.gl/E7cXTA ● Measuring web app runtime performance by Sara Gonçalves ○ https://goo.gl/M2eyb2 ● Evaluating network performance ○ https://goo.gl/GKL5c8 ● Performance profiling with the Timeline ○ https://goo.gl/UBVd9Y 100How Troubleshoot Mobile App Performance
  • 101. OutSystems Webinars Previous Webinars ● SILKUI from basics to advanced by Samuel Jesus ○ Watch the video here https://goo.gl/1bgXQC ● Become a mobile developer from scratch by Ruben Gonçalves ○ Watch the video here https://goo.gl/OfR0AS Next Webinars ● Infrastructure Monitoring - the tool and practice by Paulo Cunha, March 24th ● Detect performance bottlenecks (Performance CSI) by Paulo Garrudo, April 7th ● Building a Live Style Guide by Ruben Gonçalves, April 21th 101Final Recap