SlideShare una empresa de Scribd logo
1 de 16
A Hybrid Approach
To building mobile applications
Introductions – Adam Larson
• Programmer
• Professor for UWGB (Adjunct)
• Technical Book reviewer for
books about the Unity Engine.
• Shipped more than 50 mobile
products.
• Originally from the Video Game
industry where I shipped 15
titles.
President and CTO of Zymo Interactive –
www.zymo.io
Option Overload
Keep an Eye on React Native
• Does not have a release candidate yet only on 0.34
• Incredible speed improvements over Ionic.
• React Native renders using native components where Ionic renders
using HTML and CSS.
• Still too early for production use (In my opinion)
Why hybrid over native
There is really more to it than just time and money,
but the decision really is usually made based on
them.
The framework you choose needs to enable speed
and quality to save money.
Just know you are sacrificing performance when
choosing a hybrid approach.
Ionic Framework advantages
• Familiar languages (HTML, JavaScript, CSS, SASS)
• Uses Angular out of the box
• Maintained by a very well funded company out of Madison
• Very active open source community
• Tons of already developed plugins that enhance the core Ionic
Framework
• Deploys very quickly to IOS and Android with very little changes
A few notes
• Ionic Framework 2.0 is very close to being released out of Beta
• All of my examples will be based on the latest stable version of
Ionic Framework 1.3
• I will also be using Angular 1.X in my examples
Ionic Creator
bower install ionic-timepicker –save
ionic plugin add xxx --save
https://github.com/rajeshwarpatlolla/ionic-timepicker
bower install ionic-timepicker –save
ionic plugin add xxx --save
https://github.com/rajeshwarpatlolla/ionic-timepicker
ionic plugin vs bower plugin
• Generally used to add native
functionality (camera, gps etc)
• Including –save will add this to
your package.json file
• Calling ionic state reset will
remove all plugins and platforms
and download them again
• Adds angular directives, or
functionality
• Adds the dependencies to
bower.json if –save is included
Plugins you should probably be using
ionic-native-transitions
https://github.com/shprink/ionic-native-transitions
CAUTION: As of a few days ago the main contributor has backed away from the project 
Plugins you should probably be using
cordova-plugin-crosswalk-webview
https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview
More performance tips
• collection-repeat instead of ng-repeat
• Limit number of js files
• Cache all templates using Angular Template Cache to speed up
load times
• Use data-tap-disabled where possible for faster input speeds
• Minify your JavaScript and CSS code using –minify (make sure your
paths are included in the configuration)
Animations
angular.module("app").config(
function ($animateProvider) {
// By default, the $animate service will check for animation styling
// on every structural change. This requires a lot of animateFrame-based
// DOM-inspection. However, we can tell $animate to only check for
// animations on elements that have a specific class name RegExp pattern
// present. In this case, we are requiring the "animated" class.
$animateProvider.classNameFilter(/animated/);
}
)
Thank You!
Time for Some Q/A?
adam.larson@zymo.io
www.zymo.io

Más contenido relacionado

Destacado

привет
приветпривет
привет19Lika74
 
Illustration Portfolio Nikolay Moustakov
Illustration Portfolio   Nikolay MoustakovIllustration Portfolio   Nikolay Moustakov
Illustration Portfolio Nikolay MoustakovNikolay Moustakov
 
Pcnem [linguagens, códigos e suas tecnologias]
Pcnem [linguagens, códigos e suas tecnologias]Pcnem [linguagens, códigos e suas tecnologias]
Pcnem [linguagens, códigos e suas tecnologias]Erica Zibetti
 
Turma Saúde - Curitiba PR 02, 03, 04 dez 2016
Turma Saúde - Curitiba PR  02, 03, 04 dez 2016Turma Saúde - Curitiba PR  02, 03, 04 dez 2016
Turma Saúde - Curitiba PR 02, 03, 04 dez 2016claudiorochamiranda
 
Trailer Planning
Trailer PlanningTrailer Planning
Trailer Planninghayat123
 
Rayan A Daniyal cv 2016
Rayan A Daniyal cv 2016Rayan A Daniyal cv 2016
Rayan A Daniyal cv 2016Fahmi Rais
 
Tipologia textual - Professor Jason Lima
Tipologia textual - Professor Jason LimaTipologia textual - Professor Jason Lima
Tipologia textual - Professor Jason Limajasonrplima
 
FACTORS AFFECTING THE RATE OF PHOTOSYNTHESIS
FACTORS AFFECTING THE RATE OF PHOTOSYNTHESISFACTORS AFFECTING THE RATE OF PHOTOSYNTHESIS
FACTORS AFFECTING THE RATE OF PHOTOSYNTHESISdathan cs
 
κίρα σίνου
κίρα σίνουκίρα σίνου
κίρα σίνουteo70
 
diapositiva
diapositivadiapositiva
diapositivayomiiii
 

Destacado (10)

привет
приветпривет
привет
 
Illustration Portfolio Nikolay Moustakov
Illustration Portfolio   Nikolay MoustakovIllustration Portfolio   Nikolay Moustakov
Illustration Portfolio Nikolay Moustakov
 
Pcnem [linguagens, códigos e suas tecnologias]
Pcnem [linguagens, códigos e suas tecnologias]Pcnem [linguagens, códigos e suas tecnologias]
Pcnem [linguagens, códigos e suas tecnologias]
 
Turma Saúde - Curitiba PR 02, 03, 04 dez 2016
Turma Saúde - Curitiba PR  02, 03, 04 dez 2016Turma Saúde - Curitiba PR  02, 03, 04 dez 2016
Turma Saúde - Curitiba PR 02, 03, 04 dez 2016
 
Trailer Planning
Trailer PlanningTrailer Planning
Trailer Planning
 
Rayan A Daniyal cv 2016
Rayan A Daniyal cv 2016Rayan A Daniyal cv 2016
Rayan A Daniyal cv 2016
 
Tipologia textual - Professor Jason Lima
Tipologia textual - Professor Jason LimaTipologia textual - Professor Jason Lima
Tipologia textual - Professor Jason Lima
 
FACTORS AFFECTING THE RATE OF PHOTOSYNTHESIS
FACTORS AFFECTING THE RATE OF PHOTOSYNTHESISFACTORS AFFECTING THE RATE OF PHOTOSYNTHESIS
FACTORS AFFECTING THE RATE OF PHOTOSYNTHESIS
 
κίρα σίνου
κίρα σίνουκίρα σίνου
κίρα σίνου
 
diapositiva
diapositivadiapositiva
diapositiva
 

Zymo Interactive Presents: Developing Hybrid Apps Using Ionic Framework

  • 1. A Hybrid Approach To building mobile applications
  • 2. Introductions – Adam Larson • Programmer • Professor for UWGB (Adjunct) • Technical Book reviewer for books about the Unity Engine. • Shipped more than 50 mobile products. • Originally from the Video Game industry where I shipped 15 titles. President and CTO of Zymo Interactive – www.zymo.io
  • 4. Keep an Eye on React Native • Does not have a release candidate yet only on 0.34 • Incredible speed improvements over Ionic. • React Native renders using native components where Ionic renders using HTML and CSS. • Still too early for production use (In my opinion)
  • 5. Why hybrid over native There is really more to it than just time and money, but the decision really is usually made based on them. The framework you choose needs to enable speed and quality to save money. Just know you are sacrificing performance when choosing a hybrid approach.
  • 6. Ionic Framework advantages • Familiar languages (HTML, JavaScript, CSS, SASS) • Uses Angular out of the box • Maintained by a very well funded company out of Madison • Very active open source community • Tons of already developed plugins that enhance the core Ionic Framework • Deploys very quickly to IOS and Android with very little changes
  • 7. A few notes • Ionic Framework 2.0 is very close to being released out of Beta • All of my examples will be based on the latest stable version of Ionic Framework 1.3 • I will also be using Angular 1.X in my examples
  • 9. bower install ionic-timepicker –save ionic plugin add xxx --save https://github.com/rajeshwarpatlolla/ionic-timepicker
  • 10. bower install ionic-timepicker –save ionic plugin add xxx --save https://github.com/rajeshwarpatlolla/ionic-timepicker
  • 11. ionic plugin vs bower plugin • Generally used to add native functionality (camera, gps etc) • Including –save will add this to your package.json file • Calling ionic state reset will remove all plugins and platforms and download them again • Adds angular directives, or functionality • Adds the dependencies to bower.json if –save is included
  • 12. Plugins you should probably be using ionic-native-transitions https://github.com/shprink/ionic-native-transitions CAUTION: As of a few days ago the main contributor has backed away from the project 
  • 13. Plugins you should probably be using cordova-plugin-crosswalk-webview https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview
  • 14. More performance tips • collection-repeat instead of ng-repeat • Limit number of js files • Cache all templates using Angular Template Cache to speed up load times • Use data-tap-disabled where possible for faster input speeds • Minify your JavaScript and CSS code using –minify (make sure your paths are included in the configuration)
  • 15. Animations angular.module("app").config( function ($animateProvider) { // By default, the $animate service will check for animation styling // on every structural change. This requires a lot of animateFrame-based // DOM-inspection. However, we can tell $animate to only check for // animations on elements that have a specific class name RegExp pattern // present. In this case, we are requiring the "animated" class. $animateProvider.classNameFilter(/animated/); } )
  • 16. Thank You! Time for Some Q/A? adam.larson@zymo.io www.zymo.io

Notas del editor

  1. I want to do a real high level introduction into Ionic 1.3 and talk about some of the lessons I learned. I’m going to run a few very simple demo’s where I’ll walk through some of the code that is generated and go from there.
  2. Include source in index.html App.js inject dependency Inject into homePageCtrl Add code to open time picker
  3. Include source in index.html App.js inject dependency Inject into homePageCtrl Add code to open time picker
  4. JavaScript transitions can be slow, this overcomes that
  5. Standardizes the WebView to get more consistent performance