SlideShare uma empresa Scribd logo
1 de 13
WordCamp Atlanta 2013



Using WordPress as a Rapid
    Prototyping Engine

        By Drew Morris
What is Rapid Prototyping?

●   3 Rules:
             –   Find the quickest path to UX
             –   Doing is the best type of thinking
             –   Use tools that move at the speed of thought
●   8 hour app idea
●   Great Frameworks:               Ruby on Rails, CodeIgniter, CakePHP,
    Express.js, Bootstrap, LESS, jQuery/jQuery UI, Sencha Touch and Ext.js

●   Great Tools:          Heroku, Sublime Text 2, Easel.io, Jetstrap, and tons of
    others
The Iterative Process
Why use WordPress?

●   Large community
●   User-friendly
●   Many great themes and plugins
●   Turn-key features already built-in
        –   User Management
        –   Login and Registration
        –   Templating System/CMS with awesome UI
        –   Plugins, Widgets and Shortcodes
Planning the App

●   Figure out your plugin structure;
    independent vs interdependent
●   Don't go plugin crazy; plan for the future
●   Keep it simple and comment everything
●   Use abstraction; focus on the business logic
●   Don't bite off more than you can chew
        –   Gravity Forms vs Custom Functionality
        –   Child Themes are cool too
Tools and Frameworks

●   Gravity Forms
●   WP-MVC
●   WP-LESS
●   Roots
●   Pods
●   Piklist
        –   jQuery is to JavaScript as Piklist is to WordPress
        –   Planned UI to build out readable code (think scaffolding)
Using Piklist

parts
        parts/media
        parts/meta-boxes
        parts/settings
        parts/terms
        parts/users
        parts/widgets
             parts/widgets/example-form.php
             parts/widgets/example.php
Piklist Loves Comment Headers

   /*
   Title: My Meta Box
   Description: My cool new meta box
   Post Type: my_post_type
   Capability: manage_options
   Context: normal
   Priority: high
   Order: 1
   Status: published,prequote,repair-quote
   Locked: true
   New: false
   Collapse: true
   */
Really Easy Widget Fields

    parts/widgets/example-form.php
piklist('field', array(
    'type' => 'text',
    'field' => 'demo_text_small',
    'label' => __('Small Text','piklist'),
    'description' => __('Lorem','piklist'),
    'value' => 'Lorem',
    'attributes' => array(
        'class' => 'small-text'
    )
));
Really Easy Widget Display

                parts/widgets/example.php
<?php echo $before_widget; ?>

   <?php echo $before_title; ?>
      php __('Example Widget','piklist'); ?>
   <?php echo $after_title; ?>

   <ul>
      <li>
         <strong><?php __('Small Text','piklist'); ?></strong>
         <?php echo $settings['demo_text_small']; ?>
      </li>
   </ul>

<?php echo $after_widget; ?>
Piklist Demos
Moving beyond WordPress

●   When scaling is an issue
●   Your Prototype != A Finished Product
●   Map out your app architecture from your
    plugins
●   Plan your next move
       –   Decide on technology
       –   Standardize your data
Contact Me

●   Follow me on Twitter @drewry
●   http://startwithm.com
●   http://github.com/drewry
●   http://slideshare.net/DrewMorris
●   http://linkedin.com/in/DrewMorris

Mais conteúdo relacionado

Mais procurados

Responsive Web Design with Bootstrap
Responsive Web Design with BootstrapResponsive Web Design with Bootstrap
Responsive Web Design with Bootstrap
Jason Stehle
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devicesSlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
reebalazs
 
Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)
PiXeL16
 

Mais procurados (20)

Angularjs [Bahasa Indonesia]
Angularjs [Bahasa Indonesia]Angularjs [Bahasa Indonesia]
Angularjs [Bahasa Indonesia]
 
Back to the ng2 Future
Back to the ng2 FutureBack to the ng2 Future
Back to the ng2 Future
 
[JogjaJS] Single Page Application nganggo Angular.js
[JogjaJS] Single Page Application nganggo Angular.js [JogjaJS] Single Page Application nganggo Angular.js
[JogjaJS] Single Page Application nganggo Angular.js
 
Django
DjangoDjango
Django
 
JS Framework Comparison - An infographic
JS Framework Comparison - An infographicJS Framework Comparison - An infographic
JS Framework Comparison - An infographic
 
Angle Forward with TypeScript
Angle Forward with TypeScriptAngle Forward with TypeScript
Angle Forward with TypeScript
 
The Future of ASP.NET
The Future of ASP.NETThe Future of ASP.NET
The Future of ASP.NET
 
Responsive Web Design with Bootstrap
Responsive Web Design with BootstrapResponsive Web Design with Bootstrap
Responsive Web Design with Bootstrap
 
Creating Themes for Clients
Creating Themes for ClientsCreating Themes for Clients
Creating Themes for Clients
 
Kickstart sencha extjs
Kickstart sencha extjsKickstart sencha extjs
Kickstart sencha extjs
 
Twitter bootstrap tutorial
Twitter bootstrap tutorialTwitter bootstrap tutorial
Twitter bootstrap tutorial
 
React JS Belgium Touch Base - React, Flux, React Native
React JS Belgium Touch Base - React, Flux, React NativeReact JS Belgium Touch Base - React, Flux, React Native
React JS Belgium Touch Base - React, Flux, React Native
 
From MVC to Component Based Architecture
From MVC to Component Based ArchitectureFrom MVC to Component Based Architecture
From MVC to Component Based Architecture
 
DNN Database Tips & Tricks
DNN Database Tips & TricksDNN Database Tips & Tricks
DNN Database Tips & Tricks
 
Atomic Design with Next.js
Atomic Design with Next.jsAtomic Design with Next.js
Atomic Design with Next.js
 
Responsive web-design through bootstrap
Responsive web-design through bootstrapResponsive web-design through bootstrap
Responsive web-design through bootstrap
 
Refreshing Your UI with HTML5, Bootstrap and CSS3
Refreshing Your UI with HTML5, Bootstrap and CSS3Refreshing Your UI with HTML5, Bootstrap and CSS3
Refreshing Your UI with HTML5, Bootstrap and CSS3
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devicesSlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
 
JavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceJavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right Choice
 
Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)
 

Semelhante a Using WordPress for Rapid Prototyping

In Act Developers Platform
In Act Developers PlatformIn Act Developers Platform
In Act Developers Platform
Eris Ristemena
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
Mark Fayngersh
 
Adnan Javed Resume
Adnan Javed ResumeAdnan Javed Resume
Adnan Javed Resume
Adnan Javed
 
Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php framework
Bo-Yi Wu
 

Semelhante a Using WordPress for Rapid Prototyping (20)

Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
 
Tanvi resume php
Tanvi resume phpTanvi resume php
Tanvi resume php
 
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
 
Andiappan_Profile
Andiappan_ProfileAndiappan_Profile
Andiappan_Profile
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
 
susanta_resume
susanta_resumesusanta_resume
susanta_resume
 
LvivCSS: Web Components as a foundation for Design System
LvivCSS: Web Components as a foundation for Design SystemLvivCSS: Web Components as a foundation for Design System
LvivCSS: Web Components as a foundation for Design System
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
In Act Developers Platform
In Act Developers PlatformIn Act Developers Platform
In Act Developers Platform
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
Multi-tenancy with Rails
Multi-tenancy with RailsMulti-tenancy with Rails
Multi-tenancy with Rails
 
Developing Custom WordPress Themes for Clients
Developing Custom WordPress Themes for ClientsDeveloping Custom WordPress Themes for Clients
Developing Custom WordPress Themes for Clients
 
An Introduction to Web Components
An Introduction to Web ComponentsAn Introduction to Web Components
An Introduction to Web Components
 
Get things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplicationsGet things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplications
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
 
Adnan Javed Resume
Adnan Javed ResumeAdnan Javed Resume
Adnan Javed Resume
 
Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php framework
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simple
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 

Último

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 

Último (20)

Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 

Using WordPress for Rapid Prototyping

  • 1. WordCamp Atlanta 2013 Using WordPress as a Rapid Prototyping Engine By Drew Morris
  • 2. What is Rapid Prototyping? ● 3 Rules: – Find the quickest path to UX – Doing is the best type of thinking – Use tools that move at the speed of thought ● 8 hour app idea ● Great Frameworks: Ruby on Rails, CodeIgniter, CakePHP, Express.js, Bootstrap, LESS, jQuery/jQuery UI, Sencha Touch and Ext.js ● Great Tools: Heroku, Sublime Text 2, Easel.io, Jetstrap, and tons of others
  • 4. Why use WordPress? ● Large community ● User-friendly ● Many great themes and plugins ● Turn-key features already built-in – User Management – Login and Registration – Templating System/CMS with awesome UI – Plugins, Widgets and Shortcodes
  • 5. Planning the App ● Figure out your plugin structure; independent vs interdependent ● Don't go plugin crazy; plan for the future ● Keep it simple and comment everything ● Use abstraction; focus on the business logic ● Don't bite off more than you can chew – Gravity Forms vs Custom Functionality – Child Themes are cool too
  • 6. Tools and Frameworks ● Gravity Forms ● WP-MVC ● WP-LESS ● Roots ● Pods ● Piklist – jQuery is to JavaScript as Piklist is to WordPress – Planned UI to build out readable code (think scaffolding)
  • 7. Using Piklist parts parts/media parts/meta-boxes parts/settings parts/terms parts/users parts/widgets parts/widgets/example-form.php parts/widgets/example.php
  • 8. Piklist Loves Comment Headers /* Title: My Meta Box Description: My cool new meta box Post Type: my_post_type Capability: manage_options Context: normal Priority: high Order: 1 Status: published,prequote,repair-quote Locked: true New: false Collapse: true */
  • 9. Really Easy Widget Fields parts/widgets/example-form.php piklist('field', array( 'type' => 'text', 'field' => 'demo_text_small', 'label' => __('Small Text','piklist'), 'description' => __('Lorem','piklist'), 'value' => 'Lorem', 'attributes' => array( 'class' => 'small-text' ) ));
  • 10. Really Easy Widget Display parts/widgets/example.php <?php echo $before_widget; ?> <?php echo $before_title; ?> php __('Example Widget','piklist'); ?> <?php echo $after_title; ?> <ul> <li> <strong><?php __('Small Text','piklist'); ?></strong> <?php echo $settings['demo_text_small']; ?> </li> </ul> <?php echo $after_widget; ?>
  • 12. Moving beyond WordPress ● When scaling is an issue ● Your Prototype != A Finished Product ● Map out your app architecture from your plugins ● Plan your next move – Decide on technology – Standardize your data
  • 13. Contact Me ● Follow me on Twitter @drewry ● http://startwithm.com ● http://github.com/drewry ● http://slideshare.net/DrewMorris ● http://linkedin.com/in/DrewMorris