How to create cross-platform mobile apps with HTML5 that integrate directly into the platform.
By combining several enterprise-class frameworks and tools, you can create apps that run on all mobile devices, developed in a central repository and tool.
In this presentation, you will learn how to create HTML5 apps with the Visual Studio Multi-Device Hybrid Apps plug-in. Apache Cordova is directly integrated and resposible for creating native apps for the mobile platforms.
WinJS can be used as a major UI framework that is now open source and works accross all platforms and browsers.
To check how you can integrate apps deeper with the native platforms, you will also see how to install and use a custom plug-in that enables Near Field Communication (NFC) on both Android and Windows Phone.
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Andreas Jakl
Learn what Qt is all about, why it is important and what you can do with it! Includes an introduction to the Qt SDK, Qt Quick and the Qt Mobility APIs for development on Symbian and MeeGo Harmattan. Links to further resources help you to get an easy start!
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...FELGO SDK
A summarized version is available here:
http://v-play.net/?p=10928
*** Quick Summary ***
This session shows how to develop applications for multiple screen sizes, screen resolutions and form factors like phones, tablets and desktop PCs with Qt. We show how you can use the same code base, while having native-looking UIs across platforms like iOS and Android with Qt and V-Play Apps. This involves tips for responsive design with Qt and a comparison when to use Qt Quick and in which cases C++ is the better choice.
We cover dynamic image switching, content scaling and basic Qt Quick features like file selectors, Loader elements, Layouts, QML Singletons and property bindings and compare the use cases for each of them. In addition, we introduce a density-independent approach you can use to create Qt apps on different resolutions and screen densities.
This talk also explains which V-Play components you can use to increase your application downloads and user retention. And how to measure the success of your apps across platforms.
This presentation gives you a technical overview with code snippets and hands-on examples of the possibilities with Qt for multi-screen development. For a non-technical overview of this topic, we recommend the first part of this presentation in the Qt Technology Strategy Track.
*** Presentation Keywords ***
Qt, Qt Quick, QML, JavaScript, V-Play Game Engine, V-Play Apps, V-Play Qt 5 Plugins
Screen density, screen resolution, screen size
Density independence, density-independent pixels; pixel density
Dynamic image switching, dynamic image selection; Android: alternative bitmaps; retina display, retina images
High dpi screens
Multiple screen aspect ratios
Supporting Multiple Screens, Responsive Design (tablet layout, adaptive layout, adaptable layout, scalability)
Multiple resolutions
Content scaling, upscaling, adaptive scaling
User Retention, User-Generated Content, UGC, community building, V-Play Game Network, Gamification, Leaderboards, Achievements, Multiplayer, Chat, Push Notifications, Mobile Analytics
Qt 5 Plugins, V-Play Plugins, Qt Facebook Plugin, Qt Chartboost, Qt AdMob, Qt Flurry Analytics, Qt Push Notifications, Qt In-App Purchases
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Nokia
Qt now and in the future - overview of Qt and the plans for Nokia platforms. Newest features of Qt including animation framework, gestures etc. Qt for Symbian and Maemo. Qt Mobility APIs. Hybrid Applications.
Presentation for stack over flow event in London 28.10.2009. Good event, over 500 guys and gals in the audience!
http://qt.nokia.com
http://stackoverflow.com/
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Andreas Jakl
Learn what Qt is all about, why it is important and what you can do with it! Includes an introduction to the Qt SDK, Qt Quick and the Qt Mobility APIs for development on Symbian and MeeGo Harmattan. Links to further resources help you to get an easy start!
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...FELGO SDK
A summarized version is available here:
http://v-play.net/?p=10928
*** Quick Summary ***
This session shows how to develop applications for multiple screen sizes, screen resolutions and form factors like phones, tablets and desktop PCs with Qt. We show how you can use the same code base, while having native-looking UIs across platforms like iOS and Android with Qt and V-Play Apps. This involves tips for responsive design with Qt and a comparison when to use Qt Quick and in which cases C++ is the better choice.
We cover dynamic image switching, content scaling and basic Qt Quick features like file selectors, Loader elements, Layouts, QML Singletons and property bindings and compare the use cases for each of them. In addition, we introduce a density-independent approach you can use to create Qt apps on different resolutions and screen densities.
This talk also explains which V-Play components you can use to increase your application downloads and user retention. And how to measure the success of your apps across platforms.
This presentation gives you a technical overview with code snippets and hands-on examples of the possibilities with Qt for multi-screen development. For a non-technical overview of this topic, we recommend the first part of this presentation in the Qt Technology Strategy Track.
*** Presentation Keywords ***
Qt, Qt Quick, QML, JavaScript, V-Play Game Engine, V-Play Apps, V-Play Qt 5 Plugins
Screen density, screen resolution, screen size
Density independence, density-independent pixels; pixel density
Dynamic image switching, dynamic image selection; Android: alternative bitmaps; retina display, retina images
High dpi screens
Multiple screen aspect ratios
Supporting Multiple Screens, Responsive Design (tablet layout, adaptive layout, adaptable layout, scalability)
Multiple resolutions
Content scaling, upscaling, adaptive scaling
User Retention, User-Generated Content, UGC, community building, V-Play Game Network, Gamification, Leaderboards, Achievements, Multiplayer, Chat, Push Notifications, Mobile Analytics
Qt 5 Plugins, V-Play Plugins, Qt Facebook Plugin, Qt Chartboost, Qt AdMob, Qt Flurry Analytics, Qt Push Notifications, Qt In-App Purchases
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Nokia
Qt now and in the future - overview of Qt and the plans for Nokia platforms. Newest features of Qt including animation framework, gestures etc. Qt for Symbian and Maemo. Qt Mobility APIs. Hybrid Applications.
Presentation for stack over flow event in London 28.10.2009. Good event, over 500 guys and gals in the audience!
http://qt.nokia.com
http://stackoverflow.com/
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Andreas Jakl
Complete instructions on how to set up your development environment to develop using Qt and deploy with one click to Windows, Symbian, Maemo / MeeGo and the Qt Simulator. Based on the Nokia Qt SDK Beta.
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
Java EE 7 provides a strong foundation for developing the back end for your HTML5 mobile applications. This heavily code-driven session shows you how you can effectively utilize Java EE 7 as a back end for your Apache Cordova mobile applications. The session demonstrates Java EE 7 technologies such as JAX-RS 2.0, WebSocket, JSON-P, CDI, and Bean Validation. It provides an overview of the basics of Apache Cordova as well as the tooling support added in NetBeans 8. The session also demonstrates an integrated approach to rapidly developing HTML5 mobile applications with Java EE 7 and NetBeans and concludes with best practices and pitfalls.
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformStefano Ottaviani
Durante la conferenza Build, Microsoft ha presentato interessanti novità sullo sviluppo mobile e cross-platform. Alcune di queste riguardano gli sviluppatori iOS e Android, che avranno ulteriori strumenti a disposizione per aumentare la diffusione delle proprie app, riutilizzando il codice già scritto nativamente per queste due piattaforme (in Objective-C, Java, e magari in futuro anche Swift).
Alla luce di queste novità, faremo il punto della situazione sullo sviluppo mobile, discutendo le strategie per scegliere quale tecnologia usare per la nostra prossima app, tra sviluppo nativo o con tool come Xamarin e Apache Cordova.
Qt in depth - presentation for Symbian expo 2009Nokia
Comprehensive presentation about Qt with special focus on Symbian. Close to a training material so if you wanna know what Qt is, have a look at the ~150 slides.
Held in www.see2009.org/ 27.10.2009
Basic Information on Android development to start with...This presentation covers What is Android, Its development process and Build Process which an Android Beginner should have know
There are tons of Software Development tools and selecting the best could be a challenge. Following is a curated list of the 21 top software development tools.
Visit On:- https://www.samaritaninfotech.com
The Bug is a device with which you can build your own mobile system by combining certain modules. Each module delivers a specific piece of functionality, such as camera, video output, GPS location, etc.
The fun part of this device is that both the hardware and the software are completely modular and dynamic. That means that you can easily, with Eclipse and an SDK, write your own software for it.
This session will introduce the Bug and the OSGi based software stack and will build and deploy a whole application.
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorGail Frederick
Learn how to build UI for and debug HTML5 apps for mobile devices using Rapid Interface Builder (RIB) and Web Simulator, two open-source tools recently released by Intel. This session dives deep into the feature sets of both Web app developer tools, with demos, and shows you how you can influence the future of these open-source projects.
Rapid Interface Builder, RIB, is a browser-based design tool for quickly prototyping and creating Web apps for mobile devices and desktops. RIB allows a developer to layout UI by dropping widgets onto a canvas and reviewing the UI in interactive preview mode. RIB generates HTML5 and JavaScript that can be imported into your IDE of choice to complete the app. RIB supports jQueryMobile and Tizen widgets and runs on Google Chrome and Chromium browsers.
Web Simulator is a lightweight open-source tool for debugging mobile web applications. Extending the Google Chrome developer tools, it enables running and debugging web APIs for mobile platforms on the developer’s desktop system. Web Simulator allows you to simulate accelerometer and other sensor data, incoming and outgoing calls, geolocation events and battery status and other mobile device events in your Web app with fine-grained control over events. It currently supports HTML5 and the Tizen Web APIs.
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
How to create a cross-platform native app? What is Qt and which platforms does it support?
Get the latest information on the open source, C++ based framework that lets you target Android, iOS and Windows Phone - plus desktop and embedded platforms! Also contains info on contained UI technologies, the Qt dual-licensing model and the roadmap.
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Andreas Jakl
Complete instructions on how to set up your development environment to develop using Qt and deploy with one click to Windows, Symbian, Maemo / MeeGo and the Qt Simulator. Based on the Nokia Qt SDK Beta.
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
Java EE 7 provides a strong foundation for developing the back end for your HTML5 mobile applications. This heavily code-driven session shows you how you can effectively utilize Java EE 7 as a back end for your Apache Cordova mobile applications. The session demonstrates Java EE 7 technologies such as JAX-RS 2.0, WebSocket, JSON-P, CDI, and Bean Validation. It provides an overview of the basics of Apache Cordova as well as the tooling support added in NetBeans 8. The session also demonstrates an integrated approach to rapidly developing HTML5 mobile applications with Java EE 7 and NetBeans and concludes with best practices and pitfalls.
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformStefano Ottaviani
Durante la conferenza Build, Microsoft ha presentato interessanti novità sullo sviluppo mobile e cross-platform. Alcune di queste riguardano gli sviluppatori iOS e Android, che avranno ulteriori strumenti a disposizione per aumentare la diffusione delle proprie app, riutilizzando il codice già scritto nativamente per queste due piattaforme (in Objective-C, Java, e magari in futuro anche Swift).
Alla luce di queste novità, faremo il punto della situazione sullo sviluppo mobile, discutendo le strategie per scegliere quale tecnologia usare per la nostra prossima app, tra sviluppo nativo o con tool come Xamarin e Apache Cordova.
Qt in depth - presentation for Symbian expo 2009Nokia
Comprehensive presentation about Qt with special focus on Symbian. Close to a training material so if you wanna know what Qt is, have a look at the ~150 slides.
Held in www.see2009.org/ 27.10.2009
Basic Information on Android development to start with...This presentation covers What is Android, Its development process and Build Process which an Android Beginner should have know
There are tons of Software Development tools and selecting the best could be a challenge. Following is a curated list of the 21 top software development tools.
Visit On:- https://www.samaritaninfotech.com
The Bug is a device with which you can build your own mobile system by combining certain modules. Each module delivers a specific piece of functionality, such as camera, video output, GPS location, etc.
The fun part of this device is that both the hardware and the software are completely modular and dynamic. That means that you can easily, with Eclipse and an SDK, write your own software for it.
This session will introduce the Bug and the OSGi based software stack and will build and deploy a whole application.
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorGail Frederick
Learn how to build UI for and debug HTML5 apps for mobile devices using Rapid Interface Builder (RIB) and Web Simulator, two open-source tools recently released by Intel. This session dives deep into the feature sets of both Web app developer tools, with demos, and shows you how you can influence the future of these open-source projects.
Rapid Interface Builder, RIB, is a browser-based design tool for quickly prototyping and creating Web apps for mobile devices and desktops. RIB allows a developer to layout UI by dropping widgets onto a canvas and reviewing the UI in interactive preview mode. RIB generates HTML5 and JavaScript that can be imported into your IDE of choice to complete the app. RIB supports jQueryMobile and Tizen widgets and runs on Google Chrome and Chromium browsers.
Web Simulator is a lightweight open-source tool for debugging mobile web applications. Extending the Google Chrome developer tools, it enables running and debugging web APIs for mobile platforms on the developer’s desktop system. Web Simulator allows you to simulate accelerometer and other sensor data, incoming and outgoing calls, geolocation events and battery status and other mobile device events in your Web app with fine-grained control over events. It currently supports HTML5 and the Tizen Web APIs.
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
How to create a cross-platform native app? What is Qt and which platforms does it support?
Get the latest information on the open source, C++ based framework that lets you target Android, iOS and Windows Phone - plus desktop and embedded platforms! Also contains info on contained UI technologies, the Qt dual-licensing model and the roadmap.
The slides of a session at 2014 Microsoft Portugal Tech Refresh. The session was na introdution to the potential of the use of WinJS for webdevelopment.
Was also a state of the art about WinJS
JavaScript in Universal Windows Platform appsTimmy Kokke
I recently gave a presentation about using JavaScript in Universal Windows Platform apps. In combination with WinJS, AngularJS and Knockout JS. I explain how UWP apps work, how to build hosted web apps and how to write apps using the three frameworks.
Presentation material for Indonesia's Tizen Developer Workshop in developing Tizen Native Application Development. It describes on how to develop native application, beginning from Hello Tizen app.
It also covers the overview of Enlightenment Framework Libraries and how to use it on Tizen. Native application styling using EDJE is also covered in App Layouting section, with brief concept on how to code EDC and load it on the runtime.
Finally it gives brief information how developing natively in Tizen is flexible, where we can also utilizes C++ in conjunction with the provided C libraries. It is possible to use external libraries in Tizen if we find that the preloaded Native API is not enough.
The goal of this presentation is to give overview of native application concept while at the same time giving depth concepts to the developers so they can begin developing native Tizen application without hesitation.
Apache Cordova is a platform for building mobile apps using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile app developers to utilize mobile native functions such as (Audio, Camera, Contacts …etc) using JavaScript. This session discusses and demonstrates the advanced aspects of Apache Cordova. Advanced aspects include extending Apache Cordova framework by creating custom plugins in order to access more device hardware features. Advanced aspects also include empowering Apache Cordova apps with Push notifications and Cloud services. Finally, this session demonstrates the power of automated JavaScript unit testing for producing quality Apache Cordova apps.
"How to Develop with Qt for Multiple Screen Resolutions and Increase Your Use...FELGO SDK
*** NOTE ***
A summarized version is available here:
http://v-play.net/2014/11/supporting-multiple-screen-sizes-and-screen-densities-with-qt-and-v-play
*** Quick Summary ***
In the first part, we show how to use Qt Quick features to create UIs for multiple screen sizes, screen resolutions and form factors like phones, tablets and desktop PCs. We cover dynamic image switching, content scaling and basic Qt Quick features like file selectors, Loader elements, QML Singletons and property bindings and compare the use cases for each of them.
We also cover how to implement adaptive layouts and responsive design in Qt and V-Play. Plus, how to create density independence and HighDPI / Retina screen support.
The second part shows:
•How to increase user engagement with user-generated content and how to build a community around your app or game.
• How gamification can be added to apps or games in just a few minutes and its benefits.
*** Presentation Keywords ***
Qt, Qt Quick, QML, JavaScript, V-Play Game Engine, V-Play Qt 5 Plugins
Screen density, screen resolution, screen size
Density independence, density-independent pixels; pixel density
Dynamic image switching, dynamic image selection; Android: alternative bitmaps; retina display, retina images
High dpi screens
Multiple screen aspect ratios
Supporting Multiple Screens, Responsive Design (tablet layout, adaptive layout, adaptable layout, scalability)
Multiple resolutions
Content scaling, upscaling, adaptive scaling
User Retention, User-Generated Content, UGC, community building, V-Play Game Network, Gamification
Qt 5 Plugins, V-Play Plugins, Qt Facebook Plugin, Qt Chartboost, Qt AdMob, Qt Flurry Analytics, Qt Push Notifications, Qt In-App Purchases
Creating apps that work on all screen sizesRavi Vyas
My presentation at droidcon. Please note , the slides by themselves are pretty mute , I would be pinning down some blogposts soon.
Also note on slide 8 the image on the top is incorrect [ and was on droidcon too :( ]
Using java interop in your xamarin.android appsWillem Meints
Talk I did on Java interop on the Mono for Android platform. Shows what Mono Callable Wrappers are and what you can do with them. Also demonstrates the use of Java Binding Libraries.
How open source cross platform as node.js 14 develop runtime applications MoonTechnolabsPvtLtd
Designing premium apps incorporates the investment of a skilled workforce and the use of some of the most cutting-edge frameworks and tools. In that regard, Node.js 14 can prove to be one of the best open-source cross-platform app development engines.
SenchaCon 2016: Cross-Platform Mobile App Development with Cordova and Visual...Sencha
The promise of hybrid mobile app development using Cordova is quite alluring. As a web developer, you use your Ext JS skills to build cross-platform mobile applications for iOS/Android/Windows with a single code base. Visual Studio and the latest Ext JS framework provide powerful capabilities with which you can create sophisticated, mobile apps with UX components such as Pivot Grid, Calendar, and D3-based charts. Join Microsoft and Sencha to see how to build enterprise cross-platform mobile apps using Visual Studio, Ext JS, and Apache Cordova, and leverage device capabilities.
Tutorial: Develop Mobile Applications with AngularJSPhilipp Burgmer
Slides for my tutorial at Karlsruher Entwicklertag 2014.
Visit us at http://www.thecodecampus.de
Folien zu meinem Tutorial beim Karlsruher Entwicklertag 2014.
AngularJS hat sich in den letzen 2 Jahren von einem vielversprechendem zu einem viel eingesetzten JavaScript MVC Framework entwickelt, das immer mehr an Aufmerksamkeit und Zulauf gewinnen kann. Es gibt zahlreiche kleine und auch einige große Anwendungen im Netz die auf AngularJS basieren und viele davon sind "mobile ready".
Doch ist AngularJS auch eine gute Wahl um nicht nur "mobile ready" Web-Anwendungen sonder native mobile Anwendungen zu entwickeln?
In diesem Tutorial wird anhand von Beispielen gezeigt wie AngularJS z.B. zusammen mit PhoneGap eingesetzt werden kann um native Anwendungen für diverse mobile Platformen mit modernen Web-Technologien zu entwickeln.
Let's talk about the future: state-of-the-art mobile web & hybrid appsRakuten Group, Inc.
Ever since Google and Apple became the major players in mobile phones, mobile browser and its capability have been drastically improved. However, the performance and development toolings were always a headache for developers. But they never are! This session will describe all the goodies from the latest practices to make mobile app development more enjoyable.
Ionic Mobile Applications - Hybrid Mobile Applications Without CompromisesJacob Friesen
A presentation on Ionic Mobile Applications presented at Boca JS: http://www.meetup.com/Boca-JS/events/227150049/.
Traditionally, building Hybrid Mobile Apps with JavaScript (or other languages) was a middle ground between Mobile websites and Mobile Applications. Generally providing a more native like experience than websites, but with a reduced user experience compared to applications due to issues like slow animations or limited mobile OS access. The Ionic framework was created to provide hybrid development that does not compromise; matching native user experience while still allowing tools and techniques used on websites.
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#Nick Landry
This session is your fast track into the wonderful new world of app development for Windows device. Come learn how your valuable C# skills now make you a hot mobile developer for smartphones, tablets, laptops and desktops. We’ll perform a quick lap around Microsoft Visual Studio 2013 and the new Windows Universal Apps, build our first app using XAML & C#, and debug it with Windows 8.1 and the Windows Phone Emulator. We’ll then explore the converged WinRT API services and features, such as touch input, accelerometers, Live Tiles, etc. We’ll also spend valuable time going over the new app model for Windows device apps, how to share code between phone and tablet, and how to build a converged UI in XAML for Windows 8.1 and Windows Phone. Lastly we’ll go over the app packaging and how to submit your Universal apps to the Windows Store. The converged Windows Platform is more efficient and far-reaching than ever. Come learn how to build mobile apps for hundreds of millions of Windows device users.
Join Matt Netkow for a walkthrough of Capacitor 2.0. During this webinar, he’ll show off all the new features and capabilities of the latest version, along with the core feature set from previous versions. Watch the live presentation here: https://bit.ly/2TomZqV
Similar to WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone (20)
Create Engaging Healthcare Experiences with Augmented RealityAndreas Jakl
Would you like to try hands-on how to create your first Augmented Reality app? In this session, you will see how easy it is to use 3D technologies and automated speech processing (through Amazon Sumerian) to explain healthcare-related topics. The session is defined for health professionals with little or no prior experience in app design, who would love to share their knowledge with new didactic methods. Additionally, we will provide a behind-the-scenes look on the use case “Enlightening Patients with Augmented Reality” within the funded research project “Immersive Media Lab”.
Presented at the build.well.being conference on June 14th, 2019:
https://buildwellbeing.fhstp.ac.at/
More information about the contents:
https://www.andreasjakl.com/
AR / VR Interaction Development with UnityAndreas Jakl
Introduction to using C# for making Augmented Reality & Virtual Reality scenes interactive in Unity 2018 and beyond.
The lecture slides first cover the basics of C# and clarify the different C# / .NET settings in Unity. Next, an in-depth look at how GameObjects work behind the scenes from the C# perspective. To complete the necessary basics, Coroutines provide means to handle autonomous code for a better software architecture - but these shouldn't be confused with true asynchronous threads.
The next part is specially geared towards AR / VR: how to implement gaze from the main headset camera. Raycasting provides the necessary search capabilities for the hit target.
How to inform the hit object? The described approach utilizes C# Events. These are a complex topic; therefore, the materials take a deeper look at what's behind Events: Delegates, EventHandler, Actions and UnityEvents.
To wrap up, the examples are completed using a reticle / cursor for raycasts. To put this into context with AR / VR, the examples are based on a canvas to place a 2D sprite in a 3D world space canvas.
Content overview:
- Scripting: Frameworks, APIs and Languages
- GameObjects: Behind the Scenes
- Coroutines
- Gaze & Raycasting
- Delegates, Events & Actions
- Reticle / Cursor for Raycasts, based on a Canvas
Android Development with Kotlin, Part 3 - Code and App ManagementAndreas Jakl
- Code Management
- Open Source
- Version Control & Git
- App Stores
- Testing Mobile Apps
- Automated Tests
- Visual Studio App Center
- Espresso Test Recorder
- Firebase Test Lab
- Robo Tests
- App Distribution
In this presentation, you will learn how to add NFC tag reading to an Android app. It registers for auto-starting when the user taps a specific NDEF NFC tag with the phone. In addition, the app reads the NDEF records from the tag.
Further instructions: https://www.andreasjakl.com/nfc-tags-ndef-and-android-with-kotlin/
Open source sample app: https://github.com/andijakl/NfcDemo
- Target Audience (mobile vs. desktop)
- Web site technologies
- Structure & content: HTML / HTML5
- Styling: CSS
- Interactivity & scripting languages: JavaScript
- Behind the Scenes
- Client vs Server
- HTTP and web requests
- IP address & server location
- Accessibility
- Content Management Systems: Wordpress
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & MoreAndreas Jakl
iBeacons (Apple) and Eddystone (Google) have conquered the Bluetooth Beacon market. Both specifications allow to trigger specific actions on a smartphone at a well defined area. How do these formats work, what can you do with Bluetooth Beacons, what's changed for Beacons with Bluetooth 5 and what new possibilities does the Windows 10 Creators Update offer for Bluetooth developers?
More information:
Blog: https://www.andreasjakl.com/
Open Source Bluetooth Beacon Library & Example App: https://github.com/andijakl/universal-beacon/
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?Andreas Jakl
Beacons are one of the hottest topics of mobile development right now. Bluetooth Smart / LE is indispensable for Wearables and the Internet of Things (IoT). NFC is now finally arriving in the mass market.
With Windows 10, Microsoft has significantly expanded the possibilities for proximity technologies. In this overview, you will learn about the new scenarios and see several concrete examples of what is possible and how you can leverage it for your own projects!
Agenda:
NFC
- NFC simulation
- Smart Cards
- Raw NFC tag access
- Host card emulation (HCE)
Bluetooth Smart
- Bluetooth Beacon support
- Beacon specifications (iBeacon, Eddystone & co)
How to use cloud-based app testing to ensure that your mobile app doesn't suffer from bad reviews!
After an overview of the current state of mobile devices (operating system and device fragmentation for Android, iOS and Windows Phone), we take a look at current scientific studies that analyze app store reviews on a large scale, in order to extract useful app quality data.
In order to improve your app's quality, you will have to test a lot. Manual testing is usually limited to a few devices. Therefore, the best solution is often using cloud-based services like the Xamarin Test Cloud, which can test your app with a single click on 1000+ real devices.
You will also learn the basics of setting up your app for cloud-based testing and what kind of data you can extract.
Nokia New Asha Platform Developer TrainingAndreas Jakl
In-depth look at the new opportunities and APIs of the Nokia Asha SDK, which enables you to develop apps for the latest phones like the Nokia Asha 501.
The training materials includes a quick overview of the refreshed UX, UI development and iconography, internationalization, phone / network / SIM state detection, file selections, notifications, radio tuner, maps, gestures and porting between different touch and non-touch devices.
The developer training was held by Mopius in Budapest on May 14th and was the world's first on-site training for the new Asha platform, just a few days after the platform's release.
The quick walkthrough will show you how to create your first NFC app for Windows Phone 8.
The NearSpeak app (available soon in the WP Store) writes voice NFC tags - touch the tags again to hear your message! Leave notes for your partner, reminders for yourself, or use them for a fun public social experiment.
This hands-on tutorial will show you how to create this app. You will see how to write a LaunchApp tag using the NDEF Library for Proximity APIs, how to recognize text spoken by the user, and how to use the speech synthesizer to let the phone read the text again.
Note that the instructions require basic knowledge of Windows Phone development.
The three most important NFC (Near Field Communication) scenarios for Windows 8 / Windows Phone 8 (WP8) app developers:
- Discover Your App
- Share to Others
- Seamless Multi-User Games & Collaboration
This presentation describes these three scenarios, and shows you how to implement them in C# from a technical perspective. It contains examples for both Windows 8 and Windows Phone 8 development, based on the new Windows Proximity APIs.
In addition, this presentation contains a quick overview of NFC as a technology, as well as pointers towards tools and documentation, including the open source NDEF library for more powerful and sophisticated NFC tag writing and reading tasks.
Introduction to the Windows 8 Platform Proximity APIs for NFC apps.
Create your own Near Field Communication apps to interact with peers as well as NFC tags. Also introduces the open source NDEF Library for Proximity APIs: http://ndef.codeplex.com/
- Subscribe to proximity messages
- Publish messages to peers and tags (WindowsUri and NDEF records)
- Parse & create NDEF messages (including Smart Posters)
- Launching apps on own and peer devices
- Registering for custom URI schemes and protocols
- LaunchApp tags to directly start the app
- Peer to peer: quick data exchange and long term connections with Wi-Fi Direct / Bluetooth
- Establishing peer to peer socket communications simply by tapping two devices
- User Experience Recommendations for peer to peer apps
NFC Development with Qt - v2.2.0 (5. November 2012)Andreas Jakl
Learn developing Near Field Communication (NFC) apps for Nokia's Symbian and MeeGo phones with step-by-step tutorials!
The three development options Qt, Symbian native and Java ME are outlined. A more detailed explanation shows the Qt Mobility 1.2 APIs to create modern NFC applications for smartphones.
In the final part, step-by-step hands-on tutorials walk you through developing your first two NFC apps. The first demo extends an example from the Qt SDK with reading & writing both URI and text NDEF records to create new sticky notes on the virtual corkboards visible on the screen. The second demo uses the LLCP protocol to create a peer-to-peer chat application between two NFC Forum compatible devices.
Most applications will need to communicate with other services or devices at some point, or at least save settings on the host computer. These concepts are covered in this module.
After introducing the generic concept behind devices, short examples show how to use files.
Afterwards, the module covers networking and its representation in Qt. In addition to providing classes for handling low level sockets, network managers simplify handling web service requests and responses like for the HTTP protocol. At the end, a short section explains the basics of different methods of parsing XML in Qt, including DOM trees, SAX, pull parsing and XQuery/XPath.
A section about internationalization demonstrates the process step-by-step, showing all required components to make your application multi-lingual.
05 - Qt External Interaction and GraphicsAndreas Jakl
This module explores the remaining aspects of writing own widgets and explains how to handle low-level events, which can originate from for example the mouse or the keyboard. Low level painting, however, can not only be used to draw custom widget - a short overview gives you an idea of the power behind the QPainter class. If your application has to manage multiple graphics items or if you want to build a dynamic UI, the section about the graphics view framework will contain an overview of the classes required to build scene-graph-like user interfaces. At the end of this module, a few slides explain optimizing images, which is important to keep the file sizes and loading times down on mobile devices.
This module explains several additional important concepts. These include properties of QObjects, data types, QString and various list types.
Special classes in Qt provide even more convenient APIs if you want to save settings in the right way for the target platform.
At the end, a guide walks you through what you need to know about embedding files and resources into your application.
Continuing where module 2 left off, this part of the course explains signals and slots in more detail and tells you how to extend functionality of existing widgets by subclassing them. In real applications, widgets are often used in dialogs or inside the main window, which is a container for widgets and by default supports menus, toolbars and actions. These topics are all demonstrated via small examples.
After an overview of Qt and its tools, a Hello World application quickly demonstrates the basic principles.
Qt is mainly famous for its intelligent concepts of signals and slots, which is explained together with examples for how to use widgets (UI controls).
At the end, the foundations of the meta-object system and its implications on memory management are explained.
This module follows up the introduction in the "Software Development with Qt" module, plus the Quickstart slides.
5. HTML5 UI Toolkits
AngularJS
BackboneJS
jQuery Mobile
Sencha Touch
Ember.js
Dojo Mobile
WinJS
… and many, many more!
HTML Form in Chrome, no styling / layouts
Same HTML form in WinJS, default dark theme without layouts
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 5
6. Features
– UI toolkit
– JavaScript coding patterns
• Simplifies definition of namespaces, object classes
• Asynchronous operations (Promises)
• Structural models for apps, data binding and page navigation
– Wraps WinRT APIs for native platform access on Windows
Multi-Platform
– Windows (Phone), Android, iOS, desktop browsers
WinJS
http://
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 6
7. WinJS
XAML
C# JavaScript
HTML / CSS3
Windows Runtime (WinRT)
Windows 8.1
Xbox One
Windows
Phone 8.1
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 7
8. WinJS 3.0+
XAML
C# JavaScript
HTML / CSS3
Windows Runtime (WinRT)
Windows 8.1
Android
iOS
Web browsers
Apache Cordova
Xbox One
Windows
Phone 8.1
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 8
9. WinJS Roadmap
Open Source
– Apache License
– Limitations on WP 8.1: http://msdn.microsoft.com/en-
us/library/windows/apps/dn632432.aspx
WinJS 3.0
– First release that targets multiple platforms & browsers
– Not available as reference for Windows Store apps
WinJS Future
– Merge WinJS with WinJS.phone
WinJS 2.1 Store app
Shared library, not shipped in app packageWinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 9
25. WinJS Controls
Elements (<div> / <span>)
Contain data‐win‐control attribute
– Value is name of a constructor function
Instantiated at app startup:
– WinJS.UI.processAll();
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 25
31. Promises: Async Code
JavaScript: single-threaded language
Traditional asynchronous call-backs
– Call-stack with anonymous nested
functions?
– Do exceptions propagate up nested
call-backs?
Promise objects: defines functions
– then(): promise completed successfully
– error(): handle errors
– progress(): regular progress callbacks
async method
promise
.then()
function completed()
function error()
function progress()
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 31
32. Promises: How To
Initialize app
– After WinJS parsed DOM & instantiated controls
function onDeviceReady() {
WinJS.UI.processAll().then(function () {
// Retrieve the instantiated rating control
var ratingControl = ratingControlDiv.winControl;
// Register the ratingChanged() event handler function
ratingControl.addEventListener("change", ratingChanged, false);
});
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 32
33. Pages & Navigation
Traditional: multi-page navigation
– Individual HTML files, hyperlinks
Better: single-page navigation
– Never navigates away from default.html
• default.html: defines outmost UI (AppBar), handles app lifecycle
– Load additional data (“fragments”) into the page as needed
• PageControl: create & embed on default.html. Loads set of HTML, JavaScript and CSS (like an iframe).
• HtmlControl: load static HTML from other page, no JavaScript
• WebView: own history stack and navigation
• DOM methods
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 33
34. Pages & Navigation: How-To
Create 2nd “Navigation App”Store project
1. Create new“Page Control”: page2.html
Back to the Cordova project
2. Copy navigator.js and
home & page2.[html|js|css] from
store project
3. Reference navigator.js from index.html
4. Add WinJS page control to index.html
<div id="contenthost" data‐win‐control="Application.PageControlNavigator" data‐win‐options="{home: ‚./pages/home/home.html'}"></div>
<script src="scripts/navigator.js"></script>
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 34
35. Pages & Navigation: How-To
Create link from home.html to
page2.html
– Note: project structure is
modified during build for
Cordova packaging
– Contents moved to /www/
directory
– Links to e.g. /index.html don’t
work, use relative links!
<p><a href="./../page2/page2.html">Go to page 2.</a></p>
WinJS.UI.Pages.define("./pages/home/home.html", {
// This function is called whenever a user navigates to this page. It
// populates the page elements with the app's data.
ready: function (element, options) {
// Find all <a> links and execute the event handler when clicking
WinJS.Utilities.query("a").listen("click",
this.linkClickEventHandler, false);
},
linkClickEventHandler: function (eventInfo) {
// Stop default behaviour!
eventInfo.preventDefault();
// Use WinJS to navigate instead –
// loads the new page into the <div> fragment
var link = eventInfo.target;
WinJS.Navigation.navigate(link.href);
}
});
home.html
home.js
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 35
36. Bindings
Data Binding
– data‐win‐bind attribute on HTML element
– JS setup options
• Create relationship with WinJS.Binding
• WinJS.Binding.mixin makes class observable
Template Binding
– Rendering items, e.g. for ListViews
<span id="nameBindingSpan" data‐win‐bind="innerText: name"></span>
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 36
39. Development Paths
Cross-Platform (CLI)
– cordova utility: automatically targets all platforms
• building, assets, plugin config
Platform Centered
– Lower level platform access, e.g. mix native components with Cordova
– Specific scripts & manual building for each platform
– Used by VS / Multi-Device Hybrid App Extension
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 39
40. Core Plug-Ins
Interface to native components
Good cross-platform support
Integrated in VS
– config.xml
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 40
49. NFC Tags
Tag memory size:
48 byte – few kB
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 49
50. NFC & CORDOVA & WINJS
Bringing it all together …
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 50
51. W3C NFC API
JavaScript NFC API
– www.w3.org/TR/nfc/
Status: First Public Working Draft; NFC & basic NDEF
– Not very active group
State: October 2014
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 51
52. Cordova NFC Plugin
Open source
Developed by Chariot Solutions
– plugins.cordova.io/#/package/com.chariotsolutions.nfc.plugin
Platforms
– Android
– WP8
– BlackBerry 10, (7)
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 52
53. Adding Cordova NFC Plugin
Add NFC plugin reference to config.xml
Test reading NFC tags
<vs:feature>com.chariotsolutions.nfc.plugin@0.5.1</vs:feature>
nfc.addNdefListener(
this.nfcHandler,
function () { console.log("Listening for NDEF tags."); },
function (error) { alert("Adding the listener failed."); }
);
nfcHandler: function (nfcEvent) {
var tag = nfcEvent.tag;
var ndefMessageBytes = tag.ndefMessage;
var payload = nfc.bytesToString(ndefMessageBytes[0].payload);
alert(payload);
} WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 53
54. NFC & NDEF Overview
NDEF Message
NDEF Record
(e.g., URL)
…
NDEF = NFC Data Exchange Format
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 54
55. Open Source NDEF Library
Reusable
NDEF
classes
Create NDEF
messages & records
(standard compliant)
Parse information
from raw byte arrays
Fully documented
Open Source LGPL license
ndef.mopius.com
library development
supported by:
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 55
56. Adding the NDEF Library
Download & extract
library
NdefLibraryJS_1.0.0.zip
Drag & drop to project
/dist/ndeflibrary(.min.).js
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 56
57. Creating NDEF Messages
NDEF Record
– URI record
– Social record (Twitter)
NDEF Message
var ndefRecord = new NdefLibrary.NdefSocialRecord();
ndefRecord.setSocialType(NdefLibrary.NdefSocialRecord.NfcSocialType.Twitter);
ndefRecord.setSocialUserName("mopius");
var ndefRecord = new NdefLibrary.NdefUriRecord();
ndefRecord.setUri("http://www.mopius.com/");
var ndefMessage = new window.NdefLibrary.NdefMessage(ndefRecord);
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 57
58. Format Conversion
// Convert message to raw NDEF byte array
var ndefMsgBytes = ndefMessage.toByteArray();
// Parse raw byte array to Cordova NFC Plugin format (JSON)
var ndefMessagePlugin = window.ndef.decodeMessage(ndefMsgBytes);
NDEF library class
object
Cordova NFC Plugin
JSON object
byte array
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 58
59. Writing NFC Tags
Cordova NFC Plugin: Write tag …
– Android: in NFC tag discovered call-back = while user is tapping tag
– Windows Phone: outside call-back = instruct phone to write tag as
soon as user taps tag
nfc.write(
ndefMessagePlugin,
function (msg) { console.log("Publish Success" + msg); },
function (msg) { console.log("Publish Error" + msg); }
);
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 59
60. Sharing to Devices
Can be started & stopped (with unshare)
nfc.share(
ndefMessagePlugin,
function (msg) { console.log("Share Success" + msg); },
function (msg) { console.log("Share Error" + msg); }
);
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 60
61. Real Life?
Cordova NFC plug-in is unstable
– Android: call-back after 2nd tag tap
– Windows Phone: after each publish one more read-callback, crashes
after too many call-backs
Multi-Device Hybrid Apps CTP
– Crashes after closing app on Windows Phone
– Deployment issues to Windows 8.1
– Visual Studio compatibility (only Update 3 supported)
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 61
64. http://
Multi-Device Hybrid Apps: Visual Studio Extension.
Create cross-platform HTML5 apps, based on Cordova.
WinJS: HTML5 UI toolkit.
Coming from Windows, expanding to cross-platform.
UI Controls & improved async / callbacks.
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 64
65. Apache Cordova: toolchain to create hybrid apps.
Plugins to access native functionality from JavaScript.
PhoneGap: commercial distribution of Cordova.
NFC: short-range wireless communication.
Transmit small data packages between devices or store data on tags.
Platforms: Android, Windows Phone, BlackBerry, iPhone (partly)
Support: W3C JavaScript API: draft; Cordova: 3rd party plugin
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 65
66. NDEF: content standard.
Record(s) contained in Message.
NDEF Library: open source for JavaScript & C#.
Create & parse NDEF messages.
ndef.mopius.com
…
WinJS, Apache Cordova & NFC - Andreas Jakl, 21.10.2014 66