Saw a few blogposts this week asserting “mobile apps must be native-code for each device”… went back and re-read them seeking the “why?” without much success. The most concrete reasons seemed to be that cross-platform work is “an uncanny valley between a web page and app” and remarks such as “I think 80% of our customers use only native”.
Not much of a case, and so not worth the fisking, but it did make me think about various angles to cross-platform work, about trying to get a good connection with a wide audience.
- Is there often an “uncanny valley” when people encounter a new interface? Sure… lots of them. We’re all using devices which didn’t exist a year ago, new form-factors, new tasks, new operating systems and UI conventions. Whether one app chooses to make its UI “uncanny” to single-OS new users, or to make it “uncanny” to customers already using their app on a different device, that’s one of many such decisions best reserved to the developer and their audience. Their choice, but I think we humans have proven our flexibility by now.
- Development costs are only the initial upfront costs. If you don’t add significant testing expenses, then your support costs will likely be higher later on. And projects incur ongoing update and maintenance costs as well. “It took only four weeks to port” describes just one small part of the project’s total cost. What will it cost for the version 2.0? the version 2.01? What will it cost to do consumer support for multiple system-level codebases? Much of the “go native” conversation out there seems to talk only about the increase in development time, but not the total costs of the entire project.
- These “native or global” discussions are reminiscent of the mid-90s multimedia-authoring forums, where some insisted that CD-ROMs made using OS-specific tooling & runtimes, such as Microsoft Visual Basic or Apple Media Tool, would be more readily accepted by audiences than cross-platform Macromedia Director work. The evidence didn’t seem to bear this out.
- Does localizing to OS-style UI conventions help make things friendlier for people stuck in that OS? Sure. But localizing “color” to “colour” makes things friendlier to those in the UK… localizing the interface’s colors themselves can make things friendlier for those in different cultures… every little bit helps. Not as import as optimizing for accessibility, but in similar vein.
You should do what you find best, to reach different audiences, accomplish your own goals. Watch out for people who take a long time to say that they think you should do what they chose.