I think the root of the problem here is that, in the past several years, there has been no focus on developing common open standards.
I think the easiest example to give is the difference between messaging apps and email. If I use Gmail and I want to send an email to someone whose email is on Office 365, AOL, Yahoo, a private email server, or any email server at all, there's not really any difficulty. I can connect to my server either by using Google's website or by using a standard protocol (SMTP), the email gets transferred to the recipient's mail server through a standard protocol (again SMTP), and then the recipient can probably download it using a standard protocol (e.g. IMAP). SMTP and IMAP aren't without their shortcomings, and the openness of this system has had problems because of its openness (e.g. spam), but overall it works wonderfully. However, things would not work this way if they were designed today.
In contrast, several companies (including Facebook, Apple, Google, and Microsoft) have developed messaging applications, which are to some degree aimed at replacing SMS, IM, and/or email. These applications each use proprietary protocols for sending and receiving messages, and there is no compatibility between them. While I can use Thunderbird to send and receive my email on my Gmail account, there isn't a 3rd-party open source Hangouts app, because (at least as far as I know) the protocols for it are not open. From my Gmail account, I can send email to users with "facebook.com" email addresses, but I can't use hangouts to message with Facebook Messenger users. I need a Facebook account in order to do that.
This is just an easy and obvious example. I chose to compare email to messaging because I think it makes for an easy comparison, and it's clearly a bit stupid. There isn't really anything so complex about text messaging that Facebook, Apple, Google, WhatsUp, and all other messaging apps couldn't simply message each other. However, I don't think this a fluke, but instead the easiest-to-understand example of how the internet is moving more and more toward walled gardens. Nobody is developing open standards, or at least, nobody is really agreeing to use them.
To give another example, many sites let you log in with your Facebook account or your Google account-- I think some let you use a Twitter or LinkedIn account. This is great, since it diminishes the number of login credentials that you need to know, memorize, or secure. However, each of these companies are basically offering their own separate incompatible authentication service. The site developer has to decide to actively support Google Authentication, and if they do, it doesn't allow me to authenticate on their site against my Facebook credentials (for example). They must support each method of authentication individually, rather than having one framework that allows authentication against whichever identity provider the user wishes to use.
And although some people will think I'm a crackpot, I think this is a very widespread problem that includes Silicon Valley's obsession with "apps". Instead of developing a photo-hosting service, you have to have a photography app that's tied to a service. They make it so you can't use the app with a different service, and you can't use the service with a different app. Then a couple of companies (e.g. Google, Microsoft, Facebook, Apple) buy all these different apps, and make it so the apps and the services only interact well with their other apps and services. It's not hard to see how this quickly turns into a set of walled gardens.
In my view this all goes back to the issue of standards. If these apps and services used standard protocols and standard APIs, then they could all interact with each other.