This lightweight mobile framework is based on the popular jQuery library. Developers use jQuery Mobile for mobile website development as well as apps. It’s touch-optimized with a focus on broad compatibility (Android, iOS, Windows Phone, and Blackberry).
Designing is simplified with the ThemeRoller customization toolkit. ThemeRoller offers a lot of tools that make editing themes easy, including drag and drop color and component changes. There are plenty of options for manipulating page layouts, headers and footers, and other design details.
While jQuery Mobile makes it possible to perform complex scripting operations with little code, there are drawbacks. Performance varies by device. For example, jQuery Mobile apps lag noticeably on Android but run more smoothly on iOS.
Although the framework can outperform other mobile websites, it doesn’t outperform native apps. jQuery also lacks the full access to device features offered by other mobile app development tools.
NativeScript aims for a “write once, use everywhere” philosophy and comes very close. It’s an open-source framework for building Android, iOS, and Windows apps. With access to native API, it creates applications that behave like native apps on those platforms. Heavy code reuse between platform versions cuts the overall development time, too.
Being open-source and free lowers the cost of working with NativeScript. Companies see extra savings through shorter development timelines.
NativeScript aims for native performance. In practice, though, users experience some lag when opening apps. Also, critics point out that there are many inefficiencies in the NativeScript core that make debugging unnecessarily complicated.
It’s worth noting that plugins aren’t 100% verified and vary widely in quality. An inexperienced developer could accidentally introduce a vulnerability if they aren’t careful to check every plugin before use.
Facebook created this cross-platform native app development tool for its own use before releasing it to the public in 2015. Like NativeScript it features heavy code reuse, though the philosophy here is “learn once, write everywhere”. Once the tools are learned they can be applied to any platform.
React Native provides the native performance missing with NativeScript. It renders native UI elements for a “true to platform” feel that appeals to device loyalists while being less expensive to develop than a native app.
Real-time reloading leads to a smoother, more responsive development process where users can get faster feedback on changes as they work. This is one of the developer-friendly aspect of React Native that attract its large, active community of developers.
Despite matching native apps in performance, React Native doesn’t fully support all native features yet. Users have to wait for Facebook to add those capabilities. There are generally fewer specialty and custom modules than some frameworks, as well.
The different design styles of Android and iOS will result in unpolished apps if a designer isn’t careful. Navigation is sometimes a little irregular regardless of skill.
Aside from technical considerations, some developers are wary of being totally reliant on Facebook. All signs point to a long future for React Native and Facebook is still putting resources into it, but the platform does still own the license and can theoretically revoke it.
PhoneGap has a healthy library and a robust backend that makes development fast and easy. Developers don’t need specialty skill sets to use it; web development skills will give them access to all the framework’s features. Those qualities combine to make it a great tool for rapid prototyping on a budget.
PhoneGap doesn’t offer a lot of UI widgets, but performance is far and away its biggest limitation. It suffers from noticeably lower performance than other frameworks.
Making the call
There’s no single framework that’s best in every case.
- PhoneGap is great for rapid prototyping, but the performance issues may frustrate end users in the long run.
- React Native and NativeScript take opposite approaches to cross-platform development which should factor into their choice for a specific project.
- jQuery provides slightly lower performance but much wider compatibility, making it useful when end users can be expected to access the app through many kinds of devices.
Try not to go into a project with a favorite framework in mind. Look at the specific needs of the app, consider its purpose and who the end users will be, and discuss options with an experienced developer.
The wrong framework can lead to a frustrating, “square peg in a round hole” development process. The right one saves enough time and money to make it worth a little extra forethought.