The concept was similar to other anonymous social media messaging platforms, like Yik Yak, Secret and Whisper. But when Preetham Reddy, lead developer for RezTech LLC in Phoenix, and his team built the Sipper location-based bulletin app, he learned a few hard lessons—as most fledgling app developers do.
RezTech’s app experience, while not particularly unique, touches on the realities of mobile app development today. First, every developer must weigh multiple tradeoffs:
- Enjoy full app life-cycle support and commercial IDEs, or piece together open-source solutions;
- Choose native, hybrid, Platform-as-a-Service or HTML5-based platforms and widgets;
- Access an ever wider array of device-specific functionality; and
- Create delightful user experiences while managing customer expectations.
Second, the newfound popularity of the messaging layer is just one example of how there is still plenty of Web-based low-hanging fruit available for developers who know how to position apps well and build communities around them.
Third, mobile app development entails inevitable trial-and-error, along with the strategy and endurance to survive it.
Fourth, consumer-focused apps can’t emulate native user experience; they must bake it in.
Read on for 10 tips modern developers should take to heart when aiming for mobile success.
1. Don’t be a PhoneGap #fail: Beware of prototyping on consumers. Apache Cordova, a.k.a. Adobe PhoneGap, uses familiar HTML, CSS and JavaScript; has a rich ecosystem of third-party plug-ins and support; and is a great quick-start for simple applications, according to a recent Gartner report. But it should only be the foundation of a broader HTML5 strategy.
“We wanted to create a quick prototype, so we thought, hey, we’ll use our existing Web skills and dash it out in less than three weeks’ time on PhoneGap,” said Reddy. “But our users had all kinds of problems on lower-end Android phones. PhoneGap had trouble retrieving location information, especially in countries like India. Another thing is native scrolling: pull-down refresh. If you do that using PhoneGap, it’s buggy, laggy and all that. Windows Phone doesn’t support pull-to-refresh or native scrolling. You’re limited by functionalities exposed by the browser, and Internet Explorer in Windows Phone is not good.”
(Related: How to go your own way with development)
One of the biggest misconceptions about PhoneGap is “that you can get an indistinguishable-from-native-apps feel with just HTML5. You can’t,” said Harri Sarsa, head of developer relations for Finnish startup AppGyver, whose Supersonic UI leverages the Ionic CSS framework. “No matter how good your CSS and [JavaScript] tricks are—and they can be quite good nowadays—you always get caught. The app doesn’t feel native when you tap around hard enough.
“One of our main focuses has been on implementing great native navigation, as that’s one of the first things that a user notices. You can have a beautiful home screen built with HTML5, every bit as good as you could do with native coding, but if it lags to open a side menu or it doesn’t follow your finger gesture just right, it can be a very big letdown. With that in mind, we are going to identify more and more areas where HTML5 alone is not enough, and then give those things the necessary native boost. For example, fast-performing infinite lists are on the road map, something that has traditionally been an Achilles’ heel for hybrid apps. Another upcoming thing is logins and user [authentication] done right.”
2. Do a cost-benefit analysis: Will “write once, run anywhere” leverage your coding strengths? Already a Microsoft shop, Reddy and RezTech turned to C#-based Xamarin via the Visual Studio 2014 IDE to create a more robust, cross-platform app—and raise all those one- and two-star ratings they’d received.
“Two months after releasing our app, we were kicking ourselves for not using Xamarin from the start,” he said. “Say it takes 1,000 hours to build a big iOS app; if you build in Xamarin, you can port 80% of that code to Android. The US$2,000 we paid in licensing was worth it, because you end up saving more than 2,000 developer hours over a year.
“At the same time, for startups, $2,000 is a lot of money. That’s why you don’t see a lot of startups doing it. They would rather use that money on marketing. We faced the same issue: Should we spend $6,000 on a license, or go with PhoneGap and invest in marketing?”
For a social app like RezTech’s, which requires an active community to even function, the answer might have been “all of the above.”
3. Don’t reinvent: Enjoy this mobile developer’s market for tools. The mobile dev tool set is booming, with multiple options for write-once, run anywhere C#/Mono code (Xamarin and Norwegian competitor Fuse), a replacement for Objective-C in Apple’s new Swift language, and a dazzling set of Apache Cordova-based platforms, each providing its own widgets and native workarounds for PhoneGap’s flaws. Telerik is another choice for jQuery, Bootstrap, AngularJS and Apache Cordova tooling, as well as the open-source Telerik Kendo UI Core framework.
With that explosion of tools comes a broader array of solutions for every part of the life cycle, addressing ideation, development, testing, deployment, analysis and beyond. “We’re definitely seeing more maturity in the mobile app life cycle,” said Jo Ann Buckner, vice president of Marketing for Xamarin. “A year ago, the conversations were around ‘I need an app’ and ‘How am I going to build that app?’ Now we’re starting to see thinking about how to deal with users in the wild.”
Another trend, she said, is that C# is attracting new mobile developers, not just .NET shops. As mobile devices overtake PCs, it’s only natural that full-featured computer languages will be required to program them.
4. Find flourishing ecosystems: Fill gaps with open source, components and education. Though no platform is future-proof, it’s important to gauge the health of the company and community behind the tools you choose. Xamarin claims same-day support for OS releases, binding all Apple APIs to equivalent .NET constructs, for example, unlike some hybrid platforms that charge extra to unlock additional native functionality.
“It’s baked into .NET, this idea that you use one language, and can use all these other libraries via P/Invoke,” said Joseph Hill, Xamarin cofounder and director of developer relations. “The ecosystem is constantly developing, but .NET itself comes from a great ecosystem, and vendors know how to jump in and offer libraries. We tapped into an ecosystem that was already there.”
The same cannot yet be said for Swift: “Swift is still developing and nowhere near complete,” said Hill. “I think it’s superior to Objective-C and gets features that C# has had for a while. Swift faces a lot of the same needs Xamarin does. They need to backfill all these libraries, but Apple is very attuned to that fact.”
5. Ask before you build: What, not how. For those not yet fully invested in mobile, too much energy has been spent debating platforms, and not enough on defining what to build. Further, a fear of going native has held back some teams. Ironically, a strong argument for native development comes from another hybrid app platform provider, the Bulgarian ISV Telerik.
“Yes, you will need to write in a different language and for a different framework and in a different goofy IDE for every single platform,” said Burke Holland, Web developer at Telerik. “Right now that’s iOS, Android and Windows Phone at the very least if you want to cover all of your bases. Yes, it will require a lot of time and investment. Yes, the days of getting rich quick in the app store are well gone and over (or are they?). However, if your mobile application is this important to your business, it just makes sense to invest heavily in native applications.”
6. Go back to the future: Consider messaging, service layers and innovative UX. When considering what to build, notice not only the mobile usage trends in your world, but worldwide. For example, the ever-changing mobile market is now in the throes of “re-imagining messaging and communications,” according to venture capitalist Mary Meeker in her 2014 Internet Trends presentation at Code Conference last year. And David Sacks, CEO and founder of the social media/messaging company Yammer, opined that WhatsApp and Secret are a sign of “the ascendency of the phonebook over the friend graph.”
Meeker noted that global over-the-top messaging services are at more than a billion users in less than five years, thanks to apps such as the aforementioned WhatsApp and Snapchat in the U.S., Tencent WeChat in China, KakaoTalk in Korea, Line in Japan, and Viber in Israel.
Further, we’re entering the age of apps as service layers that use hardware, location, usage history and predictive analysis to suggest actions or inform other apps. Cryptocurrency and mobile payment will proliferate, along with Big Data either supplying or consuming sensor data.
Finally, new UIs with voice, gesture and other modalities will replace dusty, button-covered remotes. Above all this change, user experience reigns as the world is poised on the edge of an even bigger mobile app explosion with wearable devices such as eyewear for “deskless workers” and consumers.
7. Don’t just worry about Android fragmentation: Watch Tizen, MIUI and Fire OS. Even if, as Andreessen Horowitz analyst Benedict Evans argues, both Google and Apple have won the smartphone wars, that hasn’t stopped speculation on what alternative mobile OSes imply about the future of devices. The open-source Tizen, for example, is widely considered a backup operating system for Samsung and has found its way into the company’s smartwatch.
Chinese smartphone maker Xiaomi touts its growing MIUI platform, which demonstrates a reimagining of functionality around phone calls in exciting new ways. Head-bonkingly obvious improvements include rejecting spam, fraud or phishing calls; proactively identifying service numbers (from banks, telemarketers, etc.); and replacing exasperating voice-prompt customer service menus with visual ones using the MIUI interactive voice response system.
Amazon’s Fire OS is a fork of Android that seems designed to help grow the Amazon App Store, as well as tie into other Amazon features such as video chat with customer support and shopping on Amazon.
And then there’s Chromium…
8. Consider Chromium: Are faster Web views worth adding 25MB to your APK? Google’s new Chromium WebView rendering engine is rather large, but “it really does solve the Android browser/WebView fragmentation,” said AppGyver’s Sarsa.
Though he’s been accused of having an Apple bias, Evans recently speculated that Google has a strategic incentive to change how apps work, as evidenced by its app runtime for Chrome for what the company calls “a more seamless experience across your Android phone and Chromebook.”
According to Evans, “Part of the reason for Google to change what ‘Android’ means is control, but a deeper one is to change the smartphone interaction model. It’s always been obvious that apps were a structural problem for Google, since their content is hidden from search and, more importantly, unlinkable from search results, paid or not. HTML5 ‘Web apps’ turned out to be a blind alley for a range of reasons, but the underlying problem they addressed remains: On the Web you can link to any arbitrary resource, and on mobile you cannot. Everything is inside silos.”
According to Sarsa, “The biggest hurdle in hybrid app development is the fact that each Android OS version ships with its own browser engine for rendering content inside WebViews (which is what all hybrid apps use to display their HTML5 content). This means that certain features are just plain not available in older Android versions, and you can never know if some device you haven’t tested renders your content incorrectly.”
Instead of fixing issues one by one and maintaining backward compatibility at the CSS/JS level via polyfills and the like, AppGyver includes Intel’s Crosswalk project in its wrapper, allowing Android 4.0 devices to use Chromium to consistently render content in WebViews without CSS or layout bugs.
“It’s really a game-changer, and our partnership with Intel ensures that we won’t face any roadblocks as we develop our platform further,” said Sarsa. “Crosswalk is only for Android 4.0+, but with other frameworks like Ionic only supporting 4.0+ anyway, and 4.0+ devices making up almost 90% of all Android devices, we feel it’s not that great a limitation. And, you can always make a separate build for 3.x devices if you really need to support them.”
9. Say it with a smile: Unfriendly apps won’t cut it. Enterprise IT and consumer-facing apps have different requirements, true, but the days of forcing app usage down employees’ throats are quickly passing. For best adoption, apps must be responsive and enjoyable to look at.
“PhoneGap is not a good choice if you’d like to target end users who are not corporate employees,” said RezTech’s Reddy. “Enterprises just want to get the ball rolling, but consumers will abandon your app after one try.”
One of the touted improvements of Apple’s Swift over Objective-C is how much easier it makes UI design. Similarly, the Xamarin 3 release boasts both the cross-platform Xamarin Forms and Xamarin Designer for iOS.
Though good ol’ paper templates are never a bad start, Pixate is a popular tool for prototyping mobile interaction design. Similar tools include Origami, a free toolkit for the Quartz Composer from the Facebook Design team. Framer is another design-first prototyping tool, turning Photoshop, Sketch or After Effects files into interactive prototypes.
10. Lock it down: Security is more important than ever. “There was a major vulnerability announced in Android WebView for version 4.3 or earlier; 93 million customers are using it and Google said they won’t fix it,” said Reddy. “They say, ‘It’s open source, everyone is welcome to fix it.’ When they see this kind of thing, enterprise customers freak out. They don’t want to be upgrading their app every time there’s a vulnerability. As long as it works, it works. Why upgrade?”
“The trouble with Java is that, by default on Android, it uses byte code for JIT that could be decompiled,” said Xamarin’s Hill. “We have a native compilation bundling option for customers on our enterprise product.”
Another partnership offers SQLCipher for 256-bit AES encryption of SQLite database files. But Xamarin, like many tool providers, seems more concerned about functionality than security, noting that security is up to each developer to ensure. “It’s hard to throw stones in security,” said Hill.
Mobile app development vendor Appcelerator offers excellent tips for securing not only source code, databases and files, but also for good governance of enterprise devices via mobile app-management practices and solutions.
As recent vulnerabilities in PhoneGap and Android prove, security strategies must be considered at the application level, but the Web continues to be a primary vector for transmission. Still the stepchild of application development, security concerns will only grow in a hyper-connected world of monetized mobile apps.
“Medical devices have entered the zeitgeist as a new important security target—kind of like the Internet of Things, only running your heart instead of cooling off your beer or washing your dishes,” wrote Cigital CTO Gary McGraw in a recent TechTarget article. As the mobile market breaks through all our preconceived notions about what devices we need in our daily lives, it makes sense to stay vigilant.
Beyond Google Glass: Designing wearable user experiences
San Francisco bar patrons may not need it, but new “desk-less workers” do need Google Glass—or something like it. At the 2014 Xamarin Evolve conference, Michael Sciscenti, vice president of engineering at APX Labs in Washington D.C., listed key usability considerations for heads-up displays (HUDs).
Though it still seems a stretch, there are compelling consumer applications for HUDs: gaming, shopping, fitness and personal assistance (such as Google Now), according to Sciscenti. One major obstacle is precision indoor location awareness. This problem is being solved by new augmented reality solutions such as the Qualcomm Vuforia SDK (available for Android, iOS and as an Extension to Unity), and Metaio software, which got its start in 2003 by offering industrial and automotive AR for product design and factory planning.
- Display challenges. “White is new black, because you can’t project black,” said Sciscenti.
- Hands-free input. There are a number of ways to input information with headsets, but few to none of them involve the hands. “Their value comes from their real-time nature and the ability to sometimes use them hands-free,” said Sciscenti. One option is to use the head as a pointing device. A Thalmic Labs gesture device, worn on an armband, can be trained to recognize high-resolution gestures. Voice is another option, but “Voice breaks down as soon as you have background noise,” he said.
- Social friction. Translation? “They look weird,” Sciscenti said. While Google Glass did work well as a promotional interactive device at a professional sporting event, norms must change and devices become more fashionable.
- User attention. “This is especially true for overlay devices: You must present the right information at the right time,” said Sciscenti.
- Battery life. If the battery dies too quickly, the user will stop wearing the HUD. Therefore, build user experiences that encourage and enforce battery usage restraints, such as putting a time limit on video recordings.
- Safety is paramount. By definition, a HUD is out of the field of view and better for safety than full-on ocular displays.