Ionic AngularJS Ondrisek

Barbara Ondrisek
Barbara OndrisekCo-Founder & CEO at Chatbots Agency
@electrobabe
Simple Mobile Development
With Ionic
11.5.2016 AngularJS 5/11 @electrobabe
Background
11.5.2016 AngularJS 5/11 @electrobabe
The Challenge
11.5.2016 AngularJS 5/11 @electrobabe
Mobile Development
11.5.2016 AngularJS 5/11 @electrobabe
Many different implementations
11.5.2016 AngularJS 5/11 @electrobabe
Ionic FTW!
11.5.2016 AngularJS 5/11 @electrobabe
AngularJS + mobile first
11.5.2016 AngularJS 5/11 @electrobabe
...add some Cordova
11.5.2016 AngularJS 5/11 @electrobabe
Cross-Platform
11.5.2016 AngularJS 5/11 @electrobabe
Merge together
11.5.2016 AngularJS 5/11 @electrobabe
Hands on Ionic
11.5.2016 AngularJS 5/11 @electrobabe
CLI Basics
$ npm install -g ionic
$ ionic start awesomeApp [tabs|blank|sidemenu]
$ cd awesomeApp
$ ionic serve -–lab
11.5.2016 AngularJS 5/11 @electrobabe
CLI: Add Mobile Platform
$ ionic platform add [ios|android|wp8..]
$ ionic build [target]
$ ionic emulate [target] [--livereload]
$ ionic run [target] [--livereload]
$ ionic resources
11.5.2016 AngularJS 5/11 @electrobabe
Cordova Plugins
$ bower install ngCordova
$ cordova plugin add [
cordova-plugin-device-motion |
cordova-plugin-vibration |
cordova-plugin-nativeaudio |
cordova-plugin-geolocation |
cordova-plugin-appavailability |
cordova-plugin-inappbrowser |
cordova-plugin-statusbar |
cordova-plugin-x-toast |
ionic-plugin-deploy ..]
11.5.2016 AngularJS 5/11 @electrobabe
Ionic Lab
11.5.2016 AngularJS 5/11 @electrobabe
Results
11.5.2016 AngularJS 5/11 @electrobabe
Best Practices
11.5.2016 AngularJS 5/11 @electrobabe
Lessons Learned
11.5.2016 AngularJS 5/11 @electrobabe
Any Questions?
11.5.2016 AngularJS 5/11 @electrobabe
Links
Slides on Slideshare http://de.slideshare.net/barbarao
http://electrobabe.at
http://likeahipster.com
1 of 20

Recommended

JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain) by
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)Barbara Ondrisek
8.8K views42 slides
Anatomy Of Chatbots Users Will Love - Bots Meetup Oslo by
Anatomy Of Chatbots Users Will Love - Bots Meetup OsloAnatomy Of Chatbots Users Will Love - Bots Meetup Oslo
Anatomy Of Chatbots Users Will Love - Bots Meetup OsloBarbara Ondrisek
254 views11 slides
Insights into Chatbot - Development Implementing Cross-Platform Chatbots by
Insights into Chatbot - Development Implementing Cross-Platform ChatbotsInsights into Chatbot - Development Implementing Cross-Platform Chatbots
Insights into Chatbot - Development Implementing Cross-Platform ChatbotsBarbara Ondrisek
733 views37 slides
Lessons learned creating a virtual personality - Botscamp - Ondrisek by
Lessons learned creating  a virtual personality - Botscamp - OndrisekLessons learned creating  a virtual personality - Botscamp - Ondrisek
Lessons learned creating a virtual personality - Botscamp - OndrisekBarbara Ondrisek
738 views13 slides
Privacy Week Ondrisek - Data Security And Privacy Of Chatbots by
Privacy Week Ondrisek - Data Security And Privacy Of ChatbotsPrivacy Week Ondrisek - Data Security And Privacy Of Chatbots
Privacy Week Ondrisek - Data Security And Privacy Of ChatbotsBarbara Ondrisek
710 views18 slides
Ondrisek @ DevTernity "Insights into Chatbot Development - Implementing Cros... by
Ondrisek @ DevTernity  "Insights into Chatbot Development - Implementing Cros...Ondrisek @ DevTernity  "Insights into Chatbot Development - Implementing Cros...
Ondrisek @ DevTernity "Insights into Chatbot Development - Implementing Cros...Barbara Ondrisek
2.5K views25 slides

More Related Content

More from Barbara Ondrisek

Insights into Chatbot Development - Implementing Cross-Platform Chatbots by
Insights into Chatbot Development - Implementing Cross-Platform ChatbotsInsights into Chatbot Development - Implementing Cross-Platform Chatbots
Insights into Chatbot Development - Implementing Cross-Platform ChatbotsBarbara Ondrisek
2K views23 slides
The Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek by
The Austrian Chatbot Ecosystem - Startup Live Brussels - OndrisekThe Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek
The Austrian Chatbot Ecosystem - Startup Live Brussels - OndrisekBarbara Ondrisek
885 views13 slides
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ... by
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...Barbara Ondrisek
736 views16 slides
The Success Story of Mica, the Hipster Cat Bot by
The Success Story of Mica, the Hipster Cat BotThe Success Story of Mica, the Hipster Cat Bot
The Success Story of Mica, the Hipster Cat BotBarbara Ondrisek
230 views24 slides
Ondrisek - Mica, the Hipster Cat Bot - Talkabot by
Ondrisek - Mica, the Hipster Cat Bot - Talkabot Ondrisek - Mica, the Hipster Cat Bot - Talkabot
Ondrisek - Mica, the Hipster Cat Bot - Talkabot Barbara Ondrisek
696 views24 slides
Mica, the Hipster Cat Bot - Elevator Pitch by
Mica, the Hipster Cat Bot - Elevator PitchMica, the Hipster Cat Bot - Elevator Pitch
Mica, the Hipster Cat Bot - Elevator PitchBarbara Ondrisek
590 views15 slides

More from Barbara Ondrisek(9)

Insights into Chatbot Development - Implementing Cross-Platform Chatbots by Barbara Ondrisek
Insights into Chatbot Development - Implementing Cross-Platform ChatbotsInsights into Chatbot Development - Implementing Cross-Platform Chatbots
Insights into Chatbot Development - Implementing Cross-Platform Chatbots
Barbara Ondrisek2K views
The Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek by Barbara Ondrisek
The Austrian Chatbot Ecosystem - Startup Live Brussels - OndrisekThe Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek
The Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek
Barbara Ondrisek885 views
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ... by Barbara Ondrisek
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...
Barbara Ondrisek736 views
The Success Story of Mica, the Hipster Cat Bot by Barbara Ondrisek
The Success Story of Mica, the Hipster Cat BotThe Success Story of Mica, the Hipster Cat Bot
The Success Story of Mica, the Hipster Cat Bot
Barbara Ondrisek230 views
Ondrisek - Mica, the Hipster Cat Bot - Talkabot by Barbara Ondrisek
Ondrisek - Mica, the Hipster Cat Bot - Talkabot Ondrisek - Mica, the Hipster Cat Bot - Talkabot
Ondrisek - Mica, the Hipster Cat Bot - Talkabot
Barbara Ondrisek696 views
Mica, the Hipster Cat Bot - Elevator Pitch by Barbara Ondrisek
Mica, the Hipster Cat Bot - Elevator PitchMica, the Hipster Cat Bot - Elevator Pitch
Mica, the Hipster Cat Bot - Elevator Pitch
Barbara Ondrisek590 views
Simple Mobile Development With Ionic - Ondrisek by Barbara Ondrisek
Simple Mobile Development With Ionic - OndrisekSimple Mobile Development With Ionic - Ondrisek
Simple Mobile Development With Ionic - Ondrisek
Barbara Ondrisek574 views

Recently uploaded

802.11 Computer Networks by
802.11 Computer Networks802.11 Computer Networks
802.11 Computer NetworksTusharChoudhary72015
13 views33 slides
SUMIT SQL PROJECT SUPERSTORE 1.pptx by
SUMIT SQL PROJECT SUPERSTORE 1.pptxSUMIT SQL PROJECT SUPERSTORE 1.pptx
SUMIT SQL PROJECT SUPERSTORE 1.pptxSumit Jadhav
22 views26 slides
Pitchbook Repowerlab.pdf by
Pitchbook Repowerlab.pdfPitchbook Repowerlab.pdf
Pitchbook Repowerlab.pdfVictoriaGaleano
5 views12 slides
Ansari: Practical experiences with an LLM-based Islamic Assistant by
Ansari: Practical experiences with an LLM-based Islamic AssistantAnsari: Practical experiences with an LLM-based Islamic Assistant
Ansari: Practical experiences with an LLM-based Islamic AssistantM Waleed Kadous
7 views29 slides
Renewal Projects in Seismic Construction by
Renewal Projects in Seismic ConstructionRenewal Projects in Seismic Construction
Renewal Projects in Seismic ConstructionEngineering & Seismic Construction
5 views8 slides
_MAKRIADI-FOTEINI_diploma thesis.pptx by
_MAKRIADI-FOTEINI_diploma thesis.pptx_MAKRIADI-FOTEINI_diploma thesis.pptx
_MAKRIADI-FOTEINI_diploma thesis.pptxfotinimakriadi
10 views32 slides

Recently uploaded(20)

SUMIT SQL PROJECT SUPERSTORE 1.pptx by Sumit Jadhav
SUMIT SQL PROJECT SUPERSTORE 1.pptxSUMIT SQL PROJECT SUPERSTORE 1.pptx
SUMIT SQL PROJECT SUPERSTORE 1.pptx
Sumit Jadhav 22 views
Ansari: Practical experiences with an LLM-based Islamic Assistant by M Waleed Kadous
Ansari: Practical experiences with an LLM-based Islamic AssistantAnsari: Practical experiences with an LLM-based Islamic Assistant
Ansari: Practical experiences with an LLM-based Islamic Assistant
M Waleed Kadous7 views
_MAKRIADI-FOTEINI_diploma thesis.pptx by fotinimakriadi
_MAKRIADI-FOTEINI_diploma thesis.pptx_MAKRIADI-FOTEINI_diploma thesis.pptx
_MAKRIADI-FOTEINI_diploma thesis.pptx
fotinimakriadi10 views
Searching in Data Structure by raghavbirla63
Searching in Data StructureSearching in Data Structure
Searching in Data Structure
raghavbirla6314 views
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf by AlhamduKure
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdfASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
AlhamduKure6 views
GDSC Mikroskil Members Onboarding 2023.pdf by gdscmikroskil
GDSC Mikroskil Members Onboarding 2023.pdfGDSC Mikroskil Members Onboarding 2023.pdf
GDSC Mikroskil Members Onboarding 2023.pdf
gdscmikroskil59 views
REACTJS.pdf by ArthyR3
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
ArthyR335 views
fakenews_DBDA_Mar23.pptx by deepmitra8
fakenews_DBDA_Mar23.pptxfakenews_DBDA_Mar23.pptx
fakenews_DBDA_Mar23.pptx
deepmitra816 views
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc... by csegroupvn
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
csegroupvn6 views
Web Dev Session 1.pptx by VedVekhande
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptx
VedVekhande13 views
Design_Discover_Develop_Campaign.pptx by ShivanshSeth6
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptx
ShivanshSeth645 views
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx by lwang78
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
lwang78165 views
Update 42 models(Diode/General ) in SPICE PARK(DEC2023) by Tsuyoshi Horigome
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
Design of machine elements-UNIT 3.pptx by gopinathcreddy
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptx
gopinathcreddy34 views
MongoDB.pdf by ArthyR3
MongoDB.pdfMongoDB.pdf
MongoDB.pdf
ArthyR349 views

Ionic AngularJS Ondrisek

Editor's Notes

  1. Hello! My name is Barbara Ondrisek and today I'm going to give a talk about my experience and best practices with Ionic. I’ve been working as a freelancer for more than 15 years for different companies mostly on Java web projects, but I also like mobile development a lot – especially Android.
  2. I have a strong Java background – I love Java, but I always wanted to keep in touch with the frontend, respectively the frondendS, since apps are also “frontends” of a service. My first “commercial” job was 2001 for Siemens, working on a prototype for a chat client running with J2ME. Since this job in 2001 I fell in love mobile development and I was even more happy after Android came to market 2008 because Android apps are developed in Java. Although I’m a Java developer I was working lately for the Erste Bank on the new version of their netbanking system George and my group there was developing a sub-project in AngularJS.
  3. Over time I developed a couple of Android apps, some commercial as a freelancer, others just for fun and suddenly one of my own apps gained more attention than I expected: The LIKE A HIPSTER app. LIKE A HIPSTER is a fun project I started with a friend and my cat and it became more popular over the first month, more than we expected. Due to severe group pressure and the success of the Android app I had to think about developing an iOS app too. I love to play around with new technologies so I thought – how hard can that possibly be to write an iOS version? So, what about all the other mobile operating systems?
  4. Mobile development is always a fight because there are many different operating systems and devices. And as you might know there is not only the war between the companies themselfes but also one between the customers which phone is better, especially between Android and iOS. When you want to implement the mobile version of your service you have to consider to implement a super-responsive, mobile optimized website too or – what most companies choose - a couple of different native apps for the various OSs...
  5. ...but in the end you might end up with many, many different implementations of the same stuff, which is pretty hard to maintain. So you might develop the same feature in three different teams: the web-team, the Android-team and the iOS-team. Maybe additionally also a Windows-team or a Blackberry-team etc. with a bunch of different code-bases. The cause for this “island-building” is that most developers specialize on a certain language and not many are truly "multilingual", let alone multi-OS. So the solution is...
  6. Ionic is the “beautiful”, free and open source front-end SDK for developing hybrid mobile apps with web technologies for the latest mobile devices. It utilizes the “mobile first” approach and offers a library of mobile-optimized HTML5, CSS and JS components, gestures, and tools for building highly interactive native apps. It uses one code base that is written in...
  7. AngularJS is the self-called "Superheroic JavaScript MVW Framework" - a state of the art JavaScript tool for rich and robust single page web applications that offers a lot that JS alone does not - namely structure. In jQuery-apps the DOM often represents the model, but with Angular the business logic is decoupled from DOM manipulation, which leads to minimal DOM manipulation. Angular calls its principle "Model-View-Whatever": You have a single page app divided into modules such as the login-component, a main screen, sub-screens, the admin-component. Simply speaking: An Angular app is a collection of modules. Angular also offers basic stuff such as: Data binding, scope separation, dependency injection, validators, filters and also Angular-specific stuff like providers, directives, controllers, modules, factories, services.
  8. To make things a little bit more interesting we now can add some native stuff; and this is accomplished with Cordova. Apache Cordova is a tool to access native device APIs and functions, that also supports offline scenarios. More commonly known is Adobe PhoneGap as distribution of Cordova. Core Plugin APIs are: Accelerometer, BatteryStatus, Camera, Capture, Compass, Connection, Contacts, Device-Functions, Events, File-handling and File Transfer, Geolocation, Globalization, InAppBrowser, Media, Notification, Splashscreen, StatusBar, Storage, Vibration. ...so all an app-developer needs and that ...
  9. ...cross-platform focused. By building only one single AngularJS web app with Cordova extensions you now can deliver up to 8 different native mobile apps, namely: Android, iOS, wp8 and windows (8.1, 10, phone 8.1) / blackberry10, Ubuntu (Cordova), firefoxOS, LG webOS, amazon-fireOS and last but not least the browser app itself!
  10. Despite HTML5-functions and the frameworks AngularJS and Cordova, which merge perfectly together, Ionic also offers a platform for integrating services like push notifications and analytics, out of the box SASS-support and great build tools. It is actively developed and continued and there is a huge community around it. It also has a View App to quickly check implementations, live-reload (even on your device) and logging integrated during development. With Ionic you can really fast prototype! And the motto is: Develop once, deploy everywhere.
  11. Ionic comes with a powerful command line interface including build tool: You can use just one command to create, build, test, and deploy your Ionic apps onto any platform. I’ll show you a simple example:
  12. 1. The first command is to install ionic via NPM. From there on you only use the ionic-CLI 2. 2nd command generates a project: You can create an Ionic project using one of ready-made app templates. If generates you an Angular webproject and you can just simply start expanding and altering it! 3. the third opens the webbrowser in the “Ionic Lab” displaying an Android and an iOS view
  13. 1. next you just add the platforms you want 2. now you can use Ionic to build your app 3. ..also to emulate the target environment 4. ..or even to run it on your device in debug mode The two last ones can be run with the optional livereload which is a pretty cool option 5. ionic resources: generates all the various (iOS) icons and splashscreens out of two png-files in all the needed resolutions – which is really pretty handy
  14. Native implementations only make sense with use of device features. You can access these with adding Cordova plugins! First install the ngCordova service Next you can add all the different cordova plugins: Some to access hardware specific features of the phones, some to access app specific stuff and then there is also the deploy plugin.
  15. This is a screenshot of the chrome browser I use when developing the LIKE A HIPSTER app. Instantly you see the differences between the iOS version and the Android version, since Ionic offers adapted CSS files per native implementation. And once you deploy a release it might look like...
  16. Here you see the two variants: iOS and web As you see the iOS version has an adapted status bar color. And the web version looks a little bit different. Here you see the responsive website. Obviously in the web-version all the cordova plugins such as vibration, acceleration etc. are not working.
  17. My personal best practices are: - use WebStorm as IDE instead of text editors for Mobile Development. It includes build tools, highlighting, “debugging” etc - livereload in browser is awesome - release early, release often! - embrace your Beta-testers, they do help a lot
  18. First of all: -iOS developent sucks! It sucks really hard! See my rant “12 things I hate about iOS development” on electrobabe.at https://electrobabe.at/2016/03/29/12-things-i-hate-about-ios-development/ IOS development feels like being squeezed into something super unintuitive and complicated - not very surprising: not everything is working perfectly on native apps, ios different from android or web etc - windows development sucks as well
  19. Slides on Slideshare http://de.slideshare.net/barbarao/we-are-developers-conference-1342016-vienna http://electrobabe.at https://play.google.com/store/apps/details?id=at.chefbabe.hungry https://play.google.com/store/apps/details?id=com.likeahipster.app