Posts

Post marked as solved
2 Replies
364 Views
Hi All. Trying to understand if something is possible to do on IOS. In our android app, we have part of our functionallity implemented as a service. This allows us to spawn a process that is registered with the system and allows any other app on the user's phone to interact with in realtime, and recieve streaming data. The service can be launched by any app that requests it, given that the user has provided permissions, and that the app has an API key (we validate this via our backend). This service runs on a background process and uses RPC to communicate back and forth with any app that requests data. In fact, multiple apps can request data simultaneously. The reasons for working in such a manner are: 3rd Party apps only have to import a small header file that has the RPC interface. There are never more than 1 version of our service installed on a device. Since this service connects to BLE devices, it centralizes handling and parsing this, and any app that wants the parsed data gets it from a single source of truth. This keeps our proprietry code outside of 3rd party hands, and our data is sandboxed on a device. Unfortunately, I can't find any way to implement this on IOS. The best solution I have found so far, is to create our public facing API as a framework, which means all of our implmentation is bundled and provided to developers. This also pretty much negates every reason I listed above. While we can get around 4 by encrypting our data, the experience for both Devs and Users is greatly diminished. I've also come across mulitple issues so far creating the framework due to the heavy usage we have on multiple dependencies, some only availabe as pods, other only as swift packages, and other issues that can arise from having to bring so much luggage into someone else's project. So, I come to you, experts. Is there an API or method I have missed? Can someone think of a better way to provide our software service on an edge device? Thank you.
Posted
by SK-Arctop.
Last updated
.
Post not yet marked as solved
1 Replies
819 Views
Hi All. I have a need to store encrypted data on device. The data is arriving from multiple services in our app in the form of one line of text at a time. This data has to be decrypted on a server, probably using Java. In Java, there is concept of a CipherStream. I'll init that stream with a private key and IV (nonce), and feed it data as I get it. Once done, I can close the stream, and I have an encrypted file. In IOS, I'm trying to emulate that process. However, the concept of SealedBox seems to be getting in the way. I can seal each piece of text, but decrypting those doesn't work. I believe this has to do with the way the data is produced by the box. I can decrypt each piece individually, but I can't find a way to feed this into a stream and ultimately seal the whole thing. I understand I can write the file plain text, and encrypt it at the end, but this leaves the data vulnerable for long periods of time. Anyone has any Ideas on how to solve this on IOS?
Posted
by SK-Arctop.
Last updated
.
Post marked as solved
1 Replies
1.1k Views
Hello All. We have an app that we developed that receives real time data from a bluetooth device, runs it through AI models, and provides some result based on the input. (Sorry for being vague, IP and all). This all works well both on IOS and Android. However, what we want to allow, is for other apps to be able and read the data that we provide in realtime, and display / use that for their own proposes. On android this works really well using a Service. This allows any app to communicate with a single running instance of the service, bind to it, work with the results, and close it when done. I'm trying to understand how we would replicate this on IOS. It seems that the concept doesn't exist, and with the strict limitations on background processing, we cannot just run our app in the background, and stream the results via say a local TCP server that another app can access. What might be the way to solve this within the platform? we have to keep the BT data streaming, our models running, and allow others to access it via some API/RPC. Is there a solution or some sort of best practice to achieve this?
Posted
by SK-Arctop.
Last updated
.