SlideShare une entreprise Scribd logo
1  sur  26
Application in 24h
 Fast prototyping of rich UI applications using
                AngularJS, RequireJS, jQuery

         by Yuriy V. Silvestrov, Mikhail Valkov




                       @ysilvestrov, @valkovnet
About us
Yuriy V. Silvestrov
10+ years record in IT, 8+ years devoted to managing
projects. Now working for Ciklum, managing a team
of 30+ persons making different software for Danish
financial organizations; also I am CTO in
PromoRepublic startup.
Twitter: @ysilvestrov
Please visit my website

http://yuriy.silvestrov.com
for more info or contact me at

yuriy@silvestrov.com.


                          @ysilvestrov, @valkovnet
About us

Mikhail Valkov
10+ years record in IT. 2+ years devoted to system
architecture. Now working for   Ciklum.


for more info contact me at

valkov.net@gmail.com.




                          @ysilvestrov, @valkovnet
   Based on our own         About lection
    experience

   Useful for startups
    and pet projects

   Not the right way, not
    the best way, but the
    fast one.

   Divide and conquer 

                             @ysilvestrov, @valkovnet
⌛ < 30

Time is counting
                   @ysilvestrov, @valkovnet
   Have tried to do a startup?

   Participated in Hakatons or similar events?

   Is JavaScript/HTML5 expert?

   Is AngularJS/RequireJS expert?



   We’ll try to adapt



How many of you
                                  @ysilvestrov, @valkovnet
   Startup mode ON
    ◦ When do we need quick prototyping?
    ◦ How to quick prototype an app?
   JavaScript tricks
    ◦   MVC in JavaScript
    ◦   jQuery and jQuery plugins
    ◦   AngularJS
    ◦   RequireJS, Modules and AMD
   Design tips
    ◦ Using bootstraps (twitter etc.)
    ◦ Responsive design
   Q&A

Content
                                   @ysilvestrov, @valkovnet
 A way to write something useful and not
  to spend years on it
 Prototyping = Minimum Viable Product
  creation
    ◦ If you’ll fail, it would be fast
    ◦ If not, you’ll have plenty of time to refactor the
      application
    ◦ …while the “prototype” is still in use




Prototyping
                                    @ysilvestrov, @valkovnet
   Alarm clocks with skinning and time
    synchronization

   See on BitBucket:
    ◦ http://bitbucket.org/ysilvestrov/alarm-clock


   See online demo:
    ◦ http://jayostudio.net/app/



Demo application:
what we’ve started with
                                   @ysilvestrov, @valkovnet
 An ability to quickly alter UI (or create
  totally new one) leaving the promotion
  mechanic unchanged
 One app to rule them all: from mobiles to
  tablets and desktops
 < 24 hours to make it 




Promotion template:
what we’re to use it for
                           @ysilvestrov, @valkovnet
   Choose platform
   Download seed for chosen platform
   Quick UI
   Choose vital functionality to prototype
   Find the frameworks/solutions realizing
    the functionality
   Compose all together
   …
   PROFIT


How to prototype
                              @ysilvestrov, @valkovnet
   Plain, vanilla Client-Side JS & HTML5

   No CoffeeScript

   No node.js




Client-side JavaScript
                              @ysilvestrov, @valkovnet
   Use 3-rd party components

   Existing online services
    ◦ Prefer ones implementing REST interface

   If to create new ones – create them with
    REST

   Use dependency managers to integrate



Component development
                                 @ysilvestrov, @valkovnet
jQuery and plugins
                     @ysilvestrov, @valkovnet
   One of 20+ MVC JS frameworks
   Supported by Google
   Integrated
    ◦   Templates
    ◦   Directives and filters
    ◦   Module systems
    ◦   Resources
    ◦   Asynchronous programming

Visit http://angularjs.org for details



Angular JS
                                   @ysilvestrov, @valkovnet
   Template




   Controller




AngularJS:
template and controller
                     @ysilvestrov, @valkovnet
   Routes


   Events




AngularJS:
routes and events
                    @ysilvestrov, @valkovnet
   Dependency isolation

   Dependency management

   Modules loading & cashing

Visit http://requirejs.org/ for details




RequireJS
                              @ysilvestrov, @valkovnet
   AMD = Asynchronous Module Definition




   CommonJS

See https://github.com/amdjs/amdjs-api



Modules and AMD
                             @ysilvestrov, @valkovnet
   Twitter bootstrap
    http://twitter.github.com/bootstrap/
    ◦ Made for everyone




    ◦ Packed with features




Bootstrap usage
                              @ysilvestrov, @valkovnet
   Jasny bootstrap(http://jasny.github.com/bootstrap/)
    ◦ Row links, Input mask, File upload
    ◦ … and much more
   Kickstrap (http://getkickstrap.com/)
    ◦ Bootstrap with blackjack and hookers
    ◦ actually, with apps and themes




Twitter bootstrap extensions
                                    @ysilvestrov, @valkovnet
https://github.com/angular/angular-seed
https://github.com/ysilvestrov/angular-seed

Angular Seed
                           @ysilvestrov, @valkovnet
   Use domReady! plugin to start Angular
    bootstrap at a time




Requiring Angular:
what’s inside
 Do not use “define” for controllers – you’d
  to return too much
 Use services to manage controllers
  dependencies




Requiring Angular:
what’s inside
???

Questions?
                   @ysilvestrov, @valkovnet
yuriy@silvestrov.com

valkov.net@gmail.com

Thank you!
Waiting for your demos

Contenu connexe

Tendances

Interoperability of components built with different frameworks
Interoperability of components built with different frameworksInteroperability of components built with different frameworks
Interoperability of components built with different frameworksSouvik Basu
 
JavaScript in Universal Windows Platform apps
JavaScript in Universal Windows Platform appsJavaScript in Universal Windows Platform apps
JavaScript in Universal Windows Platform appsTimmy Kokke
 
Burgas Conf 21.06.2014 - Single page application Angularjs and Nodejs
Burgas Conf 21.06.2014 - Single page application Angularjs and NodejsBurgas Conf 21.06.2014 - Single page application Angularjs and Nodejs
Burgas Conf 21.06.2014 - Single page application Angularjs and NodejsDimitar Danailov
 
Get Hip with Java Hipster - JavaOne 2017
Get Hip with Java Hipster - JavaOne 2017Get Hip with Java Hipster - JavaOne 2017
Get Hip with Java Hipster - JavaOne 2017Matt Raible
 
AngularJS for Legacy Apps
AngularJS for Legacy AppsAngularJS for Legacy Apps
AngularJS for Legacy AppsPeter Drinnan
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueMarudi Subakti
 
How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...Matt Raible
 
Front End Development for Back End Developers - Denver Startup Week 2017
Front End Development for Back End Developers - Denver Startup Week 2017Front End Development for Back End Developers - Denver Startup Week 2017
Front End Development for Back End Developers - Denver Startup Week 2017Matt Raible
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynotedmethvin
 
WebView Development Pitfalls
WebView Development PitfallsWebView Development Pitfalls
WebView Development Pitfallstonypai
 
Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Matt Raible
 
Future of Mobile Web - Coldfront conf
Future of Mobile Web - Coldfront confFuture of Mobile Web - Coldfront conf
Future of Mobile Web - Coldfront confPaul Kinlan
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)Ahmed rebai
 
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...Sébastien Levert
 
Pros and cons of vue.js
Pros and cons of vue.jsPros and cons of vue.js
Pros and cons of vue.jsElenorWisozk
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Matt Raible
 

Tendances (20)

Interoperability of components built with different frameworks
Interoperability of components built with different frameworksInteroperability of components built with different frameworks
Interoperability of components built with different frameworks
 
JavaScript in Universal Windows Platform apps
JavaScript in Universal Windows Platform appsJavaScript in Universal Windows Platform apps
JavaScript in Universal Windows Platform apps
 
Burgas Conf 21.06.2014 - Single page application Angularjs and Nodejs
Burgas Conf 21.06.2014 - Single page application Angularjs and NodejsBurgas Conf 21.06.2014 - Single page application Angularjs and Nodejs
Burgas Conf 21.06.2014 - Single page application Angularjs and Nodejs
 
Get Hip with Java Hipster - JavaOne 2017
Get Hip with Java Hipster - JavaOne 2017Get Hip with Java Hipster - JavaOne 2017
Get Hip with Java Hipster - JavaOne 2017
 
AngularJS for Legacy Apps
AngularJS for Legacy AppsAngularJS for Legacy Apps
AngularJS for Legacy Apps
 
WebSite development using WinJS
WebSite development using WinJSWebSite development using WinJS
WebSite development using WinJS
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs Vue
 
How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...
 
Front End Development for Back End Developers - Denver Startup Week 2017
Front End Development for Back End Developers - Denver Startup Week 2017Front End Development for Back End Developers - Denver Startup Week 2017
Front End Development for Back End Developers - Denver Startup Week 2017
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
WebView Development Pitfalls
WebView Development PitfallsWebView Development Pitfalls
WebView Development Pitfalls
 
SxSW 2015
SxSW 2015SxSW 2015
SxSW 2015
 
Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019
 
Future of Mobile Web - Coldfront conf
Future of Mobile Web - Coldfront confFuture of Mobile Web - Coldfront conf
Future of Mobile Web - Coldfront conf
 
AngularJS at PyVo
AngularJS at PyVoAngularJS at PyVo
AngularJS at PyVo
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
 
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
 
Pros and cons of vue.js
Pros and cons of vue.jsPros and cons of vue.js
Pros and cons of vue.js
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
 

En vedette

The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxDarren Sim
 
AngularJS with RequireJS
AngularJS with RequireJSAngularJS with RequireJS
AngularJS with RequireJSJohannes Weber
 
AngularJS Animations
AngularJS AnimationsAngularJS Animations
AngularJS AnimationsEyal Vardi
 
Creating modern java web applications based on struts2 and angularjs
Creating modern java web applications based on struts2 and angularjsCreating modern java web applications based on struts2 and angularjs
Creating modern java web applications based on struts2 and angularjsJohannes Geppert
 
Building ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS ApplicationsBuilding ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS ApplicationsColdFusionConference
 
Angular js best practice
Angular js best practiceAngular js best practice
Angular js best practiceMatteo Scandolo
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 
Nico P Point
Nico P PointNico P Point
Nico P Pointnix101
 
Karsten Heinig, Volvo Technology, a risks analysis
Karsten Heinig, Volvo Technology, a risks analysisKarsten Heinig, Volvo Technology, a risks analysis
Karsten Heinig, Volvo Technology, a risks analysiseuroFOT
 
Dormitory Of Jakabhegy
Dormitory Of JakabhegyDormitory Of Jakabhegy
Dormitory Of Jakabhegygabeszbs
 
Annex 7 Morfosintaxi Altres LlengüEs
Annex 7  Morfosintaxi Altres LlengüEsAnnex 7  Morfosintaxi Altres LlengüEs
Annex 7 Morfosintaxi Altres LlengüEsArnau Cerdà
 
Build Boston 2009 Bd New Econ
Build Boston 2009 Bd New EconBuild Boston 2009 Bd New Econ
Build Boston 2009 Bd New Econjmkoloski
 

En vedette (20)

The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
 
AngularJS with RequireJS
AngularJS with RequireJSAngularJS with RequireJS
AngularJS with RequireJS
 
AngularJS Animations
AngularJS AnimationsAngularJS Animations
AngularJS Animations
 
Creating modern java web applications based on struts2 and angularjs
Creating modern java web applications based on struts2 and angularjsCreating modern java web applications based on struts2 and angularjs
Creating modern java web applications based on struts2 and angularjs
 
Building ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS ApplicationsBuilding ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS Applications
 
Angular js best practice
Angular js best practiceAngular js best practice
Angular js best practice
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 
Hoboes Expo2
Hoboes Expo2Hoboes Expo2
Hoboes Expo2
 
BlueTooth Marketing Device BT-Pusher PRO User Guide
BlueTooth Marketing Device BT-Pusher PRO User GuideBlueTooth Marketing Device BT-Pusher PRO User Guide
BlueTooth Marketing Device BT-Pusher PRO User Guide
 
Action For Healthy Kids
Action For Healthy KidsAction For Healthy Kids
Action For Healthy Kids
 
Nico P Point
Nico P PointNico P Point
Nico P Point
 
Git
GitGit
Git
 
Karsten Heinig, Volvo Technology, a risks analysis
Karsten Heinig, Volvo Technology, a risks analysisKarsten Heinig, Volvo Technology, a risks analysis
Karsten Heinig, Volvo Technology, a risks analysis
 
Dormitory Of Jakabhegy
Dormitory Of JakabhegyDormitory Of Jakabhegy
Dormitory Of Jakabhegy
 
Slide Show
Slide ShowSlide Show
Slide Show
 
Annex 7 Morfosintaxi Altres LlengüEs
Annex 7  Morfosintaxi Altres LlengüEsAnnex 7  Morfosintaxi Altres LlengüEs
Annex 7 Morfosintaxi Altres LlengüEs
 
Accident Seat
Accident SeatAccident Seat
Accident Seat
 
Are u safe1
Are u safe1Are u safe1
Are u safe1
 
Barcelona Story
Barcelona StoryBarcelona Story
Barcelona Story
 
Build Boston 2009 Bd New Econ
Build Boston 2009 Bd New EconBuild Boston 2009 Bd New Econ
Build Boston 2009 Bd New Econ
 

Similaire à Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap

JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadRuss Fustino
 
KnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVCKnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVCLearnNowOnline
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKDavid Wesst
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistMark Fayngersh
 
AngularJS : Superheroic Javascript MVW Framework
AngularJS : Superheroic Javascript MVW FrameworkAngularJS : Superheroic Javascript MVW Framework
AngularJS : Superheroic Javascript MVW FrameworkEdureka!
 
Overview of the AngularJS framework
Overview of the AngularJS framework Overview of the AngularJS framework
Overview of the AngularJS framework Yakov Fain
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)Bramus Van Damme
 
Angular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page ApplicationAngular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page ApplicationEdureka!
 
Webinar on Angular JS titled 'Develop Responsive Single Page Application'
Webinar on Angular JS titled 'Develop Responsive Single Page Application'Webinar on Angular JS titled 'Develop Responsive Single Page Application'
Webinar on Angular JS titled 'Develop Responsive Single Page Application'Edureka!
 
Valentine with Angular js - Introduction
Valentine with Angular js - IntroductionValentine with Angular js - Introduction
Valentine with Angular js - IntroductionSenthil Kumar
 
Lean Development: Design Through Iterative Experiments
Lean Development: Design Through Iterative ExperimentsLean Development: Design Through Iterative Experiments
Lean Development: Design Through Iterative ExperimentsSalesforce Developers
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to conceptsAbhishek Sur
 
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...Gavin Pickin
 
AngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW FrameworkAngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW FrameworkEdureka!
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumSauce Labs
 
Yeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web appsYeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web appsclimboid
 
Angular JS - Introduction
Angular JS - IntroductionAngular JS - Introduction
Angular JS - IntroductionSagar Acharya
 
AngularJS best-practices
AngularJS best-practicesAngularJS best-practices
AngularJS best-practicesHenry Tao
 

Similaire à Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap (20)

JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
 
KnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVCKnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVC
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
AngularJS : Superheroic Javascript MVW Framework
AngularJS : Superheroic Javascript MVW FrameworkAngularJS : Superheroic Javascript MVW Framework
AngularJS : Superheroic Javascript MVW Framework
 
Overview of the AngularJS framework
Overview of the AngularJS framework Overview of the AngularJS framework
Overview of the AngularJS framework
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)
 
Angular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page ApplicationAngular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page Application
 
Webinar on Angular JS titled 'Develop Responsive Single Page Application'
Webinar on Angular JS titled 'Develop Responsive Single Page Application'Webinar on Angular JS titled 'Develop Responsive Single Page Application'
Webinar on Angular JS titled 'Develop Responsive Single Page Application'
 
Valentine with Angular js - Introduction
Valentine with Angular js - IntroductionValentine with Angular js - Introduction
Valentine with Angular js - Introduction
 
slides.pptx
slides.pptxslides.pptx
slides.pptx
 
Lean Development: Design Through Iterative Experiments
Lean Development: Design Through Iterative ExperimentsLean Development: Design Through Iterative Experiments
Lean Development: Design Through Iterative Experiments
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to concepts
 
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
 
AngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW FrameworkAngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW Framework
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
 
Yeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web appsYeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web apps
 
Angular JS - Introduction
Angular JS - IntroductionAngular JS - Introduction
Angular JS - Introduction
 
AngularJS Basics
AngularJS BasicsAngularJS Basics
AngularJS Basics
 
AngularJS best-practices
AngularJS best-practicesAngularJS best-practices
AngularJS best-practices
 

Plus de Yuriy Silvestrov

How to run asp.net on virtual server for $5 per mo
How to run asp.net on  virtual server for $5 per moHow to run asp.net on  virtual server for $5 per mo
How to run asp.net on virtual server for $5 per moYuriy Silvestrov
 
Startups intro to agile (по-русски)
Startups intro to agile (по-русски)Startups intro to agile (по-русски)
Startups intro to agile (по-русски)Yuriy Silvestrov
 
Developing the startup (in Russian)
Developing the startup (in Russian)Developing the startup (in Russian)
Developing the startup (in Russian)Yuriy Silvestrov
 
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russianStartup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russianYuriy Silvestrov
 
Agile antipatterns - AgileBC
Agile antipatterns - AgileBCAgile antipatterns - AgileBC
Agile antipatterns - AgileBCYuriy Silvestrov
 
Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)Yuriy Silvestrov
 

Plus de Yuriy Silvestrov (8)

How to run asp.net on virtual server for $5 per mo
How to run asp.net on  virtual server for $5 per moHow to run asp.net on  virtual server for $5 per mo
How to run asp.net on virtual server for $5 per mo
 
Startups intro to agile (по-русски)
Startups intro to agile (по-русски)Startups intro to agile (по-русски)
Startups intro to agile (по-русски)
 
Developing the startup (in Russian)
Developing the startup (in Russian)Developing the startup (in Russian)
Developing the startup (in Russian)
 
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russianStartup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
 
Developing the ideas
Developing the ideasDeveloping the ideas
Developing the ideas
 
Agile antipatterns - AgileBC
Agile antipatterns - AgileBCAgile antipatterns - AgileBC
Agile antipatterns - AgileBC
 
Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)
 
Catch agile
Catch agileCatch agile
Catch agile
 

Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap

  • 1. Application in 24h Fast prototyping of rich UI applications using AngularJS, RequireJS, jQuery by Yuriy V. Silvestrov, Mikhail Valkov @ysilvestrov, @valkovnet
  • 2. About us Yuriy V. Silvestrov 10+ years record in IT, 8+ years devoted to managing projects. Now working for Ciklum, managing a team of 30+ persons making different software for Danish financial organizations; also I am CTO in PromoRepublic startup. Twitter: @ysilvestrov Please visit my website http://yuriy.silvestrov.com for more info or contact me at yuriy@silvestrov.com. @ysilvestrov, @valkovnet
  • 3. About us Mikhail Valkov 10+ years record in IT. 2+ years devoted to system architecture. Now working for Ciklum. for more info contact me at valkov.net@gmail.com. @ysilvestrov, @valkovnet
  • 4. Based on our own About lection experience  Useful for startups and pet projects  Not the right way, not the best way, but the fast one.  Divide and conquer  @ysilvestrov, @valkovnet
  • 5. ⌛ < 30 Time is counting @ysilvestrov, @valkovnet
  • 6. Have tried to do a startup?  Participated in Hakatons or similar events?  Is JavaScript/HTML5 expert?  Is AngularJS/RequireJS expert?  We’ll try to adapt How many of you @ysilvestrov, @valkovnet
  • 7. Startup mode ON ◦ When do we need quick prototyping? ◦ How to quick prototype an app?  JavaScript tricks ◦ MVC in JavaScript ◦ jQuery and jQuery plugins ◦ AngularJS ◦ RequireJS, Modules and AMD  Design tips ◦ Using bootstraps (twitter etc.) ◦ Responsive design  Q&A Content @ysilvestrov, @valkovnet
  • 8.  A way to write something useful and not to spend years on it  Prototyping = Minimum Viable Product creation ◦ If you’ll fail, it would be fast ◦ If not, you’ll have plenty of time to refactor the application ◦ …while the “prototype” is still in use Prototyping @ysilvestrov, @valkovnet
  • 9. Alarm clocks with skinning and time synchronization  See on BitBucket: ◦ http://bitbucket.org/ysilvestrov/alarm-clock  See online demo: ◦ http://jayostudio.net/app/ Demo application: what we’ve started with @ysilvestrov, @valkovnet
  • 10.  An ability to quickly alter UI (or create totally new one) leaving the promotion mechanic unchanged  One app to rule them all: from mobiles to tablets and desktops  < 24 hours to make it  Promotion template: what we’re to use it for @ysilvestrov, @valkovnet
  • 11. Choose platform  Download seed for chosen platform  Quick UI  Choose vital functionality to prototype  Find the frameworks/solutions realizing the functionality  Compose all together  …  PROFIT How to prototype @ysilvestrov, @valkovnet
  • 12. Plain, vanilla Client-Side JS & HTML5  No CoffeeScript  No node.js Client-side JavaScript @ysilvestrov, @valkovnet
  • 13. Use 3-rd party components  Existing online services ◦ Prefer ones implementing REST interface  If to create new ones – create them with REST  Use dependency managers to integrate Component development @ysilvestrov, @valkovnet
  • 14. jQuery and plugins @ysilvestrov, @valkovnet
  • 15. One of 20+ MVC JS frameworks  Supported by Google  Integrated ◦ Templates ◦ Directives and filters ◦ Module systems ◦ Resources ◦ Asynchronous programming Visit http://angularjs.org for details Angular JS @ysilvestrov, @valkovnet
  • 16. Template  Controller AngularJS: template and controller @ysilvestrov, @valkovnet
  • 17. Routes  Events AngularJS: routes and events @ysilvestrov, @valkovnet
  • 18. Dependency isolation  Dependency management  Modules loading & cashing Visit http://requirejs.org/ for details RequireJS @ysilvestrov, @valkovnet
  • 19. AMD = Asynchronous Module Definition  CommonJS See https://github.com/amdjs/amdjs-api Modules and AMD @ysilvestrov, @valkovnet
  • 20. Twitter bootstrap http://twitter.github.com/bootstrap/ ◦ Made for everyone ◦ Packed with features Bootstrap usage @ysilvestrov, @valkovnet
  • 21. Jasny bootstrap(http://jasny.github.com/bootstrap/) ◦ Row links, Input mask, File upload ◦ … and much more  Kickstrap (http://getkickstrap.com/) ◦ Bootstrap with blackjack and hookers ◦ actually, with apps and themes Twitter bootstrap extensions @ysilvestrov, @valkovnet
  • 23. Use domReady! plugin to start Angular bootstrap at a time Requiring Angular: what’s inside
  • 24.  Do not use “define” for controllers – you’d to return too much  Use services to manage controllers dependencies Requiring Angular: what’s inside
  • 25. ??? Questions? @ysilvestrov, @valkovnet