SlideShare a Scribd company logo
The Nativescript PUG
app Challenge
Transformation to single technology
EMEA PUG Challenge, 20-11-2014
Bronco Oostermeyer
Who are we?
Bronco Oostermeyer
OpenEdge since 1996, everything around Progress and more
Progress, UNIT4, WALVIS
Who are we?
Roel Lakenvelt
OpenEdge since 1989, version 5
VCD Software, Ceasar, Progress, Yonder and Flusso
Native iOS, Angular and many other
Who are we?
Flusso
• One of biggest OpenEdge consultancy firms in NL
• Progress technologies,
• Open Source (Java & ServiceMix, etc),
• Web Apps (Angular2, various app platforms)
• OutSystems
Agenda
-What is {N}
-Choices
-Examples from the field
What is NativeScript?
• Framework for building cross-platform native apps
• iOS & Android (Windows coming soon, for a while now)
• 1 code base for both platforms
• No DOM
• JavaScript
• No Objective C, Swift & Java
• No Cross Compiler (like Xamarin)
• Open source
What is NativeScript? {N}
• Maintained by Telerik
• 1.0 released may 2015
• A year in UI development seems a light year nowadays
• Current version 2.3
• Projected 100k+ npm downloads in 2016
• iOS 8+, Android API level 17, android 4.2
• Set of node.js CLI tools for various tasks
Why NativeScript?
• Native apps
• Javascript
• Consolidation of technology stack
• Direct access native API’s(*)
• No waiting for version X.Y for access newest API
• XML style markup, CSS-like styling
• Markup sort of XAML,
• No real CSS because no DOM
Declaring the UI
UI to Code
page.xml
page.js
JavaScript runtime (JavaScriptCore)
Android OS API (iOS API)
Architectural Overview
var time = new android.text.format.Time();
JavaScript runtime
var time = new android.text.format.Time();
Android OS API
JavaScript runtime
var time = new android.text.format.Time();
Android OS API
android
Android OS API
metadata
C++
JavaScript runtime
var time = new android.text.format.Time();
Android OS API
C++
TimeJNI
Proxy
time
Modules / Plugins
• Modules abstract platform specifics:
Modules
• OK, one more
var http = require(“http”);
http.getJSON(“http://echo.jsontest.com/hello/world”).then(
result => { console.log(JSON.stringify(result)); }
);
Modules / Plugins
var firebase = require(“nativescript-plugin-firebase”);
firebase.init ({
persist: false
}).then( …
);
• Modules abstract platform specifics:
What do you need?
• node.js
• npm 3.x on windows (solves path problems)
• TypeScript (recommended)
• Emulator
• IDE (notepad won’t do)
• Maybe a framework (Angular2)
Why TypeScript?
Choices - TypeScript
• JavaScript (ES6) superset, Strongly typed
• Removes rough edges from JS
• Anders Hejlsberg (Turbo Pascal, Delphi, C#...)
• “JavaScript done right” from Microsoft
• Transpiler (emits JS)
• Build with tooling in mind
http://www.typescriptlang.org/
Choices - Visual Studio Code
• Sublime like text editor
• Plugins
• TypeScript, NativeScript
• Debugger (attachable)
• Windows, MacOS & Linux
• Electron based
• Free!
https://code.visualstudio.com/
Choices – development environment
• We chose the CLI tools & emulators
• npm install –g nativescript
• MacOS needed
• Alternative is Telerik Platform
• We did it the Open Source way
• TP gives “companion app” possibilities
Choices - Emulator
• Genymotion (android)
• Seems to be one of the fastest
• Visual Studio emulator Android
• iOS emulator for XCode
Experience
• Demo
• Agenda
• ListView
• Push Notifications
• Floorplan
• Local storage
• IOS 10
Agenda view
ScrollView (days)
ScrollView (timeslots)
ScrollView
(rooms)
ScrollView horizontal
ScrollView vertical
AbsoluteLayout
GridLayout
ListView
Sectioned ListView with sticky headers
• ListView (core)
• RadListView (nativescript-telerik-ui)
• nativescript-sectioned-list-view
• Create own/change existing module
• Fake headers and sections
ListView
Sponsortype
Sponsor
Header
Push Notifications
APNS
GCM
WNS
1. Registration
2.DeviceID
Own server
A. Message
B. Notification
3. DeviceID
General
Push
Notification
Server
UI
Push Notifications
• Homebrewn Apache ServiceMix based solution
• Telerik’s Everlive  no Typescript typings at that time
• Firebase
• Successor to Google Cloud Messaging (GCM)
• nativescript-plugin-firebase from Eddy Verbruggen
• Issues
• firebase.init() before application.start under iOS
• Install Google Play Services on Genymotion
• Push notifications will not work in the iOS emulator
Floorplan
• Pinch
• Pan
• Surprisingly easy
Floorplan
Local storage
• SQLite for text
• nativescript-sqlite
• Images as static files
• knownFolders.currentApp();
• knownFolders.documents();
• Tools
• Android device monitor
• Terminal on macOS
iOS 10
• Released on 13 September
• New Xcode version and new SDK’s
NSFileManager.defaultManager is not a function
• Many class methods changed into class properties
var fileManager = NSFileManager.defaultManager();
var fileManager = NSFileManager.defaultManager;
• Nativescript 2.3 on 20 September (core modules)
• nativescript-telerik-ui on 20 september
• nativescript-plugin-firebase on 21 September
• nativescript-sqlite this week
Conclusions
• Great way to build native(!) apps
• Search for modules
• https://plugins.telerik.com/nativescript
• http://nativescript.rocks/all.php
• Sooner or later iOS or Android knowledge needed
• Open Source: be prepared to invest time
• Read the manuals
• Always test on all (physical) devices
• One more thing, still waiting for Windows support
Questions?
This presentation @
Links
• {N} runtime explained: http://developer.telerik.com/featured/nativescript-works/
follow us on:

More Related Content

PDF
Sutol 2016 - Automation is developer's friend
PDF
CocoaConf DC - Automate with Swift - Tony Ingraldi
PPTX
XPages build automation and testing
PPTX
QA Fest 2016. Роман Горин. Введение в системы распознавания речи глазами тест...
PPTX
Intro to React Native
PPTX
Ionic 2 - Introduction
PDF
Алексей Волков "Введение в React Native"
PPTX
Who Needs Visual Studio?
Sutol 2016 - Automation is developer's friend
CocoaConf DC - Automate with Swift - Tony Ingraldi
XPages build automation and testing
QA Fest 2016. Роман Горин. Введение в системы распознавания речи глазами тест...
Intro to React Native
Ionic 2 - Introduction
Алексей Волков "Введение в React Native"
Who Needs Visual Studio?

What's hot (20)

PDF
Conquering AngularJS Limitations
PDF
JSFoo-2017 Takeaways
PPTX
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
PPT
Next generation frontend tooling
PDF
Unit Testing in JavaScript
PPTX
TypeScript Jump Start
PPTX
React Native
PDF
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
PDF
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
PPTX
CloudExpo 2018: Docker - Power Your Move to the Cloud
PDF
Isomorphic web application
PDF
Docker at Cloud9 IDE
KEY
The Architect Way
PPTX
CI/CD at bol.com
PPTX
Docker (compose) in devops - prague docker meetup
PPTX
TypeScript Introduction
PPTX
The Saga of JavaScript and TypeScript: Part 1
PPTX
Java Development EcoSystem
PPTX
Presentation1
PDF
Docker multi-stage build
Conquering AngularJS Limitations
JSFoo-2017 Takeaways
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
Next generation frontend tooling
Unit Testing in JavaScript
TypeScript Jump Start
React Native
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
CloudExpo 2018: Docker - Power Your Move to the Cloud
Isomorphic web application
Docker at Cloud9 IDE
The Architect Way
CI/CD at bol.com
Docker (compose) in devops - prague docker meetup
TypeScript Introduction
The Saga of JavaScript and TypeScript: Part 1
Java Development EcoSystem
Presentation1
Docker multi-stage build
Ad

Viewers also liked (10)

PPTX
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
PPTX
PPTX
NativeScript + Push Notifications
PPTX
ng-conf NativeScript and Angular 2 Workshop
PPTX
Flusso Continuous Integration & Continuous Delivery
PPTX
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
PDF
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
PPT
CI and CD with Jenkins
PPTX
Nativescript with angular 2
PPTX
NativeScript - Open source framework for building truly native mobile apps wi...
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript + Push Notifications
ng-conf NativeScript and Angular 2 Workshop
Flusso Continuous Integration & Continuous Delivery
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
CI and CD with Jenkins
Nativescript with angular 2
NativeScript - Open source framework for building truly native mobile apps wi...
Ad

Similar to PUG Challenge 2016 - The nativescript pug app challenge (20)

PPTX
NCDevCon 2017 - Cross Platform Mobile Apps
PPTX
Ignite your app development with Angular, NativeScript and Firebase
PPTX
Game On With NativeScript
PPTX
Native Script by Sebastian Witalec
PPTX
Native Script by Sebastian Witalec
PDF
Native script vs react native for native app development in 2022
PPTX
Native Script Atlanta Code Camp
PPTX
Native Script Overview
PPTX
Native script overview
PDF
Your choices for building a mobile app in 2016
PPTX
Building Native “apps” with Visual Studio 2015
PPTX
DOC-20230427-WA0010..pptx
PPTX
Dfc 2018 NativeScript
PDF
How native script angular helps to build truly native mobile applications
PDF
Cross Platform Mobile Development
PPTX
From React to React Native - Things I wish I knew when I started
PDF
What to choose for Mobile app development- React Native vs Native.
PPTX
Building Native Android Apps with JavaScript
PPTX
React Native And Its Ecosystem Presentation
PPTX
DOC-20230427-WA0009..pptx
NCDevCon 2017 - Cross Platform Mobile Apps
Ignite your app development with Angular, NativeScript and Firebase
Game On With NativeScript
Native Script by Sebastian Witalec
Native Script by Sebastian Witalec
Native script vs react native for native app development in 2022
Native Script Atlanta Code Camp
Native Script Overview
Native script overview
Your choices for building a mobile app in 2016
Building Native “apps” with Visual Studio 2015
DOC-20230427-WA0010..pptx
Dfc 2018 NativeScript
How native script angular helps to build truly native mobile applications
Cross Platform Mobile Development
From React to React Native - Things I wish I knew when I started
What to choose for Mobile app development- React Native vs Native.
Building Native Android Apps with JavaScript
React Native And Its Ecosystem Presentation
DOC-20230427-WA0009..pptx

Recently uploaded (20)

PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
System and Network Administration Chapter 2
PDF
Understanding Forklifts - TECH EHS Solution
PDF
System and Network Administraation Chapter 3
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
L1 - Introduction to python Backend.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Introduction to Artificial Intelligence
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
history of c programming in notes for students .pptx
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
System and Network Administration Chapter 2
Understanding Forklifts - TECH EHS Solution
System and Network Administraation Chapter 3
Wondershare Filmora 15 Crack With Activation Key [2025
Odoo Companies in India – Driving Business Transformation.pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Design an Analysis of Algorithms I-SECS-1021-03
Which alternative to Crystal Reports is best for small or large businesses.pdf
PTS Company Brochure 2025 (1).pdf.......
L1 - Introduction to python Backend.pptx
CHAPTER 2 - PM Management and IT Context
Introduction to Artificial Intelligence
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
history of c programming in notes for students .pptx
2025 Textile ERP Trends: SAP, Odoo & Oracle
How to Migrate SBCGlobal Email to Yahoo Easily

PUG Challenge 2016 - The nativescript pug app challenge

  • 1. The Nativescript PUG app Challenge Transformation to single technology EMEA PUG Challenge, 20-11-2014 Bronco Oostermeyer
  • 2. Who are we? Bronco Oostermeyer OpenEdge since 1996, everything around Progress and more Progress, UNIT4, WALVIS
  • 3. Who are we? Roel Lakenvelt OpenEdge since 1989, version 5 VCD Software, Ceasar, Progress, Yonder and Flusso Native iOS, Angular and many other
  • 4. Who are we? Flusso • One of biggest OpenEdge consultancy firms in NL • Progress technologies, • Open Source (Java & ServiceMix, etc), • Web Apps (Angular2, various app platforms) • OutSystems
  • 6. What is NativeScript? • Framework for building cross-platform native apps • iOS & Android (Windows coming soon, for a while now) • 1 code base for both platforms • No DOM • JavaScript • No Objective C, Swift & Java • No Cross Compiler (like Xamarin) • Open source
  • 7. What is NativeScript? {N} • Maintained by Telerik • 1.0 released may 2015 • A year in UI development seems a light year nowadays • Current version 2.3 • Projected 100k+ npm downloads in 2016 • iOS 8+, Android API level 17, android 4.2 • Set of node.js CLI tools for various tasks
  • 8. Why NativeScript? • Native apps • Javascript • Consolidation of technology stack • Direct access native API’s(*) • No waiting for version X.Y for access newest API • XML style markup, CSS-like styling • Markup sort of XAML, • No real CSS because no DOM
  • 11. JavaScript runtime (JavaScriptCore) Android OS API (iOS API) Architectural Overview var time = new android.text.format.Time();
  • 12. JavaScript runtime var time = new android.text.format.Time(); Android OS API
  • 13. JavaScript runtime var time = new android.text.format.Time(); Android OS API android Android OS API metadata C++
  • 14. JavaScript runtime var time = new android.text.format.Time(); Android OS API C++ TimeJNI Proxy time
  • 15. Modules / Plugins • Modules abstract platform specifics:
  • 16. Modules • OK, one more var http = require(“http”); http.getJSON(“http://echo.jsontest.com/hello/world”).then( result => { console.log(JSON.stringify(result)); } );
  • 17. Modules / Plugins var firebase = require(“nativescript-plugin-firebase”); firebase.init ({ persist: false }).then( … ); • Modules abstract platform specifics:
  • 18. What do you need? • node.js • npm 3.x on windows (solves path problems) • TypeScript (recommended) • Emulator • IDE (notepad won’t do) • Maybe a framework (Angular2)
  • 20. Choices - TypeScript • JavaScript (ES6) superset, Strongly typed • Removes rough edges from JS • Anders Hejlsberg (Turbo Pascal, Delphi, C#...) • “JavaScript done right” from Microsoft • Transpiler (emits JS) • Build with tooling in mind http://www.typescriptlang.org/
  • 21. Choices - Visual Studio Code • Sublime like text editor • Plugins • TypeScript, NativeScript • Debugger (attachable) • Windows, MacOS & Linux • Electron based • Free! https://code.visualstudio.com/
  • 22. Choices – development environment • We chose the CLI tools & emulators • npm install –g nativescript • MacOS needed • Alternative is Telerik Platform • We did it the Open Source way • TP gives “companion app” possibilities
  • 23. Choices - Emulator • Genymotion (android) • Seems to be one of the fastest • Visual Studio emulator Android • iOS emulator for XCode
  • 24. Experience • Demo • Agenda • ListView • Push Notifications • Floorplan • Local storage • IOS 10
  • 25. Agenda view ScrollView (days) ScrollView (timeslots) ScrollView (rooms) ScrollView horizontal ScrollView vertical AbsoluteLayout GridLayout
  • 26. ListView Sectioned ListView with sticky headers • ListView (core) • RadListView (nativescript-telerik-ui) • nativescript-sectioned-list-view • Create own/change existing module • Fake headers and sections
  • 28. Push Notifications APNS GCM WNS 1. Registration 2.DeviceID Own server A. Message B. Notification 3. DeviceID General Push Notification Server UI
  • 29. Push Notifications • Homebrewn Apache ServiceMix based solution • Telerik’s Everlive  no Typescript typings at that time • Firebase • Successor to Google Cloud Messaging (GCM) • nativescript-plugin-firebase from Eddy Verbruggen • Issues • firebase.init() before application.start under iOS • Install Google Play Services on Genymotion • Push notifications will not work in the iOS emulator
  • 30. Floorplan • Pinch • Pan • Surprisingly easy
  • 32. Local storage • SQLite for text • nativescript-sqlite • Images as static files • knownFolders.currentApp(); • knownFolders.documents(); • Tools • Android device monitor • Terminal on macOS
  • 33. iOS 10 • Released on 13 September • New Xcode version and new SDK’s NSFileManager.defaultManager is not a function • Many class methods changed into class properties var fileManager = NSFileManager.defaultManager(); var fileManager = NSFileManager.defaultManager; • Nativescript 2.3 on 20 September (core modules) • nativescript-telerik-ui on 20 september • nativescript-plugin-firebase on 21 September • nativescript-sqlite this week
  • 34. Conclusions • Great way to build native(!) apps • Search for modules • https://plugins.telerik.com/nativescript • http://nativescript.rocks/all.php • Sooner or later iOS or Android knowledge needed • Open Source: be prepared to invest time • Read the manuals • Always test on all (physical) devices • One more thing, still waiting for Windows support
  • 37. Links • {N} runtime explained: http://developer.telerik.com/featured/nativescript-works/