I am currently an IOS user, however, as the title suggests, I wish to switch to android. This is because I would prefer to use free software and not be locked into the apple ecosystem. That being said I am already locked into apple and would like to know how anyone else here has managed the switch.
I for one know I will face problems regarding group chats with friends and family on IOS, I will lose out on iCloud+ features, I will have to buy a replacement for my HomePod, I will need to replace apple home, etc.
How did anyone else here who has made such a switch replace or solve these issues?
I’ve wrote some lines of code and I know when it’s “just being lazy” or doing stuff “the evil way”. Imagine when Apple accidentally restricted join/leave actions in their native chat client. That would be minutes until they fix it. We are talking about years here…
Sure, but one of those things is fixing a bug in the protocol they already use for core functionality, and the other is an entirely new software development project. Adding RCS support to iMessage is adding support for an entirely new protocol. That’s what I’m getting at here. It’s not “broken”. Apple doesn’t have to “fix” RCS support. They have to build RCS support, from scratch.
This is like saying that Microsoft Windows should be able to run programs compiled for Apple Silicon on Mac OS. That might be a cool feature, and I have no problem with someone saying they think it should happen, but it’s not Microsoft being “evil” or refusing to “fix it”.
Modern programming requires a common code base and portability. Otherwise Microsoft would never be able to provide Office for macs.
Apple knows it, they simply don’t care to compile it. Protocols are easy to support. It’s a matter of parsing, encoding and decoding.
Otherwise Microsoft would never be able to provide Office for macs.
Two points here. First, Microsoft has 220,000 employees. They absolutely could support two completely separate sets of Office apps if they want to, and in fact they did exactly that until 2018. They could support 200 separate code bases if they wanted to. Second, at best you have provided evidence that Microsoft uses some common code for Office, and that evidence is just that Office for Mac exists. iMessage for Android doesn’t exist, so there’s no such evidence. If I have a million line Windows app that I wish I could make available natively on Linux, but it’s all Win32 from top to bottom, you obviously can’t tell me that “all modern software requires a common code base and portability” therefore I could easily do it. My code base isn’t common or portable, so what Microsoft did doesn’t help me any.
But beyond all that, you’ve just papered over a vast amount of complexity by just declaring it doesn’t exist. Most portable apps today are web apps. You can write Electron and it’ll probably run on just about any platform. You could write Java and it’ll mostly run on any platform. But none of Apple’s stuff is either of those things. iMessage is a UIKit app, probably with a boatload of Objective-C behind the scenes and maybe some Swift for the more modern parts. It runs on Macs because of Catalyst, which is emulates the iPad version of UIKit on the Mac. But that’s it. There’s no UIKit for Android. iMessage simply isn’t portable, as far as any of us know. It’s just factually nowhere close to true to say “Apple just needs to compile it”. The frameworks it’s based off of just aren’t there. It’s exactly like saying that Adobe just needs to compile Photoshop as a KDE app. Photoshop doesn’t use Qt or the KDE libraries to do anything. The code just isn’t portable. (Full disclosure I guess, I have no idea if Photoshop uses Qt or not, but it’s a reasonable illustrative example).
And supporting a protocol isn’t just parsing, encoding, and decoding. HTTP is a protocol. So is IMAP. But you can’t just write a web browser that uses IMAP. The concepts don’t map 1-1 to each other. It’s not like for every HTTP action, there’s a matching IMAP action. You can’t just say, “I’ll just use FETCH instead of GET and everything will be great”. HTTP has redirects, for example. How are you going to make redirects work over IMAP? In the case of iMessage vs RCS, for example, iMessage has the ability to message someone without a phone number. RCS doesn’t. There’s literally nothing in the RCS protocol that makes that possible. So what do you want this mythical compiler to do when you tell it to compile iMessage for Android and use RCS? Should it just core dump if you try to message an email address?