The Role of APIs in Application Development

More people are coming to understand that the PC will constitute just one of several devices that users will rely upon to perform daily computing tasks in the future. Articles such as, “Life in the Post-PC Era” are appearing more and more often because the trend is clear. However, unlike many people, I don’t see the PC going away completely. There really are situations where you need to size and comfort of a larger system. I can’t imagine myself trying to write an entire book on a tablet. If I did, the resulting Repetitive Stress Injury (RSI) would be my own fault. However, the higher reliability and slow rate of technological change also means that my systems will last longer and I won’t be buying them as often. In other words, I’ll continue to use my PC every day, but people won’t be making as much money off of me as I do it. This said, a tablet will figure into my future in performing research and reading technical materials that I would have used a PC to accomplish in the past.

The nature of computing today means that any application you write will need to work on multiple platforms. Users won’t want a unique application for each platform used. Unfortunately, new platforms arrive relatively fast today, so developers of most applications need some method of keeping their applications relevant and useful. Web-based applications are perfect for this use. These applications are the reason I chose to write CSS3 for Dummies and HTML5 Programming with JavaScript For Dummies. These books represent the future of common applications—those used by users every day to perform the mundane tasks of living and business.

When reading these two books, you’ll find a strong emphasis on not reinventing the wheel. In fact, a lot of developers are now finding that their work is greatly simplified when they rely on third party Application Programming Interfaces (APIs) to perform at least some of their work. The stronger emphasis on APIs hasn’t gone unnoticed by the media either. Articles such as, “How the API Movement is Transforming the Telecom Industry” describe how APIs have become central to creating applications for specific industries. In fact, you’ll find targeted articles for API use all over the Internet because APIs have become a really big deal.

I plan to write quite a lot more about APIs because I see them as a way of standardizing application developing, creating more reliable applications, and reducing developer effort in creating the mundane parts of an application. What will eventually happen is that developers will become more creative and APIs will put the art back into the science of creating applications. However, I’d like your input too. What do you see as the role of APIs in the future? What questions do you have about them? Let me know at John@JohnMuellerBooks.com.

 

jQuery 2.0 and My Books

A number of readers who know that I work extensively with jQuery have written to tell me about changes to the support it provides for older versions of browsers. In fact, you can read about these changes in a recent InfoWorld article, “jQuery 2.0 drops support for old versions of Internet Explorer.” The article title is misleading because there are also apparently changes for other browsers such as Firefox and Chrome as well. My advise is to test your application to ensure it actually works as anticipated with the browsers you want to support before you upgrade to jQuery 2.0 in a production environment.

Of course, the concern from readers is that the code in my books will suddenly stop running in their browsers. There is no need for concern. Even though the examples in my latest book have an URL that points to http://code.jquery.com/jquery-latest.js, if you follow the link you’ll find that it actually uses the 1.9.1 version of the library, not the 2.0 version. If you want to be absolutely certain you won’t encounter any problems, you can always change this URL to http://code.jquery.com/jquery-1.9.1.js, which ensures you’ll continue using the 1.9.1 version no matter how the library changes its site.

As to whether I plan to use the new version of the library in upcoming books, it depends on what I see as trends in the market and requests that I receive from readers. As things are now, I probably won’t visit the 2.0 version in my books unless readers specifically request it. Even then, the majority of examples in my books will continue to use the 1.9.1 version until such time as the older browsers it supports lack sufficient market presence to make it a worthwhile tradeoff to continue using the older library. In other words, I’ll continue to support the version of the library that works for most people.

Your input is important to me. If you have a particular preference that differs from what I have stated in this post, please let me know at John@JohnMuellerBooks.com. My goal is to provide books that meet the needs of as many people as is possible. At some point, if enough readers find that the older examples in my books simply don’t work, I’ll do what I usually do and provide updated examples in my blog. Please be sure to let me know your thoughts about third party JavaScript libraries in general and jQuery in specific.

 

The Place of Automation in the User Interface

There was a time that a developer could rely on users to possess a certain level of technical acumen. That’s no longer the case. Most of the people using a device containing a CPU today (I’m including PCs, laptops, tablets, and smartphones here) don’t know anything about how it works and they don’t care to know either. All these people know is that they really must have access to their app. (Some don’t even realize the role data plays in making the app work.) The app can perform myriad tasks—everything from keeping track of the calories they’ve eaten to maintaining the scheduled events for the day. Devices that contain CPUs have become the irreplaceable partner for many people and these devices must work without much concern on the part of the user. In short, the device must provide a superior level of automation or the user simply won’t know how to interact with it.

I was recently watching television and saw a commercial for a Weight Watchers app for mobile devices. In the commercial, a woman exclaims wonder about the new programs that Weight Watchers provides, which include this app for her mobile devices. To track her calories, she simply points her phone at the box containing whatever food she plans to eat and the app tracks the calories for her. The interesting part is that there is no data entry required. As technology continues to progress, you can expect to see more apps of this type. People really don’t want to know anything about your app, how it works, or the cool code you put into it. They want to use the app without thinking about it at all.

Of all the parts of a device that must be automated, the user interface is most important and also the most difficult to create. Users really don’t want to have to think about the interface. Their focus is on the task that the app performs for them. In fact, some e-mails I’ve received recently about my Windows 8 book have driven home the idea that the app must simply work without any thought at all. It’s because of these e-mails (and those for other books I’ve written) that I wrote the article entitled, “Designing Apps with Automation in Mind.” This article points out the essential behaviors that applications must exhibit today to be successful.

On the other side of the fence, I continue to encounter an “old world” philosophy on the part of developers that applications should pack as much as possible into a small space—users will eventually figure out the complexity of the interface provided. Unfortunately, as users become more vocal in requiring IT to meet their demands, these approaches to the user interface will lose out. The next app is a click away and if it does the job of automating the interface better, your app will lose out. Even if there isn’t another app to use, the user will simply ignore the app you’ve provided. The user will rely on an older version or simply not interact with the app if there is no older version. Many organizations have found out the hard way that attempting to force users to interact with an app is bound to fail.

The fact is, to be successful today, a developer must be part psychologist, part graphics artist, and part programming genius. Creating an acceptable interface is no longer good enough, especially when people want to access the same app from more than one device. The interface must be simple, must work well, and must automate as much of the input as possible for the user or it simply won’t succeed. Let me know your thoughts about user interface automation at John@JohnMuellerBooks.com.

 

Developing with CSS3 for Dummies Beta Readers Needed

I’m starting a new book project for a book named CSS3 For Dummies. This is going to be an amazing book for developers who are frustrated reading through Cascading Style Sheets (CSS) books that are created for designers. Instead of focusing on creating new pages with interesting artistic elements, this book is designed around a developer who needs to make a page look professional and easy to navigate in the shortest time possible. Yes, you’ll get all the same sorts of information as those other books provide, but in a form that makes it easy for developers to work with CSS3.

This is a novice level book at the outset, but quickly moves toward intermediate level tasks. You’ll begin by learning the basics of CSS3, with an emphasis on what makes CSS3 unique. However, after you work through this introductory information, the pace quickly changes from other books you might have seen in the past. The book will focus on using third party libraries to create great results quickly. You’ll discover that there are all sorts of tricks you can use to get precisely the kind of presentation you want without spending hours to do it as you would when starting from scratch. The best part about this approach is that the vendor supporting the third party library takes responsibility for ensuring the layouts work on a wide range of platforms with all sorts of browsers; a task that can trip up even the best designer.

I’m assuming that you’ve at least looked at a few Web pages in the past, that you have some idea of what tags are and know the basic tags for a Web page (such as <html>, <head>, and <body>). I’m not assuming very much. You also need to know how to use your computer with some degree of competency. I’m looking for readers of any platform that supports HTML5, JavaScript, and CSS3. If you want to test my code on a smartphone, please do. I’m specifically targeting the Windows, Mac, and Linux platforms with this book, so I’d love to hear from developers in any of these environments.

It’s important to remember that beta readers provide direct input on my books while I’m writing them. In short, you get to help shape the final form of my book. Every beta reader comment is carefully considered and I implement as many of your suggestions as possible. Your input is incredibly important at this phase and unlike many other reader suggestions, you’ll see the results in the final product, rather than as a post on my blog after the fact.

Don’t worry about me bugging you for input. You sign up, I send the manuscript your way, and then, if you choose to provide suggestions on a particular chapter, you send the suggestions back to me. During the author review process (when I answer the questions of all of my editors), I’ll incorporate your suggestions. If you have any desire to work with CSS3 and would like to be a beta reader for this book, ask for details at John@JohnMuellerBooks.com.

 

Using jQuery and jQuery UI to Enhance Web Apps

As I work more and more often with Web apps (applications), rather than Windows-specific applications, I have become aware of the tremendous amount of developer support that’s available for anyone on any platform when creating this application type. It’s possible for someone who works predominantly on the Mac to write code that works just fine for someone who works most of the time on a Windows system. In fact, the entire idea of platform becomes meaningless when working with Web apps. jQuery and jQuery UI are a huge part of the third party support available to anyone writing Web apps. In fact, it’s hard to find Web apps of any size that don’t rely on these two libraries (many examples of smaller applications do exist).

Third party libraries are an exciting part of working with Web apps because they make it possible to create apps that look similar (possibly precisely the same) on a number of platforms without the work usually required to pull this feat off. jQuery and jQuery UI are used quite often in this capacity. In fact, they’re used often enough that I wrote an article about them entitled, “Using jQuery UI to Your Advantage.” Instructions and examples on using these libraries also appear in HTML5 Programming with JavaScript For Dummies. I like these libraries so much that customization instructions for them will appear in an upcoming book, CSS3 for Dummies (work on this book will begin in May—be sure to keep your eyes peeled for further details).

Of course, you might wonder why jQuery and jQuery UI are so successful. My experience is that these libraries are incredibly well written, work with a wide variety of browsers, are well supported, and provide great documentation. Most importantly, the two libraries provide developers with needed functionality and flexibility. It’s possible to create a unique application using just these libraries with well-documented tweaks and event handlers. In short, these two libraries have everything needed to create a successful library—one that everyone will enjoy using.

There are many other libraries available to Web developers and I plan to explore many more of them as time permits. I find it interesting that even if I were to devote myself entirely to working through all of the available libraries, there probably wouldn’t be time to explore them all. That’s why I’d like to know about your favorite library and why you find this particular library so useful. I’m not interested in hearing about something mundane—the library needs to do something special, such as providing functionality not found in other libraries currently available. I’m looking for libraries that are well documented and are used by a wide variety of developers to create great looking Web apps. Let me know about the library of your dreams at John@JohnMuellerBooks.com.