iOS build? #117
Replies: 4 comments 12 replies
-
Hi @xloem I feel it is worth expanding a little on the facts and situation here, to explore why there is not, and probably will not be an iOS build of Sideband. Due to some very fundamental differences in the foundation of the iOS/iPadOS operating systems, creating an "iOS Sideband" is not something I currently prioritise very highly. It is most probably possible to build Sideband for iOS, but the app would have to include a lot of changes, that would severely limit the functionality of the system, or use a mountain of weird hacks to offer something near the same functionality on iOS as on Android and desktop. In iOS, Apple does not allow any sort of extended background services, or persistent and full access to networking devices (and defininely not USB ports, even Bluetooth APIs are quite limited). This makes it practically impossible to create true peer-to-peer systems on iOS, since everything needs to access things like background notifications and tasks through Apples APIs, which in turn means doing everything through their infrastructure, and backends residing on the Internet (and only those that they approve of). As you can see, such a system is not peer-to-peer and would be heavily dependent on both the continued cooperation of Apple, and on the availability and trustworthyness of the Internet at large. One of the main points of Reticulum, LXMF and Sideband is to allow people to create and access communications systems that are as independent, resilient and self-sovereign an possible, and this is near impossible within a system such as Apples, where real hardware access practically non-existent. Another incredibly sore point in this, is the fact that for anyone to obtain the software through the Apple ecosystem, they are required by Apple to be identified through several layers of invasice KYC. It is simply not possible to load software onto an iOS device without identifying yourself, and thus linking both the physical device and the action of installing the software to your personal identity. I sincerely uphold this as batshit insane, and I have a very, very hard time finding any sort of justification for myself, as a developer, to support such a system. While I really hate to say it, most Apple devices sold these days are not computers, they are very sophisticated thin-client interfaces to a tightly controlled consumption system. All of that being said, I might take a swing at it somehow, when I have time to do it, since of course it would be great to give iOS users access to the whole Reticulum ecosystem, but it will need to be through some method that is out of the grasp of Apples control. One method could be loading a PWA onto the iOS device from a small external device, running the full Reticulum+LXMF stack, but this is obviously a bit of a larger project. I will transfer this issue to the Reticulum discussion board, since I would also love to hear other perspectives exist in this regard, and I think it will have some more visibility on the forum. Thanks for bringing it up! |
Beta Was this translation helpful? Give feedback.
-
Thanks for your explanation.
Your explanation makes sense. |
Beta Was this translation helpful? Give feedback.
-
Greetings @markqvist, I was going to open another discussion post, but maybe this is the place for it. I am approaching the point of possibly testing a iOS client with a few other people. As I see above, it doesn't sound like you will directly support TestFlight or App store testing at Apple? So I wanted to get your thoughts on allowing someone else to do testing or distribution. Would you allow that or have guidelines you would like followed in doing so? I see you have applied copyright to the Sideband code, so would want you to approve any path to testing or distribution. |
Beta Was this translation helpful? Give feedback.
-
Beta announcement in new discussion |
Beta Was this translation helpful? Give feedback.
-
Hey, your software looks great. I’d love to try it on this iPad. It looks like Kivy can build to iOS; I haven’t tried this myself.
https://kivy.org/doc/stable/guide/packaging-ios.html
Beta Was this translation helpful? Give feedback.
All reactions