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?

  • deong@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    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?

    • nakal@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      We’re talking about basic chat functions that reportedly don’t work like joining and leaving a chat. How does that break for everyone when there is one Android user around?

      I’ve wrote enough code that other devs have ported to machines I couldn’t even think about. If Apple is not able to that I don’t know what they do. There is nothing mythical about supporting phone numbers when you implement that and if you leave out that for Android it still does not justificate to obviously break unrelated functions. No one in the world would develop like this.

      Apple is breaking compatibility deliberately. They are well-known to do this for hardware and for software.

      • deong@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        It’s software…these are computable problems, and we can solve them with Turing machines. No one is saying Apple is incapable of porting them. I’m saying that it’s work to port them. It’s nowhere near just clicking the compile button in Xcode and having it spit out a binary that speaks RCS or runs natively on Android or whatever. That is work for human programmers to sit down at blank editor windows and start building. Can they do that work? Again, obviously, yes they can.

        Someone could sit down and make Vim interpret my .emacs file. It’s software. Emacs isn’t magic, and the Vim programmers aren’t stupid. We could make this happen if we wanted to. But it’s foolish to say that because it doesn’t work today that “Vim is deliberately breaking Emacs compatibility”.

        If you can’t join or leave a chat, that’s a bug and they should address it. But that’s different than the whole “blue/green bubbles” conversation where people complain about terrible MMS quality and limitations on group chats and all that stuff. Those things happen because Apple currently speaks two protocols: SMS/MMS as a fallback and the iMessage IP protocol as a primary. To solve those problems cross platforms requires a third protocol (RCS), and that’s firmly back in “why doesn’t Vim interpret my .emacs file” territory.

        • nakal@kbin.social
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          Please don’t mix everything up. We’re still talking about the same software on different platforms from one single vendor. Apple won’t fix it to avoid competition and try to convince people that Android is bad instead of their very own program.