This document discusses the ecosystem of single page applications (SPAs). It covers popular frontend frameworks for DOM manipulation, data access, templating, routing, and building responsive user interfaces. It also discusses architectural patterns like MVC/MVVM and module definition standards like AMD. Finally, it touches on building large scale SPAs, visualization libraries, CSS preprocessing languages, and tools for building and deploying SPAs.
2. www.synerzip.comwww.synerzip.com
About Me
Director of Engineering @ Synerzip
Technology Evangelist!
Technology Speaker
Leader of 2 Tech Meetups –
TechNext/Pune – Google Developer Group
2
Rohit Ghatol
@ Sf Bay Area
26. www.synerzip.comwww.synerzip.com
Frameworks
• Require.js
• Common.js
• Sencha*
• UMD *
Common APIs
• Define
• Require
• Export
Universal Module Definition (UMD) – A Module which works when
1. We use Require.js
2. We use Common.js
3. or We Directly include script in HTML code
26
AMD
50. www.synerzip.comwww.synerzip.com
Comparison
Twitter BootStrap
• BootStrap your App
• More
• Rich UI Elements
• Mobile First *
• Uses Pixels
• 12 Column Grid
Zurb Foundation
• Use as a Foundation
• Minimalistic
• Limited UI Elements
• Mobile First *
• Uses REM
• 12 Column Grid
Confidential 53
60. www.synerzip.comwww.synerzip.com
In my view, large-scale JavaScript apps are
non-trivial applications requiring significant
developer effort to maintain, where most
heavy lifting of data manipulation and
display falls to the browser.
By Addy Osmani
Patterns For Large-Scale JavaScript Application Architecture
Confidential 65
61. www.synerzip.comwww.synerzip.com
If working on a significantly large JavaScript
application, remember to dedicate sufficient
time to planning the underlying architecture
that makes the most sense. It's often more
complex than you may initially imagine.
By Addy Osmani
Patterns For Large-Scale JavaScript Application Architecture
Confidential 66
68. www.synerzip.comwww.synerzip.com
Brunch
Basically a HTML Web App Assembler
1. compiles your scripts, templates, styles lints them
2. wraps the scripts and templates in common.js / AMD modules.
3. concatenates scripts and styles
4. generates source maps for concatenated files
5. copies assets and static files
6. shrinks the output by minifying code and optimizing images
7. watches your files for changes
8. notifies you about errors via console and system notifications
77
75. www.synerzip.comwww.synerzip.com
Large Vs Small Frameworks
• There are 2 kinds of Scenario
– A Library just fulfills one Category in Eco
System
– A Library fulfills many Categories in Eco
System
83. www.synerzip.comwww.synerzip.com
Synerzip in a Nutshell
1. Software product development partner for small/mid-sized
technology companies
• Exclusive focus on small/mid-sized technology companies, typically
venture-backed companies in growth phase
• By definition, all Synerzip work is the IP of its respective clients
• Deep experience in full SDLC – design, dev, QA/testing, deployment
2. Dedicated team of high caliber software professionals for
each client
• Seamlessly extends client’s local team, offering full transparency
• Stable teams with very low turn-over
• NOT just “staff augmentation”, but provide full mgmt support
3. Actually reduces risk of development/delivery
• Experienced team - uses appropriate level of engineering discipline
• Practices Agile development – responsive, yet disciplined
4. Reduces cost – dual-shore team, 50% cost advantage
5. Offers long term flexibility – allows (facilitates) taking
offshore team captive – aka “BOT” option