Submit Search
Upload
Develop, test and debug cross platforms apps with PhoneGap
ā¢
0 likes
ā¢
740 views
Giorgio Natili
Follow
Mobile
Report
Share
Report
Share
1 of 137
Download now
Download to read offline
Recommended
.Net overviewrajnish
.Net overviewrajnish
Rajnish Kalla
Ā
introaspnet-3030384.ppt
introaspnet-3030384.ppt
IQM123
Ā
introasp_net-7364068.ppt
introasp_net-7364068.ppt
IQM123
Ā
It's a High Level Design for Website Auto scraping with Autoit and .Net HttpRequest. If you interest this source code please inform me.
Website Auto scraping with Autoit and .Net HttpRequest
Website Auto scraping with Autoit and .Net HttpRequest
Chen-Tien Tsai
Ā
Js engine performance
Js engine performance
paullfc
Ā
Introaspnet
Introaspnet
Nagaraju Yajjuvarapu
Ā
test
Aspintro
Aspintro
ambar chakraborty
Ā
Aspnet2.0 Introduction
Aspnet2.0 Introduction
ChanHan Hy
Ā
Recommended
.Net overviewrajnish
.Net overviewrajnish
Rajnish Kalla
Ā
introaspnet-3030384.ppt
introaspnet-3030384.ppt
IQM123
Ā
introasp_net-7364068.ppt
introasp_net-7364068.ppt
IQM123
Ā
It's a High Level Design for Website Auto scraping with Autoit and .Net HttpRequest. If you interest this source code please inform me.
Website Auto scraping with Autoit and .Net HttpRequest
Website Auto scraping with Autoit and .Net HttpRequest
Chen-Tien Tsai
Ā
Js engine performance
Js engine performance
paullfc
Ā
Introaspnet
Introaspnet
Nagaraju Yajjuvarapu
Ā
test
Aspintro
Aspintro
ambar chakraborty
Ā
Aspnet2.0 Introduction
Aspnet2.0 Introduction
ChanHan Hy
Ā
Created at the release time of Flex 3. Presented to Bradley University Interactive media students in the fall of 2008.
A Brief Intro to Adobe Flex
A Brief Intro to Adobe Flex
Chad Udell
Ā
WebAssembly will be the next big thing in IT and in Web Developement world. But web developlemnt is a JavaScript doman. What it has to do with .NET and C#? Well Microsoft is experimenting with Blazor and other companies and community members with different aproaches like Ooui and Uno. All of that sits on top of Mono! Long storie short - WebAssembly in a nutshell
WebAssembly and .NET
WebAssembly and .NET
Joanna Lamch
Ā
PHP konferencija: "Developing PHP applications on Microsoft platform" - Tautvydas Dagys
PHP konferencija - Microsoft
PHP konferencija - Microsoft
nusmas
Ā
I show how to think in terms of using Flex with Drupal for an RIA (Rich Internet Application). Flex can be used for pages but the technology lends itself better with an all encompassing interface and design that is your entire website or web application. Think outside of HTML & CSS!
Better Drupal Interaction Design with Flex
Better Drupal Interaction Design with Flex
Chris Charlton
Ā
April 8 2014: Rocky Mountain Adobe User Group
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Joseph Labrecque
Ā
Many Alfresco projects require customizations to the Share user interface that go beyond the normal configuration. This usually involves changing/overriding Repository Web Scripts and Surf Web Scripts, updating JavaScript and CSS files, coding with the Yahoo UI Library, etc. This session will customize the Alfresco Share Upload File(s) dialog and show you how to: Add Widgets to the Upload File(s) dialog, Override Surf Web Scripts, Override/Update JavaScript and CSS files, Write Repository Web Scripts, Call Web Scripts from Yahoo UI Library code, and Setup a build project for these customizations. This session will present the advanced customization concepts via hands-on tutorial and slides.
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
Alfresco Software
Ā
The slides from the PHP Architect session "PHP Performance on Windows"
Php Performance On Windows
Php Performance On Windows
ruslany
Ā
An old presentation, which I used to introduce Rich Internet Applications and Adobe Flex to my friends. Around 2 yrs old but good to serve the purpose.
Adobe flex an overview
Adobe flex an overview
Subin Sugunan
Ā
PHP is a first class citizen on IIS. A lot has been done in order to make sure that PHP can work well and fast on Windows. We will start by installing PHP with PHP Manager and discussing all the options including what thread safe vs non thread safe and VC6 vs VC9 means. Next we'll take a look at how to optimize the FastCGI IIS extension that Microsoft and Zend developed to provide a secure and performant environment for PHP applications. The last part of this webcast will show how to build PHP with Profile Guided Optimizations (PGO), a technique that can provide a significant performance boost in a wide range of applications.
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
Alessandro Pilotti
Ā
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
Ulrich Krause
Ā
My Presentation in Honest Company
Java begin so we win
Java begin so we win
IT
Ā
Basics overview of C#. you can refer this link of learning more about C# interview questions http://skillgun.com/csharp/interview-questions-and-answers
Asp net
Asp net
MohitKumar1985
Ā
Case study of connecting to Windows-based SOAP server (UPS Roadnet) with a client running on IBM i with PHP and Zend Framework. Lots of tips and help to get started.
Web services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend Framework
Alan Seiden
Ā
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
Ā
Java
Java
QUAID-E-AWAM UNIVERSITY OF ENGINEERING, SCIENCE & TECHNOLOGY, NAWABSHAH, SINDH, PAKISTAN
Ā
Winbatch presentation made at TampaBay Bar Camp on Oct 11, 2008. Shows real life projects and advantages of Winbatch
Winbatch
Winbatch
Jeff Rabin
Ā
An overview of the changes in Adobe Flex 4. Includes a description of component architecture methods and updates to the Flex 4 feature set and component life-cycle.
Flex 4 Overview
Flex 4 Overview
RJ Owen
Ā
Slide ini merupakan bahan yang dipresentasikan pada teman-teman mahasiswa/i teknik Informatika di Universitas Widyatama. Kegiatan ini merupakan bagian dari kegiatan OSUM Universitas Widyatama.
Introduction To NetBeans IDE
Introduction To NetBeans IDE
Muhammad Ghazali
Ā
The Cordova framework Recurrent app architecture Cordova CLI Debugging Cordova applications My development environment This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016. http://www.ivanomalavolta.com
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
Ivano Malavolta
Ā
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Patricia Aas
Ā
Jeff Fritz shows you what you need to know to get started with Telerik AppBuilder to build your first iPhone and Android app. No knowledge of mobile development is needed, and Jeff shows what you need to get started
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
Jeffrey T. Fritz
Ā
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Making a Headless Android Device
Making a Headless Android Device
Patricia Aas
Ā
More Related Content
What's hot
Created at the release time of Flex 3. Presented to Bradley University Interactive media students in the fall of 2008.
A Brief Intro to Adobe Flex
A Brief Intro to Adobe Flex
Chad Udell
Ā
WebAssembly will be the next big thing in IT and in Web Developement world. But web developlemnt is a JavaScript doman. What it has to do with .NET and C#? Well Microsoft is experimenting with Blazor and other companies and community members with different aproaches like Ooui and Uno. All of that sits on top of Mono! Long storie short - WebAssembly in a nutshell
WebAssembly and .NET
WebAssembly and .NET
Joanna Lamch
Ā
PHP konferencija: "Developing PHP applications on Microsoft platform" - Tautvydas Dagys
PHP konferencija - Microsoft
PHP konferencija - Microsoft
nusmas
Ā
I show how to think in terms of using Flex with Drupal for an RIA (Rich Internet Application). Flex can be used for pages but the technology lends itself better with an all encompassing interface and design that is your entire website or web application. Think outside of HTML & CSS!
Better Drupal Interaction Design with Flex
Better Drupal Interaction Design with Flex
Chris Charlton
Ā
April 8 2014: Rocky Mountain Adobe User Group
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Joseph Labrecque
Ā
Many Alfresco projects require customizations to the Share user interface that go beyond the normal configuration. This usually involves changing/overriding Repository Web Scripts and Surf Web Scripts, updating JavaScript and CSS files, coding with the Yahoo UI Library, etc. This session will customize the Alfresco Share Upload File(s) dialog and show you how to: Add Widgets to the Upload File(s) dialog, Override Surf Web Scripts, Override/Update JavaScript and CSS files, Write Repository Web Scripts, Call Web Scripts from Yahoo UI Library code, and Setup a build project for these customizations. This session will present the advanced customization concepts via hands-on tutorial and slides.
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
Alfresco Software
Ā
The slides from the PHP Architect session "PHP Performance on Windows"
Php Performance On Windows
Php Performance On Windows
ruslany
Ā
An old presentation, which I used to introduce Rich Internet Applications and Adobe Flex to my friends. Around 2 yrs old but good to serve the purpose.
Adobe flex an overview
Adobe flex an overview
Subin Sugunan
Ā
PHP is a first class citizen on IIS. A lot has been done in order to make sure that PHP can work well and fast on Windows. We will start by installing PHP with PHP Manager and discussing all the options including what thread safe vs non thread safe and VC6 vs VC9 means. Next we'll take a look at how to optimize the FastCGI IIS extension that Microsoft and Zend developed to provide a secure and performant environment for PHP applications. The last part of this webcast will show how to build PHP with Profile Guided Optimizations (PGO), a technique that can provide a significant performance boost in a wide range of applications.
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
Alessandro Pilotti
Ā
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
Ulrich Krause
Ā
My Presentation in Honest Company
Java begin so we win
Java begin so we win
IT
Ā
Basics overview of C#. you can refer this link of learning more about C# interview questions http://skillgun.com/csharp/interview-questions-and-answers
Asp net
Asp net
MohitKumar1985
Ā
Case study of connecting to Windows-based SOAP server (UPS Roadnet) with a client running on IBM i with PHP and Zend Framework. Lots of tips and help to get started.
Web services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend Framework
Alan Seiden
Ā
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
Ā
Java
Java
QUAID-E-AWAM UNIVERSITY OF ENGINEERING, SCIENCE & TECHNOLOGY, NAWABSHAH, SINDH, PAKISTAN
Ā
Winbatch presentation made at TampaBay Bar Camp on Oct 11, 2008. Shows real life projects and advantages of Winbatch
Winbatch
Winbatch
Jeff Rabin
Ā
An overview of the changes in Adobe Flex 4. Includes a description of component architecture methods and updates to the Flex 4 feature set and component life-cycle.
Flex 4 Overview
Flex 4 Overview
RJ Owen
Ā
Slide ini merupakan bahan yang dipresentasikan pada teman-teman mahasiswa/i teknik Informatika di Universitas Widyatama. Kegiatan ini merupakan bagian dari kegiatan OSUM Universitas Widyatama.
Introduction To NetBeans IDE
Introduction To NetBeans IDE
Muhammad Ghazali
Ā
What's hot
(18)
A Brief Intro to Adobe Flex
A Brief Intro to Adobe Flex
Ā
WebAssembly and .NET
WebAssembly and .NET
Ā
PHP konferencija - Microsoft
PHP konferencija - Microsoft
Ā
Better Drupal Interaction Design with Flex
Better Drupal Interaction Design with Flex
Ā
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Ā
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
Ā
Php Performance On Windows
Php Performance On Windows
Ā
Adobe flex an overview
Adobe flex an overview
Ā
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
Ā
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
Ā
Java begin so we win
Java begin so we win
Ā
Asp net
Asp net
Ā
Web services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend Framework
Ā
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ā
Java
Java
Ā
Winbatch
Winbatch
Ā
Flex 4 Overview
Flex 4 Overview
Ā
Introduction To NetBeans IDE
Introduction To NetBeans IDE
Ā
Similar to Develop, test and debug cross platforms apps with PhoneGap
The Cordova framework Recurrent app architecture Cordova CLI Debugging Cordova applications My development environment This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016. http://www.ivanomalavolta.com
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
Ivano Malavolta
Ā
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Patricia Aas
Ā
Jeff Fritz shows you what you need to know to get started with Telerik AppBuilder to build your first iPhone and Android app. No knowledge of mobile development is needed, and Jeff shows what you need to get started
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
Jeffrey T. Fritz
Ā
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Making a Headless Android Device
Making a Headless Android Device
Patricia Aas
Ā
Small, no-design presentation for my VIP practice session at the nerdcamp, 24 april 2011.
World of Node.JS
World of Node.JS
Alexander Shtuchkin
Ā
Microsoft has released Windows 10 and a whole new development platform to build Universal Windows Applications that can be deployed across all Windows device families. Did you know that you can take your existing website and publish it to the Windows store? Microsoft has stated a lofty goal of having an install base of Windows 10 on 1 billion devices over the next 2 years. According to NetMarketShare the Desktop Operating System Market Share on September 21, 2015 showed Windows 10 at 5.21%. Compare that to Mac OS X at 4.76%. Join us to talk about Microsoftās OS convergence journey and what that means for us developers. See how easy it is to take your existing website experience into the Windows Store.
Developing Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web Apps
Chris Dufour
Ā
One benefits of the .NET framework is its open architecture which allows you to build applications that run on Windows and other platforms. Using Delphi Prism, Mono and MonoTouch, developers can leverage their .NET and Delphi programming skills and existing code to build applications for Windows, Linux, Macintosh OSX, iPhone, iPad, and iPod Touch. During this session you will learn how to design and create .NET based cross platform applications
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Andreano Lanusse
Ā
AdobeĀ® Flexā¢
AdobeĀ® Flexā¢
Uday Shankar
Ā
What is Adobe Flex ?
What is Adobe Flex ?
Antonio Correia
Ā
Slidenotes of internal Nativescript training by SMG
Nativescript
Nativescript
Software Infrastructure
Ā
The slides I used at the DroiconUK 2012 to present AndroVM - http://androvm.org
Droidcon uk2012 androvm
Droidcon uk2012 androvm
dfages
Ā
Die Folien vom Pottnet MeetUp am 28.2.2017 in Essen zum Thema ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin
Ā
Slides des letzten Pottnet Developer Group MeetUp in Essen zu ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
Ā
PHP Training in Chandigarh is provided by CBitss which is the Best PHP Training Institute in Chandigarh.
Php verses .net
Php verses .net
CBitss Technologies
Ā
Folien zum Vortrag von Daniel Meixner bei der Dotnet Cologne 2015 zum Thema Windows 10 App Development.
DotNet Cologne 2015 - Windows 10 AppDev, Teil1: App Developer Basics- (Daniel...
DotNet Cologne 2015 - Windows 10 AppDev, Teil1: App Developer Basics- (Daniel...
Daniel Meixner
Ā
An overview of mobile html + java script frameworks
An overview of mobile html + java script frameworks
Sasha dos Santos
Ā
this presentation shows the maximum information about android..
presentation on Android
presentation on Android
nipun pasnoori
Ā
Ide
Ide
kalasalingam university
Ā
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
Mizanur Sarker
Ā
Ćn aceastÄ prezentare vom vorbi despre ce aduce nou Windows 10, ce Ć®nseamnÄ arhitectura de aplicaČii universale Či cum ne ajutÄ sÄ targetÄm telefoane, tablete, PC-uri, Xbox Či chiar HoloLens Či Raspberry Pi. De asemenea, vedem cum ne ajutÄ Microsoft sÄ targetÄm platformele concurente - iOS Či Android.
Windows 10 pentru dezvoltatori - InfoEducaČie 2015
Windows 10 pentru dezvoltatori - InfoEducaČie 2015
Julian Atanasoae
Ā
Similar to Develop, test and debug cross platforms apps with PhoneGap
(20)
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
Ā
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Ā
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
Ā
Making a Headless Android Device
Making a Headless Android Device
Ā
World of Node.JS
World of Node.JS
Ā
Developing Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web Apps
Ā
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Ā
AdobeĀ® Flexā¢
AdobeĀ® Flexā¢
Ā
What is Adobe Flex ?
What is Adobe Flex ?
Ā
Nativescript
Nativescript
Ā
Droidcon uk2012 androvm
Droidcon uk2012 androvm
Ā
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Ā
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Ā
Php verses .net
Php verses .net
Ā
DotNet Cologne 2015 - Windows 10 AppDev, Teil1: App Developer Basics- (Daniel...
DotNet Cologne 2015 - Windows 10 AppDev, Teil1: App Developer Basics- (Daniel...
Ā
An overview of mobile html + java script frameworks
An overview of mobile html + java script frameworks
Ā
presentation on Android
presentation on Android
Ā
Ide
Ide
Ā
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
Ā
Windows 10 pentru dezvoltatori - InfoEducaČie 2015
Windows 10 pentru dezvoltatori - InfoEducaČie 2015
Ā
More from Giorgio Natili
One of most exciting engineering challenges today is building a reliable self-driving car or driving support system. Today's vehicles offer a huge variety of sensors that can feed any algorithm with enough data to provide a pretty solid driving support experience. On top of this, despite some differences, smartphones sensors are robust enough to provide a rich set of environmental information. During this presentation, we'll discover how to implement computer vision solutions on Android with OpenCV, and how to mash-up device and vehicle data to build a driver assistant solution with open source technologies.
Driving Assistant Solutions with Android
Driving Assistant Solutions with Android
Giorgio Natili
Ā
No matter which technology you use, your software should be able to efficiently handle user interaction and data streams to satisfy all requested use cases. In order to manage the fast growth of data sources and interaction paradigms, we must shift to a non-blocking and sequential programming paradigm--which can be solved through Reactive Programming. In Reactive Programming, everything can be seen as a sequence of events. In conjunction with function composition, Reactive Programming is a powerful tool to leverage readability, maintainability, and testability on any layer of your software. During this session, we'll dive into Reactive Programming and, with the help of the Reactive Extensions API, discover how to translate use cases and acceptance criteria in a stream of events across multiple platforms.
Isomorphic Reactive Programming
Isomorphic Reactive Programming
Giorgio Natili
Ā
Everybody knows Javascript is single-threaded and that it shares this same thread with other browser-related processes such as painting and compositing. There are several techniques to implement pseudo multithreading in JavaScript; however, during this talk we will focus our attention on how to use and debug the Service Worker API. Our end goal is to explore practical use cases in order to simplify the process to render complex user interfaces and transitions in a browser.
Service worker API
Service worker API
Giorgio Natili
Ā
When used properly, the TDD (Test Driven Development) cycle is one of the most effective ways to improve the efficiency of a team and overall code quality. However, most of the time, misuse of this powerful technique brings unsatisfactory results. During this talk weāll explore how to identify ātesting smellsā and how to prevent bad tests that negatively impact the design and architecture of a Web app. Weāll investigate some real world mobile app examples in JavaScript, Swift, and Java for Android that threaten to eat us alive!
The Little Shop of TDD Horrors
The Little Shop of TDD Horrors
Giorgio Natili
Ā
I beacon mobile_tea
I beacon mobile_tea
Giorgio Natili
Ā
Discover the building blocks of the Android SDK, the different emulators and how to setup your dev environment and explore the Android eco-system.
Android, getting started
Android, getting started
Giorgio Natili
Ā
Clean the mess of your UIViewController following solid mobile architecture principles.
Clear the UIViewController Mess
Clear the UIViewController Mess
Giorgio Natili
Ā
Explore the possibilities of big data rendering on iOS, Android and Hybrid solutions.
Big data and mobile
Big data and mobile
Giorgio Natili
Ā
The short path to ecma 6
The short path to ecma 6
Giorgio Natili
Ā
Jasmine 2.0
Jasmine 2.0
Giorgio Natili
Ā
Harmonik
Harmonik
Giorgio Natili
Ā
Mobile raspberry pi
Mobile raspberry pi
Giorgio Natili
Ā
WebRTC communication and wearable devices
WebRTC communication and wearable devices
Giorgio Natili
Ā
Multithreading development with workers
Multithreading development with workers
Giorgio Natili
Ā
Ecma6 in 30 minutes
Ecma6 in 30 minutes
Giorgio Natili
Ā
TDD and PhoneGap
TDD and PhoneGap
Giorgio Natili
Ā
Undoable architectures
Undoable architectures
Giorgio Natili
Ā
Test first!
Test first!
Giorgio Natili
Ā
WebRTC and Mobile Integration
WebRTC and Mobile Integration
Giorgio Natili
Ā
Comparison between different TDD methodologies.
Test first
Test first
Giorgio Natili
Ā
More from Giorgio Natili
(20)
Driving Assistant Solutions with Android
Driving Assistant Solutions with Android
Ā
Isomorphic Reactive Programming
Isomorphic Reactive Programming
Ā
Service worker API
Service worker API
Ā
The Little Shop of TDD Horrors
The Little Shop of TDD Horrors
Ā
I beacon mobile_tea
I beacon mobile_tea
Ā
Android, getting started
Android, getting started
Ā
Clear the UIViewController Mess
Clear the UIViewController Mess
Ā
Big data and mobile
Big data and mobile
Ā
The short path to ecma 6
The short path to ecma 6
Ā
Jasmine 2.0
Jasmine 2.0
Ā
Harmonik
Harmonik
Ā
Mobile raspberry pi
Mobile raspberry pi
Ā
WebRTC communication and wearable devices
WebRTC communication and wearable devices
Ā
Multithreading development with workers
Multithreading development with workers
Ā
Ecma6 in 30 minutes
Ecma6 in 30 minutes
Ā
TDD and PhoneGap
TDD and PhoneGap
Ā
Undoable architectures
Undoable architectures
Ā
Test first!
Test first!
Ā
WebRTC and Mobile Integration
WebRTC and Mobile Integration
Ā
Test first
Test first
Ā
Recently uploaded
99992-vip-18229 šMahipalpur (Delhi) Low price 100% genuine sexy VIP call girls are provided safe and secure service .call š,,24 hours š°ļø-- ā 100% gesnuine young RIYA SERVICE COMPANY āāā ā A-Level (5 star ) ā Strip-tease ā BBBJ (Bareback Blowjob) Receive advanced sexual techniques in different mode make their life more pleasurable. ā Spending time in hotel rooms ā BJ (Blowjob Without a Condom) ā Completion (Oral to completion) ā Covered (Covered blowjob Without a Condom) ā DATING (Dinner At Night) ā DSL (Dick Sucking Lips) ā DT (Dining at the Toes English Spanking) ā Doggie (Sex style from behind) ā Duo (shot with two escorts; Threesome with the client) ā S-GFE (Special Girl Friend Experience) ā HJ (Hand Job) ā Special Massage ā O-Level (Oral sex) ā Tour (International) ā 69 (69 sex) ā BJ (Blowjob With Condom) ā GFE (Girl Friend Experience) ā CBJ (Covered Blow Job; Oral sex with a condom _ LOW PRICE V I P MODEL FULL SAFE AND SECURE CALL MExxxs CALL ME
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
nishacall1
Ā
99992-vip-66834 š Noida Sector 52 Low price 100% genuine sexy VIP call girls are provided safe and secure service .call š,,24 hours š°ļø-- ā 100% gesnuine young RIYA SERVICE COMPANY āāā ā A-Level (5 star ) ā Strip-tease ā BBBJ (Bareback Blowjob) Receive advanced sexual techniques in different mode make their life more pleasurable. ā Spending time in hotel rooms ā BJ (Blowjob Without a Condom) ā Completion (Oral to completion) ā Covered (Covered blowjob Without a Condom) ā DATING (Dinner At Night) ā DSL (Dick Sucking Lips) ā DT (Dining at the Toes English Spanking) ā Doggie (Sex style from behind) ā Duo (shot with two escorts; Threesome with the client) ā S-GFE (Special Girl Friend Experience) ā HJ (Hand Job) ā Special Massage ā O-Level (Oral sex) ā Tour (International) ā 69 (69 sex) ā BJ (Blowjob With Condom) ā GFE (Girl Friend Experience) ā CBJ (Covered Blow Job; Oral sex with a condom _ LOW PRICE V I P MODEL FULL SAFE AND SECURE CALL MExxxs CALL ME
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
nishacall1
Ā
From the Indian perspective, there are many mobile application development companies but when it comes to services, CWS Technology has a team full of the most talented developers who are expert in getting your app live in the shortest possible time. visit here-: https://www.cwstechnology.com/services/mobile-app-development-company-in-india/
Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdf
CWS Technology
Ā
(Vivek)Call Us, 8448380779,Call girls in Delhi NCr ā We Offer best in class call girls. escort Service At Affordable Price At low Rate with Space Night 8000 We Are One Of The Oldest Escort and Call girls Agencies in Delhi. You Will Find That Our Female Escorts Are Full Of Fun, Sexy And They Would Love Enjoy Your Company. We Have A Fantastic Selection Of Escort Ladies Available For In-Calls As Well As Out-Calls. Our Escorts Are Not Only Beautiful But All Have Great Personalities Making Them The Perfect Companion For Any Occasion. In-Call:- You Can Come At Our Place in Delhi Our place Which Is Very Clean Hygienic 100% safe Accommodation. Out-Call:- You have To Come Pick The Girl From My Place We Are Also Provide Door Step Services (Delhi Ncr, Noida, Gurgaon, Faridabad, Ghaziabad Note:- Pic Collectors Time Passers Bargainers Stay Away As We Respect The Value For Your Money Time And Expect The Same From You Hygienic:- Full Ac room And Clean Rooms Available In Hotel 24 * 7 Hourly In Delhi NCR More Details, With WhatsApp Number, +91-8448380779
BDSMā”Call Girls in Sector 71 Noida Escorts >ą¼8448380779 Escort Service
BDSMā”Call Girls in Sector 71 Noida Escorts >ą¼8448380779 Escort Service
Delhi Call girls
Ā
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
PsychicRuben LoveSpells
Ā
PEMESANAN OBAT ASLI : +6287776558899 Cara Menggugurkan Kandungan usia 1 , 2 , bulan - obat penggugur janin - cara aborsi kandungan - obat penggugur kandungan 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 bulan - bagaimana cara menggugurkan kandungan - tips Cara aborsi kandungan - trik Cara menggugurkan janin - Cara aman bagi ibu menyusui menggugurkan kandungan - klinik apotek jual obat penggugur kandungan - jamu PENGGUGUR KANDUNGAN - WAJIB TAU CARA ABORSI JANIN - GUGURKAN KANDUNGAN AMAN TANPA KURET - CARA Menggugurkan Kandungan tanpa efek samping - rekomendasi dokter obat herbal penggugur kandungan - ABORSI JANIN - aborsi kandungan - jamu herbal Penggugur kandungan - cara Menggugurkan Kandungan yang cacat - tata cara Menggugurkan Kandungan - obat penggugur kandungan di apotik kimia Farma - obat telat datang bulan - obat penggugur kandungan tuntas - obat penggugur kandungan alami - klinik aborsi janin gugurkan kandungan - Ā©Cytotec ā¢misoprostol BPOM - OBAT PENGGUGUR KANDUNGAN Ā®CYTOTEC - aborsi janin dengan pil Ā©Cytotec - Ā®Cytotec misoprostolĀ® BPOM 100% - penjual obat penggugur kandungan asli - klinik jual obat aborsi janin - obat penggugur kandungan di klinik k-24 || obat penggugur ā¢Cytotec di apotek umum || Ā®CYTOTEC ASLI || obat Ā©Cytotec yang asli 200mcg || obat penggugur ASLI || pil CytotecĀ© tablet || cara gugurin kandungan || jual Ā®Cytotec 200mcg || dokter gugurkan kandungan || cara menggugurkan kandungan dengan cepat selesai dalam 24 jam secara alami buah buahan || usia kandungan 1_2 3_4 5_6 7_8 bulan masih bisa di gugurkan || obat penggugur kandungan Ā®cytotec dan gastrul || cara gugurkan pembuahan janin secara alami dan cepat || gugurkan kandungan || gugurin janin || cara Menggugurkan janin di luar nikah || contoh aborsi janin yang benar || contoh obat penggugur kandungan asli || contoh cara Menggugurkan Kandungan yang benar || telat haid || obat telat haid || Cara Alami gugurkan kehamilan || obat telat menstruasi || cara Menggugurkan janin anak haram || cara aborsi menggugurkan janin yang tidak berkembang || gugurkan kandungan dengan obat Ā©Cytotec || obat penggugur kandungan ā¢Cytotec 100% original || HARGA obat penggugur kandungan || obat telat haid 1 bulan || obat telat menstruasi 1-2 3-4 5-6 7-8 BULAN || obat telat datang bulan || cara Menggugurkan janin 1 bulan || cara Menggugurkan Kandungan yang masih 2 bulan || cara Menggugurkan Kandungan yang masih hitungan Minggu || cara Menggugurkan Kandungan yang masih usia 3 bulan || cara Menggugurkan usia kandungan 4 bulan || cara Menggugurkan janin usia 5 bulan || cara Menggugurkan kehamilan 6 Bulan ________&&&_________&&&_____________&&&_________&&&&____________ Cara Menggugurkan Kandungan Usia Janin 1 | 7 | 8 Bulan Dengan Cepat Dalam Hitungan Jam Secara Alami, Kami Siap Meneriman Pesanan Ke Seluruh Indonesia, Melputi: Ambon, Banda Aceh, Bandung, Banjarbaru, Batam, Bau-Bau, Bengkulu, Binjai, Blitar, Bontang, Cilegon, Cirebon, Depok, Gorontalo, Jakarta, Jayapura, Kendari, Kota Mobagu, Kupang, Lhokseumawe
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Cara Menggugurkan Kandungan 087776558899
Ā
Recently uploaded
(6)
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
Ā
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
Ā
Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdf
Ā
BDSMā”Call Girls in Sector 71 Noida Escorts >ą¼8448380779 Escort Service
BDSMā”Call Girls in Sector 71 Noida Escorts >ą¼8448380779 Escort Service
Ā
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Ā
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Ā
Develop, test and debug cross platforms apps with PhoneGap
1.
2.
3.
4.
5.
6.
Development Platform - You can run it on almost all the platforms - The only issue is that to build for iOS you need an OS X device - Using online build services you still have dependencies to OS X
7.
8.
Available Tools - Sublime Text - Vim - Eclipse - IntelliJ IDEA - Adobe Brackets
9.
Sublime Text - You can split the editor in columns and edit multiple files simultaneously - Distraction free mode - Super fast search engine - Super fast startup - Plugins based (css prefixer, linter, etc.)
10.
Vim - Fast - Diffused - It's a command line tool
11.
Eclipse - Very well integrated with Android (ADT) - Multi language - Rich of plugins - Command line integrated through plugins
12.
IntelliJ IDEA - Low memory consumption - Multi language - Advanced code completion - Refactoring tools - Highly integrated with Android (Android Studio)
13.
Adobe Brackets - Very integrated with PhoneGap services - Based upon standards - Inline CSS editor - Live editing in the browser
14.
Install PhoneGap - Download the distribution you are targeting (phonegap.com or github) - Unzip it and explore the directories
15.
Run the Latest Distribution Update the .cordova/config.json so it has this structure: { lib:{ android:{ id:'cordova-with-no-plugins', version:'3.0', uri:'/Users/giorgionatili/phonegap/src/cordova-android'
16.
The Directories |-doc/ ........... source documentation |-lib/ ........... platform code for supported operating systems | |-android/ | |-blackberry/ | |-cordova-cli/ | |-ios/ | |-osx/ | |-windows-phone-7 | |-windows-phone-8 | |-windows8/ |-changelog ..... a changelog compiled from comments and authors |-license ....... the Apache Software License v2
17.
Node.js (+ npm) - It's a way of running JavaScript outside the web browser - It's a wrapper around the high-performance V8 JavaScript runtime (Chrome) - Useful to create web apps or to execute cli utilities written in JavaScript - Download and install it http://nodejs.org/
18.
The Required SDKs - Android: http://developer.android.com/sdk/index.html - BlackBerry 10: https://developer.blackberry.com/html5/downloads/ - Firefox OS: http://goo.gl/Ugyst - iOS https://developer.apple.com/devcenter/ios/index.action - Windows Phone http://goo.gl/qjWro
19.
Android SDK $ export PATH=$PATH:~/android-sdks/tools/ $ export PATH=$PATH:~/android-sdks/platform-tools/ (or edit your .bash_profile file) Create a virtual device: ā¢ Android 4.0.3 ā API Level 15ā³ (i.e. Ice Cream Sandwich MR1) ā¢ Assign 2 GiB to the SD card ā¢
Use the skin āWXGA720ā³ ā¢ Set the value "Yes" for the Hardware Back/Home
20.
BlackBerry SDK - Add the tools path to your bash_profile file /Developer/SDKs/Research In Motion/BlackBerry 10 WebWorks SDK 1.0.4.11/dependencies/tools - Get the BlackBerry 10 application signing keys and generate a debug token blackberry-signer -csksetup -cskpass CSJ_PASS blackberry-signer -register -csjpin 15111974 -cskpass CSJ_PASS ~/Documents/blackberrykeys/client-RDK-2031902.csj blackberry-signer -register -csjpin 15111974 -cskpass CSJ_PASS ~/Documents/blackberrykeys/client-PBDT-2031902.csj
21.
iOS SDK - Download and install the last version of Xcode - Install ios-sim (a command-line utility that launches the app on the Simulator) $ curl -L https://github.com/phonegap/ios-sim/zipball/1.3 -o ios-sim-1.3.zip $ unzip ios-sim-1.3.zip $ rake install prefix=/usr/local/
22.
Windows Phone - Download and install Visual Studio - Download and install Cygwin http://www.cygwin.com
23.
24.
Chrome - Dev Tools - Remote Debugging - Experimental flags
25.
Internet Explorer - Dev Tools - Workers debugging
26.
Firefox - 3D View - Scratchpad
27.
Safari - Remote Debugging
28.
Make Your Shell Sexy - Install iTerm (Split pane view, search highlight, mouse-less copy) - Install zsh (shared command history, full of plugins, dot files) - Pickup a nice theme here
29.
Download the target SDK, install node.js, npm and check that node is working. Download and install a dev environment.
30.
31.
Install cordova-cli $ npm intall cordova -g $ sudo chown -R giorgionatili /usr/local/lib/node_modules/cordova
32.
Create a Project $ cordova create MySampleProject
33.
Add a Platform + Run! $ cordova platforms add android $ cordova emulate android
34.
Check it running
35.
The index.html file <html> <head> <meta charset="utf-8" /> <meta name="format-detection" content="telephone=no" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <link rel="stylesheet" type="text/css" href="css/index.css" /> <title>Hello World</title> </head> <body>
36.
The index.js file var app = { // Application Constructor initialize: function() { this.bindEvents(); }, // Bind Event Listeners // // Bind any events that are required on startup. Common events are: // 'load', 'deviceready', 'offline', and 'online'. bindEvents: function() { document.addEventListener('deviceready', this.onDeviceReady, false); },
37.
Using cordova-cli create a new PhoneGap project and run it on a test device or emulator.
38.
39.
Clouds Build Services - Less pain configuring all the target platforms - GitHub integration - Easy install process
40.
Build Using cordova-cli $ create path [id [name]] $ cordova platform add [platform]|rm|ls $ cordova prepare [platform] $ cordova compile [platforms] $ cordova build
41.
$ cordova emulate [platforms] The Project Folders myApp/ |--.cordova/ |-- merges/ | |-- android/ | |-- blackberry/ | `-- ios/ |-- platforms/ | |-- android/ | |-- blackberry/ | `-- ios/ |-- plugins/ `-- www/
42.
The config.xml file (a detailed explanation of the allowed tags is available here http://goo.gl/GqXY0) <widget xmlns = "http://www.w3.org/ns/widgets" xmlns:gap = "http://phonegap.com/ns/1.0" id = "com.phonegap.hello-world" version = "1.0.0"> <name>Hello World</name> <description> Hello World sample application that responds to the deviceready event.
43.
44.
The Browser - Find the relevant code in the debuggerās code view pane - Set breakpoint(s) where you think interesting things may occur - Run the script again by reloading the page in the browser - Investigate the values of variables
45.
iWebInspector (OS X only) - A tool to debug, profile and inspect web applications running on iOS Simulator - It works on iOS 5 and iOS 5.1 - Find the application:didFinishLaunchingWithOptions method in the AppDelegate.m file and add the following snippet
46.
iOS 6 Remote Debugging - You must have the Safari Develop Menu enabled
47.
- Open Develop -> (iPad || iPhone) Simulator and click the active session Debug with weinre (WEb INspector REmote) - Install weinre using the command line tool $ npm install weinre -g - Add the script tag needed to load the required libraries <script src="http://xxx.xxx.xxx.xxx:8080/target/target-script.js#anonymous"></script> - Run it from your command line and open a browser
48.
weinre -boundHost xxx.xx.xx.x Configure your app in order to run a remote debug session using weinre
49.
50.
Ripple - Apache Rippleā¢ is a web based mobile environment simulator designed to enable rapid development of mobile web applications - It works via a Chrome extension, which means, obviously, it is Chrome only - It supports most of the platforms supported by PhoneGap $ cordova ripple [platform]
51.
The Ripple UI
52.
Responsive Inspector - Allows viewing defined media queries of HTML pages - Useful when developing responsive web layouts - Available as a Chrome extension
53.
Responsive Inspector UI
54.
Live Reload - It's a utility that refreshes the page for you each time it detects a change to a file in a directory - You can activate it using an extension http://goo.gl/kZaCl or by adding the following script to the page <script>document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereloa
55.
Emulator vs Device - Emulators allow you to make a first check and fix the most obvious bugs - Emulators offer a (relatively) easy way to run apps on multiple platforms - Devices allow to run real tests - Devices fragmentation don't allow you to run tests on all the devices - Bugsense and crowdtesting can help developers to deploy reliable apps
56.
Cordova CLI - You can run the main commands from any folder - When working on a specific target platform run the commands contained in the cordova folder - Keep devices connected to your dev environment in order to test often
57.
58.
PhoneGap Architecture PhoneGap Event
59.
Flow
60.
Performance Tips - Avoid embed and inline scripts - Minimize repaints and reflows - Minimize HTML files - Compress and combine JavaScript and CSS files - Use CSS sprites
61.
Compressions Tools - There are several compression tools (YUI Compressor, JSMin, Closure, KJScompress, bananascript) - UglifyJS2 started to be pretty famous since jQuery started to use it - Very simple to install and to use $ npm install uglify-js -g $ cat file1.js file2.js | uglifyjs --inline-script -o mytest.min.js
62.
Client Side Templating A document that contains parameters, identified by some special syntax, that are replaced by actual arguments by the template processing system - It is a great way to separate markup and logic in views - It's due to shift of the app logic from server to client
63.
Templating Engines - underscore.js, templates are fast and lightweight - ICanHaz.js, returns jQuery object - Google Closure Templates, robust and reliable - Mustache.js, no logic in the templates that are language agnostic - Even more...
64.
Template and Data A template and its data look like the following snippets: <h1>{{title}}</h1> <ul> {{#names}} <li>{{name}}</li> {{/names}} </ul> var data = { "title": "Story", "names": [ {"name": "Tarzan"},
65.
Using Templates - A template can be loaded on runtime or compiled and stored in a variable - A useful tool to compile the template as a variable is pistachio $ npm install pistachio -g $ pistachio --out=splash-tpl.js splash-tpl.html
66.
JavaScript AMD Specifies a mechanism for defining modules such that the module and its dependencies can be asynchronously loaded - Well suited for the browser where synchronous loading incurs performance, usability, debugging, and cross-domain access problems ā¢ Dojo: dojo.require('some.module') ā¢ LABjs: $LAB.script("some/module.js') ā¢
CommonJS: require('some/module').
67.
Require.js - JavaScript file and module loader - Optimized for in-browser use, but it can be used in other JS environments <script data-main="js/app" src="js/libs/require/require.js"></script> www/ |-- js/ | |-- app.js | |-- main.js | |-- libs/
68.
Anatomy of a Module 1/2 - Each module is defined in a separate JavaScript file - A module is defined using the define keyword and return something define({ color: "black", size: "unisize"
69.
Anatomy of a Module 2/2 - Some define() calls that include a name for the module as the first argument - If the module has dependencies, the first argument should be an array of dependency names, and the second argument should be a definition function
70.
Using the require.js syntax create a new PhoneGap application that reacts to the deviceready event.
71.
72.
Local Storage - The Local Storage API is part of the Web Storage API defined by the W3C in order to provide a guideline for persistent data storage of key- value pair data in web clients - Local Storage API is designed to support data that needs to be available between sessions
73.
The localStorage Object It exposes several properties and methods: ā¢ key: returns the name of the key stored at a specific position ā¢ getItem: returns the item identified by a key ā¢
setItem: saves some data in a specific key (i.e. a string) of the localStorage object
74.
The StorageEvent Object Each time the localStorage object is updated a StorageEvent is fired. This event cannot be cancelled and contains the following properties: ā¢ key: a string that represents the named key that was added, removed, or modified ā¢ oldValue: the previous value of the named key if it was updated or null
75.
LocalStorage Drawbacks - The API is synchronous and for this reason the app appears less responsive because the time needed to access the localStorage object is greater than the one needed to access an object in memory - Complex data needs to be serialized and de-serialized impacting the responsiveness of the app
76.
Create a sample app able to store in the local storage previously typed words so that the end user can easily get some suggestions the next time is using the app
77.
SQL Storage - PhoneGap provides SQL storage API based on the Web SQL specification - When a device already offers support for Web SQL the app will use it otherwise the app will use the PhoneGap one - As a developer you will not notice any difference, because you will not have to change any line of code
78.
Create the App Database In order to start to work with a Database object itās enough to store in a variable whatās returned by the openDatabase method var size = (1024 * 1024 * 2); var db = window.openDatabase("test", "1.0", "Test DB", size); The openDatabase method accepts four arguments; the name of the
79.
The DataBase Object The DataBase object returned by the openDatabase method exposes two methods: ā¢ transaction -> execute an SQL transaction ā¢ changeVersion -> changes the version of the db (useful when updating a schema)
80.
The SQLTransaction Object The object is returned as an argument in the function defined as first argument of the transaction method The executeSql method allows executing SQL queries: function createTables(transactionObj){
81.
Arguments and the Query You can use place holders to pass arguments to a query when using the transaction method function addData(name, surname, gender){ db.transaction(function(transactionObj){ var sql = 'INSERT INTO users (name, surname, gender) VALUES (?, ?, ?);';
82.
The SQLResultSet Object When a SQLTransaction object's executeSql method is called, the specified callback executes with a SQLResultSet parameter containing three properties: ā¢ The insertId returns the row number of a successfully SQL insertion statement
83.
The SQLResultSetRow The SQLResultSetRowList contains the data returned from a SQL select statement, the object exposes: function querySuccess(tx, results) { var len = results.rows.length; for (var i=0; i<len; i++){ ā¢ The length property indicating how many rows the select statement returns ā¢ The item method to recover data at a specific index
84.
DataBase Limitations Limitations are not related to PhoneGap itself but are due to the Web View implementation of each target platform ā¢ The size limit varies accordingly to the OS from 5 to 25 Mb ā¢ Since iOS 5.x databases have been moved to the folder ~/Library/Caches from ~/Library/WebKit
85.
Create a sample app able to store and read some data from a local database
86.
87.
Accelerometer The accelerometer is actually made up of three accelerometers and each one measures the changes in velocity (i.e., linear acceleration) over time along the linear path on the axis x, y, and z
88.
Accelerometer Object The accelerometer detects the values of the delta movement relative to the current device position You can detect the device acceleration data using the method getCurrentAcceleration or setting up a watcher through the method watchAcceleration In order to stop watching the accelerometer data itās enough to call
89.
Accelerometer Data var options = {maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }; navigator.geolocation.watchPosition(onScucces, onFailure, options); function onSuccess(position) { console.log('Coordinates: ' + position.coords); console.log('Altitude: ' + position.coords.altitude); console.log('Altitude: ' + position.coords.altitude); console.log('Accuracy: ' + position.coords.accuracy); console.log('Altitude Accuracy: ' + position.coords.altitudeAccuracy); console.log('Heading: ' + position.coords.heading); console.log('Speed: ' + position.coords.speed);
90.
Create a sample app to detect device shakes using a numeric value as bound between the previous and actual position of the device
91.
Compass The PhoneGap Compass API allows you to obtain the direction that the device is pointing to The Compass API is available on the compass property of the navigator object and exposes the following methods: ā¢ compass.getCurrentHeading, reads the current compass heading through a handler ā¢ compass.watchHeading, reads the compass heading at a specific time interval through an handler and return a reference to it
92.
CompassHeading Object It's returned as an argument in the success handler of the watchHeading and getCurrentHeading methods, the object exposes the following properties: ā¢ magneticHeading, the heading in degrees from 0 to 359.99 ā¢ trueHeading, the heading relative to the geographic North Pole
93.
CompassError Object The CompassError object has a property named code that returns two possible values CompassError.COMPASS_INTERNAL_ERR or CompassError.COMPASS_NOT_SUPPORTED function onCompassError(error){ switch(true){
94.
Consider the following snippet of code, which will give you the right rotation for the compass, and create a sample app showing a
95.
96.
Geolocation The term geolocation is used in order to refer to the identification process of the real-world geographic location of an object The location of a device is represented through a point, the point is comprised of two components: latitude and longitude
97.
Geolocation API The Geolocation API is exposed through the geolocation object child of the navigator object and consists of three methods: ā¢ getCurrentPosition(), returns the device position ā¢ watchPosition(), watches for changes of the device position ā¢
clearWatch(), stops the watcher for deviceās position changes
98.
Position Object Accessing its properties you can read the deviceās coordinates and the creation timestamp of the object that stores the coordinates function onSuccess(position) { console.log('Coordinates: ' + position.coords); console.log('Timestamp: ' + position.timestamp); }
99.
PositionError Object It contains two properties the code and the message one. function onError(error) { switch(true){ case error.code == PositionError.PERMISSION_DENIED: // The user denies the app to use the deviceās current position break; case error.code == PositionError.POSITION_UNAVAILABLE: // The position of the device cannot be determined break;
100.
101.
Camera & Capture The main difference between these APIs is that the Camera API can access only the default device camera application whereas the Capture API can also record audio or video Capture API allows multiple captures with a single API call The Capture API is an implementation of an abandoned W3C standards draft
102.
Accessing the Camera The Camera API exposes two methods defined in the navigator.camera object: ā¢ getPicture, which opens the default camera application or lets the user browse the media library depending on the options specified in the configuration object the method accepts as argument ā¢ cleanup, which cleans up the image file stored into the temporary storage location
103.
Camera Options ā¢ quality, a number between 0 and 100 used to specify the quality of the saved image ā¢ destinationType, a number used to define the format of the value returned in the success handler (Camera.DestinationType.DATA_URL, Camera.DestinationType.FILE_U , Camera.DestinationType.NATIVE_URI) ā¢
sourceType, a number used to specify where the getPicture method will get an image (Camera.PictureSourceType.PHOTOLIBRARY, Camera.PictureSourceType.CAMERA,
104.
Capturing an Image var cameraOptions = {targetWidth: 300, targetHeight: 400, saveToPhotoAlbum: true, allowEdit: true}; navigator.camera.getPicture(onCameraSuccess, onCameraError, cameraOptions); function onCameraSuccess(imageData){ // Use the image data } function onCameraError(error){
105.
Capture API The Capture API works asynchronously as most of the PhoneGap APIs and provides access to the audio, image, and video capture capabilities of the device var capture = navigator.device.capture; capture.captureImage(function(files){ ā¢ captureVideo ā¢ captureAudio ā¢
captureImage
106.
MediaFile Object The MediaFile object stored in the files array returned in the success handler describes the captured media ā¢ fullPath, a string representing the file path on the device including the file name ā¢ lastModifiedDate, modification date of the file expressed in ms since January 1, 1970 ā¢
name, a string representing the name of the file ā¢ size, a number representing the size of the file in bytes
107.
Capture Options ā¢ CaptureVideoOptions (limit and duration) ā¢ CaptureImageOptions (limit) ā¢
CaptureAudioOptions (limit and duration)
108.
CaptureError Object ā¢ CaptureError.CAPTURE_INTERNAL_ERR ā¢ CaptureError.CAPTURE_APPLICATION_BUSY ā¢
CaptureError.CAPTURE_INVALID_ARGUMENT ā¢ CaptureError.CAPTURE_NO_MEDIA_FILES ā¢ CaptureError.CAPTURE_NOT_SUPPORTED
109.
Create a sample app able to capture an image and apply the grayscale effect you can find here http://www.html5rocks.com/en/tutorials/canvas/imagefilters/.
110.
111.
Understanding the API The PhoneGap Files API is an implementation of two different W3C APIs, the Directories and System API and the File API The PhoneGap Files API is not a complete implementation of the W3C specification, the missing piece is the synchronous file system interface implementation
112.
Accessing the File System In order to access the device file system you can use the requestFileSystem method of the LocalFileSystem object The method accepts four arguments: ā¢ The type of storage (temporary or persistent) ā¢ The amount of space in bytes to be allocated on the device
113.
Storage Types The device hard disk is not completely open to the appās view. A limited portion of the hard disk is dedicated to a single app alone; this is the app sandbox. ā¢ LocalFileSystem.PERSISTENT indicates that the storage cannot be removed by the user agent without the appās or userās permission ā¢ LocalFileSystem.TEMPORARY indicates that the files stored in the requested space can be deleted by the user agent or by the system without the appās or userās permission
114.
Reading Directories & Files function onSuccess(fileSystem){ var currentRoot = fileSystem.root; var directoryReader = currentRoot.createReader(); directoryReader.readEntries(onDirSuccess, onFileSysError); }
115.
FileError Object ā¢ FileError.NOT_FOUND_ERR (returned value 1) ā¢ FileError.SECURITY_ERR (returned value 2) ā¢
FileError.ABORT_ERR (returned value 3) ā¢ FileError.NOT_READABLE_ERR (returned value 4) ā¢ FileError.ENCODING_ERR (returned value 5) ā¢ FileError.NO_MODIFICATION_ALLOWED_ERR (returned value 6) ā¢ FileError.INVALID_STATE_ERR (returned value 7)
116.
Writing Data To write data to a file it suffices that the app gets access to the file using the FileWriter object To get a FileWriter object you first have to get access to a DirectoryEntry or to a FileEntry object using the requestFileSystem method Once you successfully get access to the file system you can request a file specifying that you want to create it using the create flag function onFileSystemSuccess(fileSystem){
117.
Creating a Writer In the success handler it's possible to create a writer, the createWriter method also requires the success and failure handlers function onGetFile(file){ file.createWriter(onGetWriter, onGetWriterError); } function onGetWriter(writer){ writer.write('Hello PhoneGap Files API!');
118.
Events During the write operation several events occur; for each event there is a corresponding property defined on the FileWriter object: ā¢ onwritestart is called when the FileWriter object starts to write the file ā¢ onwrite is called when the FileWriter object has completed successfully the write operation ā¢
onabort is called when the write operation has been interrupted
119.
Reading Data Once you have access to the file you can create a FileReader object and use its methods: ā¢ readAsDataURL, reads file and return data as a base64-encoded data URL ā¢ readAsText, reads text file ā¢
readAsBinaryString, reads file as binary and returns a binary string ā¢ readAsArrayBuffer, reads file as an ArrayBuffer
120.
Download and Upload Once you get access to the file system create a new FileTransfer object and call the download method specifying the remote URL, the system file path URI, and the success failure handlers var ft = new FileTransfer(); ft.upload(fileURI, encodeURI("http://some.server.com/upload.php"), onSuccess, onError, options);
121.
FileUpload Options ā¢ fileKey: the name of the form element. Defaults to file ā¢ fileName: the file name to use when saving the file on the server. ā¢
mimeType: the mime type of the data to upload ā¢ params: a set of optional key/value pairs to pass in the HTTP request ā¢ chunkedMode: whether to upload the data in chunked streaming mode
122.
Create a sample app and render a progress bar indicating the amount of file downloaded from a remote server
123.
124.
Contact Name Object ā¢ formatted, represents the complete name of the contact ā¢ familyName, represents the contactās family name ā¢
givenName, represents the contactās given name ā¢ middleName, represents the contactās middle name ā¢ honorificPrefix, represents the contactās prefix (e.g., Mr. or Dr.)
125.
Contact Field Object ā¢ type, a string that represents the type of field, possible values are home, work, mobile, and so on ā¢ value, a string representing the value of the field such as a phone number or email address ā¢
pref, a Boolean value that indicates if in a specific field is returned the user preferred value
126.
Contact Address Object ā¢ pref, a Boolean that indicates whether the returned ContactAddress is the preferred value of the user for the ContactAddress object ā¢ type, a string that indicates what type of address is stored in the ContactAdress object (e.g., home, office, etc.) ā¢
formatted, a string that represents the complete address
127.
Read a Contact Object Create a contact: var contact = navigator.contacts.create({'displayName': 'Giorgio'}); contact.save(onContactSaved,onContactSavedError); contact.remove(onContactRemoved, onContactRemovedError); Find a contact: var options = new ContactFindOptions();
128.
129.
What is a Plugin It's a native code exposed to the app using JavaScript The native part extends or implements platform specific classes or interfaces (e.g. CordovaPlugin, CDVPlugin, etc.) A plugin can be installed and uninstalled using cordova-cli or plugman sadas
130.
PhoneGap Architecture
131.
Plugman Plugman is an open source command line utility distributed as an npm module to facilitate the installation and uninstallation of plugins It supports the Android, BlackBerry 10 and iOS platforms Once installed you can use several commands from your command line tool
132.
Plugman Commands $ plugman --fetch $ plugman --platform android --project PLATFORM_PROJECT_PATH --plugin $ plugman --prepare $ plugman --platform android uninstall --project PLATFORM_PROJECT_PATH --plugin
133.
Building Blocks of a Plugin A PhoneGap plugin is a bridge between the WebView and the native platform the app is running on The only mandatory implementation is the way to communicate between JavaScript and the native environment using the cordova.exec function
134.
135.
Links ā¢ Official documentation http://docs.phonegap.com ā¢ Google Group https://groups.google.com/forum/#!forum/phonegap ā¢
Andrew Trice blob http://www.tricedesigns.com/tag/phonegap ā¢ Simon McDonald blog http://simonmacdonald.blogspot.com/search/label/phonegap ā¢ Joe Bowser blog http://www.infil00p.org ā¢ Raymond Camden blog http://www.raymondcamden.com/index.cfm/Mobile
136.
Book(s)
Download now