Improve this

Mod FAQ

Get answers to frequently asked questions about Mod.

General Questions

What is Mod?

Mod is an open source, client-side MVC application framework powered by standards-based web technologies. With Mod, developers can use their existing HMTL, CSS, and JavaScript skills to assemble quickly single-page applications (SPAs) out of modular user interface components that encapsulate a declarative approach to DOM manipulation, logicless templates, and CSS directives.

Why should I use Mod?

Mod was designed from the ground up to help developers build scalable and maintainable HTML5 applications optimized for today’s and tomorrow’s range of connected devices. The framework provides a simple, structured approach to building and maintaining ambitious single-page web applications or complex user interfaces by following proven software design patterns and promoting a clear separation of concerns. Mod provides reusable components, ubiquitous declarative bindings, functional reactive bindings (FRB), a managed draw cycle (to help minimize expensive browser reflow), and a separation of concerns that facilitates sharing and collaboration. This separation of concerns allows designers to use the technologies they are comfortable with, without having to dig into the JavaScript, and it allows developers to isolate and test individual components using familiar techniques.

Who is using Mod?

Mod is still evolving, but it has been used to create the (temporarily suspended) ScratchPad Chrome browser extension app and the Tips and Tricks application you see when you start up a Chrome notebook for the first time. In addition, several businesses and consultants are currently evaluating Mod for their projects. However, not having powerful client portfolio yet should not keep you from taking a closer look at what you can do with Mod. On the contrary, go check it out, play with it, and let us know what you think. Others already have.

Why can’t I download Mod from your website?

Most framework developers provide you with a download link to code libraries. These code libraries are designed to make a web application developer’s life easier. Unfortunately, they typically also include a lot more functionality than is needed for any given project. Consequently, most web applications tend to include massive libraries that have a lot more parts than the application requires.

Mod takes a different approach to developing web applications. With Mod, you don’t download or link to a prebuilt, kitchensink-style solution in your application. Mod uses the CommonJS module system and is part of the npm package ecosystem. This makes it easy for developers to set up their client-side development environment and organize their code. In development, you supplement your code with the modules and components that provide just the functionality you need. Then, come production time, Mop (the Mod optimizer) sifts through your developer-optimzied experience and includes only those modules and components that are actually required in your final application.

Getting Started

What types of apps can I build with Mod?

Mod is best for building modular single-page “thick-client” web applications for mobile and tablet devices and desktop browsers. You can use Mod for building traditional websites, of course, but it may not be the best fit for that. For examples, check out the sample apps. You can also use Mod for building Chrome browser extensions and native applications that can embed a web component.

How do I get started with Mod?

Check out our Quick Start to get a feel for how to set up your environment and assmeble Mod components into a rich user interface.

What is the total size of the framework?

Mod is not your traditional framework library that you download or include in an app. Building Mod applications is divided into a development phase, during which you assemble your Mod application, and a production phase, during which you minify the app. Only the dependencies and components that you actually use will be optimized and included in the final page that makes up your app. In short: The size will depend on the complexity of your application.

What browsers does Mod support?

Mod is designed to help you build rich and well-performing HTML5 applications that take full advantage of what the evolving web platform has to offer rather than make concessions to older browsers. For this reason, Mod works best in the latest versions of Google Chrome, Firefox, Safari, Chrome Android, Mobile Safari, and IE 10.

Do you support unit testing?

Yes, in Mod we use some pure unit tests that are straighforward Jasmine specs. To install the test code, run npm install in your project folder. You will need the file run-tests.html.

For an example of how we implement unit testing, see the digit repository. (Digit is our touch-optimzed widget set for mobile development.) We use the run-tests page to load our test environment; data-module="test/all" inside the final script tag tells the system to load test/all.js; all.js specifies a list of module ids for the runner to execute. Note that in this example, all the tests load a page in an iframe using TestPageLoader.queueTest(). These are akin to integration tests since they test the component in a real environment. This approach, however, although good for testing full widgets, can get slow when running lots of test pages.

We also test some components by mocking their dependencies; note, however, that we don’t support proper mock unit testing yet.

Can I access the device from a Mod app?

You will be able to access a device when these capabilities are added to a browser. We are actively watching the browser community for such additions.

Do you have release notes or changelogs for the project?

Yes! Please have a look at our archived release notes, which include changelogs and known issues.

How can I file a bug or provide feedback?

You can file bugs in the Mod project on GitHub. For feedback or ideas, create a new issue on GitHub, join us at #montage on IRC, or post questions to our Google Group. You can also follow us on Twitter and Google+.

Licensing

How is Mod licensed?

Mod is open source and released under the BSD license.

Can I use Mod for commercial projects? Do I need to release my Mod applications as open source?

Yes you can, and no you don’t need to. That’s the beauty of BSD-licensed software, you can use it to produce binary applications or services, without releasing the source code. You can modify the BSD-licensed code and use it as you like (redistribute the code in binary or source code format) without having to publish your modifications to anyone.

Can I build and release Mod applications for free?

Of course, you can.

comments powered by Disqus