SlideShare ist ein Scribd-Unternehmen logo
1 von 77
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Fastest way of creating
Gutenberg blocks
with minimal JavaScript
knowledge
Imran Sayed @imranhsayed
22 Feb 2020
LIVE.
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Need for building custom
Blocks?
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Ways of building blocks
ES5
ES
&
JSX
Next
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Challenges in building blocks
with ES6
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Challenges in building blocks
with ES6
● JavaScript and React have learning curve
● Requires an extra build step for code
transformation
● Tooling around JavaScript could be
intimidating.
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Challenges in building blocks
with ES6
● ES5 without JSX can run straight in the
browser.
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
ES6
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
ES6
● Import Statements
E.g. import { registerBlockType } from
'@wordpress/blocks';
● Arrow Functions.
() => {}
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
React
● Components
<RichText>, <InspectorControls>,
<TextControl>
● Classes
● Hooks
● State management concepts
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
JSX
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
JSX
<p className={ className }>
{ __( ‘Hello World!’, ‘create-block’ ) }
</p>
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
],
"plugins": [
"react-require"
]
}
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
There is so much learn??
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
May give up?
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Is there a simpler way?
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Building blocks with minimal
JavaScript
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Dynamic Blocks
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Building Dynamic blocks with
minimal JavaScript :
1. Using wordpress/create-block
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
@wordpress/create-block
● Officially supported way to create blocks for
registering a block for a WordPress plugin.
● Offers a modern build setup with no
configuration.
● generates PHP, JS, CSS code, and everything
else you need to start the project.
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Generate blocks with create-
block
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
todo-list.php
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
src/index.js
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
2. Using WP-CLI
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Generate blocks with WP-CLI
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
movie.php
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
index.js
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Adding a dynamic block
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Using dynamic Block -
serverSideRender
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Using dynamic Template
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Movies block -
3 latest movies
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Can we build blocks without
using JavaScript?
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM#WCASIA2020
BLOCKS
Answer: Yes
Blocks ( 5.8+ Pro )
ACF Blocks is a PHP
framework that does not
require any JavaScript.
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
● A WordPress plugin.
What is ACF?
● Add extra content fields to edit
screens.
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Building Blocks with ACF
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
WordPress Block API
● Install packages
● Register Block Server
Side
● Register Block Client
Side
Steps Involved
ACF Blocks
● Register Block Server Side
acf_register_block_type()
● Create Fields
● Load the template
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Difference
WordPress Block API ACF Blocks
● Client Side or Server
Side
● Static or Dynamic ● Dynamic
● Server Side
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
ACF Blocks demo
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Building a brands block
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Step 1: Register Block Server
Side
function gt_register_block() {
acf_register_block_type( $settings );
}
add_action( ‘acf/init’, 'gt_register_block' );
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Add Settings
$settings = [
'name' => ‘integration-brands',
'title' => __( ‘Integrations By Brands’
),
'description' => __( ‘Brand block' ),
'render_template' => 'path/to/brands.php',
'icon' => 'images-alt',
'category' => 'formatting',
‘enqueue_style’ => 'path/to/style.css'
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Step 2: Create Fields
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Step 3: Load block template
- brands.php
$block
print_r( $block )
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
print_r( $block )
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
brands.php
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
brands.php
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
brands.php
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
brands.php
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Demo in Editor
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Demo in Front end
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Live Preview and Edit Mode
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
More blocks example
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Creating blocks with
JavaScript Vs ACF
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Block generation and other
tools
● WP-CLI
● @wordpress/create-block
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
Ways of Building Blocks
ES5
ES
&
JSX
Next
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
WordPress Training Program
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM
learn.rtcamp.com
#WCASIA2020
BLOCKS
#WCASIA2020
BLOCKS
LIVESTREAM

Weitere ähnliche Inhalte

Ähnlich wie Fastest Way Of Creating Gutenberg Blocks With Minimal JavaScript Knowledge - Pop-Up Livestream 22nd Feb 2020

Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Yuriy Silvestrov
 
SnapyX
SnapyXSnapyX
SnapyX
ekino
 

Ähnlich wie Fastest Way Of Creating Gutenberg Blocks With Minimal JavaScript Knowledge - Pop-Up Livestream 22nd Feb 2020 (20)

Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
 
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETESKUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES
 
JS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJSJS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJS
 
Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)
 
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter BootstrapFast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
 
Avocode's Sketch plugin
Avocode's Sketch pluginAvocode's Sketch plugin
Avocode's Sketch plugin
 
SnapyX
SnapyXSnapyX
SnapyX
 
SnapyX - ParisJS
SnapyX - ParisJSSnapyX - ParisJS
SnapyX - ParisJS
 
DevDay 2018 - Blazor
DevDay 2018 - BlazorDevDay 2018 - Blazor
DevDay 2018 - Blazor
 
Front Ends for Back End Developers - Spring I/O 2017
Front Ends for Back End Developers - Spring I/O 2017Front Ends for Back End Developers - Spring I/O 2017
Front Ends for Back End Developers - Spring I/O 2017
 
Best Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoBest Practices - By Lofi Dewanto
Best Practices - By Lofi Dewanto
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
 
Building Framework Agnostic UI with Web Components
Building Framework Agnostic UI with Web ComponentsBuilding Framework Agnostic UI with Web Components
Building Framework Agnostic UI with Web Components
 
Jquery
JqueryJquery
Jquery
 
Unleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsUnleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.js
 
Lean frontend development
Lean frontend developmentLean frontend development
Lean frontend development
 
When Cookies Don't Cut It
When Cookies Don't Cut ItWhen Cookies Don't Cut It
When Cookies Don't Cut It
 
The shift to the edge
The shift to the edgeThe shift to the edge
The shift to the edge
 
Cross-platform JavaScript
Cross-platform JavaScriptCross-platform JavaScript
Cross-platform JavaScript
 
Building Custom Visual Composer Elements
Building Custom Visual Composer ElementsBuilding Custom Visual Composer Elements
Building Custom Visual Composer Elements
 

Mehr von Imran Sayed

Digging Into Gutenberg
Digging Into GutenbergDigging Into Gutenberg
Digging Into Gutenberg
Imran Sayed
 

Mehr von Imran Sayed (19)

Docker with WordPress
Docker with WordPressDocker with WordPress
Docker with WordPress
 
Why Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandWhy Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp Finland
 
Custom gutenberg block development in react
Custom gutenberg block development in reactCustom gutenberg block development in react
Custom gutenberg block development in react
 
Harness The Power Of ACF For Gatsby and WordPress
Harness The Power Of ACF For Gatsby and WordPressHarness The Power Of ACF For Gatsby and WordPress
Harness The Power Of ACF For Gatsby and WordPress
 
Improving Your Debugging Skills In WordPress
Improving Your Debugging Skills In WordPressImproving Your Debugging Skills In WordPress
Improving Your Debugging Skills In WordPress
 
Build Modern Web Applications with React and WordPress
Build Modern Web Applications with React and WordPressBuild Modern Web Applications with React and WordPress
Build Modern Web Applications with React and WordPress
 
Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020
 
Digging Into Gutenberg
Digging Into GutenbergDigging Into Gutenberg
Digging Into Gutenberg
 
Why progressive web apps for word press wc-ahemdabad
Why progressive web apps for word press wc-ahemdabadWhy progressive web apps for word press wc-ahemdabad
Why progressive web apps for word press wc-ahemdabad
 
Build fast word press site in react in 30 mins with frontity
Build fast word press site in react in 30 mins   with frontityBuild fast word press site in react in 30 mins   with frontity
Build fast word press site in react in 30 mins with frontity
 
Build Fast WordPress Site With Gatsby
Build Fast WordPress Site With GatsbyBuild Fast WordPress Site With Gatsby
Build Fast WordPress Site With Gatsby
 
Why Progressive Apps For WordPress?
Why Progressive Apps For WordPress?Why Progressive Apps For WordPress?
Why Progressive Apps For WordPress?
 
Custom gutenberg block development with React
Custom gutenberg block development with ReactCustom gutenberg block development with React
Custom gutenberg block development with React
 
SSR with React - Connecting Next.js with WordPress
SSR with React - Connecting Next.js with WordPressSSR with React - Connecting Next.js with WordPress
SSR with React - Connecting Next.js with WordPress
 
React with WordPress : Headless CMS
React with WordPress : Headless CMSReact with WordPress : Headless CMS
React with WordPress : Headless CMS
 
React Workshop: Core concepts of react
React Workshop: Core concepts of reactReact Workshop: Core concepts of react
React Workshop: Core concepts of react
 
Redux workshop
Redux workshopRedux workshop
Redux workshop
 
React workshop
React workshopReact workshop
React workshop
 
Introduction to Gutenberg- Imran Sayed
Introduction to Gutenberg- Imran SayedIntroduction to Gutenberg- Imran Sayed
Introduction to Gutenberg- Imran Sayed
 

Kürzlich hochgeladen

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Kürzlich hochgeladen (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Fastest Way Of Creating Gutenberg Blocks With Minimal JavaScript Knowledge - Pop-Up Livestream 22nd Feb 2020