SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Agenda
• Social - Drupal Meets iOS
• Introductions
• Overview - D8iOS by Michael Smith
• Demo by Vivek V. Pandya
• Q&A
• Drupal in a Can - Chingis Sandanov
• Closing Remarks and Giveaway - Tim
Tonight, we will discuss an open source iOS application for Drupal 8, the latest version of the popular open source CMS framework,
DiOS8
An iOS application for Drupal 8 ReSTful Services
Michael Smith and Vivek V. Panda, PikLips LLC
Why Drupal 8?
New Paradigm of CMS
Framework
Powerful Admin and DevOps
Structure, Tools, Ecosystem
Drupal is the 2nd Most Widely
Used Open Source CMS
Framework
I tried many content management systems — PHPnuke, XOOPs, DotNet Nuke. The reasons I chose Drupal was (1) it is really a framework as opposed to a package
(though there are many distributions), and (2) the developer community is really great. There are over a million Drupal developers worldwide.

In a way, they are like Apple in that each new release reflects the changing times and challenges the developer community. This release is a great example of that. It
overhauls everything from the way that modules and themes are created to the way that core was written. The good news for iOS is that Drupal now integrates
HTTPRequest into core.
Who Uses Drupal?
Many Schools 

(https://groups.drupal.org/education-sites)
Many Governmental Agencies 

(https://groups.drupal.org/government-sites)
Many Large Corporations
Many SMBs
http://topdrops.org/https://www.drupal.com/showcases
Drupal is a very popular open source framework, with over a million developers and over a million websites worldwide. In the Bay Area, many prestigious and high-tech
companies rely upon it.
What has been Missing?
Drupal Mobile Meant
“Responsive Design”
UX Built with Sass (CSS
preprocessor) / Twig (Templating
Engine) / Compass (Framework) /
Symfony2 (IDE)
Mostly a Server Driven UI (until
now)
Drupal was created as a vertically integrated web application, with extensibility built in using modules and themes. This PHP application has its roots in traditional, PC-
oriented HTML/CSS but has changed many times to accommodate new needs. The new version includes many sophisticated tools for developing responsive design
HTML/CSS/Javascript based user interfaces.
What is in it for an iOS Developer?
Drupal 8 ReSTful Interface
Works with Backbone.js,
Angular.js, PhoneGap (DrupalGap),
and iOS (via AFNetworking and
Kyle Browning’s iOS SDK)
Free, Full-featured Backend for
iOS App Development that You
Do Not Have to Code.
Headless Drupal
However, it has gone beyond HTML to provide a complete ReSTful interface in core. Before Drupal 8, this was only possible via modules which made dependency
management problematic. This change opens the door for mobile developers to use Drupal as a complete backend solution without the need to build it. Many call it
headless Drupal, but I prefer to call it faceless Drupal, as the brains of Drupal are still there and of great use.
How?
Drupal Manages Users, Security, and Content via Admin UI
You Design the UX and Get the Content via JSON Objects
All I/O is via the iOS SDK (including parsing) and AFNetworking
Clean Abstraction Layer Between Your App Work and Drupal
Drupal allows iOS developers to create community applications not unlike Facebook, Pinterest or Snapchat without starting from scratch. Drupal profiles all the social
connectivity support - user management, security, and content management. Its administrative services are very sophisticated, and it is readily extensible, with
thousands of modules available.
D8IOS Specifics
CocoaPods Dependency Managerment (https://cocoapods.org/)
Alamofire Software Foundation’s AFNetworking Library (https://github.com/
AFNetworking/AFNetworking)
Kyle Browning’s iOS SDK (https://github.com/kylebrowning/drupal-ios-sdk)
The D8iOS Application (https://github.com/PikLips/D8iOS)
Our application uses an SDK that creates a Drupal specific class of a library that abstracts Apple’s NSURLSession and NSURLConnection into a set of methods specific
to Drupal. CocoaPods dependency management keeps everything in sync.
Kyle’s iOS-SDK DIOSSession Class
Subclass of AFHTTPRequestOperationManager
Drupal Specific (a way to tailor NSURLSession for Drupal)
Maps to Entities, Nodes, Fields, etc. in Drupal
This combination is like a tailor made connection service for iOS to use Drupal.
DIOSSession Example
DIOSSession sendRequset method will add request parameters and headers as per the request type
(i.e GET, POST, PATCH or DELETE ). It will also sign the request with credentials if specified, then
add it to AFHTTPRequestOperationManager’s operation queue.
- (void) sendRequestWithPath:(NSString*)path method:(NSString*)method params:(NSDictionary*)params success:(void (^)
(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation,
NSError *error)) failure
{
...
[localParams setObject:requestFormat forKey:@"_format"];
...
if ( _signRequests ) {
NSURLCredential *credential = [NSURLCredential credentialWithUser:_basicAuthUsername
password:_basicAuthPassword persistence:NSURLCredentialPersistenceNone];
[operation setCredential:credential];
}
...
[self.operationQueue addOperation:operation];
}
APIs are like a piano. All the keys are there; you just need to know how to play them.
APIs
DIOSEntity - CRUD
DIOSView - GET
+ (void) getNodeWithID:(NSString*)eid
success:(void (^)(AFHTTPRequestOperation *operation, id
responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation,
NSError *error)) failure {
[DIOSEntity getEntityWithName:@"node" andID:eid
success:success failure:failure];
}
+ (void) getEntityWithName:(NSString*)name andID:(NSString*)eid
success:(void (^)(AFHTTPRequestOperation *operation, id
responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError
*error)) failure {
NSString *path = [NSString stringWithFormat:@"%@/%@", name,
eid];
[[DIOSSession sharedSession]
sendRequestWithPath:path method:@"GET" params:nil
success:success failure:failure];
While the SDK provides all the basic services, access to AFNetworking is always there to extend the service to new needs.
What is the Catch?
Understanding Drupal Schemas
Dynamic Scenes
Syncing Mobile and Web Release Updates
For now — Drupal 8 RC Issues
Of course, there is still a learning curve and, frankly, Drupal is still changing. RC1 is solid, but integration issues remain. However, most of these will be resolved by the
end of 2015.
Demo Time!
Follow along at - https://github.com/PikLips/D8iOS
You can find the source code on GitHub, and a video of tonight’s meeting, including the demo is on YouTube - https://youtu.be/cZcxr_cSdCE .

Mais conteúdo relacionado

Semelhante a Drupal 8 and iOS - an Open Source App

Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshowTee Malapela
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGapAlex S
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoiceIsaac Christoffersen
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloudwesley chun
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar SlidesDuraSpace
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsSPC Adriatics
 
Getting Started with DrupalGap
Getting Started with DrupalGapGetting Started with DrupalGap
Getting Started with DrupalGapAlex S
 
iOS & Drupal
iOS & DrupaliOS & Drupal
iOS & DrupalFoti Dim
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Jay Epstein
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Jay Epstein
 
Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)Jorge López-Lago
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicagobrockfanning
 
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKHow to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKDominik Renzel
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Angela Byron
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)湯米吳 Tommy Wu
 
Sql on everything with drill
Sql on everything with drillSql on everything with drill
Sql on everything with drillJulien Le Dem
 

Semelhante a Drupal 8 and iOS - an Open Source App (20)

Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile Apps
 
Getting Started with DrupalGap
Getting Started with DrupalGapGetting Started with DrupalGap
Getting Started with DrupalGap
 
iOS & Drupal
iOS & DrupaliOS & Drupal
iOS & Drupal
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)Open event (Drupalcamp Sunderland 2015)
Open event (Drupalcamp Sunderland 2015)
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicago
 
Mukul-Resume
Mukul-ResumeMukul-Resume
Mukul-Resume
 
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKHow to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
 
Sql on everything with drill
Sql on everything with drillSql on everything with drill
Sql on everything with drill
 

Mais de littleMAS

Drupal 8 Point 1 & Membership Survey
Drupal 8 Point 1 & Membership SurveyDrupal 8 Point 1 & Membership Survey
Drupal 8 Point 1 & Membership SurveylittleMAS
 
Automating Drupal Migrations
Automating Drupal MigrationsAutomating Drupal Migrations
Automating Drupal MigrationslittleMAS
 
Drupal 8 Spinathon
Drupal 8 SpinathonDrupal 8 Spinathon
Drupal 8 SpinathonlittleMAS
 
Drupal 8 Beta on GoDaddy Notes
Drupal 8 Beta on GoDaddy NotesDrupal 8 Beta on GoDaddy Notes
Drupal 8 Beta on GoDaddy NoteslittleMAS
 
DrupalCon LA 2015 Review
DrupalCon LA 2015 ReviewDrupalCon LA 2015 Review
DrupalCon LA 2015 ReviewlittleMAS
 
iOS RESTful Library for Drupal 8
iOS RESTful Library for Drupal 8iOS RESTful Library for Drupal 8
iOS RESTful Library for Drupal 8littleMAS
 
Build Mobile Apps Using PhoneGap and Drupal by Tyler Frankenstein
Build Mobile Apps Using PhoneGap and Drupal by Tyler FrankensteinBuild Mobile Apps Using PhoneGap and Drupal by Tyler Frankenstein
Build Mobile Apps Using PhoneGap and Drupal by Tyler FrankensteinlittleMAS
 
Drupal%2 c mobility and m2serve
Drupal%2 c mobility and m2serveDrupal%2 c mobility and m2serve
Drupal%2 c mobility and m2servelittleMAS
 
Drupal for Mobile
Drupal for MobileDrupal for Mobile
Drupal for MobilelittleMAS
 

Mais de littleMAS (9)

Drupal 8 Point 1 & Membership Survey
Drupal 8 Point 1 & Membership SurveyDrupal 8 Point 1 & Membership Survey
Drupal 8 Point 1 & Membership Survey
 
Automating Drupal Migrations
Automating Drupal MigrationsAutomating Drupal Migrations
Automating Drupal Migrations
 
Drupal 8 Spinathon
Drupal 8 SpinathonDrupal 8 Spinathon
Drupal 8 Spinathon
 
Drupal 8 Beta on GoDaddy Notes
Drupal 8 Beta on GoDaddy NotesDrupal 8 Beta on GoDaddy Notes
Drupal 8 Beta on GoDaddy Notes
 
DrupalCon LA 2015 Review
DrupalCon LA 2015 ReviewDrupalCon LA 2015 Review
DrupalCon LA 2015 Review
 
iOS RESTful Library for Drupal 8
iOS RESTful Library for Drupal 8iOS RESTful Library for Drupal 8
iOS RESTful Library for Drupal 8
 
Build Mobile Apps Using PhoneGap and Drupal by Tyler Frankenstein
Build Mobile Apps Using PhoneGap and Drupal by Tyler FrankensteinBuild Mobile Apps Using PhoneGap and Drupal by Tyler Frankenstein
Build Mobile Apps Using PhoneGap and Drupal by Tyler Frankenstein
 
Drupal%2 c mobility and m2serve
Drupal%2 c mobility and m2serveDrupal%2 c mobility and m2serve
Drupal%2 c mobility and m2serve
 
Drupal for Mobile
Drupal for MobileDrupal for Mobile
Drupal for Mobile
 

Último

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 

Último (20)

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 

Drupal 8 and iOS - an Open Source App

  • 1. Agenda • Social - Drupal Meets iOS • Introductions • Overview - D8iOS by Michael Smith • Demo by Vivek V. Pandya • Q&A • Drupal in a Can - Chingis Sandanov • Closing Remarks and Giveaway - Tim Tonight, we will discuss an open source iOS application for Drupal 8, the latest version of the popular open source CMS framework,
  • 2. DiOS8 An iOS application for Drupal 8 ReSTful Services Michael Smith and Vivek V. Panda, PikLips LLC
  • 3. Why Drupal 8? New Paradigm of CMS Framework Powerful Admin and DevOps Structure, Tools, Ecosystem Drupal is the 2nd Most Widely Used Open Source CMS Framework I tried many content management systems — PHPnuke, XOOPs, DotNet Nuke. The reasons I chose Drupal was (1) it is really a framework as opposed to a package (though there are many distributions), and (2) the developer community is really great. There are over a million Drupal developers worldwide. In a way, they are like Apple in that each new release reflects the changing times and challenges the developer community. This release is a great example of that. It overhauls everything from the way that modules and themes are created to the way that core was written. The good news for iOS is that Drupal now integrates HTTPRequest into core.
  • 4. Who Uses Drupal? Many Schools 
 (https://groups.drupal.org/education-sites) Many Governmental Agencies 
 (https://groups.drupal.org/government-sites) Many Large Corporations Many SMBs http://topdrops.org/https://www.drupal.com/showcases Drupal is a very popular open source framework, with over a million developers and over a million websites worldwide. In the Bay Area, many prestigious and high-tech companies rely upon it.
  • 5. What has been Missing? Drupal Mobile Meant “Responsive Design” UX Built with Sass (CSS preprocessor) / Twig (Templating Engine) / Compass (Framework) / Symfony2 (IDE) Mostly a Server Driven UI (until now) Drupal was created as a vertically integrated web application, with extensibility built in using modules and themes. This PHP application has its roots in traditional, PC- oriented HTML/CSS but has changed many times to accommodate new needs. The new version includes many sophisticated tools for developing responsive design HTML/CSS/Javascript based user interfaces.
  • 6. What is in it for an iOS Developer? Drupal 8 ReSTful Interface Works with Backbone.js, Angular.js, PhoneGap (DrupalGap), and iOS (via AFNetworking and Kyle Browning’s iOS SDK) Free, Full-featured Backend for iOS App Development that You Do Not Have to Code. Headless Drupal However, it has gone beyond HTML to provide a complete ReSTful interface in core. Before Drupal 8, this was only possible via modules which made dependency management problematic. This change opens the door for mobile developers to use Drupal as a complete backend solution without the need to build it. Many call it headless Drupal, but I prefer to call it faceless Drupal, as the brains of Drupal are still there and of great use.
  • 7. How? Drupal Manages Users, Security, and Content via Admin UI You Design the UX and Get the Content via JSON Objects All I/O is via the iOS SDK (including parsing) and AFNetworking Clean Abstraction Layer Between Your App Work and Drupal Drupal allows iOS developers to create community applications not unlike Facebook, Pinterest or Snapchat without starting from scratch. Drupal profiles all the social connectivity support - user management, security, and content management. Its administrative services are very sophisticated, and it is readily extensible, with thousands of modules available.
  • 8. D8IOS Specifics CocoaPods Dependency Managerment (https://cocoapods.org/) Alamofire Software Foundation’s AFNetworking Library (https://github.com/ AFNetworking/AFNetworking) Kyle Browning’s iOS SDK (https://github.com/kylebrowning/drupal-ios-sdk) The D8iOS Application (https://github.com/PikLips/D8iOS) Our application uses an SDK that creates a Drupal specific class of a library that abstracts Apple’s NSURLSession and NSURLConnection into a set of methods specific to Drupal. CocoaPods dependency management keeps everything in sync.
  • 9. Kyle’s iOS-SDK DIOSSession Class Subclass of AFHTTPRequestOperationManager Drupal Specific (a way to tailor NSURLSession for Drupal) Maps to Entities, Nodes, Fields, etc. in Drupal This combination is like a tailor made connection service for iOS to use Drupal.
  • 10. DIOSSession Example DIOSSession sendRequset method will add request parameters and headers as per the request type (i.e GET, POST, PATCH or DELETE ). It will also sign the request with credentials if specified, then add it to AFHTTPRequestOperationManager’s operation queue. - (void) sendRequestWithPath:(NSString*)path method:(NSString*)method params:(NSDictionary*)params success:(void (^) (AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error)) failure { ... [localParams setObject:requestFormat forKey:@"_format"]; ... if ( _signRequests ) { NSURLCredential *credential = [NSURLCredential credentialWithUser:_basicAuthUsername password:_basicAuthPassword persistence:NSURLCredentialPersistenceNone]; [operation setCredential:credential]; } ... [self.operationQueue addOperation:operation]; } APIs are like a piano. All the keys are there; you just need to know how to play them.
  • 11. APIs DIOSEntity - CRUD DIOSView - GET + (void) getNodeWithID:(NSString*)eid success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error)) failure { [DIOSEntity getEntityWithName:@"node" andID:eid success:success failure:failure]; } + (void) getEntityWithName:(NSString*)name andID:(NSString*)eid success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error)) failure { NSString *path = [NSString stringWithFormat:@"%@/%@", name, eid]; [[DIOSSession sharedSession] sendRequestWithPath:path method:@"GET" params:nil success:success failure:failure]; While the SDK provides all the basic services, access to AFNetworking is always there to extend the service to new needs.
  • 12. What is the Catch? Understanding Drupal Schemas Dynamic Scenes Syncing Mobile and Web Release Updates For now — Drupal 8 RC Issues Of course, there is still a learning curve and, frankly, Drupal is still changing. RC1 is solid, but integration issues remain. However, most of these will be resolved by the end of 2015.
  • 13. Demo Time! Follow along at - https://github.com/PikLips/D8iOS You can find the source code on GitHub, and a video of tonight’s meeting, including the demo is on YouTube - https://youtu.be/cZcxr_cSdCE .