Annertech | @markconroy
<?phpfunctionpreprocess_drupalcon($presentation) { if ($drupal && $ionic) { if ($ionic[‘app’] = ‘Megalomaniac’) { create $presentation } }}?>
Annertech | @markconroy
What We'll Talk About Today
● Some background● Drupal as a RESTful API● What is Ionic Framework● Connecting the Dots● Q&A (please go easy on me)
Annertech | @markconroy
Some Background
● I decided to run as a candidate in the 2016 General Election.● I had everything in place ...
Annertech | @markconroy
… except ...
● I needed an app to get my message out to my tens offollowers
● Without one, I wouldn't get elected
Annertech | @markconroy
What is Drupal?
● Drupal is a content management framework● We use it to create content management systems, mostly● It can also be used to ...● Blah● Blah● Blah● Let's skip the boring parts!
Annertech | @markconroy
Drupal as a RESTful API
● In Drupal 8 this is simple● Enable “Serialization” module● Enable “RESTful Web Services” module
– You should have some authentication as well
– HTTP Basic Authentication module comes with core
● Create the views you need
Annertech | @markconroy
You Now Have RESTful Data
● You now have RESTful data● You can consume this for whatever purpose
– Create a headless Drupal site
– Allow it as a canonical source for other sites in your business
– Differentiate a great editor experience from a great front-enduser experience
– Pull it into an app – our goal today!
Annertech | @markconroy
What is Ionic Framework
● A hybrid web app development kit● Based on Cordova and AngularJS● Packages HTML, CSS, and JS into
– Android apps
– iOS apps
● Does NOT create Windows apps● You need a Mac to create the final iOS app(s)
Annertech | @markconroy
What is Ionic Framework
● Comes with LOADS of built-in features– Lists
– Navigation/Tabs
● and classes– This helps apps to have a native look and feel
– Everything can be overridden to give custom look and feel
● Comes with support for SCSS● Has live reload built-in
Annertech | @markconroy
Create a Basic App
● Run 'ionic start [appName] [appStyle]'– appStyle can be
● blank ● tabs● sidemenu
Annertech | @markconroy
Add New Page to your App
1) In www/js/app.js copy one of the states and edit to reflectyour new info
2) Add a menu entry in www/templates/menu.html
3) Create a template file in /templates for your HTML
4) Create a controller for your state (if needed)
Annertech | @markconroy
Create More Pages?
● Repeat the first first steps again– Add a new state
– Add a template (or re-use an existing one)
– Add a menu item
– Eat cake
● But this will only create static content● Each time you try to update your app in App Store or Play
Store you will need to re-submit it
Annertech | @markconroy
Dynamic Content
● The content created to now is static. ● Let's connect it to our Drupal RESTful service from earlier● Means any content updated on the website will automatically
update on the app● Any new content added (such as a news/blog post) will be
added to the list on your app and available for reading● You don’t need to re-submit your app for each new piece of
content
Annertech | @markconroy
Create a single page
● Edit Controller to use the $http service● In my case I have a controller called 'PersonalCtrl'● I use the '$http' service from AngularJS to 'GET' the JSON
data● I then use 'expressions' in my html to situate that data in my
template
Annertech | @markconroy
Create a Listing Page
● Same as for above. ● Edit correct controller● Add in an 'ng-repeat' property to the HTML to show each item
in the list● Add click function to open each item in its own view
Annertech | @markconroy
Build the App
● To build, run:
– ionic build android
– ionic build ios● To test, run:
– ionic emulate android
– ionic emulate ios
Annertech | @markconroy
Deploying the App to Ionic Cloud
● You can deploy to the Ionic server– Register it with Ionic Cloud – www.ionic.io
– The simply run ‘ionic upload’ command
● Ionic View app to preview it and test it● You can send links to this to others to view and test also● Updates to the app can be deployed from here● You can use this as your Push Notification centre, user
authentication center and more
Annertech | @markconroy
Deploying the App to Apple/Google
● Create your developer account● Jump through the hoops● Upload your app● Wait● Have app accepted
Annertech | @markconroy
JOIN US FORCONTRIBUTION SPRINTS
First Time Sprinter Workshop - 9:00-12:00 - Room Wicklow2A
Mentored Core Sprint - 9:00-18:00 - Wicklow Hall 2B
General Sprints - 9:00 - 18:00 - Wicklow Hall 2A
Annertech | @markconroy
WHAT DID YOU THINK?
Evaluate This Session
events.drupal.org/dublin2016/schedule
THANK YOU!
Annertech | @markconroy
Q&A 2 – Push Notifications
● Yes. You can create push notifications. – Ionic Cloud gives you 1,000,000 per month on the starter plan
– Apple store apps want you to use their service● APN – Apple Push Notification
– Google Play apps want you to use their service● Google Cloud Messaging
Annertech | @markconroy
Q&A 3 – Interact with Your Phone
● Yes. Anything that you phone can do, Ionic can interact with– Geolocation
– Camera
– Maps
– Time
– Other apps
Annertech | @markconroy
Q&A 4 – Extending with Plugins
● Yes. You can extend it with custom plugins if you wish● You can also use any cordova plugins that are available
Top Related