David Schwartz 426 Posted June 15, 2023 This is going to seem like a really strange question, but hear me out.... Suppose you're writing a web app for something people will typically run on their mobile devices (phones and tablets). Your app is going to have some audio files on it for them to listen to. You can provide a variety of things for them, but you KNOW that people are eventually going to ask, "I've got this one song I really like that I'd love to use for this; how can I upload it?" On a desktop or laptop running Windows, MacOS, or Linux, the answer is simple. But I'm having a hard time answering that question when it comes to mobile devices -- not for the reason that's obvious to most programmers, but because of two conflicting issues: (1) it's a web app, and on a mobile device, it cannot access the local file system; and (2) even if it could, most users have no idea where their media files are located there, even if they ARE there. The thing is, many people use streaming services like Pandora or Spotify, and have no idea where the music files they listen to actually live -- that's why they're called streaming services. Personally, I have a microSD card that I loaded up with a ton of music files and put in my phone (most Android phones let you do that, Apple products don't). I copied the files to a small thumb drive and plugged that into the USB port in my car so I can listen to them there. This saves me from having to subscribe to Satellite radio or some streaming service, or pay for iCloud / iTunes hosting. But I do have access to the files. I don't know how that works for people with iPhones. (I have an iPad, but I don't listen to music on it.) So if I had a song on my (Android) phone (in the SD card) that I wanted to upload to your web app, I know where it lives, but I don't know how I'd get it to your app. If I had an iPhone, I don't even know where it lives. The obvious questions are: do they have the ability to download the music file from somewhere else that they want to hear in your app? (Ie, is it accessible via a web browser?) If so, where can it be saved to? And then, how do they upload it (considering that they can't access the local device's storage)? It's basically a file-sharing problem at this point. "I have this spreadsheet I'd like you to look at, can I send it to you?" Ok ... how? In my mind, the easiest solution would be to put the file on Dropbox or Google Drive and get a DL URL for it, then paste that URL into a field in your app and press the [OK] button. It's a workable soluition ... IF it's not blocked by a CORS policy. (My remote service can try to DL the file, but my experience lately is that it will very likely be denied access to it.) I'm hoping some folks here have faced this problem in some way or another and have either come up with a solution or have seen something that has worked. Because I'm rather stumped at this point. Think of it this way: You're creating this web app, and you have a few friends who are total technophobes but they like your app, and they want to know how to upload a favorite song so they can hear it in your app on their iPhone or Android phone. How do you solve that problem in a way that's simple enough for them to deal with, other than taking it to the Geek Squad at Best Buy? (Or calling you.) Share this post Link to post
David Heffernan 2345 Posted June 15, 2023 Nobody has songs on their mobile devices in that form these days anyway. People use streaming services like Spotify, YT, etc. Share this post Link to post
dummzeuch 1505 Posted June 15, 2023 10 minutes ago, David Heffernan said: Nobody has songs on their mobile devices in that form these days anyway. People use streaming services like Spotify, YT, etc. You realize that this doesn't answer the question, do you? As for "nobody": That's me then. I don't subscribe to any streaming services - I tried a few but they sucked - but I have got a sh*tload of music files on my computer and smartphone, most of them ripped from a CD years ago. Yes, I know that nobody buys CDs any more either. Back to the question: Sorry, I have no idea how to do that. I put my files on the phone using SyncThing (actually that is a convenient side effect of syncing my photos and notes to the desktop computer), but that's nothing the average user will even think about. 1 Share this post Link to post
PaPaNi 23 Posted June 15, 2023 28 minutes ago, David Heffernan said: Nobody has songs on their mobile devices in that form these days anyway. People use streaming services like Spotify, YT, etc. I use that.. I don't subscribe to any streaming services too. I download the songs on my phone per USB at home. And I listen my songs in the car using one android app. Share this post Link to post
David Heffernan 2345 Posted June 15, 2023 48 minutes ago, dummzeuch said: As for "nobody": That's me then. I don't subscribe to any streaming services - I tried a few but they sucked - but I have got a sh*tload of music files on my computer and smartphone, most of them ripped from a CD years ago. Yes, I know that nobody buys CDs any more either. That nobody is me too. I also have a bunch of ripped CDs, and purchased mp3s. Most of my use is with streaming services which clearly don't suck. But we are in a tiny minority. I guess if David is writing an app for old people like us then maybe it will work out. 50 minutes ago, dummzeuch said: You realize that this doesn't answer the question, do you? Sure, but this is a forum here, not SO. 50 minutes ago, dummzeuch said: I put my files on the phone using SyncThing (actually that is a convenient side effect of syncing my photos and notes to the desktop computer), but that's nothing the average user will even think about. Yeah, which is why the average user uses streaming services so they don't have to think about this. Share this post Link to post
David Schwartz 426 Posted June 15, 2023 (edited) 1 hour ago, David Heffernan said: Nobody has songs on their mobile devices in that form these days anyway. People use streaming services like Spotify, YT, etc. That's my point. It doesn't answer my question. And for the record, I pretty much expected these types of responses from a bunch of programmers. Which is why I ended it saying this: Think of it this way: You're creating this web app, and you have a few friends who are total technophobes but they like your app, and they want to know how to upload a favorite song so they can hear it in your app on their iPhone or Android phone. How do you solve that problem in a way that's simple enough for them to deal with, other than taking it to the Geek Squad at Best Buy? (Or calling you.) I'm asking here how you'd solve this as programmers. YOU ARE NOT THE TARGET MARKET, and I don't expect anybody here to identify with what I'm asking. Edited June 15, 2023 by David Schwartz Share this post Link to post
David Heffernan 2345 Posted June 15, 2023 Just now, David Schwartz said: That's my point. It doesn't answer my question. If you want Q&A that forces people to answer the question, then that's SO. But you don't seem to like SO because it forces people to ask clear questions, and then stay on topic. Which seems to contradict your comments here. I'm confused. Again. Share this post Link to post
Der schöne Günther 316 Posted June 15, 2023 (edited) The reason I subscribed to Apple Music is because it was the only one which lets me upload and stream my very own MP3 files, even to devices like an Alexa speaker or a random office computer through a web browser. I think Amazon used to offer this as well, but removed it a few years ago. But I'd agree that most people probably don't care and are happy with what a catalogue offers. There is one thing I don't quite understand: 5 hours ago, David Schwartz said: (1) it's a web app, and on a mobile device, it cannot access the local file system; I am not sure that's true. For sure web apps can upload local files as well? Regarding your question how you can offer your users this experience, I have seen Apps offering integration of popular services like Spotify or Apple Music and just stream in the tracks or entire playlists from there Feeding local audio files (like mp3) into the application which stores it locally, for example by registering the app as a "Share with" target or displaying a file picker which will then copy the file to its local storage. Edited June 15, 2023 by Der schöne Günther Share this post Link to post
David Schwartz 426 Posted June 15, 2023 (edited) 48 minutes ago, David Heffernan said: If you want Q&A that forces people to answer the question, then that's SO. But you don't seem to like SO because it forces people to ask clear questions, and then stay on topic. Which seems to contradict your comments here. I'm confused. Again. I'm trying to solve a design challenge. I get the sense that most people who hang out here are pretty darn good at that. That's why I'm asking for help here. I think if I posted this on SO it would get locked before anybody answered. It's just not the right venue for it. It's a software design issue, not a programming issue. I have not seen that SO is very welcoming to design-related questions, I guess b/c they come too close to their prohibition around "making recommendations". I dunno. It's just my observation. This thing I'm working on is for a market with two major demographics: Millenials and Baby Boomers. The Millenials are probably more tech savvy than the Boomers, but I think the Boomers are more used to working with desktops and laptops, and would have an easier time with this than younger folks who do everything on their phones. I seriously doubt anybody here would have a problem with ANY solution could imagine. PEOPLE ON THIS FORUM ARE NOT MY TARGET MARKET! I'm inviting you to help me solve this particular puzzle. Put your design hat on and let me know what comes to mind. 🙂 Edited June 15, 2023 by David Schwartz Share this post Link to post
David Schwartz 426 Posted June 15, 2023 (edited) 47 minutes ago, Der schöne Günther said: The reason I subscribed to Apple Music is because it was the only one which lets me upload and stream my very own MP3 files, even to devices like an Alexa speaker or a random office computer through a web browser. I think Amazon used to offer this as well, but removed it a few years ago. But I'd agree that most people probably don't care and are happy with what a catalogue offers. Regarding your question how you can offer your users this experience, I have seen Apps offering integration of popular services like Spotify or Apple Music and just stream in the tracks or entire playlists from there Feeding local audio files (like mp3) into the application which stores it locally, for example by registering the app as a "Share with" target or displaying a file picker which will then copy the file to its local storage. Thanks, you're providing a larger view of the landscape here. Apple had a service for a couple of years (2014-16 or so) that let you insert an audio CD in your computer and it would sort of "rip it" and "upload" it to their cloud. Then you could play songs from whatever albums you had uploaded. I forget what it was called, and I was surprised when they shut it down. But the thing to note here was that you had to have the physical CD, and you had to "upload" it using your desktop or laptop -- not your phone or tablet. I know how things have been in the past, and I'm seeing a lot of shifts happening now that so many (mostly younger) people are doing the majority of their internet activities on their phones. I'm seeing people complaining about not being able to fill out forms online that don't fit on phones because they're designed to work on larger screens like desktops and laptops. I'm at the other end of that spectrum: I just got a new credit card and I had to download their app to activate it, and now that so many companies are going "mobile-first", it's getting harder to access stuff on my computer. This app will let you take notes, and I'm wondering, "How can they get them off of the device?" I can use the "Share with..." thing you're referring to, but it only works with APPS -- and "web apps" are web pages with logic that runs in a browser, not "apps". The BROWSER is the app in this case, and it has no idea what's running inside of it. But I digress ... I'm hoping someone can identify something they've seen recently that might point to a solution. For example: say you're filling out a job application and they want a copy of your resume, and you're on your phone's web browser ... so where's your resume? Is it on the phone? Or is it on another site? Or is it on your desktop or laptop? Same problem I'm trying to solve, see? I just don't know how people can do everything on their damn phone without being able to access an underlying file system! They've got to store files SOMEWHERE, right? Where would they have MP3 files they'd want to upload to a service? (Not a media streaming service.) Note that the devices let you capture videos, audios, and images, and all of them have a place where you can access them on the device. Yes, they're on the device's file system, but it's virtualized. If you wanted to upload something via the web browser, there's a way to access those virtual areas -- as opposed to going to c:\home\users\<username>\media\video\blahblahblah.mp4 Apple has always been rather paranoid of letting people upload copyrighted materials from uncontrolled (non-DRM) sources. Android is a little looser, but not much. Edited June 15, 2023 by David Schwartz Share this post Link to post
Der schöne Günther 316 Posted June 15, 2023 18 minutes ago, David Schwartz said: I can use the "Share with..." thing you're referring to, but it only works with APPS -- and "web apps" are web pages with logic that runs in a browser, not "apps". I don't know how Android does it, but with iOS this is soon going to change. I think web apps, just like on a computer, will be able to register as "first class" cititzens and hopefully also be able to have files shared to it. That's just what I heard, haven't properly fact-checked it. Even if not, for uploading, you should always be able to offer a regular file-picker and then copy the file to your server (which then invokes questions about copyrighted material). I am not sure if PWAs can copy files from a picker to its internal cache and then permanently store it there - I have almost no experience with pure web apps, sorry. 30 minutes ago, David Schwartz said: I just don't know how people can do everything on their damn phone without being able to access an underlying file system Again, not sure about Android, but I rummage through my files all the time. I fill out tables, I extend text documents, share them by email. iOS has a pretty elaborate file interface, I even can just upload a local file to a remote server via SFTP or a regular network share. I think not many people do (especially the "younger" ones) and they "live" entirely within an app, but it's absolutely possible and not even inconvenient. 20 minutes ago, David Schwartz said: the other end of that spectrum: I just got a new credit card and I had to download their app to activate it, and now that so many companies are going "mobile-first", it's getting harder to access stuff on my computer Yes, it's bizarre. It's especially bad for things like home automation (vacuum robots, coffee machines, ...). They often don't have an open API, and you will have to use the vendors app and use it. No web browser, no public API. Share this post Link to post
David Schwartz 426 Posted June 15, 2023 (edited) 13 minutes ago, Der schöne Günther said: Again, not sure about Android, but I rummage through my files all the time. I fill out tables, I extend text documents, share them by email. iOS has a pretty elaborate file interface, I even can just upload a local file to a remote server via SFTP or a regular network share. I think not many people do (especially the "younger" ones) and they "live" entirely within an app, but it's absolutely possible and not even inconvenient. I totally get what you're saying, and thanks for playing along. Now, to further this discussion, tell me how you'd upload a few MP3 files to your iPhone and then upload them to, say, Dropbox or Google Drive -- anything you'd access via the web browser (ie, not using their APPS.) I asked a friend who knows iOS inside and out (a "power user") how he'd do this and he thought about it, and suggested some ways. Then I said, "Ok, now explain that to your sister so SHE can do it." His reply: "Uh, no. It ain't happening. There's no way she could do this." THAT is what I'm faced with. YES, it's POSSIBLE -- for POWER USERS. Not the average person. At least, not that I've identified yet. Tell me you have a simple solution! PLEASE!!! 🙂🙂 🙂 Edited June 15, 2023 by David Schwartz Share this post Link to post
Fr0sT.Brutal 900 Posted June 15, 2023 (edited) 5 hours ago, David Heffernan said: Nobody has songs on their mobile devices in that form these days anyway. People use streaming services like Spotify, YT, etc. I'm that one old-schooler. However I find myself using simple and cheap streaming services more and more, especially as "radio" of favorite genre at home or in the car. 9 hours ago, David Schwartz said: Think of it this way: You're creating this web app, and you have a few friends who are total technophobes but they like your app, and they want to know how to upload a favorite song so they can hear it in your app on their iPhone or Android phone. What such users want it to look like, I guess : they locate a song in streaming app, press "Share" and send it to your app. On your side: 1 - I'm not sure a web app can register itself as Share receiver. Okay, you can require them to copy URL and paste into your app 2 - Getting a song from a service. If it has API, it's lucky case. However user still will have to enter his login once again as I doubt a service gives its songs to anonymous connections - all that copyright stuff. 3 - bonus item - remember that you do not own these tracks even if you bought them in iTunes/GMusic, you're just renting them. No usage besides listening on your devices with official client apps is allowed. Streaming services are even worse - you just buy the temporary ability to listen tracks that finishes when you end subscription. 4 - Well, now it's time to estimate how strongly you want this feature. Edited June 15, 2023 by Fr0sT.Brutal 1 Share this post Link to post
Der schöne Günther 316 Posted June 15, 2023 10 hours ago, David Schwartz said: tell me how you'd upload a few MP3 files to your iPhone and then upload them to, say, Dropbox or Google Drive I'm sure getting an mp3 onto your iPhone is not going to be the challenge. I mostly see people using their email or their favourite instant messenger to send themselves a file they want to access from another device while Airdrop also seems to be common, at least for Apple people. Here are three other ways I would do it Copy the file(s) to my computers desktop, because my desktop is synced with iCloud and and always accessible from my phone. Doesn't have to be iCloud, works with OneDrive, Dropbox and whatever is out there. Granted, that hardly applies to everybody because not everybody uses cloud file storage. I can just copy the file on my computer, and then just select paste on my phone. That probably doesn't work with Windows computers, though. I just right-click the file, share, Airdrop and then select my phone. Only works for Apple. By the way, this is how my mom always does it 🙂 I dare to say that making a file accessible to a mobile device from a computer is more or less common, even for non tech-savvy people. Understanding how to "upload" or "post" the file to a web application is trickier, because this is not so common. I believe most people are probably familiar with the image picker that is native to the OS, but not so much with the file picker. Also, it's possible your users already forgot the location they just saved the file to, and are now lost. Basically, your phone app does exactly the same as you had planned for a computer. It's just that people that are only accustomed to a phone probably hardly use the file system. 1 Share this post Link to post
David Schwartz 426 Posted June 16, 2023 So what if running my web app on your desktop (Win, Mac, or Linux) would let you access the file system and upload it that way? Just not as easily from your mobile device? Share this post Link to post