It has been a long time since the release of jQuery Mobile 1.4, and we have started to get a lot of questions about the status and future of the project. First and foremost, I would like to say that we are very much still alive and working. Looking at the master branch, it may seem like there hasn’t been much happening. That is because we moved our development to a jQuery Mobile 1.5 branch while we worked on some very big breaking changes. This work ended up taking a lot longer than expected which has delayed the release of 1.5-beta more than we would have liked.
With the beta release of jQuery UI 1.12, we are almost ready to release and have just three more widgets to finish work on (see the open Pull Requests for panel, table, and selectmenu). Here is a quick status update of what we have been doing and have coming up in future versions.
We have combined efforts with the jQuery UI team to stop duplicating widgets. We now share the rock solid and newly re-written jQuery UI core. Components from jQuery UI we now incorporate include:
- Core (now broken up into individual micro modules)
- Button
- Checkboxradio
- Controlgroup
- Accordion
- Tabs
- Widget factory
We have made sure all of our widgets now support the core jQuery UI Widget factory methods and options. Included in the new features is a classes
option, which allows complete control over the look of your widgets, which will open up whole new custom theming possibilities. Our work with jQuery UI will continue in future versions. In upcoming versions we will be working to incorporate the remainder of jQuery UI features and widgets (including the ever popular datepicker) into jQuery Mobile. A big step forward for jQuery Mobile will also be the incorporation of the interactions like draggable, droppable, and sortable from jQuery UI.
We have also not forgotten the widgets which are specific to jQuery Mobile. We have completely re-written the navbar and table widgets for 1.5. Continuing the work on auto-enhancement we began in 1.4, the auto-enhancement based on data-role
has been completely rethought from the ground up. It is now a stand-alone module that can work with widgets as well as any function or jQuery method. It is now highly optimized for speed and page reload. In complex pages with lots of enhancement, the auto-enhancements are faster than individual selectors and function calls.
The team has been working hard behind the scenes improving our code quality, testing, and infrastructure. In 1.5 we have cleaned up a lot of our current testing infrastructure and now also share testing infrastructure we developed with jQuery UI. We have also unified our use of AMD and are finishing up sharing a download builder. In the future, we plan to also share a theme and theme roller with jQuery UI. Our plan for theme roller is to both use CSS Chassis and the theme roller they intend to build, separating the theming from the JavaScript libraries.
We have also been looking into how to provide the best possible touch screen support. To this end we have made two major decisions moving forward:
- Looking forward, we are also working to join efforts with PEP (Pointer Events Polyfill) and Hammer.js to improve our gesture support. Hammer.js is a very popular and robust gestures library that will help to improve jQuery Mobile while lowering maintenance costs for the team.
- We will also be removing our vmouse abstraction in favor of PEP, a pointer events polyfill.
Lastly, we would like to address browser support. We have always attempted to support as many browsers as possible, but in order to move forward in the rapidly changing landscape we will be dropping support for many older browsers. Going forward we will support:
- IE 11+
- Chrome Current -1
- Firefox Current -1
- Safari 8+
- iOS 8+
- Android 4+
- Windows Phone 8.1+
We have not removed any workarounds or bug fixes in 1.5, but we will no longer be accepting bug reports against other browsers and will remove workarounds in 1.6.
There are many more changes coming both in 1.5 and future versions, but this gives you an idea of the things that we have been working on and what is coming in the future.