SlideShare a Scribd company logo
AppBuilder in 45 Minutes
Jen Looper
Jen Looper
Developer Advocate, Telerik
@jenlooper
I <3 mobile apps
So, you want to create mobile apps too.
Stop the madness!
Use your web skills to create a cross-platform hybrid mobile app
Treats for everyone!
Telerik AppBuilder can help!
Why you'll love Hybrid
• True single Codebase for all platforms
• Ease of HTM5/CSS/JavaScript
• Access to Native APIs
• App Store presence & monetization
• Users cannot tell the difference
AppBuilder under the covers
• Uses Apache Cordova
• JavaScript proxies to native APIs
AppBuilder is…
Cross-Platform Mobile Development, simplified!
• Developer freedom!
• End-to-End tooling
• All the backend services you need
Your Coding Environment – up to you!
Visual Studio Extension
Use your favorite IDE to build
Sublime Text Plugin
Windows Desktop Client
Rich Desktop Options
The Telerik Platform: platform.telerik.com
In-Browser client
CLI
Create an app using the in-browser AppBuilder Platform in 4
easy steps
1. Create an account at https://platform.telerik.com and sign in
Create an app using the in-browser AppBuilder Platform in 4
easy steps
2. Create an app project
Create an app using the in-browser AppBuilder Platform in 4
easy steps
3. Create a blank app
Create an app using the in-browser AppBuilder Platform in 4
easy steps
4. Add elements to your hybrid project
You’re ready to roll!
Let’s come back later to the in-browser experience
A different workflow
1. Start building your app
with the CLI
2. Push to github
3. End up in-browser with
code pulled from github
Get started with the AppBuilder CLI
$appbuilder create hybrid MySampleApp --appid
com.ladeezfirstmedia.myKendoSample
$cd MySampleApp
$appbuilder simulate
Creates a basic tabstrip app
Try sample apps via the CLI
$appbuilder sample clone facebook-api
$cd facebook-api
$appbuilder simulate
Creates a sample facebook-powered app
Simulate like crazy
$appbuilder simulate
Check out your app on all kinds of phones and tablets
Really nice tooling!
$appbuilder simulate
Ensure responsiveness
Debug in the browser, track local storage, test connectivity
behavior, mock geolocation
$appbuilder simulate
Leverage Chrome devtools –
use what you already know!
Test your app in a native emulator
$appbuilder emulate ios
Or
$appbuilder emulate android
Or
$appbuilder emulate wp8
Get a closer idea of how your
app will behave on various
platforms
Test your app on device
$appbuilder build ios –companion
Creates a QR code locally for you to test on your
phone using the installed Companion App
It’s on my
iPhone!
Test outside the companion app
First, get your provisioning sorted out
$appbuilder certificate import
$appbuilder provision import
Then, build for device using your app’s provisioning
profile:
$appbuilder build ios –my-apps-provisioning-profile
Apps in progress
Magic stuff: livesync for fast debugging
Livesync three ways:
1. On AppBuilder Companion
App (3 finger gesture)
2. On built app on device
(same)
3. In Simulator (automatically!)
Make changes and view quickly
without needing to rebuild
One more thing…
Make apps the way you want.
Let’s get cooking!
Let’s create a TriviaCrack Clone using Telerik AppBuilder
Requirements for “QuizSlam”:
1. Integration with content – we’ll use Quizlet
2. Ability to choose quiz from Quizlet
3. Game Loop – spin to get random number, show 1 question and 4
possible answers, handle correct/incorrect, scorekeeping
4. Navigation – 5 sections
5. Chat (chat button) - TBD
6. Lists of friends with scores (friends button) - TBD
7. Saving Scores (scores button) – entails login and backend integration
Sketch a GUI:
Disclaimer!
This is just one way to build an app in AppBuilder. Do what works for you!
1. Start with the secret sauce!
Seed code with:
• styles set to my liking
• colors ready
• fonts installed,
• two sample navigation strategies,
• optional login code available
• modularized code using require.js
Tabstrip navigation
Drawer navigation available
https://github.com/jlooper/Kendo-Seed
2. Adjust colors and set navigation
MaterialPalettte.com
Tabs
Drawer
Navigation code
<footer data-role="footer">
<div data-role="tabstrip">
<a href="#new"><div class="icon home"></div></a>
<a href="#chat"><div class="icon message"></div></a>
<a href="#friends"><div class="icon users"></div></a>
<a href="#scores"><div class="icon trophy"></div></a>
<a href="#menu" data-rel="drawer"><div class="icon menu"></div></a>
</div>
</div>
</footer>
We’re going to
tackle these 2 bits
3. Override icons and import .woff files to project
Icomoon.io app
4a. Code structure – index.html
<script src="bower_components/requirejs/require.js" data-main="main.js"></script>
Include require.js
4b. Code structure – main.js
require.config({
paths: {
'text': 'bower_components/requirejs-text/text'
}
});
define([
'app'
], function (app) {
…
app.init();
}
});
Configure require.js
4c. Code structure – app.js
define([
'views/New/New',
'views/Spin/Spin',
'views/Home/Home',
'views/Scores/Scores',
'views/Auth/Auth’
], function () {
var app = window.app = window.app || {};
var init = function () {
app.instance = new kendo.mobile.Application(
document.body,
{ skin: 'flat', loading: "<h1>Please wait...</h1>" }
);
};
return {
init: init
};
});
Define required elements
4d. Code structure – views
All views included in /views:
5. Animation
Animate.css CSS Animations FTW
6. Quizlet integration
In New.js (start screen):
• set initial quiz id in localStorage
• grab content of quiz from Quizlet
• parse it into Q/A pairs:
Data!!
7. Game Loop Time!!!
• Spin wheel
• pick a random number from quiz set
• show that question and 4 possible answers
• handle correct/incorrect.
• Correct = allow to spin again, Incorrect = show error, stop from continuing.
The fun stuff!
Pick – Spin - Quiz
Demo!
8. Add Backend
1. Add Everlive .min.js to index.html:
<script
src="bower_components/everlive/min/everlive.all.
min.js"></script>
2. Add Login routine, show forms if token not set,
otherwise show scores saved in backend
3. In platform.telerik.com, create a Backend
Services project associated to your current
project
4. Enable Cloud Services and User Management
5. Grab your Api keys and store them locally
6. Create an account and get a token! Now you’re
logged in and can pass data around
Login/Registration/Forgot Password
Works with email services automatically triggered
to handle common user administration tasks
(forgot password, welcome registration) in
backend – all customizable in backend
9. Add Scorekeeping capability
Save accuracy scores to backend when user clicks
‘done’
Create a datatype in the backend
called ‘Scores’ with a field called
‘Score’ to store the data
var Scores = new kendo.data.DataSource({
type: "everlive",
transport: {
typeName: "Scores"
}
});
var apiKey = localStorage.getItem("apiKey");
var token = localStorage.getItem("token");
var el = new Everlive({
apiKey: apiKey,
url: '//api.everlive.com/v1/',
scheme: 'https',
token: token
});
Prep your code
to pass the
data
Start posting scores!
sendScore:function(e){
var score = localStorage.getItem("numCorrect")/localStorage.getItem("numAttempts")
//send to backend
var data = el.data('Scores');
data.get()
.then(function(data){
var data = el.data('Scores');
data.create({ 'Score': score},
function(data){
alert("Score saved!")
},
function(error){
alert(JSON.stringify(error));
});
});
}
It’s my score
Display your scores
var data = el.data('Scores');
data.get()
.then(function(data){
$("#score-list").kendoListView({
dataSource: Scores,
template: kendo.template($("#score-
template").html()),
});
});
Grab the
scores
Display your scores
<ul id="score-list" data-style="inset" data-role="listview"
data-template="score-template"></ul>
<script id="score-template" type="text/x-kendo-template">
<li>
<div style="padding:5px">
#: kendo.toString(new Date(CreatedAt),'g')#
# if (typeof(Score) !== 'undefined') { #
Score - #: Score*100 #%
# } #
</div>
</li>
</script>
Show them on the frontend in a
Kendo template
Voila!
This content type is public, so you
see everyone’s scores. You can
change this by setting it to private
10. One more thing! Add a Plugin
A sample AdMob ad setup
Let’s add an AdMob ad
1. Set up an ad in AdMob
2. Add the AdMob Plugin from plugins.telerik.com
3. Add the ad to your view
Add plugin via CLI
$ appbuilder plugin add "AdMob"
…or in browser
Deploy time!
Let’s move to the in-browser toolset. Migrate your codebase either by:
• Committing it from your local to Github and bringing it into the Platform
• Zipping your files and importing to Platform
View your app in companion app
Or in a built app
Load up your provisioning profiles for iOS here
Manage icons and splash screens
Install on your device
Here’s that
ad
Finally, we have an app ready for production!
Publish from AppBuilder – send your app to the various stores
There is so much more in AppBuilder!
• Ask Developer Relations
• Ping me! @jenlooper
• Read more on TDN (developer.telerik.com)
• Visit the blogs (blogs.telerik.com)
• Follow us on Twitter @Telerik
• Sign up for an account at platform.telerik.com
It’s like an awesome smorgasbord!
Thank you! Now roll up your sleeves and start building!
Jen Looper
@jenlooper
Developer Advocate
Telerik Developer Relations Team
Evaluation: http://bit.ly/next-looper-1
No
pressure!

More Related Content

PPTX
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
Jen Looper
 
PDF
Why Streethawk re-wrote ibeacon handling on Android
David Jones
 
PDF
Alexa enabled smart home programming in Python - PyCon India 2018
Sonal Raj
 
PDF
End-to-end Mobile App Development (with iOS and Azure Mobile Services)
Andri Yadi
 
PDF
CIS 2015- IoT? The ‘I’ needs to be ‘Identity’- Paul Madsen
CloudIDSummit
 
PPTX
Iphone client-server app with Rails backend (v3)
Sujee Maniyam
 
PDF
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Shinichi Hirauchi
 
PDF
NSCoder Keynote - Multipeer Connectivity Framework
Alex Rupérez
 
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
Jen Looper
 
Why Streethawk re-wrote ibeacon handling on Android
David Jones
 
Alexa enabled smart home programming in Python - PyCon India 2018
Sonal Raj
 
End-to-end Mobile App Development (with iOS and Azure Mobile Services)
Andri Yadi
 
CIS 2015- IoT? The ‘I’ needs to be ‘Identity’- Paul Madsen
CloudIDSummit
 
Iphone client-server app with Rails backend (v3)
Sujee Maniyam
 
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Shinichi Hirauchi
 
NSCoder Keynote - Multipeer Connectivity Framework
Alex Rupérez
 

What's hot (17)

PPTX
iOS Coding Best Practices
Jean-Luc David
 
PPT
What is Android L ?
E2LOGY
 
PPTX
Apple Watch Intro
Mike Bluestein
 
PDF
Watch kit
Nagamine Hiromasa
 
PPTX
Kwikset 925 kevo single cylinder bluetooth enabled deadbolt
bestwirelesschargers
 
PPTX
Reply Netcamp PoliTo - AWS IoT - Grohe and Caleffi Case Studies
Andrea Mercanti
 
PPTX
Multi-Factor Auth in Alexa Skills - Faisal Valli
Oscar Merry
 
PPT
Intro to MonoTouch
mikebluestein
 
PPTX
Embedding Messages and Video Calls in your apps
Cisco DevNet
 
PDF
Video indexer
Rishabh Sharma
 
PDF
Introduction to tvOS app Development !
Snehal Patil
 
PPT
Skyhook mo mo beijing
momobeijing
 
PPTX
Apple Watch Kit trainning slide [team iOS - RikkeiSoft]
Hoang Ngo Anh
 
PPTX
Rapid mobile app development using Ionic framework
Swaminathan Vetri
 
PDF
Developing Windows Phone Apps with the Nokia Imaging SDK
Nick Landry
 
PPTX
Build mobile apps 3 times faster with Firebase
EGANY Tech.
 
KEY
AppBuilder Tour
knightfour
 
iOS Coding Best Practices
Jean-Luc David
 
What is Android L ?
E2LOGY
 
Apple Watch Intro
Mike Bluestein
 
Kwikset 925 kevo single cylinder bluetooth enabled deadbolt
bestwirelesschargers
 
Reply Netcamp PoliTo - AWS IoT - Grohe and Caleffi Case Studies
Andrea Mercanti
 
Multi-Factor Auth in Alexa Skills - Faisal Valli
Oscar Merry
 
Intro to MonoTouch
mikebluestein
 
Embedding Messages and Video Calls in your apps
Cisco DevNet
 
Video indexer
Rishabh Sharma
 
Introduction to tvOS app Development !
Snehal Patil
 
Skyhook mo mo beijing
momobeijing
 
Apple Watch Kit trainning slide [team iOS - RikkeiSoft]
Hoang Ngo Anh
 
Rapid mobile app development using Ionic framework
Swaminathan Vetri
 
Developing Windows Phone Apps with the Nokia Imaging SDK
Nick Landry
 
Build mobile apps 3 times faster with Firebase
EGANY Tech.
 
AppBuilder Tour
knightfour
 
Ad

Similar to Telerik AppBuilder Presentation for TelerikNEXT Conference (20)

PPTX
[Devoxx Morocco 2015] Apache Cordova In Action
Hazem Saleh
 
PPTX
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
Hazem Saleh
 
PPTX
Intro to appcelerator
Mohab El-Shishtawy
 
PDF
Fastlane - Automation and Continuous Delivery for iOS Apps
Sarath C
 
PPTX
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
Hazem Saleh
 
PDF
Full Angular 7 Firebase Authentication System
Digamber Singh
 
PPTX
Apache Cordova In Action
Hazem Saleh
 
PPTX
Nativescript with angular 2
Christoffer Noring
 
PPTX
React Native
Heber Silva
 
PDF
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
PDF
From Backbone to Ember and Back(bone) Again
jonknapp
 
PDF
Playing with parse.com
JUG Genova
 
PPTX
Android CI and Appium
Oren Ashkenazy
 
PDF
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Hazem Saleh
 
PDF
Advanced programing in phonegap
Rakesh Jha
 
PDF
Introduction phonegap
Rakesh Jha
 
PPTX
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
RedBlackTree
 
PDF
From Idea to App (or “How we roll at Small Town Heroes”)
Bramus Van Damme
 
PPTX
Introduction to Apache Cordova (Phonegap)
ejlp12
 
PDF
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
Wim Selles
 
[Devoxx Morocco 2015] Apache Cordova In Action
Hazem Saleh
 
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
Hazem Saleh
 
Intro to appcelerator
Mohab El-Shishtawy
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Sarath C
 
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
Hazem Saleh
 
Full Angular 7 Firebase Authentication System
Digamber Singh
 
Apache Cordova In Action
Hazem Saleh
 
Nativescript with angular 2
Christoffer Noring
 
React Native
Heber Silva
 
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
From Backbone to Ember and Back(bone) Again
jonknapp
 
Playing with parse.com
JUG Genova
 
Android CI and Appium
Oren Ashkenazy
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Hazem Saleh
 
Advanced programing in phonegap
Rakesh Jha
 
Introduction phonegap
Rakesh Jha
 
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
RedBlackTree
 
From Idea to App (or “How we roll at Small Town Heroes”)
Bramus Van Damme
 
Introduction to Apache Cordova (Phonegap)
ejlp12
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
Wim Selles
 
Ad

More from Jen Looper (20)

PPTX
The Last Saree: AI and Material Culture
Jen Looper
 
PPTX
Computer Science for Kids: A Storytelling Approach
Jen Looper
 
PPTX
Staying Fresh and Avoiding Burnout
Jen Looper
 
PPTX
Game On With NativeScript
Jen Looper
 
PPTX
NativeScript and Angular
Jen Looper
 
PPTX
Sharing Code between Web and Mobile Apps
Jen Looper
 
PDF
Beacons, Plants, Boxes
Jen Looper
 
PPTX
Ignite your app development with Angular, NativeScript and Firebase
Jen Looper
 
PPTX
Hackathon Slides
Jen Looper
 
PPTX
Using Beacons in a Mobile App - IoT Nearables
Jen Looper
 
PPT
Swipe Left for NativeScript
Jen Looper
 
PPTX
Angular 2 and NativeScript
Jen Looper
 
PPTX
Crafting an Adventure: The Azure Maya Mystery
Jen Looper
 
PPTX
Re-Building a Tech Community - Post Pandemic!
Jen Looper
 
PPTX
Building a Tech Community in Ten Easy Steps
Jen Looper
 
PPTX
Becoming a Green Developer
Jen Looper
 
PPTX
Azure Static Web Apps
Jen Looper
 
PPTX
Creating a Great Workshop
Jen Looper
 
PPTX
The Ethics of Generative AI: A Humanist's Guide
Jen Looper
 
PPTX
Zero to Hipster with the M.I.K.E. Stack
Jen Looper
 
The Last Saree: AI and Material Culture
Jen Looper
 
Computer Science for Kids: A Storytelling Approach
Jen Looper
 
Staying Fresh and Avoiding Burnout
Jen Looper
 
Game On With NativeScript
Jen Looper
 
NativeScript and Angular
Jen Looper
 
Sharing Code between Web and Mobile Apps
Jen Looper
 
Beacons, Plants, Boxes
Jen Looper
 
Ignite your app development with Angular, NativeScript and Firebase
Jen Looper
 
Hackathon Slides
Jen Looper
 
Using Beacons in a Mobile App - IoT Nearables
Jen Looper
 
Swipe Left for NativeScript
Jen Looper
 
Angular 2 and NativeScript
Jen Looper
 
Crafting an Adventure: The Azure Maya Mystery
Jen Looper
 
Re-Building a Tech Community - Post Pandemic!
Jen Looper
 
Building a Tech Community in Ten Easy Steps
Jen Looper
 
Becoming a Green Developer
Jen Looper
 
Azure Static Web Apps
Jen Looper
 
Creating a Great Workshop
Jen Looper
 
The Ethics of Generative AI: A Humanist's Guide
Jen Looper
 
Zero to Hipster with the M.I.K.E. Stack
Jen Looper
 

Recently uploaded (20)

PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira Júnior
 
PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
PDF
madgavkar20181017ppt McKinsey Presentation.pdf
georgschmitzdoerner
 
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
AbdullahSani29
 
PDF
DevOps & Developer Experience Summer BBQ
AUGNYC
 
PPTX
Smart Infrastructure and Automation through IoT Sensors
Rejig Digital
 
PDF
Chapter 2 Digital Image Fundamentals.pdf
Getnet Tigabie Askale -(GM)
 
PDF
CIFDAQ's Teaching Thursday: Moving Averages Made Simple
CIFDAQ
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
famaw19526
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
PDF
Software Development Company | KodekX
KodekX
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
This slide provides an overview Technology
mineshkharadi333
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira Júnior
 
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
madgavkar20181017ppt McKinsey Presentation.pdf
georgschmitzdoerner
 
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
AbdullahSani29
 
DevOps & Developer Experience Summer BBQ
AUGNYC
 
Smart Infrastructure and Automation through IoT Sensors
Rejig Digital
 
Chapter 2 Digital Image Fundamentals.pdf
Getnet Tigabie Askale -(GM)
 
CIFDAQ's Teaching Thursday: Moving Averages Made Simple
CIFDAQ
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
famaw19526
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
Software Development Company | KodekX
KodekX
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Software Development Methodologies in 2025
KodekX
 
This slide provides an overview Technology
mineshkharadi333
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 

Telerik AppBuilder Presentation for TelerikNEXT Conference

  • 1. AppBuilder in 45 Minutes Jen Looper
  • 2. Jen Looper Developer Advocate, Telerik @jenlooper
  • 3. I <3 mobile apps
  • 4. So, you want to create mobile apps too.
  • 5. Stop the madness! Use your web skills to create a cross-platform hybrid mobile app
  • 7. Telerik AppBuilder can help! Why you'll love Hybrid • True single Codebase for all platforms • Ease of HTM5/CSS/JavaScript • Access to Native APIs • App Store presence & monetization • Users cannot tell the difference
  • 8. AppBuilder under the covers • Uses Apache Cordova • JavaScript proxies to native APIs
  • 9. AppBuilder is… Cross-Platform Mobile Development, simplified! • Developer freedom! • End-to-End tooling • All the backend services you need
  • 10. Your Coding Environment – up to you!
  • 11. Visual Studio Extension Use your favorite IDE to build Sublime Text Plugin
  • 12. Windows Desktop Client Rich Desktop Options
  • 13. The Telerik Platform: platform.telerik.com In-Browser client
  • 14. CLI
  • 15. Create an app using the in-browser AppBuilder Platform in 4 easy steps 1. Create an account at https://platform.telerik.com and sign in
  • 16. Create an app using the in-browser AppBuilder Platform in 4 easy steps 2. Create an app project
  • 17. Create an app using the in-browser AppBuilder Platform in 4 easy steps 3. Create a blank app
  • 18. Create an app using the in-browser AppBuilder Platform in 4 easy steps 4. Add elements to your hybrid project
  • 20. Let’s come back later to the in-browser experience
  • 21. A different workflow 1. Start building your app with the CLI 2. Push to github 3. End up in-browser with code pulled from github
  • 22. Get started with the AppBuilder CLI $appbuilder create hybrid MySampleApp --appid com.ladeezfirstmedia.myKendoSample $cd MySampleApp $appbuilder simulate Creates a basic tabstrip app
  • 23. Try sample apps via the CLI $appbuilder sample clone facebook-api $cd facebook-api $appbuilder simulate Creates a sample facebook-powered app
  • 24. Simulate like crazy $appbuilder simulate Check out your app on all kinds of phones and tablets
  • 25. Really nice tooling! $appbuilder simulate Ensure responsiveness
  • 26. Debug in the browser, track local storage, test connectivity behavior, mock geolocation $appbuilder simulate Leverage Chrome devtools – use what you already know!
  • 27. Test your app in a native emulator $appbuilder emulate ios Or $appbuilder emulate android Or $appbuilder emulate wp8 Get a closer idea of how your app will behave on various platforms
  • 28. Test your app on device $appbuilder build ios –companion Creates a QR code locally for you to test on your phone using the installed Companion App It’s on my iPhone!
  • 29. Test outside the companion app First, get your provisioning sorted out $appbuilder certificate import $appbuilder provision import Then, build for device using your app’s provisioning profile: $appbuilder build ios –my-apps-provisioning-profile Apps in progress
  • 30. Magic stuff: livesync for fast debugging Livesync three ways: 1. On AppBuilder Companion App (3 finger gesture) 2. On built app on device (same) 3. In Simulator (automatically!) Make changes and view quickly without needing to rebuild
  • 31. One more thing… Make apps the way you want.
  • 33. Let’s create a TriviaCrack Clone using Telerik AppBuilder
  • 34. Requirements for “QuizSlam”: 1. Integration with content – we’ll use Quizlet 2. Ability to choose quiz from Quizlet 3. Game Loop – spin to get random number, show 1 question and 4 possible answers, handle correct/incorrect, scorekeeping 4. Navigation – 5 sections 5. Chat (chat button) - TBD 6. Lists of friends with scores (friends button) - TBD 7. Saving Scores (scores button) – entails login and backend integration
  • 36. Disclaimer! This is just one way to build an app in AppBuilder. Do what works for you!
  • 37. 1. Start with the secret sauce! Seed code with: • styles set to my liking • colors ready • fonts installed, • two sample navigation strategies, • optional login code available • modularized code using require.js Tabstrip navigation Drawer navigation available https://github.com/jlooper/Kendo-Seed
  • 38. 2. Adjust colors and set navigation MaterialPalettte.com Tabs Drawer
  • 39. Navigation code <footer data-role="footer"> <div data-role="tabstrip"> <a href="#new"><div class="icon home"></div></a> <a href="#chat"><div class="icon message"></div></a> <a href="#friends"><div class="icon users"></div></a> <a href="#scores"><div class="icon trophy"></div></a> <a href="#menu" data-rel="drawer"><div class="icon menu"></div></a> </div> </div> </footer> We’re going to tackle these 2 bits
  • 40. 3. Override icons and import .woff files to project Icomoon.io app
  • 41. 4a. Code structure – index.html <script src="bower_components/requirejs/require.js" data-main="main.js"></script> Include require.js
  • 42. 4b. Code structure – main.js require.config({ paths: { 'text': 'bower_components/requirejs-text/text' } }); define([ 'app' ], function (app) { … app.init(); } }); Configure require.js
  • 43. 4c. Code structure – app.js define([ 'views/New/New', 'views/Spin/Spin', 'views/Home/Home', 'views/Scores/Scores', 'views/Auth/Auth’ ], function () { var app = window.app = window.app || {}; var init = function () { app.instance = new kendo.mobile.Application( document.body, { skin: 'flat', loading: "<h1>Please wait...</h1>" } ); }; return { init: init }; }); Define required elements
  • 44. 4d. Code structure – views All views included in /views:
  • 46. 6. Quizlet integration In New.js (start screen): • set initial quiz id in localStorage • grab content of quiz from Quizlet • parse it into Q/A pairs: Data!!
  • 47. 7. Game Loop Time!!! • Spin wheel • pick a random number from quiz set • show that question and 4 possible answers • handle correct/incorrect. • Correct = allow to spin again, Incorrect = show error, stop from continuing. The fun stuff!
  • 48. Pick – Spin - Quiz
  • 49. Demo!
  • 50. 8. Add Backend 1. Add Everlive .min.js to index.html: <script src="bower_components/everlive/min/everlive.all. min.js"></script> 2. Add Login routine, show forms if token not set, otherwise show scores saved in backend 3. In platform.telerik.com, create a Backend Services project associated to your current project 4. Enable Cloud Services and User Management 5. Grab your Api keys and store them locally 6. Create an account and get a token! Now you’re logged in and can pass data around
  • 51. Login/Registration/Forgot Password Works with email services automatically triggered to handle common user administration tasks (forgot password, welcome registration) in backend – all customizable in backend
  • 52. 9. Add Scorekeeping capability Save accuracy scores to backend when user clicks ‘done’ Create a datatype in the backend called ‘Scores’ with a field called ‘Score’ to store the data var Scores = new kendo.data.DataSource({ type: "everlive", transport: { typeName: "Scores" } }); var apiKey = localStorage.getItem("apiKey"); var token = localStorage.getItem("token"); var el = new Everlive({ apiKey: apiKey, url: '//api.everlive.com/v1/', scheme: 'https', token: token }); Prep your code to pass the data
  • 53. Start posting scores! sendScore:function(e){ var score = localStorage.getItem("numCorrect")/localStorage.getItem("numAttempts") //send to backend var data = el.data('Scores'); data.get() .then(function(data){ var data = el.data('Scores'); data.create({ 'Score': score}, function(data){ alert("Score saved!") }, function(error){ alert(JSON.stringify(error)); }); }); } It’s my score
  • 54. Display your scores var data = el.data('Scores'); data.get() .then(function(data){ $("#score-list").kendoListView({ dataSource: Scores, template: kendo.template($("#score- template").html()), }); }); Grab the scores
  • 55. Display your scores <ul id="score-list" data-style="inset" data-role="listview" data-template="score-template"></ul> <script id="score-template" type="text/x-kendo-template"> <li> <div style="padding:5px"> #: kendo.toString(new Date(CreatedAt),'g')# # if (typeof(Score) !== 'undefined') { # Score - #: Score*100 #% # } # </div> </li> </script> Show them on the frontend in a Kendo template
  • 56. Voila! This content type is public, so you see everyone’s scores. You can change this by setting it to private
  • 57. 10. One more thing! Add a Plugin A sample AdMob ad setup Let’s add an AdMob ad 1. Set up an ad in AdMob 2. Add the AdMob Plugin from plugins.telerik.com 3. Add the ad to your view
  • 58. Add plugin via CLI $ appbuilder plugin add "AdMob" …or in browser
  • 59. Deploy time! Let’s move to the in-browser toolset. Migrate your codebase either by: • Committing it from your local to Github and bringing it into the Platform • Zipping your files and importing to Platform
  • 60. View your app in companion app
  • 61. Or in a built app Load up your provisioning profiles for iOS here
  • 62. Manage icons and splash screens
  • 63. Install on your device Here’s that ad
  • 64. Finally, we have an app ready for production! Publish from AppBuilder – send your app to the various stores
  • 65. There is so much more in AppBuilder! • Ask Developer Relations • Ping me! @jenlooper • Read more on TDN (developer.telerik.com) • Visit the blogs (blogs.telerik.com) • Follow us on Twitter @Telerik • Sign up for an account at platform.telerik.com It’s like an awesome smorgasbord!
  • 66. Thank you! Now roll up your sleeves and start building! Jen Looper @jenlooper Developer Advocate Telerik Developer Relations Team Evaluation: http://bit.ly/next-looper-1 No pressure!