SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
TextEditor
Designing open source apps
March 24, 2016
San Francisco, Sandstorm Meetup
By Richard Caceres
About Me
● Richard Caceres
● Designer & Developer
● @rchrd2
● http://rchrd.net
● Currently:
○ Archive.org
● Previously
○ Wowlist (co-founder)
○ Cargo Collective
Summary
Free open source software is great. If I want to alter the features, I can just fork it,learn
the code, modify it, build it, upload it, and maintain a fork...
So we can avoid this, let's build customizability into our apps.
Let's also follow a simple set of design principles to create a more cohesive user
experience across apps.
TextEditor is a working example of this approach.
What is "free software"?
● You have the freedom to run the program, for any purpose.
● You have the freedom to modify the program to suit your needs (eg access to
source code).
● You have the freedom to redistribute copies, either gratis or for a fee.
● You have the freedom to distribute modified versions of the program, so that the
community can benefit from your improvements.
(from New Media Reader, intro to The GNU Manifesto by Richard Stallman)
What makes "good" free software?
● It works!
● The features are simple and do not try to do too much.
● The source code is simple and easy to modify.
● It's extensible or configurable.
○ A lot of times this is all that's needed, rather than forking to modify.
○ For example, custom CSS.
Why Sandstorm?
Sandstorm makes it easy to:
● Build your own tools
● Share the tools you build
● Use other open source tools
It's also simpler to have everything on one machine rather than
scattered across many services around the world.
The importance of "design" for apps
● Design ≠ Decoration
● Functional, efficient and ergonomic
● Emotional enjoyment (makes users happy)
● Focus on the tool. Good design is invisible.
● Consistency is also important, because it reduces cognitive load when switching
between applications
Mac OS X
Mac OS X is an example of a cohesive system of apps that use same building blocks for
user interface
● Safari
● Notes
● Mail
● Maps, etc
On the web, Google Apps is another example.
Examples of successful open source design
● Atom Editor
○ Good defaults
○ Extremely customizable
● Processing
○ Simple and intuitive for people learning to program
○ Subtle design choices
● Wekan (for Sandstorm)
○ Very intuitive
○ Feels polished
○ Some customizability (change color, title)
What are some visual guidelines for a Sandstorm application?
● Use a single column
○ Sandstorm places the grain into an iframe within existing columns.
○ The visual hierarchy is too complex with nested column layouts.
○ A single column is also responsive
● Use system fonts when possible
○ eg: "font-family: sans-serif;" or "font-family: monospace;", etc.
○ These look the best whether you're on a Mac, PC, Chromebook, phone, etc.
○ (I break this rule a little for TextEditor, which uses "Menlo, monospace;")
What are some visual guidelines for a Sandstorm application?
● Avoid heavy use of graphics, icons, or other visual elements that overly stylize the
application.
○ The goal is to be simple and strive for the essence of a tool.
○ Strip away ornamentation and focus on functionality.
● Allow user to customize CSS
○ If the application structure is simple, it should be easy for someone to edit the CSS.
○ This allows a user to make the software their own and fit their needs.
If application developers follow these guidelines, this could lead to a cohesive user
experience between Sandstorm applications.
TextEditor, an example of these methods
Github
https://github.com/rchrd2/TextEditor
App market
https://apps.sandstorm.
io/app/n4n49dkfyskmhcmg5h0mfzk4kjvce2j
cs8ravr7y7uw9xs2pzghh
TextEditor's stack
● Sandstorm handles document lifecycle
● Meteor handles real-time data sync and persistence
● Polymer is used for web component building blocks for UI
● CSS Flexbox is used for layout.
Why Polymer (Web Components)?
Framework fatigue
● React
● Ember
● Blaze (Meteor)
● Plain HTML
Re-use the same components across development stacks
It works! See (`static-html`) package for blaze-less Meteor. Not sure if I'll continue to
use it, though. Currently working on a new app in Blaze, but might switch to Polymer.
<paper-drawer-panel disable-swipe="true" disable-edge-swipe="true"
force-narrow right-drawer>
<div drawer class="drawer">
<form>
<div class="drawer-title"><b>Document Settings</b></div>
<!- ... -->
</form>
</div>
<div main class="flex layout vertical">
<textarea id="Textarea"></textarea>
<div class="footer layout horizontal"><!-- ... --></div>
</div>
</paper-drawer-panel>
This is using the "paper-drawer-panel" Polymer Web
Component.
Web Component Example
<html>
<head>
<style>
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; padding: 0;}
body { display: flex; flex-direction: column; }
textarea { flex: 1; width: 100%; }
</style>
</head>
<body>
<textarea>Hello</textarea>
<footer>Footer stuff</footer>
</body>
</html>
Flexbox Example
Sandstorm app technical concerns
● Once you publish, you have to support that version
○ If it was your web service, you could migrate and forget.
○ From here on out, I have to make sure TextEditor supports MongoDB.
● DDP header issues are fixed thanks to Kenton's Accounts-Sanstorm package!
○ Previously handling Sandstorm permissions with Meteor was difficult. Now it is easy.
What's next?
● Make TextEditor more efficient
● Bookmarks app (see next slide)
The end.
● These are my opinions. What do you think?
● TextEditor on Github: https://github.com/rchrd2/TextEditor
● Follow me on Twitter: @rchrd2
● Visit my website: http://rchrd.net
● Thanks!

Más contenido relacionado

Similar a TextEditor - Designing open source apps

Why You Should Use MERN Stack for Startup Apps?
Why You Should Use MERN Stack for Startup Apps?Why You Should Use MERN Stack for Startup Apps?
Why You Should Use MERN Stack for Startup Apps?Pixel Crayons
 
Top 10 web development tools in 2022
Top 10 web development tools in 2022Top 10 web development tools in 2022
Top 10 web development tools in 2022intouchgroup2
 
Meteor Day - Nov 6 at La Commune
Meteor Day - Nov 6 at La CommuneMeteor Day - Nov 6 at La Commune
Meteor Day - Nov 6 at La CommuneMichael Elfassy
 
Advantages Of Using Django Framework To Build Scalable.pdf
Advantages Of Using Django Framework To Build Scalable.pdfAdvantages Of Using Django Framework To Build Scalable.pdf
Advantages Of Using Django Framework To Build Scalable.pdfMindfire LLC
 
10 Useful Front End Development Tools for Web Apps | 2020
10 Useful Front End Development Tools for Web Apps | 202010 Useful Front End Development Tools for Web Apps | 2020
10 Useful Front End Development Tools for Web Apps | 2020Claritus Consulting
 
React vs angular what to choose for your app
React vs angular what to choose for your appReact vs angular what to choose for your app
React vs angular what to choose for your appConcetto Labs
 
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptxquantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptxsarah david
 
Top 13 best front end web development tools to consider in 2021
Top 13 best front end web development tools to consider in 2021Top 13 best front end web development tools to consider in 2021
Top 13 best front end web development tools to consider in 2021Samaritan InfoTech
 
Advantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworksAdvantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworksKaty Slemon
 
Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...
Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...
Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...Stephane Beladaci
 
Top 12 Front End Technologies to Use In 2024.pdf
Top 12 Front End Technologies to Use In 2024.pdfTop 12 Front End Technologies to Use In 2024.pdf
Top 12 Front End Technologies to Use In 2024.pdfLaura Miller
 
12 Front-End App Development Languages to Consider in 2023
12 Front-End App Development Languages to Consider in 202312 Front-End App Development Languages to Consider in 2023
12 Front-End App Development Languages to Consider in 2023Baek Yongsun
 
GUI toolkits comparison for python
GUI toolkits comparison for pythonGUI toolkits comparison for python
GUI toolkits comparison for pythonDarren Su
 
Comprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptxComprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptx75waytechnologies
 
Node.js vs. python which one is better for your project
Node.js vs. python  which one is better for your project Node.js vs. python  which one is better for your project
Node.js vs. python which one is better for your project Moon Technolabs Pvt. Ltd.
 
Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018Helios Solutions
 
JavaScript Frameworks Popularity
JavaScript Frameworks PopularityJavaScript Frameworks Popularity
JavaScript Frameworks PopularityAlbiorix Technology
 

Similar a TextEditor - Designing open source apps (20)

Why You Should Use MERN Stack for Startup Apps?
Why You Should Use MERN Stack for Startup Apps?Why You Should Use MERN Stack for Startup Apps?
Why You Should Use MERN Stack for Startup Apps?
 
Top 10 web development tools in 2022
Top 10 web development tools in 2022Top 10 web development tools in 2022
Top 10 web development tools in 2022
 
Meteor Day - Nov 6 at La Commune
Meteor Day - Nov 6 at La CommuneMeteor Day - Nov 6 at La Commune
Meteor Day - Nov 6 at La Commune
 
Front end frameworks
Front end frameworksFront end frameworks
Front end frameworks
 
Advantages Of Using Django Framework To Build Scalable.pdf
Advantages Of Using Django Framework To Build Scalable.pdfAdvantages Of Using Django Framework To Build Scalable.pdf
Advantages Of Using Django Framework To Build Scalable.pdf
 
10 Useful Front End Development Tools for Web Apps | 2020
10 Useful Front End Development Tools for Web Apps | 202010 Useful Front End Development Tools for Web Apps | 2020
10 Useful Front End Development Tools for Web Apps | 2020
 
React vs angular what to choose for your app
React vs angular what to choose for your appReact vs angular what to choose for your app
React vs angular what to choose for your app
 
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptxquantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
 
Top 13 best front end web development tools to consider in 2021
Top 13 best front end web development tools to consider in 2021Top 13 best front end web development tools to consider in 2021
Top 13 best front end web development tools to consider in 2021
 
Advantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworksAdvantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworks
 
Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...
Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...
Google’s Internal Memo Leaked "JavaScript is Flawed, Won't Work, and Can't Be...
 
Top 12 Front End Technologies to Use In 2024.pdf
Top 12 Front End Technologies to Use In 2024.pdfTop 12 Front End Technologies to Use In 2024.pdf
Top 12 Front End Technologies to Use In 2024.pdf
 
12 Front-End App Development Languages to Consider in 2023
12 Front-End App Development Languages to Consider in 202312 Front-End App Development Languages to Consider in 2023
12 Front-End App Development Languages to Consider in 2023
 
Meteor
MeteorMeteor
Meteor
 
GUI toolkits comparison for python
GUI toolkits comparison for pythonGUI toolkits comparison for python
GUI toolkits comparison for python
 
Comprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptxComprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptx
 
Node.js vs. python which one is better for your project
Node.js vs. python  which one is better for your project Node.js vs. python  which one is better for your project
Node.js vs. python which one is better for your project
 
Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018
 
MERN PPT
MERN PPTMERN PPT
MERN PPT
 
JavaScript Frameworks Popularity
JavaScript Frameworks PopularityJavaScript Frameworks Popularity
JavaScript Frameworks Popularity
 

Último

Call Girls Jalgaon Just Call 8617370543Top Class Call Girl Service Available
Call Girls Jalgaon Just Call 8617370543Top Class Call Girl Service AvailableCall Girls Jalgaon Just Call 8617370543Top Class Call Girl Service Available
Call Girls Jalgaon Just Call 8617370543Top Class Call Girl Service AvailableNitya salvi
 
Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard ...
Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard  ...Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard  ...
Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard ...nirzagarg
 
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.Nitya salvi
 
The hottest UI and UX Design Trends 2024
The hottest UI and UX Design Trends 2024The hottest UI and UX Design Trends 2024
The hottest UI and UX Design Trends 2024Ilham Brata
 
Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...
Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...
Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...gajnagarg
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...nirzagarg
 
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...Delhi Call girls
 
➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men 🔝Bokaro🔝 Escorts S...
➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men  🔝Bokaro🔝   Escorts S...➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men  🔝Bokaro🔝   Escorts S...
➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men 🔝Bokaro🔝 Escorts S...amitlee9823
 
Sector 104, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 104, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 104, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 104, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...RitikaRoy32
 
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 🔝✔️✔️Delhi Call girls
 
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...amitlee9823
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...SUHANI PANDEY
 
High Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
High Profile Escorts Nerul WhatsApp +91-9930687706, Best ServiceHigh Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
High Profile Escorts Nerul WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...sonalitrivedi431
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
 
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...karishmasinghjnh
 
Q4-W4-SCIENCE-5 power point presentation
Q4-W4-SCIENCE-5 power point presentationQ4-W4-SCIENCE-5 power point presentation
Q4-W4-SCIENCE-5 power point presentationZenSeloveres
 

Último (20)

Call Girls Jalgaon Just Call 8617370543Top Class Call Girl Service Available
Call Girls Jalgaon Just Call 8617370543Top Class Call Girl Service AvailableCall Girls Jalgaon Just Call 8617370543Top Class Call Girl Service Available
Call Girls Jalgaon Just Call 8617370543Top Class Call Girl Service Available
 
Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard ...
Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard  ...Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard  ...
Anamika Escorts Service Darbhanga ❣️ 7014168258 ❣️ High Cost Unlimited Hard ...
 
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
 
The hottest UI and UX Design Trends 2024
The hottest UI and UX Design Trends 2024The hottest UI and UX Design Trends 2024
The hottest UI and UX Design Trends 2024
 
Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...
Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...
Just Call Vip call girls dharamshala Escorts ☎️9352988975 Two shot with one g...
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
 
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
 
➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men 🔝Bokaro🔝 Escorts S...
➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men  🔝Bokaro🔝   Escorts S...➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men  🔝Bokaro🔝   Escorts S...
➥🔝 7737669865 🔝▻ Bokaro Call-girls in Women Seeking Men 🔝Bokaro🔝 Escorts S...
 
Sector 104, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 104, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 104, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 104, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
 
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 🔝✔️✔️
 
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
 
High Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
High Profile Escorts Nerul WhatsApp +91-9930687706, Best ServiceHigh Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
High Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
 
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
 
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
 
Q4-W4-SCIENCE-5 power point presentation
Q4-W4-SCIENCE-5 power point presentationQ4-W4-SCIENCE-5 power point presentation
Q4-W4-SCIENCE-5 power point presentation
 

TextEditor - Designing open source apps

  • 1. TextEditor Designing open source apps March 24, 2016 San Francisco, Sandstorm Meetup By Richard Caceres
  • 2.
  • 3. About Me ● Richard Caceres ● Designer & Developer ● @rchrd2 ● http://rchrd.net ● Currently: ○ Archive.org ● Previously ○ Wowlist (co-founder) ○ Cargo Collective
  • 4. Summary Free open source software is great. If I want to alter the features, I can just fork it,learn the code, modify it, build it, upload it, and maintain a fork... So we can avoid this, let's build customizability into our apps. Let's also follow a simple set of design principles to create a more cohesive user experience across apps. TextEditor is a working example of this approach.
  • 5. What is "free software"? ● You have the freedom to run the program, for any purpose. ● You have the freedom to modify the program to suit your needs (eg access to source code). ● You have the freedom to redistribute copies, either gratis or for a fee. ● You have the freedom to distribute modified versions of the program, so that the community can benefit from your improvements. (from New Media Reader, intro to The GNU Manifesto by Richard Stallman)
  • 6. What makes "good" free software? ● It works! ● The features are simple and do not try to do too much. ● The source code is simple and easy to modify. ● It's extensible or configurable. ○ A lot of times this is all that's needed, rather than forking to modify. ○ For example, custom CSS.
  • 7. Why Sandstorm? Sandstorm makes it easy to: ● Build your own tools ● Share the tools you build ● Use other open source tools It's also simpler to have everything on one machine rather than scattered across many services around the world.
  • 8.
  • 9. The importance of "design" for apps ● Design ≠ Decoration ● Functional, efficient and ergonomic ● Emotional enjoyment (makes users happy) ● Focus on the tool. Good design is invisible. ● Consistency is also important, because it reduces cognitive load when switching between applications
  • 10. Mac OS X Mac OS X is an example of a cohesive system of apps that use same building blocks for user interface ● Safari ● Notes ● Mail ● Maps, etc On the web, Google Apps is another example.
  • 11.
  • 12.
  • 13.
  • 14. Examples of successful open source design ● Atom Editor ○ Good defaults ○ Extremely customizable ● Processing ○ Simple and intuitive for people learning to program ○ Subtle design choices ● Wekan (for Sandstorm) ○ Very intuitive ○ Feels polished ○ Some customizability (change color, title)
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. What are some visual guidelines for a Sandstorm application? ● Use a single column ○ Sandstorm places the grain into an iframe within existing columns. ○ The visual hierarchy is too complex with nested column layouts. ○ A single column is also responsive ● Use system fonts when possible ○ eg: "font-family: sans-serif;" or "font-family: monospace;", etc. ○ These look the best whether you're on a Mac, PC, Chromebook, phone, etc. ○ (I break this rule a little for TextEditor, which uses "Menlo, monospace;")
  • 20. What are some visual guidelines for a Sandstorm application? ● Avoid heavy use of graphics, icons, or other visual elements that overly stylize the application. ○ The goal is to be simple and strive for the essence of a tool. ○ Strip away ornamentation and focus on functionality. ● Allow user to customize CSS ○ If the application structure is simple, it should be easy for someone to edit the CSS. ○ This allows a user to make the software their own and fit their needs. If application developers follow these guidelines, this could lead to a cohesive user experience between Sandstorm applications.
  • 21. TextEditor, an example of these methods Github https://github.com/rchrd2/TextEditor App market https://apps.sandstorm. io/app/n4n49dkfyskmhcmg5h0mfzk4kjvce2j cs8ravr7y7uw9xs2pzghh
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. TextEditor's stack ● Sandstorm handles document lifecycle ● Meteor handles real-time data sync and persistence ● Polymer is used for web component building blocks for UI ● CSS Flexbox is used for layout.
  • 29. Why Polymer (Web Components)? Framework fatigue ● React ● Ember ● Blaze (Meteor) ● Plain HTML Re-use the same components across development stacks It works! See (`static-html`) package for blaze-less Meteor. Not sure if I'll continue to use it, though. Currently working on a new app in Blaze, but might switch to Polymer.
  • 30. <paper-drawer-panel disable-swipe="true" disable-edge-swipe="true" force-narrow right-drawer> <div drawer class="drawer"> <form> <div class="drawer-title"><b>Document Settings</b></div> <!- ... --> </form> </div> <div main class="flex layout vertical"> <textarea id="Textarea"></textarea> <div class="footer layout horizontal"><!-- ... --></div> </div> </paper-drawer-panel> This is using the "paper-drawer-panel" Polymer Web Component. Web Component Example
  • 31. <html> <head> <style> * { box-sizing: border-box; } html, body { height: 100%; margin: 0; padding: 0;} body { display: flex; flex-direction: column; } textarea { flex: 1; width: 100%; } </style> </head> <body> <textarea>Hello</textarea> <footer>Footer stuff</footer> </body> </html> Flexbox Example
  • 32.
  • 33. Sandstorm app technical concerns ● Once you publish, you have to support that version ○ If it was your web service, you could migrate and forget. ○ From here on out, I have to make sure TextEditor supports MongoDB. ● DDP header issues are fixed thanks to Kenton's Accounts-Sanstorm package! ○ Previously handling Sandstorm permissions with Meteor was difficult. Now it is easy.
  • 34. What's next? ● Make TextEditor more efficient ● Bookmarks app (see next slide)
  • 35.
  • 36. The end. ● These are my opinions. What do you think? ● TextEditor on Github: https://github.com/rchrd2/TextEditor ● Follow me on Twitter: @rchrd2 ● Visit my website: http://rchrd.net ● Thanks!