SlideShare a Scribd company logo
Brainstorming Creative
Uses of iOS 8 Extensions
CocoaConf Columbus 2014
Doug Sjoquist (@dwsjoquist)
What are they?
Why?
Better experience for
existing users
Why?
Reach new users
Why?
How do they work?
Ars Technica
Explaining iOS 8’s extensions: Opening the platform while keeping it secure
How is this different?
Related ideas
• URL Schemes
• private UIPasteboard
• x-callback-url
• AudioBus
How is this different?
Data driven
How is this different?
Fits into existing
workflows
How is this different?
How do I use them?
User controlled
How do I use them?
Component
of regular app
How do I use them?
Limitations
No Background
Processing
Limitations
No callbacks
Limitations
Restricted APIs
Limitations
Constrained
Resources
Limitations
Extension Points
• Today
• Share
• Action
• Photo
Editing
• Document
Provider
• Custom
Keyboard
Constraints — Creativity
• Understand extension point purpose
• Identify underlying key capabilities
• Gives us constraints for brainstorming
Today
Extension Points
Purpose
Quick access
to timely,
pertinent information
Key Capabilities
• Update availability of data in
background via containing app
• Visible in Today view and lock screen
• No keyboard access
Example
Share
Extension Points
Purpose
Convenient way
to post content
Key Capabilities
• Activation rules
• Supports nonstandard data types
• Manipulate web page with Javascript
Example
Action
Extension Points
Purpose
View or transform content in
context of another app
Key Capabilities
• Activation rules
• Supports nonstandard data types
• Manipulate web page with Javascript
• Return values to host app
Example
Photo Editing
Extension Points
Purpose
Edit a photo directly
within the Photos app
Key Capabilities
• Work with original image + adjustments
• Can add, edit, or remove adjustments
Example
Document Provider
Extension Points
Purpose
Allow other apps to access the
documents managed
by your app
Key Capabilities
• Import or open files from your server
• Export documents to your server
• Move documents on your server
Example
Custom Keyboard
Extension Points
Purpose
Replaces the system
keyboard for text input
Key Capabilities
• Respond to input events
• Provide plain text at insertion point
• Request open access
Example
Brainstorming
Today ideas
Multiplayer game leader
board updates
Today ideas
Containing app uses
background geofencing to
update when custom widgets
appears / disappears
Share ideas
Company help desk
submission
Share ideas
Personal journal
data collection
Share ideas
Footnote and reference
collector and categorizer
Share ideas
Data collection assistant for
multiple research assistants
to post to shared site
Share ideas
Annotator for custom wiki
Share ideas
Wikipedia reference updater
from source URLs
Share ideas
Shared bookmark
collector and organizer
Share ideas
Camera based
group social game
(scavenger hunt)
Keyboard ideas
Use BLE connection to Mac
App to use its keyboard for
text input
Photo Editing ideas
Selectively cleanup
photo adjustments
Photo Editing ideas
Batch update multiple photos
with watermark, frame, or
other common annotation
Miscellaneous ideas
Create custom content types
as part of an industry
consortium
(e.g. AgileBits
1Password example)
Miscellaneous ideas
Take advantage of
background NSURLSession
completion response to act as
callbacks into your app to do
further background
processing
Your ideas?
Thank you
CocoaConf Columbus 2014
Doug Sjoquist (@dwsjoquist)
http://sunetos.com/cocoaconf/Extensions_
CocoaConfColumbus2014.zip

More Related Content

Similar to Brainstorming Creative Uses of iOS 8 Extensions / CocoaConf Columbus 2014

Docs Like Code
Docs Like CodeDocs Like Code
Docs Like Code
Anne Gentle
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
StreamNative
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
Thomas Daly
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Thomas Daly
 
SplunkLive London 2014 Developer Presentation
SplunkLive London 2014  Developer PresentationSplunkLive London 2014  Developer Presentation
SplunkLive London 2014 Developer Presentation
Damien Dallimore
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018
Den Delimarsky
 
Share point 2013 cop v4
Share point 2013 cop v4Share point 2013 cop v4
Share point 2013 cop v4
K.Mohamed Faizal
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak Peek
K.Mohamed Faizal
 
Jumpstart Your Web App
Jumpstart Your Web AppJumpstart Your Web App
Jumpstart Your Web App
Harvard Web Working Group
 
Azure Data Studio Extension Development
Azure Data Studio Extension DevelopmentAzure Data Studio Extension Development
Azure Data Studio Extension Development
Drew Skwiers-Koballa
 
Share point 2013 new features
Share point 2013 new featuresShare point 2013 new features
Share point 2013 new features
jeanpaulva
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
European Collaboration Summit
 
Intro to the Office UI Fabric
Intro to the Office UI FabricIntro to the Office UI Fabric
Intro to the Office UI Fabric
Thomas Daly
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014
Steven Andrews
 
Choosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring ToolChoosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring Tool
Raghuram Pandurangan
 
CUST-3 Document Management with Share
CUST-3 Document Management with ShareCUST-3 Document Management with Share
CUST-3 Document Management with Share
Alfresco Software
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 
The Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative ScienceThe Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative Science
Rajbahadur Rajput
 
Case study
Case studyCase study
Case study
karan saini
 
Introduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core LibrariesIntroduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core Libraries
Eric Shupps
 

Similar to Brainstorming Creative Uses of iOS 8 Extensions / CocoaConf Columbus 2014 (20)

Docs Like Code
Docs Like CodeDocs Like Code
Docs Like Code
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
SplunkLive London 2014 Developer Presentation
SplunkLive London 2014  Developer PresentationSplunkLive London 2014  Developer Presentation
SplunkLive London 2014 Developer Presentation
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018
 
Share point 2013 cop v4
Share point 2013 cop v4Share point 2013 cop v4
Share point 2013 cop v4
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak Peek
 
Jumpstart Your Web App
Jumpstart Your Web AppJumpstart Your Web App
Jumpstart Your Web App
 
Azure Data Studio Extension Development
Azure Data Studio Extension DevelopmentAzure Data Studio Extension Development
Azure Data Studio Extension Development
 
Share point 2013 new features
Share point 2013 new featuresShare point 2013 new features
Share point 2013 new features
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
 
Intro to the Office UI Fabric
Intro to the Office UI FabricIntro to the Office UI Fabric
Intro to the Office UI Fabric
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014
 
Choosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring ToolChoosing Adobe RoboHelp as Your Help Authoring Tool
Choosing Adobe RoboHelp as Your Help Authoring Tool
 
CUST-3 Document Management with Share
CUST-3 Document Management with ShareCUST-3 Document Management with Share
CUST-3 Document Management with Share
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
The Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative ScienceThe Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative Science
 
Case study
Case studyCase study
Case study
 
Introduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core LibrariesIntroduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core Libraries
 

Recently uploaded

What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
Envertis Software Solutions
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
anfaltahir1010
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 

Recently uploaded (20)

What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 

Brainstorming Creative Uses of iOS 8 Extensions / CocoaConf Columbus 2014

Editor's Notes

  1. Improve experience for existing users reduced steps for user to integrate your app into their workflow
  2. Opportunity to attract new users
  3. http://arstechnica.com/apple/2014/06/explaining-ios-8s-extensions-opening-the-platform-while-keeping-it-secure
  4. URL Schemes (often custom and tied to a specific app, but not always) - private UIPasteboard - extensions are data type driven
  5. extensions are data type driven custom URL Schemes are an alternative but usually tied to a specific app
  6. Could use private pasteboards to copy between two known apps, but supporting existing standard data types lets you fit into existing workflow of unknown apps
  7. iOS manages them through controlled extension points that area always initiated by direct user action
  8. Your app “container app” must provide some functionality beyond just adding extensions Can provide multiple extensions Can be set up to share data between app and extensions
  9. Extensions that require network updates can fire off requests via NSURLSession Completion handlers callbacks are handled in container app
  10. No opportunity for use of things like x-callback-url via URLScheme in extension since container app handles URLScheme callbacks
  11. A few APIs are not available (marked with NS_EXTENSION_UNAVAILABLE) Cannot nest extension/UIActivityController calls
  12. Especially Today widgets (multiple simultaneous extensions may be running) iOS will be quicker to kill off misbehaving extensions than apps
  13. Understand the purpose of each extension point What are the underlying capabilities each makes available Helps give us a framework to brainstorm creative uses
  14. - selective display via specifying supported content types via App Extension Keys - supports nonstandard data types - activation rules may include predefined keys or specify more complex predicate for custom NSItemProvider types - use javascript to manipulate web page
  15. Time to brainstorm
  16. Helpful URLs http://nshipster.com/uiactivityviewcontroller/ https://developer.apple.com/library/ios/qa/qa1587/_index.html http://www.cocoanetics.com/2012/09/fun-with-uti/ https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/understanding_utis/understanding_utis.pdf http://en.wikipedia.org/wiki/Uniform_Type_Identifier http://www.shinobicontrols.com/blog/posts/2014/07/21/ios8-day-by-day-day-2-sharing-extension http://www.shinobicontrols.com/blog/posts/2014/07/29/ios8-day-by-day-day-8-today-extension https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/InfoPlistKeyReference.pdf http://enharmonichq.com/sharing-data-locally-between-ios-apps/ https://github.com/AgileBits/onepassword-app-extension https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensibilityPG.pdf http://arstechnica.com/apple/2014/06/explaining-ios-8s-extensions-opening-the-platform-while-keeping-it-secure/