What's happening in the Adobe Developer Connection

Twitter Bootstrap has become a hugely popular framework for building HTML, CSS and JavaScript front-ends, both for the desktop browser and for mobile. It is one of the most watched and forked repositories on GitHub. Bootstrap includes a number of components, plugins, controls, styles and more to make it easier to quickly build attractive looking and responsive web applications. In her latest article, Adobe evangelist Holly Schinsky runs through a ton of the enormous list of features in Bootstrap. She briefly discusses what each feature is designed to do and then offers a code sample you can easily copy/paste for each. She also discusses Bootstrap’s grid system and how to download and use plugins for the framework. In the end, I think it makes both a great tutorial and a useful quick reference for many of Bootstrap’s features. Be sure to check it out on the ADC.

For anyone who hasn’t yet heard of Adobe Brackets, it is an open-source code editor created by Adobe and hosted on GitHub. While you can download early experimental builds on Brackets, it is early and not everyone may find it yet has all the features they want for every day use. Nonetheless, the team, with the help of an array of contributors from the community, is progressing quickly with new builds and new features.

One of the most exciting things about Brackets is not just that it is open-source but that it is built entirely using web standards technologies such as HTML, CSS and JavaScript. This means that you can actually edit Brackets using Brackets (which I find very meta). More importantly, this also means that anyone with those skills can potentially contribute to the project, create their own extensions and help guide the future of the program. If you are interested in contributing or just curious about how Brackets is built, I highly recommend reading David Deraedt’s new article “An Overview of Brackets’ Code Architecture.” It walks you through how Brackets’ code is organized, some of the conventions used, how it leverages RequireJS for modules and much more. It is both instructional in the sense of seeing how a large scale open source project using web standards is architected but also invaluable if you are interested in digging into the code. So, please, take a moment to check out the article.

On Monday the ADC published the third and final part if Joe Zimmerman‘s JavaScript design pattern series. Design patterns are one of those topics that is, in my mind, incredibly important and useful but can be also incredibly dry and boring. However, Joe, as usual, does a great job of breaking down the concept of specific design patterns into easy-to-understand snippets with sample JavaScript implementation code. The series has covered the singleton, composite, and façade patterns in part 1, the adapter, decorator, and factory patterns in part 2 and finally the proxy, observer and command patterns in part 3. Taken as a whole, the three articles represent a great reference for nine different JavaScript design patterns and should be a nice addition to your developer toolbox.

Semantic HTML is one of those things that, despite it’s value, doesn’t demo well. There’s no flashy animated effects or interaction. For example, I could demo how I replaced a <div> with a <nav> but the resulting page would look and behave exactly the same. The same if I replace something like <div id=”rt4894_sm”> with <div id=”rightpanel”>. In addition, the full value of semantic HTML is often hard to explain. Because of this, you may even still be unfamiliar with what semantic markup is and how to use it. The truth is though, there are a wide variety of ways your web site/application can benefit from semantic markup – this is why a number of new semantic tags were added to HTML5.

Terry Ryan has been an advocate of semantic HTML, even creating a site, along with Raymond Camden, called WhichElement that tries to help you decide when and where to use certain semantic tags. In his latest ADC article, Terry lays out a strong case for why you should care about semantic HTML and the variety of potential benefits of caring about semantics when developing. Terry gives an honest look at the topic, even acknowledging some skepticism about semantic markup. However, to me, that is what makes his argument most compelling – it takes a realistic and pragmatic look at the topic. So, give Terry’s article, “Using Semantic HTML” a read and please feel free to share your thoughts on the topic.

The Adobe Developer Connection (ADC) Write and Give Program gave $1,000 USD to charities in the second quarter of 2012. The program acknowledges the writing efforts of our ADC community authors by making a charitable contribution to a charity for each author who publishes content on the ADC. Each author chooses his or her charity from a list of five preselected charities (listed below).

To date the ADC has donated over $68,000 to these charities through the program in recognition of our ADC authors. To our ADC authors, we thank you for sharing your technical expertise with the greater developer community while helping other communities at the same time!

Read on to find out more about the charities that the program supports, and to see the list of authors for this quarter who made these contributions possible!

* Benetech: Creates new technology solutions that serve humanity and empower people to improve their lives.

* Nature Conservancy: Works to protect ecologically important lands and waters for nature and people.

PhoneGap offers a load of benefits to developers, allowing them to leverage their HTML/CSS/JavaScript development skills to develop cross-platform mobile applications that take advantage of native hardware and OS features. It also allows you to reuse assets and code from existing mobile web applications. However, when creating a PhoneGap application, you don’t want it to look like simply your web page in a native app wrapper but rather to look and behave like an app.

This can be difficult to achieve, but thankfully there are some tools available to help. One of the most recent tools is the App-UI component library created by Adobe developer evangelist Andrew Trice. This HTML/JS library creates an application container that follow common mobile application UI patterns including ViewNavigator, SplitViewNavigator and SlidingView and include methods for pushing and popping views.

If you are interested in learning more about the App-UI library, Andrew has written a great tutorial that shows you how to build a movie listing app using the Rotten Tomatoes API and working with the PhoneGap Build service for generating the native files. I was impressed at how easy Andrew has made it to develop native-like apps using this framework. Check out Andrew’s article, “Creating native-like user experiences in PhoneGap with App-UI,” on the ADC.

Both jQuery Mobile and Ruby on Rails are widely popular frameworks. In part because of the ubiquity of its namesake parent framework, jQuery Mobile has become arguably the most popular framework for building mobile web applications or, in many cases, PhoneGap applications using web standards. Nonetheless, the two frameworks have some rough edges when working together. Thankfully, John Bender shows how all of these rough edges can be smoothed out in his recent article for the ADC.

John is a member of the team here at Adobe that contributes to the development of jQuery Mobile as well as a well-known speaker and OSS contributor. His article shows how to get your JQM/Rails project set up, manage layout, handle form validation, fix potential data attributes conflicts and work with debugging. He has identified these areas specifically as potential pain points in integration but, hopefully, using this article you will not feel the pain. So, if you are using Rails and jQuery Mobile, be sure to give John’s article, “Integrating Rails and jQuery Mobile,” a read.

Anyone who has been programming for some time has come to realize the value of understanding design patterns, regardless of whether or not your background includes a CS degree. In my experience though, I have found that deciphering the definition of a particular design pattern or understanding its use cases can be more difficult than actually coding it. Still, when it gets to implementing the pattern, sometimes translating a pattern from the textbook definition (oftentimes in Java) to whatever language you are working in can be difficult as well.

This is why I am excited about the series of articles Joe Zimmerman is doing for the ADC on implementing common design patterns in JavaScript. Not only does he manage to explain each pattern in easy to understand terms and describes common use cases, but he shows simple examples of how you would implement this pattern using JavaScript. In his most recent article, he covers the adapter, decorator and factory patterns, while his first article covered the singleton, composite and facade patterns. He also has many of these and more posted to his blog.

While you may not require each particular pattern immediately, they are always useful tools to have in your toolbox to use as needed. You also may rely on a framework which uses some of these patterns and understanding the underlying principles can be helpful in your proper use of the framework. Either way, I believe this series of articles (part 3 is coming soon) is well worth reading.

One thing I think everyone can agree on is that there is no shortage of frameworks for JavaScript. Nevertheless, there still seem to be another new framework announced each week. I’ve even tried to track and categorize hundreds of JavaScript frameworks. In my opinion, when choosing a framework one of the key items to consider is the level of community support. This is especially true if you or your development team are not the type of developers who like to delve into the framework source. In this case, having a strong community of users you can turn to for answers and possibly consulting to resolve any issues you encounter can be invaluable.

While a relatively new framework, being released late 2011, Ember.js has garnered a strong following. This could be, in part, because Ember grew out of the popular SproutCore library and was originally SproutCore 2.0 until Ember creators Yehuda Katz and Tom Dale decided to separate the project. As opposed to the widget focus of SproutCore 1.0, Ember is designed to offer a standard architecture for JavaScript applications and easy view templating.

One person who has become a well-known voice in the Ember community is Andy Matthews. That is why I am very excited that he has written a beginner’s guide to Ember for the ADC. If you are interested in learning about Ember or evaluating architectural frameworks for you and your team, you definitely should check it out.

One of the first questions people ask when they are considering adding a new HTML5 feature to their site is: when is it safe to use feature x? In fact, there is, as many of you already know, a site devoted to that specific question. Sometimes the answer is that a specific feature, while exciting, isn’t ready to put into a production application due to limited support across multiple browsers. This does not mean that you can’t learn about it and even come up with cool innovative uses for the API – even building a prototype of your concept.

The Filesystem API is one such cool HTML5 feature that, while powerful, probably isn’t production ready yet (as you can see on When Can I Use, Chrome is the only browser that currently supports this API). Still, Raymond Camden has designed an interesting proof of concept that shows the potential of this new API in his article “Real-world example of the HTML5 FileSystem API.” In the article and associated code, Raymond builds and explains a demo that downloads a zip filled with site assets, unzips them on the client and finally uses the Filesystem API to cache these assets locally for quick loading. It is an interesting proof of concept and, I hope, may spur some further creative uses of this cutting edge HTML5 feature from readers. So, give it a read, you won’t regret it.