SlideShare ist ein Scribd-Unternehmen logo
1 von 94
Downloaden Sie, um offline zu lesen
ANGULARJS MOBILE
- VERONA 14 MAYJSDAY 2014
byLucianoAmodio
:
:
adamquadmon
@lucianoamodio
WHO AM I?
I'M A SOFTWARE ENGINEER
DOING CODE SINCE 2000
MY FIRST CONFERENCE (AS AUDITOR)
HERE IN VERONA IN 2012
THE SECOND ONE
MARCH 2013
HERE I MEET
AND WAS LOVE!
I STARTED STUDYING HARD
DOING IT WRONG
generator-angular-silex
DO YOU KNOW THIS GRAPH?
Ben Nadel: Myexperience with AngularJs
THEN I WAS INVOLVED IN
AND WITH AN INSPIRING LEAD
AND AN AMAZING TEAM
WE DID IT!
THE ANGULARJS VERSION
OF THE NAMSHI MOBILE WEBSITE
IN THIS TALK I WANT TO SHARE WITH YOU
HOW WE MADE ROCKET INTERNET IN GERMANY SAY
WOW!
LET'S START
WHAT IS
RESPONSIVE?
aresponsive website respond to the ambientadaptingitself to
provide the bestuser experience
WHAT CAN BE RESPONSIVE?
LAYOUT
LAYOUT / MEDIA QUERIES
Mediaqueries are filters thatcan be applied to CSS styles.
Theymake iteasyto change styles based on the device, including
the displaytype, width, height, orientation and even resolution.
LAYOUT / SET YOUR VIEWPORT
<metaname="viewport"content="initial-scale=1,
maximum-scale=1,
user-scalable=no,
width=device-width">
LAYOUT / TECNIQUES
Google Web Fundamentals
LAYOUT / MOSTLY FLUYD
LAYOUT / COLUMN DROP
LAYOUT / LAYOUT SHIFTER
LAYOUT / OFF CANVAS
IMAGES
IMAGES / OPTIMIZATION
You should
maybe with
Optimize Images
grunt-responsive-image
IMAGES / RESPONSIVE
Should I use srcset attribute or picture element?
Tryask those guys:
Maybe using for apicture elementpolyfill
or aBBC solution:
<imgsrc="fallback.jpg"srcset="photo.jpg1x,photo-hd.jpg2x">
<picture>
<sourcemedia="(min-width:40em)"srcset="big.jpg1x,big-hd.jpg2x">
<sourcesrcset="small.jpg1x,small-hd.jpg2x">
<imgsrc="fallback.jpg">
</picture>
responsiveimages.org
picturefill
Images.js
IMAGES / RESPONSIVE
our solution (the concept):
<imgng-src="//ourCdn.tld/imageName-{{deviceSize}}.jpg">
FEATURES
You can use to provide differentcontentor
behaviours (think aboutmouseover on atouch onlydevice!)
Modernizr
Butdon'tforgetto provied (expeciallyfor IE)polyfills
USEFUL RESOURCES
You reallyshould read Google Web Fundamentals
Butalso givingalook at is notabad
idea!
Yeoman generator-mobile
MOBILE ISSUES
DON'T MAKE THEM WAIT!
PRETEND TO BE FAST
NGCLOAK
<style>
[ng-cloak].splash{
display:block!important;
}
[ng-cloak]{display:none;}
.splash{background-color:blue;}
</style>
<divclass="splash"ng-cloak=""></div>
NGCLOAK
<style>
[ng-cloak].splash{
display:block!important;
}
[ng-cloak]{display:none;}
.splash{background-color:blue;}
</style>
<divclass="splash"ng-cloak=""></div>
AngularJs ngCloak directive will remove the ng-cloakattribute once the
application is ready.
Instead of hiding the underlying application (this is the standard use of ngCloak),
this tecnique will show an overlying splash screen as soon as the first part of the
response is served.
It's very important to serve the spalsh screen as soon as possible (deferring
externalresources, embedding neededCSSin the document itself andso on)
UX INSTANT FEEDBACK
For a mobile user is not big difference using a website or an app.
Provide the UX with visual/audio feedback and loading routines will make the
user feelthe application is responsive to her input.
it's a library that help you addaudio events to UI.
For loaders &spinners give a look to:
Howler.js
the state of the spinner
SpinKit
REDUCE LATENCY
AVOID HTTP CALLS
REDUCE LATENCY
AVOID HTTP CALLS WHILE LOADING THE PAGE
Concatenate andminify html, CSSandJSfiles.
( and don't needthis)
Inline images in css ( or )
Use a single sprite for CSSUI ( )
Defer every not critical resource after the app is ready (social media plugin as
facebook, twitter, etc):
HTTP2 Spdy
grunt-base64 grunt-data-uri
glue
if(document.readyState === 'complete') {
//your code
}
angular.run(function() {
//your code
});
REDUCE LATENCY
AVOID HTTP CALLS
Paginate results.
If you are displaying a catalog page you can embed a small json with a bounce of
products in the document itself, andthen ask the API for next resources.
If your json is not that big you can also serve a large number of items and show on
the client only a bounce of them at the same time.
Paginate client side willgive a user the feeling of a super fast application.
REDUCE LATENCY
WITH ANGULARJS
AngularJs provide an internal cache service you can use to avoid multiple
requests of the same resource.
It's used, for example, to preloadtemplates with .
is a module to enhance the angular cache sistem.
Batching network requests to fetch data at the same time it's also good to save
battery.
grunt-angular-templates
angular-cache
CSS PERFORMANCES
SELECTORS
CSSselectors are readright to left
This mean you shouldavoidunnecessary ones
Nestedselectors are slow, even if more verbose is better to avoidthem
Yes, sadto say:you shouldavoidCSS3 selectors!
ul li.error { color: #fff; }
li.error { color: #fff; }
.li-error { color: #fff; }
CSS PERFORMANCES
SELECTORS BY PERFORMANCES
ID #header
Class .header
Tag div
Sibling div + p, div ~ p
Child div > p
Descendant div p
Universal div *
Attribute input[type="text"]
Pseudo p:first-child
CSS PERFORMANCES
ANIMATIONS
Avoidcss animations
At least avoidgradients andsimilar expensive stuff (you can use sprites).
CSS PERFORMANCES
CSS VS JS ANIMATION?
Someone says Js it'slow.
Well, it's notJS slow, jQueryis!
Try GASP
JAVASCRIPT OPTIMIZATION
This is a long talk, but let me give you a quick tip: (well, angular
too!).
I strongly suggest you a couple of books: by
N.Zakas and by S. Souders.
it's a very rich resource on how to profile (using
Chrome Dev Tools) andoptimize.
use jQuery wisely
High Performance JavaScript
Even Faster WebSites
Google Performance Tips
THE CURSE OF 300MS
Mobile browsers will wait approximately 300ms from the time that you tap
something before firing the click event.
The reason for this is that the browser is waiting to see if you are actually
performing a double tap.
What to do?
Use FastClick
YOU SHOULD TEST
Test always with realdevices (even oldones).
AND DEBUG
You can use safariremote debugging for iOS
or chrome remote debugging + for Androidangularjs-batarang
AUTOMATE TESTING
Automate tests with andProtractor Karma
AUTOMATE DELIVERY
Go CI or CD (continuous integration/deploy/delivery)
with orSauceLabs BrowserStack
ANGULARJS
WHY ANGULARJS?
Because it's awesome!
Itenhance HTML, CSS and JavaScript
and it's google and have ahuge community:
Well, this is also agood reason to hate AngularJs:
You have ruined Javascript.
WHAT IS ANGULAR?
THE BEST PART
Less code wellorganized
DI
Testability
Directives andreusability
Promises
ModelViewWhatever
Whatever -> $scope <- View
Services
THE BEST PART*
angular.module('myModule')
.controller('myController', function($scope, MyService) {
$scope.myData = {
some: 'data'
};
$scope.sendForm = function(){
MyService.performAction($scope.myData)
.then( function(newData) { $scope.newData = newData; })
.catch( function(error) { $scope.errorMessage = error; })
.finally( function() { $scope.releaseKraken = true; });
};
});
*theuseof'catch'and'finally'will
usearraynotationinstead: MyService.performAction($scope.myData).['catch'](...)
breakIE8
WHY IS ANGULAR STILL IMATURE?
stillaWIP (averyfastone)
WHY IS ANGULAR STILL IMATURE?
Stillnot a perfect knowledge about it
Services, Factories, ServiceProviders: "it's a mess!"
THE FUTURE
Angular 1.3:drop IE8 support
Angular 2.0:use ES6, better DI, better modularity (I hope so!)
ANGULAR OPTIMIZATIONS
Maybe you don't really needAngularize everything!
ANGULAR OPTIMIZATIONS
AvoidngRepeat if not needed, this willreduce watchers andsave CPU.
ANGULAR OPTIMIZATIONS
Don't use filters in views (willbe fixedin next versions).
ANGULAR OPTIMIZATIONS
Watch the number of others watches (use )bindonce
ANGULAR OPTIMIZATIONS
Release resources when you leave a scope
(for example when you change viewor remove a directive)
in particular remember to remove listeners.
$scope.$on('$destroy', function(){
// to release resources
});
ANGULAR FRIENDS
There are some modules to try out:
:to implement hammerJs gestures
:a simple touch carusel
:to snap everything in AngularJs
Anddon't forget you can stillimplement simple JSlibraries like:
or
angular-gestures
angular-carousel
angular-snap
swipeJs hammerJs
WHY NOT NGTOUCH?
Remember the course of 300ms?
Well, it only binds ngClick.
Then? Guess what! Use FastClick!
or Ionic...
STORAGE
Mobile device can easily lose connection.
You can use localStorageto cache the neededdata to make your website react
more like a native app.
localStoragehave some issues on Safari, you can fallback to cookies.
If you have cross domain cookie problems try to give a look at It's a
deprecatedlibrary we have usedto share cross domain securedcookies.
If your project is an hybridapp, you can also use sqlLite or other dbs.
xAuth.
HYBRID APPS
An "HybridApp" is an App buildin HTML, CSSandJSthat you can put in an App
Store.
Dealing with Html5 in a webView we can reuse our code
for both iOSAppStore
or Google Play Store
WHAT IS PHONEGAP / CORDOVA?
Fills the gap between browsers andnative device features
(geo-location, camera, accelerometers, push notificatuons).
WHY PHONEGAP / CORDOVA?
It's Opensource, cross platform anddevice neutral.
There are more webthan objective-C developers out there.
In 2011 PhoneGap source contributedto Apache Cordova
andAdobe aquires PhoneGap name &developers.
WHY PHONEGAP / CORDOVA?
It makes native mobile features accessible from javascript.
We can buildanddeploy fast.
Can be usedwith almost any webframework.
WHY PHONEGAP / CORDOVA?
We can debug iOs in safari andandroidwith chrome
WHAT'S BAD WITH PHONEGAP / CORDOVA?
Performance
(especially for intensive graphic on oldbrowsers)
PHONEGAP / CORDOVA TIPS
Don't callCordova (native) js functions untilafter devicereadyfires or
use .
Cordova javascript callbacks shouldemploy safeApply
(to prevent errors like $apply already in progress).
Very usefulis to check out apps buildwith angular:
angular-phonegap-ready
(search for "mobile" tag)
IONIC
As for Twitter Bootstrap,
Ionic is a complete framework
to buildperformant Apps
on top of AngularJs.
IONIC: INSTALL
The installation is similar to cordova, it needs :
and (or ).
Andthen the needednpm packages:
Ant
$ sudo apt-get -u install ant
androidSDK xCode
$ npm install -g cordova ionic
$ ionic start myApp tabs
$ cd myApp
IONIC: EMULATE
Emulate andbuildfor a platform is simple like that:
$ ionic platform add android
$ ionic build android
$ ionic emulate android
IONIC: LAYOUT
Ionic is fullof htmlcomponents.
Check out the , you willfindexamples of the available UIs.
I really like the .
Ionic Docs
html5 input types
IONIC: ANGULARJS
It use angular binding &controllers under the hood.
IONIC: YEOMAN GENERATOR
There is also a Yeoman generator: generator-ionic
$ npm install -g generator-ionic
$ mkdir my-ionic-project && cd $_
$ yo ionic
$ grunt serve
APPGYVER
Fills the gap between cordova andperformances.
APPGYVER: INSTALL
Installing is similar to Cordovaand Ionic
you willalso need or higher,
and .
AppGyver
python 2.7
Steroids CLI
APPGYVER: GENERATE PROJECT
Once steroids CLI is available allyou have to do is:
$steroidscreatemyProject
$cdmyProject
APPGYVER: EMULATE
On your device:downloadAppGyver Scanner for iOS/ Android
On your computer launch the steroids server:
Connect your device to the same WLAN as your computer andscann the QR that
appear on the monitor.
You willbe able to test your project on your device in realtime.
$ steroids connect --watch
APPGYVER: TUTORIAL
If you wantto discover more aboutAppGyver trythe tutorial:
$steroidsgeneratetutorialbegin
APPGYVER: BUGS!
Unfortunately those are relative newtechnologies.
There are some for example
(andthat's my phone)
bugs with android4.4
SUMMARY
Think mobile first
Make itresponsive
Give Feedback
Avoid unnecessaryHTTP requests
Optimize images, CSS and JS
Test!
Use AngularJs (wisely)
Use localstorages to handle lose of connection
Go Hybrid usingAppGyver and Ionic on top of PhoneGap
REFERENCE / ARTICLES
Yeoman - Grunt - Bower
Ben Nadel:AngularJs experience
Responsive
Media Queries
Don't mess with viewport
Optimize Images
responsiveimages.org
Webp
The state of the spinner
HTTP2
Spdy
CSSanimations vs JS
Use jQuery wisely
ngNewsletter - mobile
High Performance JavaScript
Even Faster WebSites
Google Performance Tips
You have ruinedJavascript.
SafarilocalStorage nightmare
Mobile frameworks
REFERENCE / TOOLS:
grunt-responsive-image
Picturefill
Images.js
Modernizr
HTML5 polyfills
Yeoman generator-mobile
Howler.js
SpinKit
grunt-base64
grunt-data-uri
glue
grunt-angular-templates
angular-cache
GASP
FastClick
angularjs-batarang
Protractor
Karma
SauceLabs
BrowserStack
REFERENCE / TOOLS
bindonce
angular-gestures
angular-carousel
angular-snap
SwipeJs
HammerJs
xAuth
Cordova
angular-phonegap-ready
App buildwith angular
(searchfor"mobile"tag)
Ant
AndroidSDK
xCode
Ionic Docs
generator-ionic
ionic-angular-appgyver-seed
Ionic examples
AppGyver
Python
Steroids CLI
REFERENCE / OTHERS
(surfitwithamobiledeviceorchoose"switchtomobile"atthebottom)
Namshi.com
Google WebFundamentals
Going mobile with angular
AngularJs andphoneGap
ngConf 2014 mobile
THANKS!
QUESTIONS?
(I hope so!)
:
:
adamquadmon
@lucianoamodio

Weitere ähnliche Inhalte

Was ist angesagt?

Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With SeleniumAdvanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Seleniumadamcarmi
 
Choosing the Right Mobile Development Platform (Part 2)
Choosing the Right Mobile Development Platform (Part 2)Choosing the Right Mobile Development Platform (Part 2)
Choosing the Right Mobile Development Platform (Part 2)Chris Griffith
 
Create an Animated Navigation Bar - Edge Animate Tutorial
Create an Animated Navigation Bar - Edge Animate TutorialCreate an Animated Navigation Bar - Edge Animate Tutorial
Create an Animated Navigation Bar - Edge Animate TutorialJason Hill
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Atos_Worldline
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Devicefilirom1
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Chris Griffith
 
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCampHow to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCampmoshemilman
 
Making Money with Adobe AIR
Making Money with Adobe AIRMaking Money with Adobe AIR
Making Money with Adobe AIRAlmog Koren
 
Ruby & Python with Silverlight O RLY? YA RLY!
Ruby & Python with Silverlight O RLY? YA RLY!Ruby & Python with Silverlight O RLY? YA RLY!
Ruby & Python with Silverlight O RLY? YA RLY!Martha Rotter
 
Real World Web Standards
Real World Web StandardsReal World Web Standards
Real World Web Standardsgleddy
 
Rey Bango - HTML5: polyfills and shims
Rey Bango -  HTML5: polyfills and shimsRey Bango -  HTML5: polyfills and shims
Rey Bango - HTML5: polyfills and shimsStarTech Conference
 
Bar Camp Iphone Web Hackery
Bar Camp Iphone Web HackeryBar Camp Iphone Web Hackery
Bar Camp Iphone Web HackeryAndy Edmonds
 
Html5 and beyond the next generation of mobile web applications - Touch Tou...
Html5 and beyond   the next generation of mobile web applications - Touch Tou...Html5 and beyond   the next generation of mobile web applications - Touch Tou...
Html5 and beyond the next generation of mobile web applications - Touch Tou...RIA RUI Society
 
Intro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap BuildIntro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap BuildChris Griffith
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With SeleniumSeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Seleniumadamcarmi
 
Mirror - Android UI on steroids: Droidcon Cracow 2014
Mirror - Android UI on steroids: Droidcon Cracow 2014Mirror - Android UI on steroids: Droidcon Cracow 2014
Mirror - Android UI on steroids: Droidcon Cracow 2014Sylwester Madej
 
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013Loiane Groner
 

Was ist angesagt? (20)

Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With SeleniumAdvanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Selenium
 
Choosing the Right Mobile Development Platform (Part 2)
Choosing the Right Mobile Development Platform (Part 2)Choosing the Right Mobile Development Platform (Part 2)
Choosing the Right Mobile Development Platform (Part 2)
 
Create an Animated Navigation Bar - Edge Animate Tutorial
Create an Animated Navigation Bar - Edge Animate TutorialCreate an Animated Navigation Bar - Edge Animate Tutorial
Create an Animated Navigation Bar - Edge Animate Tutorial
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device
 
Your First Adobe Flash Application for Android
Your First Adobe Flash Application for AndroidYour First Adobe Flash Application for Android
Your First Adobe Flash Application for Android
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5
 
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCampHow to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
 
Making Money with Adobe AIR
Making Money with Adobe AIRMaking Money with Adobe AIR
Making Money with Adobe AIR
 
Ruby & Python with Silverlight O RLY? YA RLY!
Ruby & Python with Silverlight O RLY? YA RLY!Ruby & Python with Silverlight O RLY? YA RLY!
Ruby & Python with Silverlight O RLY? YA RLY!
 
ARIA Gone Wild
ARIA Gone WildARIA Gone Wild
ARIA Gone Wild
 
Real World Web Standards
Real World Web StandardsReal World Web Standards
Real World Web Standards
 
Rey Bango - HTML5: polyfills and shims
Rey Bango -  HTML5: polyfills and shimsRey Bango -  HTML5: polyfills and shims
Rey Bango - HTML5: polyfills and shims
 
Responsive design
Responsive designResponsive design
Responsive design
 
Bar Camp Iphone Web Hackery
Bar Camp Iphone Web HackeryBar Camp Iphone Web Hackery
Bar Camp Iphone Web Hackery
 
Html5 and beyond the next generation of mobile web applications - Touch Tou...
Html5 and beyond   the next generation of mobile web applications - Touch Tou...Html5 and beyond   the next generation of mobile web applications - Touch Tou...
Html5 and beyond the next generation of mobile web applications - Touch Tou...
 
Intro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap BuildIntro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap Build
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With SeleniumSeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Selenium
 
Mirror - Android UI on steroids: Droidcon Cracow 2014
Mirror - Android UI on steroids: Droidcon Cracow 2014Mirror - Android UI on steroids: Droidcon Cracow 2014
Mirror - Android UI on steroids: Droidcon Cracow 2014
 
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
 

Ähnlich wie Angular js mobile jsday 2014 - Verona 14 may

Get Ahead with HTML5 on Moible
Get Ahead with HTML5 on MoibleGet Ahead with HTML5 on Moible
Get Ahead with HTML5 on Moiblemarkuskobler
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deploymentFilippo Zanella
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS UniverseStefano Di Paola
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopMark Masterson
 
Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Juampy NR
 
Top 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppTop 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppKaty Slemon
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Jon Arne Sæterås
 
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptIntro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptAndrew Lovett-Barron
 
Flu3nt highlights
Flu3nt highlightsFlu3nt highlights
Flu3nt highlightsdswork
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12touchtitans
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-airbrucelawson
 
Stocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible frameworkStocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible frameworkJohn Strott
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkSt. Petersburg College
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformApigee | Google Cloud
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 

Ähnlich wie Angular js mobile jsday 2014 - Verona 14 may (20)

Get Ahead with HTML5 on Moible
Get Ahead with HTML5 on MoibleGet Ahead with HTML5 on Moible
Get Ahead with HTML5 on Moible
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Service worker API
Service worker APIService worker API
Service worker API
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe
 
Modern Web Applications
Modern Web ApplicationsModern Web Applications
Modern Web Applications
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing Workshop
 
Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014
 
Top 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppTop 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular App
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013
 
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptIntro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate Javascript
 
Java script framework
Java script frameworkJava script framework
Java script framework
 
Flu3nt highlights
Flu3nt highlightsFlu3nt highlights
Flu3nt highlights
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
Stocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible frameworkStocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible framework
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps Platform
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 

Angular js mobile jsday 2014 - Verona 14 may