SlideShare a Scribd company logo
1 of 24
Download to read offline
Why we built a 35kB
React Native alternative ?
Hello!
I’m Sahebjot Singh,
Software Engineer at Juspay
Juspay
UPI SDK for top AppsUPI for PetroleumNew Juspay Safe
SDK powers 100 million + devices 20 million with BHIM
Started using react redux in 2015
Exploring different programming paradigms
Juspay Story!
● Functional Javascript (ramda.js, Rxjs)
● Languages that compile to JS Clojurescript, Elm, Eve
Finding better ways to program
SDK Requirements
Dynamic updates to UI and User Flows
SDK size <150kB
Experimented with configurable Html5
components
SDK Requirements
React Native to the rescue ?
React Native and NativeScript
Hello World apps were 7MB
Library overhead was around 6MB for Android
We Investigated!
● Created their own Javascript Executor for Android
● Various Native components
PrestoUI - Our alternative
Found a different way to create native
components
PrestoUI - Our alternative
● Managed to build it, initial Android SDK size 21kB
● Current library overhead of just 35kB
● Native WebView that is bundled with
Android
● Reflection
HOW ?
Reflection
reflection is the ability of a computer program to examine,
introspect, and modify its own structure and behavior at
runtime - Wikipedia
● Performance is an issue
● Solved by
○ Memoization of functions
○ Caching UI View Trees
Build BHIM
3 Weeks time
● Team of freshers
● PrestoUI goes to production
Functional Programming!
PureScript
● Pure Functional Programming Language
● Strong Types
● Category Theory (Functors / Monads / Applicatives)
● Best of Haskell and Javascript
Flow - Goal based DSL
● Transactional apps
● Goal based DSL
Goal DSL - Flow Language
billPayFlow :: Flow BillPayFailure StatusScreenAction
billPayFlow = do
_ <- UI.splashScreen
-- Get the mobile operator from the user
operators <- Remote.fetchOperators
operator <- UI.chooseOperator operators
-- Recharge Form & Call Recharge API
mobileNumber <- UI.askMobileNumber
amount <- UI.askAmount
result <- Remote.payBill mobileNumber amount
UI.billPayStatus mobileNumber amount result
Next Steps
Auto generate UI Components from designs
● Eliminates designer-to-developer handover process
● Hot Reload
● Pixel perfect
Next Steps
School of Functional Programming
Steep learning curve
School of Functional Programming
● Zero to Monads in 1 hour
● Simple DSL - Get started with Apps without deep functional
knowledge
My Journey
Fresh out of college, As an intern
● Obsessed with the project
● Almost gave up
Thanks!
Want to contribute? Just mail us at
presto@juspay.in
https://github.com/juspay/presto-ui
https://github.com/juspay/purescript-presto

More Related Content

What's hot

Cloud Aware Large Scale Distributed SOA
Cloud Aware Large Scale Distributed SOACloud Aware Large Scale Distributed SOA
Cloud Aware Large Scale Distributed SOAChristophe Hamerling
 
End to-end test automation at scale
End to-end test automation at scaleEnd to-end test automation at scale
End to-end test automation at scalemabl
 
Mengenal Software Development Life Cycle - Gilang Ramadhan
Mengenal Software Development Life Cycle - Gilang RamadhanMengenal Software Development Life Cycle - Gilang Ramadhan
Mengenal Software Development Life Cycle - Gilang RamadhanDicodingEvent
 
How GraphQL influences your product development on all levels
How GraphQL influences your product development on all levelsHow GraphQL influences your product development on all levels
How GraphQL influences your product development on all levelsAlexander Obukhov
 
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...MongoDB
 
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya RaghunathanCamunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathancamunda services GmbH
 
Writing Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJSWriting Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJSColin Vernon
 
WebAssembly
WebAssemblyWebAssembly
WebAssemblyJawahar
 
Improving user experience with real user measurements
Improving user experience with real user measurements Improving user experience with real user measurements
Improving user experience with real user measurements Samar Panda
 
Trailblazer Rails Architecture
Trailblazer Rails ArchitectureTrailblazer Rails Architecture
Trailblazer Rails Architectureiqbal hasnan
 

What's hot (15)

Polymer
PolymerPolymer
Polymer
 
Cloud Aware Large Scale Distributed SOA
Cloud Aware Large Scale Distributed SOACloud Aware Large Scale Distributed SOA
Cloud Aware Large Scale Distributed SOA
 
End to-end test automation at scale
End to-end test automation at scaleEnd to-end test automation at scale
End to-end test automation at scale
 
Mengenal Software Development Life Cycle - Gilang Ramadhan
Mengenal Software Development Life Cycle - Gilang RamadhanMengenal Software Development Life Cycle - Gilang Ramadhan
Mengenal Software Development Life Cycle - Gilang Ramadhan
 
How GraphQL influences your product development on all levels
How GraphQL influences your product development on all levelsHow GraphQL influences your product development on all levels
How GraphQL influences your product development on all levels
 
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
 
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya RaghunathanCamunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
 
Angular overview
Angular overviewAngular overview
Angular overview
 
Writing Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJSWriting Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJS
 
WebAssembly
WebAssemblyWebAssembly
WebAssembly
 
Ionic
IonicIonic
Ionic
 
Advantages of angular 8
Advantages of angular 8Advantages of angular 8
Advantages of angular 8
 
Improving user experience with real user measurements
Improving user experience with real user measurements Improving user experience with real user measurements
Improving user experience with real user measurements
 
GCF Application server
GCF Application serverGCF Application server
GCF Application server
 
Trailblazer Rails Architecture
Trailblazer Rails ArchitectureTrailblazer Rails Architecture
Trailblazer Rails Architecture
 

Similar to Why we built 35kb React Native alternative ?

l1-reactnativeintroduction-160816150540.pdf
l1-reactnativeintroduction-160816150540.pdfl1-reactnativeintroduction-160816150540.pdf
l1-reactnativeintroduction-160816150540.pdfHương Trà Pé Xjnk
 
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScriptReact Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScriptKobkrit Viriyayudhakorn
 
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1IBM Connections Developers
 
Industrial Training.pptx
Industrial Training.pptxIndustrial Training.pptx
Industrial Training.pptxSamraatBansal1
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTManuel Carrasco Moñino
 
React Native - Framework For Mobile App (Seminar)
React Native - Framework For Mobile App (Seminar)React Native - Framework For Mobile App (Seminar)
React Native - Framework For Mobile App (Seminar)Jaise P Jose
 
Mobile development with React Native — one year in production
Mobile development with React Native — one year in productionMobile development with React Native — one year in production
Mobile development with React Native — one year in productionAvivi Academy
 
20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React NativeEric Deng
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React NativeNuxeo
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedsparkfabrik
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneursRodrigo Gil
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React NativePolidea
 
Why Businesses Should Hire React Native Developers to Build the Best Mobile A...
Why Businesses Should Hire React Native Developers to Build the Best Mobile A...Why Businesses Should Hire React Native Developers to Build the Best Mobile A...
Why Businesses Should Hire React Native Developers to Build the Best Mobile A...Noman Shaikh
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React NativeWaqqas Jabbar
 
From PHP to React - case study
From PHP to React - case studyFrom PHP to React - case study
From PHP to React - case studySparkbit
 
CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsICF CIRCUIT
 
How ReactJS Leads To Reducing The Development Cost
How ReactJS Leads To Reducing The Development CostHow ReactJS Leads To Reducing The Development Cost
How ReactJS Leads To Reducing The Development CostNarola Infotech
 

Similar to Why we built 35kb React Native alternative ? (20)

Web summit.pptx
Web summit.pptxWeb summit.pptx
Web summit.pptx
 
React native
React nativeReact native
React native
 
NEXT.JS
NEXT.JSNEXT.JS
NEXT.JS
 
l1-reactnativeintroduction-160816150540.pdf
l1-reactnativeintroduction-160816150540.pdfl1-reactnativeintroduction-160816150540.pdf
l1-reactnativeintroduction-160816150540.pdf
 
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScriptReact Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
 
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
 
Industrial Training.pptx
Industrial Training.pptxIndustrial Training.pptx
Industrial Training.pptx
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
React Native - Framework For Mobile App (Seminar)
React Native - Framework For Mobile App (Seminar)React Native - Framework For Mobile App (Seminar)
React Native - Framework For Mobile App (Seminar)
 
Mobile development with React Native — one year in production
Mobile development with React Native — one year in productionMobile development with React Native — one year in production
Mobile development with React Native — one year in production
 
20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React Native
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Why Businesses Should Hire React Native Developers to Build the Best Mobile A...
Why Businesses Should Hire React Native Developers to Build the Best Mobile A...Why Businesses Should Hire React Native Developers to Build the Best Mobile A...
Why Businesses Should Hire React Native Developers to Build the Best Mobile A...
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
From PHP to React - case study
From PHP to React - case studyFrom PHP to React - case study
From PHP to React - case study
 
CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM Apps
 
How ReactJS Leads To Reducing The Development Cost
How ReactJS Leads To Reducing The Development CostHow ReactJS Leads To Reducing The Development Cost
How ReactJS Leads To Reducing The Development Cost
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
[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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 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
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
[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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 

Why we built 35kb React Native alternative ?

  • 1. Why we built a 35kB React Native alternative ?
  • 3. Juspay UPI SDK for top AppsUPI for PetroleumNew Juspay Safe SDK powers 100 million + devices 20 million with BHIM
  • 4. Started using react redux in 2015 Exploring different programming paradigms Juspay Story!
  • 5.
  • 6. ● Functional Javascript (ramda.js, Rxjs) ● Languages that compile to JS Clojurescript, Elm, Eve Finding better ways to program
  • 7. SDK Requirements Dynamic updates to UI and User Flows SDK size <150kB Experimented with configurable Html5 components
  • 9. React Native and NativeScript Hello World apps were 7MB Library overhead was around 6MB for Android
  • 10.
  • 11. We Investigated! ● Created their own Javascript Executor for Android ● Various Native components
  • 12. PrestoUI - Our alternative Found a different way to create native components
  • 13. PrestoUI - Our alternative ● Managed to build it, initial Android SDK size 21kB ● Current library overhead of just 35kB
  • 14. ● Native WebView that is bundled with Android ● Reflection HOW ?
  • 15. Reflection reflection is the ability of a computer program to examine, introspect, and modify its own structure and behavior at runtime - Wikipedia ● Performance is an issue ● Solved by ○ Memoization of functions ○ Caching UI View Trees
  • 16. Build BHIM 3 Weeks time ● Team of freshers ● PrestoUI goes to production
  • 17. Functional Programming! PureScript ● Pure Functional Programming Language ● Strong Types ● Category Theory (Functors / Monads / Applicatives) ● Best of Haskell and Javascript
  • 18. Flow - Goal based DSL ● Transactional apps ● Goal based DSL
  • 19. Goal DSL - Flow Language billPayFlow :: Flow BillPayFailure StatusScreenAction billPayFlow = do _ <- UI.splashScreen -- Get the mobile operator from the user operators <- Remote.fetchOperators operator <- UI.chooseOperator operators -- Recharge Form & Call Recharge API mobileNumber <- UI.askMobileNumber amount <- UI.askAmount result <- Remote.payBill mobileNumber amount UI.billPayStatus mobileNumber amount result
  • 20. Next Steps Auto generate UI Components from designs ● Eliminates designer-to-developer handover process ● Hot Reload ● Pixel perfect
  • 21. Next Steps School of Functional Programming
  • 22. Steep learning curve School of Functional Programming ● Zero to Monads in 1 hour ● Simple DSL - Get started with Apps without deep functional knowledge
  • 23. My Journey Fresh out of college, As an intern ● Obsessed with the project ● Almost gave up
  • 24. Thanks! Want to contribute? Just mail us at presto@juspay.in https://github.com/juspay/presto-ui https://github.com/juspay/purescript-presto