SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
LIBERATING WEB APPS
FROM THE SERVER
ALEX GYOSHEV

Front-end Engineer at Telerik Kendo UI
@agyoshev
AGENDA
Rationale
Offline storage
Caching apps
Backend as a service
Questions
WHY SEPARATE APPS FROM SERVERS?
REASONS TO SEPARATE

WORKFLOW team members can work on different functionality
ARCHITECTURE concerns are separated
PERFORMANCE cache is faster than any connection
ACCESSIBILITY a person with no connection is still a person
ECONOMICS your app can compete with native ones
REASONS TO SEPARATE
EASIER TESTING

psscet(
ot.rae{
tte "yltl pn"
il: M ite oy,
bd:"redhpi mgc
oy Finsi s ai"
} fnto sces){
, ucin ucs(
/ pse
/ otd
};
)

/ ts mc
/ et ok
bcedPsscet =fnto(aa dn){
akn.ot.rae
ucindt, oe
o(aatte;
kdt.il)
o(aabd)
kdt.oy;
dn(;
oe)
}
;
REASONS TO SEPARATE
EASIER TESTING

psscet(
ot.rae{
tte "yltl pn"
il: M ite oy,
bd:"redhpi mgc
oy Finsi s ai"
} fnto sces){
, ucin ucs(
/ pse
/ otd
};
)

/ ata ipeetto
/ cul mlmnain
bcedPsscet =fnto(aa dn){
akn.ot.rae
ucindt, oe
$ps(
.ot{
ul "psscet"
r: /ot/rae,
dt:dt,
aa aa
sces dn
ucs: oe
};
)
}
;
REASON TO SEAPARATE #1

WE LIVE IN A DISCONNECTED WORLD.
Reception when on the road
Roaming charges
OFFLINE FIRST

http://offlinefirst.org/
DEMO

CASHWISE: TRACKING EXPENSES
App: cashwise.herokuapp.com
Source: github.com/gyoshev/cashwise
Kendo UI Mobile + Telerik Backend Services
Git tags for each part of the talk
OFFLINE STORAGE
OFFLINE STORAGE
BROWSER SUPPORT
OFFLINE STORAGE
ABSTRACTIONS

Use the same API across all devices
IndexedDB-WebSQL adapter
Mozilla LocalForage
CACHING APPS
CACHING APPS
APPCACHE

CCEMNFS
AH AIET
/oopg
lg.n
/p.s
apcs
ht:/oejur.o/qey11..i.s
tp/cd.qeycmjur-.10mnj
/p.s
apj

<dcyehm>
!otp tl
<tlmnfs=cceapah"
hm aiet"ah.pcce>
<ed
ha>
<il>yAp/il>
tteM p<tte
<ikrl"tlset he=apcs>
ln e=syehe" rf"p.s"
<ha>
/ed
<oy
bd>
<citsc"tp/cd.qeycmjur-.10mnj"<srp>
srp r=ht:/oejur.o/qey11..i.s>/cit
<citsc"p.s>/cit
srp r=apj"<srp>
<bd>
/oy
<hm>
/tl
CACHING APPS

APPCACHE: HARD TO WORK WITH
app is always loaded from appcache
files are refreshed when manifest changes
many other caveats
chrome://appcache-internals/ &
about:cache are your friends!
get used to refreshing twice
go home, AppCache, you're drunk
CACHING APPS

APPCACHE: WORKS REALLY GOOD
Previous version of cashwise
works fine 1 year after
server burned down
CACHING APPS

NODE.JS DEVELOPMENT WORKFLOW
Generate manifest on server start
Use supervisor / forever / nodemon
to reload app when files change
sprio - 'tlj,s'- wbj
uevsr e hm,scs - e.s
CACHING APPS

SERVICEWORKER (W3C DRAFT)
github.com/slightlyoff/ServiceWorker
From declarative to imperative
From pages to apps
CACHING APPS

SERVICEWORKER (W3C DRAFT)
/ idxhm
/ ne.tl
nvgtrsrieokrrgse(/okrj";
aiao.evcWre.eitr"wre.s)
/ wre.s
/ okrj
ti.eso =1
hsvrin
;
ti.dEetitnr"ec" fnto(){
hsadvnLsee(fth, ucine
i (.eus.r = "tp/eapecmdt.sn){
f erqetul = ht:/xml.o/aajo"
ersodihnwRsos(
.epnWt(e epne{
sauCd:20
ttsoe 0,
bd:JO.tigf( rsls {/ ..* }}
oy SNsrniy{ eut:
* . /
)
})
);
}
};
)
BACKEND AS A SERVICE (BAAS)
BACKEND AS A SERVICE (BAAS)
WHAT DOES IT LOOK LIKE?

/ ata ipeetto
/ cul mlmnain
bcedPsscet =fnto(aa dn){
akn.ot.rae
ucindt, oe
$ps(
.ot{
ul "psscet"
r: /ot/rae,
dt:dt,
aa aa
sces dn
ucs: oe
};
)
}
;

psscet(
ot.rae{
tte "yltl pn"
il: M ite oy,
bd:"redhpi mgc
oy Finsi s ai"
} fnto sces){
, ucin ucs(
/ pse
/ otd
};
)
BACKEND AS A SERVICE (BAAS)
PROS AND CONS

Pro: Outsource scalability
Pro: Get features out of the box
(social, auth, push notifications)
Pro: Reduce own codebase
Pro: Overall faster development
Con: Dependency.
Con: Remote. Dependency.
BACKEND AS A SERVICE (BAAS)
#UXPROTIP

Be sure to notify your users about sync status
vrudtCnetoSau =fnto( {
a paeoncintts
ucin)
vrsau =nvgtroLn ?'nie :'fln'
a tts
aiao.nie
oln'
ofie;
dcmn.eEeetyd'tts)casae=sau;
ouetgtlmnBI(sau'.lsNm
tts
}
;
wno.dEetitnr'nie, udtCnetoSau)
idwadvnLsee(oln'
paeoncintts;
wno.dEetitnr'fln' udtCnetoSau)
idwadvnLsee(ofie, paeoncintts;
QUESTIONS?

@AGYOSHEV / ALEX@GYOSHEV.NET
Kendo UI Mobile + Basic Backend Services
for free at
telerik.com/platform

Mais conteúdo relacionado

Mais procurados

Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker PresentationKyle Dorman
 
async makes your tests fun - acceptance testing with capybara
async makes your tests fun - acceptance testing with capybaraasync makes your tests fun - acceptance testing with capybara
async makes your tests fun - acceptance testing with capybaraMichael Reinsch
 
Full stack, Full run, Full test
Full stack, Full run, Full testFull stack, Full run, Full test
Full stack, Full run, Full testTaras Slipets
 
[1C1]Service Workers
[1C1]Service Workers[1C1]Service Workers
[1C1]Service WorkersNAVER D2
 
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Max Andersen
 
Async ASP.NET Applications
Async ASP.NET ApplicationsAsync ASP.NET Applications
Async ASP.NET ApplicationsShayne Boyer
 
React Native in Production
React Native in ProductionReact Native in Production
React Native in ProductionSeokjun Kim
 
It’s your time to ask questions
It’s your time to ask questionsIt’s your time to ask questions
It’s your time to ask questionsGil Sheps
 
Speed up rspec tests - part 1
Speed up rspec tests - part 1Speed up rspec tests - part 1
Speed up rspec tests - part 1Railwaymen
 
Boulder StaleFish Presentation
Boulder StaleFish PresentationBoulder StaleFish Presentation
Boulder StaleFish PresentationJustin Smestad
 
Painless Deployment with Capistrano
Painless Deployment with CapistranoPainless Deployment with Capistrano
Painless Deployment with CapistranoNick Kugaevsky
 
Site Testing with CasperJS
Site Testing with CasperJSSite Testing with CasperJS
Site Testing with CasperJSJoseph Scott
 
Dockerize node.js application
Dockerize node.js applicationDockerize node.js application
Dockerize node.js applicationSeokjun Kim
 
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...pascallaliberte
 
DataEngConf SF16 - Routing Billions of Analytics Events with High Deliverability
DataEngConf SF16 - Routing Billions of Analytics Events with High DeliverabilityDataEngConf SF16 - Routing Billions of Analytics Events with High Deliverability
DataEngConf SF16 - Routing Billions of Analytics Events with High DeliverabilityHakka Labs
 
WordPress 2017 with VueJS and GraphQL
WordPress 2017 with VueJS and GraphQLWordPress 2017 with VueJS and GraphQL
WordPress 2017 with VueJS and GraphQLhouzman
 

Mais procurados (20)

Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
 
Service workers
Service workersService workers
Service workers
 
Secure my ng-app
Secure my ng-appSecure my ng-app
Secure my ng-app
 
async makes your tests fun - acceptance testing with capybara
async makes your tests fun - acceptance testing with capybaraasync makes your tests fun - acceptance testing with capybara
async makes your tests fun - acceptance testing with capybara
 
Full stack, Full run, Full test
Full stack, Full run, Full testFull stack, Full run, Full test
Full stack, Full run, Full test
 
[1C1]Service Workers
[1C1]Service Workers[1C1]Service Workers
[1C1]Service Workers
 
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
 
Async ASP.NET Applications
Async ASP.NET ApplicationsAsync ASP.NET Applications
Async ASP.NET Applications
 
React Native in Production
React Native in ProductionReact Native in Production
React Native in Production
 
NODE NYC
NODE NYCNODE NYC
NODE NYC
 
It’s your time to ask questions
It’s your time to ask questionsIt’s your time to ask questions
It’s your time to ask questions
 
Jsconf asia pm2
Jsconf asia pm2Jsconf asia pm2
Jsconf asia pm2
 
Speed up rspec tests - part 1
Speed up rspec tests - part 1Speed up rspec tests - part 1
Speed up rspec tests - part 1
 
Boulder StaleFish Presentation
Boulder StaleFish PresentationBoulder StaleFish Presentation
Boulder StaleFish Presentation
 
Painless Deployment with Capistrano
Painless Deployment with CapistranoPainless Deployment with Capistrano
Painless Deployment with Capistrano
 
Site Testing with CasperJS
Site Testing with CasperJSSite Testing with CasperJS
Site Testing with CasperJS
 
Dockerize node.js application
Dockerize node.js applicationDockerize node.js application
Dockerize node.js application
 
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
 
DataEngConf SF16 - Routing Billions of Analytics Events with High Deliverability
DataEngConf SF16 - Routing Billions of Analytics Events with High DeliverabilityDataEngConf SF16 - Routing Billions of Analytics Events with High Deliverability
DataEngConf SF16 - Routing Billions of Analytics Events with High Deliverability
 
WordPress 2017 with VueJS and GraphQL
WordPress 2017 with VueJS and GraphQLWordPress 2017 with VueJS and GraphQL
WordPress 2017 with VueJS and GraphQL
 

Semelhante a Liberating web apps from the server

NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBNodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBDavid Wesst
 
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...DevOpsDays Tel Aviv
 
Electron - cross platform desktop applications made easy
Electron - cross platform desktop applications made easyElectron - cross platform desktop applications made easy
Electron - cross platform desktop applications made easyUlrich Krause
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0Eugenio Romano
 
Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2Oleksii Prohonnyi
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applicationsTom Croucher
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with ExpressAaron Stannard
 
Introduction to node.js By Ahmed Assaf
Introduction to node.js  By Ahmed AssafIntroduction to node.js  By Ahmed Assaf
Introduction to node.js By Ahmed AssafAhmed Assaf
 
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesWindows Developer
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSPat Cito
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextPrateek Maheshwari
 
Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.Visual Engineering
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Fwdays
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)Igor Bronovskyy
 
[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform
[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform
[Webinar] An Hour with the CTO: All About APIs and the Nuxeo PlatformNuxeo
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidenceJohn Congdon
 
Electron Firenze 2020: Linux, Windows o MacOS?
Electron Firenze 2020: Linux, Windows o MacOS?Electron Firenze 2020: Linux, Windows o MacOS?
Electron Firenze 2020: Linux, Windows o MacOS?Denny Biasiolli
 
Electron: Linux, Windows or Macos?
Electron: Linux, Windows or Macos?Electron: Linux, Windows or Macos?
Electron: Linux, Windows or Macos?Commit University
 

Semelhante a Liberating web apps from the server (20)

NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBNodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
 
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
 
Electron - cross platform desktop applications made easy
Electron - cross platform desktop applications made easyElectron - cross platform desktop applications made easy
Electron - cross platform desktop applications made easy
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
 
Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2Front-end development introduction (JavaScript). Part 2
Front-end development introduction (JavaScript). Part 2
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with Express
 
Introduction to node.js By Ahmed Assaf
Introduction to node.js  By Ahmed AssafIntroduction to node.js  By Ahmed Assaf
Introduction to node.js By Ahmed Assaf
 
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devices
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 
Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform
[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform
[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidence
 
Elixir on Containers
Elixir on ContainersElixir on Containers
Elixir on Containers
 
Electron Firenze 2020: Linux, Windows o MacOS?
Electron Firenze 2020: Linux, Windows o MacOS?Electron Firenze 2020: Linux, Windows o MacOS?
Electron Firenze 2020: Linux, Windows o MacOS?
 
Electron: Linux, Windows or Macos?
Electron: Linux, Windows or Macos?Electron: Linux, Windows or Macos?
Electron: Linux, Windows or Macos?
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Liberating web apps from the server

  • 1. LIBERATING WEB APPS FROM THE SERVER ALEX GYOSHEV Front-end Engineer at Telerik Kendo UI @agyoshev
  • 3. WHY SEPARATE APPS FROM SERVERS?
  • 4. REASONS TO SEPARATE WORKFLOW team members can work on different functionality ARCHITECTURE concerns are separated PERFORMANCE cache is faster than any connection ACCESSIBILITY a person with no connection is still a person ECONOMICS your app can compete with native ones
  • 5. REASONS TO SEPARATE EASIER TESTING psscet( ot.rae{ tte "yltl pn" il: M ite oy, bd:"redhpi mgc oy Finsi s ai" } fnto sces){ , ucin ucs( / pse / otd }; ) / ts mc / et ok bcedPsscet =fnto(aa dn){ akn.ot.rae ucindt, oe o(aatte; kdt.il) o(aabd) kdt.oy; dn(; oe) } ;
  • 6. REASONS TO SEPARATE EASIER TESTING psscet( ot.rae{ tte "yltl pn" il: M ite oy, bd:"redhpi mgc oy Finsi s ai" } fnto sces){ , ucin ucs( / pse / otd }; ) / ata ipeetto / cul mlmnain bcedPsscet =fnto(aa dn){ akn.ot.rae ucindt, oe $ps( .ot{ ul "psscet" r: /ot/rae, dt:dt, aa aa sces dn ucs: oe }; ) } ;
  • 7. REASON TO SEAPARATE #1 WE LIVE IN A DISCONNECTED WORLD. Reception when on the road Roaming charges
  • 9. DEMO CASHWISE: TRACKING EXPENSES App: cashwise.herokuapp.com Source: github.com/gyoshev/cashwise Kendo UI Mobile + Telerik Backend Services Git tags for each part of the talk
  • 12. OFFLINE STORAGE ABSTRACTIONS Use the same API across all devices IndexedDB-WebSQL adapter Mozilla LocalForage
  • 14. CACHING APPS APPCACHE CCEMNFS AH AIET /oopg lg.n /p.s apcs ht:/oejur.o/qey11..i.s tp/cd.qeycmjur-.10mnj /p.s apj <dcyehm> !otp tl <tlmnfs=cceapah" hm aiet"ah.pcce> <ed ha> <il>yAp/il> tteM p<tte <ikrl"tlset he=apcs> ln e=syehe" rf"p.s" <ha> /ed <oy bd> <citsc"tp/cd.qeycmjur-.10mnj"<srp> srp r=ht:/oejur.o/qey11..i.s>/cit <citsc"p.s>/cit srp r=apj"<srp> <bd> /oy <hm> /tl
  • 15. CACHING APPS APPCACHE: HARD TO WORK WITH app is always loaded from appcache files are refreshed when manifest changes many other caveats chrome://appcache-internals/ & about:cache are your friends! get used to refreshing twice go home, AppCache, you're drunk
  • 16. CACHING APPS APPCACHE: WORKS REALLY GOOD Previous version of cashwise works fine 1 year after server burned down
  • 17. CACHING APPS NODE.JS DEVELOPMENT WORKFLOW Generate manifest on server start Use supervisor / forever / nodemon to reload app when files change sprio - 'tlj,s'- wbj uevsr e hm,scs - e.s
  • 18. CACHING APPS SERVICEWORKER (W3C DRAFT) github.com/slightlyoff/ServiceWorker From declarative to imperative From pages to apps
  • 19. CACHING APPS SERVICEWORKER (W3C DRAFT) / idxhm / ne.tl nvgtrsrieokrrgse(/okrj"; aiao.evcWre.eitr"wre.s) / wre.s / okrj ti.eso =1 hsvrin ; ti.dEetitnr"ec" fnto(){ hsadvnLsee(fth, ucine i (.eus.r = "tp/eapecmdt.sn){ f erqetul = ht:/xml.o/aajo" ersodihnwRsos( .epnWt(e epne{ sauCd:20 ttsoe 0, bd:JO.tigf( rsls {/ ..* }} oy SNsrniy{ eut: * . / ) }) ); } }; )
  • 20. BACKEND AS A SERVICE (BAAS)
  • 21. BACKEND AS A SERVICE (BAAS) WHAT DOES IT LOOK LIKE? / ata ipeetto / cul mlmnain bcedPsscet =fnto(aa dn){ akn.ot.rae ucindt, oe $ps( .ot{ ul "psscet" r: /ot/rae, dt:dt, aa aa sces dn ucs: oe }; ) } ; psscet( ot.rae{ tte "yltl pn" il: M ite oy, bd:"redhpi mgc oy Finsi s ai" } fnto sces){ , ucin ucs( / pse / otd }; )
  • 22. BACKEND AS A SERVICE (BAAS) PROS AND CONS Pro: Outsource scalability Pro: Get features out of the box (social, auth, push notifications) Pro: Reduce own codebase Pro: Overall faster development Con: Dependency. Con: Remote. Dependency.
  • 23. BACKEND AS A SERVICE (BAAS) #UXPROTIP Be sure to notify your users about sync status vrudtCnetoSau =fnto( { a paeoncintts ucin) vrsau =nvgtroLn ?'nie :'fln' a tts aiao.nie oln' ofie; dcmn.eEeetyd'tts)casae=sau; ouetgtlmnBI(sau'.lsNm tts } ; wno.dEetitnr'nie, udtCnetoSau) idwadvnLsee(oln' paeoncintts; wno.dEetitnr'fln' udtCnetoSau) idwadvnLsee(ofie, paeoncintts;
  • 24. QUESTIONS? @AGYOSHEV / ALEX@GYOSHEV.NET Kendo UI Mobile + Basic Backend Services for free at telerik.com/platform