![]() ![]() Typically meaning: fast and smooth, but also that they look the way other apps on that platform look and feel. Because the apps can have that “native feel.” Maybe smart browser people can think of something. Making the log in experience easier is also a thing, like using oAuth or magic email links, but it’s just not the same as that “always logged in” feeling. There are some other solutions in this thread, many of which are a bit above my head. Or you can do a thing where you keep a JSON Web Token (JWT) in storage and do a rolling re-auth on it behind the scenes. For example, long cookie expiration dates (six months is about what you can get if you’re lucky, I hear). Potential Solution: There isn’t any amazing solution here. There is also a somewhat awkward thing with web apps in that, even if you’re logged in on your mobile devices primary browser, you won’t necessarily be logged into some other app’s in-app browser context - whereas, with native apps, they often intercept links and always open in the native app context. ![]() (And hey, that might be a good thing, but a business sure won’t think so.) If I thought there was a 30% chance I’d have to log in, I’m sure I’d use it far less. When I open my native Twitter app, it just opens and it’s ready to use. For iOS specifically, client-side cookies are capped at 7 days. Web apps seem to lose login status far more often than one might like, and that adds to a subconscious feeling about the app. This is a big one! Once you’re logged in to a native app, you tend to stay logged in until you specifically log out, or a special event happens like you change your password on another device. Potential Solution: Allow ad/tracker blocking apps to work with native apps. But the fact that native apps typically go through an approval process before they are available in an app store does offer some degree of protection that the web doesn’t have. I’m hesitant to put “because native apps are more secure” as a reason on this list because of the fact that, as a user, you have so little control over how resources load that it doesn’t feel like an increased security risk to me. If you’d like to block ads in native apps… too bad, I guess? If the point of the thing you are building is to show ads or track users, well, I guess you’ll do better with a native app, assuming you can get the same kind of traffic to it as you can a website (which is questionable). There are all sorts of ad blockers for mobile.īut those work only in mobile web browsers, not native apps. Because it’s harder for users to block ads and easier to collect data. The web caches resources by default, and has more advanced caching available through Service Workers. When you download the app, you’re downloading the resources just like the web does. Potential Solution: This is only partially true, to begin with. ![]() Native apps have a bunch of the resources required to run the app locally meaning they don’t need to get them from the network when opened. There is also the whole world of software tools where what you build can be delivered both as a web app and native app, like Flutter. ![]() There isn’t that much we can do as website authors we wait and hope mobile operating systems make it better. Native App Install Prompts are a big tool that levels this playing field, and it would be ideal to see Apple support PWAs better and offer this. Chrome on Android goes a step further, offering a Native App Install Prompt for apps for Progressive Web App (PWA) websites that meet a handful of extra criteria, like the site has been interacted with for at least 30 seconds. It’s just a fairly “buried” feature and it’s unlikely all that many people use it. Potential Solution: Both iOS and Android have “Add to Home Screen” options for websites. Because they get an icon on the home screen of the device. But that’s not to say native apps don’t have some extremely compelling things they offer, hence this post. But in case you are unsure, there are many: it’s an open standardized platform, it will outlast closed systems, it strongly values backward compatibility, anybody can build for the web, it runs cross-platform, and heck, URLs alone are reason enough to go web-first. I’m also not getting into reasons where the web has the advantage. Nothing subjective here, like “it’s faster to develop on” or “native apps are more intuitive” or the like, which are too subjective to quantify. I’m exclusively focusing on reasons a native app might either be a distinct advantage or at least feel like an advantage compared to a website. I’m a web guy myself, so I’m interested in seeing how the web can evolve to mitigate these concerns. I wanted to write down what I think the reasons are here in December of 2021 so that we might revisit it from time to time in the future and see if these reasons are still relevant. ![]()
0 Comments
Leave a Reply. |