Developers are constantly seeking ways to not only improve their apps, but also the processes and methodologies used in iOS app development. In the absence of a crystal ball, we rely on information gleaned from surveys and industry research to help influence our direction and approach to developing iOS apps. Additionally, we use common sense, instinct, and experience to compliment industry research - ultimately determining the right time to adopt a technology or methodology. While research stemming from predictions and “trend-modeling” are fine for a 30,000 view, it is sometimes too broad for the mobile industry and the short attention span of its user-community.
A survey targeted to a group of iOS app developers - as opposed to Longitudinal research - is one is one way of leveraging the cumulative experience of your peers. Longitudinal research is helpful for identifying emerging markets and deciding whether or not to support other devices or target other industries.
Peer surveys, such as the recent Q4 2012 Mobile Developer Report from Appcelerator, are more aligned with the current mobile “state-of-the-union.” The Q4 2012 Mobile Developer Report, revealed that the majority of developers polled plan to create cross-platform apps. In the same report, developers predict Facebook will lose its social dominance. This is a bold prediction in the wake of Facebook’s stance on the viability of HTML5 as the framework for mobile app development.
Facebook’s announcement on August 24, 2012, regarding the release of Facebook 5.0 for iOS, and the complete abandonment of HTML5, started a frenzy of debates over the life expectancy of HTML5. The debate over native-vs-HTML5 app development has reached an interesting plateau.
The two camps, pro-HTML5 and pro-native, are beginning to realize the importance of developing heterogeneous iOS apps. That is - iOS apps that combine the distinct advantages of a native app with the versatility of HTML5 apps. According to a past Appcelerator survey, 72% of the developers polled plan to integrate HTML5 into their iOS apps. Integrate refers to the approach of developing a native iOS app and incorporating HTML5 where it makes sense.
Where does it make sense?
Any iOS app that interacts with the web is a natural fit for the heterogeneous approach. An app, for example, that delivers rich and/or dynamic multimedia content can leverage HTML5 to guarantee compatibility across all mobile devices. Considering the competitive nature of mobile app development, and the importance of speed-to-market, the reduction in development time is a compelling reason to use HTML5 whenever possible.
Many apps require frequent updates to support content refreshes and interface updates. Developing heterogeneous iOS app consisting of a native base executable referencing externally located HTML5 content allows the developer to update content “on the fly” without having to go through the App Store approval process.
There are distinct advantages of each approach:
- HTML5 is device independent
- The development lifecycle is reduced
- Content updates become easier to schedule/manage
- HTML5 features (i.e. Geolocation) are comparable
- Supports responsive design concepts
- Internet connectivity not a requirement
- Higher performance for time-sensitive or processor intensive tasks
- 100% compatible with device components (i.e. camera, GPS, microphone)
- Data is secure
Many of the iOS apps we use every day are already using the heterogeneous approach. LinkedIn, the popular social media site for professionals, uses HTML5, backbone.js, and underscore.js along with iOS native code in its iPad app. The developers of the LinkedIn iOS app realized the challenges and limitations of a pure HTML5 app and engineered a solution that leverages the strengths of each approach. You can read the specifics of their approach in the article, LinkedIn For iPad: using local storage for snappy mobile apps.
Unlike Facebook, the LinkedIn developers did not blame HTML5 for the performance issues of their iOS app - but instead, decided which areas of the app needed to be developed in native code.
The three-step approach for designing a heterogeneous iOS app is as follows:
- Define the functional requirements, features, and content for your iOS app.
- Determine which features and/or content require frequent changes, and plan to develop these components using HTML5.
- Determine the areas of the app requiring better performance or security, and plan to compile these components into the base iOS app.
Take advantage of current technologies to support heterogeneous iOS app development. The benefits far outweigh the reasons not to leverage this approach. HTML5 is constantly improving, and the adoption rate is no longer a concern. Every major browser is compatible. Instead of getting caught-up in the native-vs.-HTML5 debate, choose to use both technologies combined to develop the best possible experience for your user community. Make your next mobile app a heterogeneous iOS app.