Gene Burrus again raises a key point. Platform companies change APIs frequently as a method to deliberately disadvantage other developers, forcing them to play catch up to have a good user experience.

That totally clicked for me, that's how I have been feeling about working with the Storage Access Framework APIs in Android. On top of that, Android APIs prefer cloud services. Guess what: services are built-in defaults for those APIs on all the Google devices.

Show thread

@eighthave The restrictions on storage were created because bad apps/SDKs leaked data from shared storage once they got initial access (e.g. to some media file or to download resources).

Follow

@rene_mobile I understand why they were created, and I think the core idea is good. But the way it has been rolled out has been painful to a lot of developers, especially if the app isn't just doing a simple tie-in to a cloud service. My experience is that every other OS release introduced new and often conflicting APIs and requirements making it very difficult to make a UX that worked across the currently supported releases.

@rene_mobile And also, I think the right solution is to keep the bad apps out, that's what we work to do in . Then users have the freedom to use apps that require flexible access to the external storage to provide their features. The SAF changes felt to me to be a way to cut out apps that do media/app sharing device-to-device, instead of via cloud services. Device-to-device data exchange is very important in places where data plans are expensive and measured in the 100s of MB per month

@eighthave But such an app could act as a storage provider itself, right? Thinking about Syncthing etc.

@rene_mobile I haven't touched SAF code in a while now, so I can't remember details. I do clearly remember feeling that this API made it drastically harder to do what I was doing before. And in order to give any kind of consistent UX across the supported versions, I had to have 3 parallel implementations with a number of per-version quirks. Plus it is biased towards pushing to the cloud. For many use cases, local storage still has advantages, including and resilience.

@rene_mobile is a company, and its users expect to have everything tied into the cloud. Fine if you want that. Before, offered much more developer freedom and flexibility. Now, it feels like it is being locked into the cloud and pushed to prioritize consuming over creating. Same thing with , I used since 1994, and stuck with it unbroken as it became MacOSX and even . and iOS pushed to shift their focus from creating to consuming. 1/

@rene_mobile Aspects of the technical structure of magnify this because developers cross-compile and run in emulators/devices. Basically no one is doing Android dev on Android. and at least were very close to the same OS. I switched to and at the same time, around 2009. Back then, was hackable and flexible. We took full advantage of that. Now my feeling is that is focused on for and no longer empowering users 2/2

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml