Draft
But is it native?
- There is a common "vague question" when it comes to apps whether "is it native?"
- Usually this question is proping whether the app has been built with the "cannonical app stack" (e.g. Swift for iOS, ...)
- I'm thinking this question is should be more about whether an app feels native in respect to the targeted platform and whether it supports the most relevant user interactions for a given domain and whether the used technologies are not noticable in a bad way (e.g. app feels slow)
- Typical cases: Electron apps have a bad reputation
- It's actually possible to build native-feeling Electron apps that people love
- Interactivity of window when not focussed
- Hover states, window dragging, ...
- Sub windows
- Drag & drop files from/to app
- e.g. dragging a file from Slack to Superhuman
- drag and drop between different app windows
- Loading states
- App background activity (e.g. syncing, ...)
- Performance
- Case study
- Video conferencing (e.g. Zoom vs Google Meet)
- Goal: invisible technology
- Cursor behaviour
- In the web everything is a
cursor: pointer
Thoughts by Brent
some random thoughts that came to mind for me
- Offline support - a native app is usually expected to run offline. Similarly, a web is not expected to run offline (it feels odd every time I use YouTube to watch downloaded videos on a plane without wifi... and sometimes it doesn't work)
- Matches user's expectations - ui and interaction patterns that are native to the first party apps on the platform
- swipe to dismiss screens on iOS or perform a quick action to an item in a list
- long press the back button on ios to see the full title of the screen you're going back to
- tap a tab bar icon to go back to the root of the navigation stack in that tab, or if you're already at the root of it, then scroll to top
- if an app is built with swift/uikit for ios but they have a completely custom ui, navigation, and gestures that disregard conventions, it might not "feel native"
- Share content to and from the app on mobile
- in general, "native" apps tend to use platform features because they're easier to reach and use, while non native apps tend to go for their own custom stuff that feels off