Johannes Schickling
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
    • e.g. for app settings
  • 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
    • Speed
    • Memory footprint
  • 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