boinc icon indicating copy to clipboard operation
boinc copied to clipboard

port to iOS

Open davidpanderson opened this issue 10 years ago • 36 comments

Port the BOINC client to iOS, and develop a GUI similar to the Android GUI. Before doing this we'd need to

  1. get Apple's approval, since their App Store rules seem to disallow what BOINC does.
  2. Figure out how to port project apps to iOS without requiring projects to become registered Apple developers.

davidpanderson avatar Aug 02 '15 20:08 davidpanderson

ENTP!! Challenge Accepted

brandon5052 avatar Aug 04 '15 12:08 brandon5052

Is there a similar issue for the MacOS app store? It seems to be the dominant way Mac users get apps and BOINC is not available there.

SETIguy avatar Aug 06 '15 17:08 SETIguy

maybe you should make an BOINC app only for SETi@home with exec v7 (or v8)?! so only WUs got downloaded & results uploaded... ;)

KLiKzg avatar Dec 01 '15 07:12 KLiKzg

I have another suggestion. I never developed iOS applications. I only used iPhone for a couple of years.

As I understand the main problem of creating iOS BOINC app is that app can't download executable files but can download any other (WUs, etc). So maybe there will be not so bad decision to create BOINC app with project as plugins (DLLs in MSW). Good:

  • No need to download executables.
  • No need to create separate appications for all known projects
  • BOINC can schedule project work time and CPU/RAM usage. Bad:
  • BOINC should be updated every time when any project updates his applications
  • BOINC client with all projects potentially will be quite big.

Also I think it will be possible to create BOINC for iOS > 5.0 only (or maybe even higher I don't know) because Apple restricts creating daemon processes before (maybe I'm wrong here).

All of this is my point of view. I can be wrong. But I wish to see iOS app and potentially I can take part in it creation.

Thank you for the attention.

AenBleidd avatar Dec 01 '15 08:12 AenBleidd

That's a plausible approach. It could be prototyped using the SETI@home app, which is open-source.

davidpanderson avatar Dec 01 '15 21:12 davidpanderson

@AenBleidd, thank you for understanding my approach & made a better explanation of it! @davidpanderson, thank you accepting a challenge as part of [email protected]'ve been putting it here on "Wish list", but maybe it has been overlooked... ;)

KLiKzg avatar Dec 02 '15 07:12 KLiKzg

http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5353077&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5353077

I belive William Edger has already produced a working application for i-os in 2009, In fact I know Bill he is a great guy.

brandon5052 avatar Dec 02 '15 13:12 brandon5052

@brandon5052, yeah, VM is cool but is has one problem: you need to run it manually while native application with daemon can run itself when device is unused and plugged-in to the power source (socket or USB). Of course I can be wrong.

AenBleidd avatar Dec 02 '15 13:12 AenBleidd

I doubt that your wrong :) I started using boinc at 8y I am now 27y. I will be glad to help with the ui I feel that the required programming skills are in my tool belt..

brandon5052 avatar Dec 02 '15 13:12 brandon5052

Why is this issues has been closed? The BOINC app packaged with project files on iOS could be a viable option, isn't it?

adamradocz avatar Oct 23 '18 18:10 adamradocz

@adamradocz, unfortunately iOS have limitations on running background processes so there is no way to run boinc when iOS device in charging and not used. Please take a look at the details here: https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

AenBleidd avatar Oct 23 '18 19:10 AenBleidd

Oh, okay. I thought the only limitation was to download the executable.

adamradocz avatar Oct 23 '18 19:10 adamradocz

It's clear that we'd need the cooperation of Apple to run BOINC on iOS. If anyone knows a high-up person there (I don't) I'd be happy to approach them.

davidpanderson avatar Oct 23 '18 19:10 davidpanderson

I think it would be possible to have a boinc executable that takes project plugins (downloaded from the app store). The project plugins would contain the analysis code, and would be changed or updated through the app store.

It's a major architecture change, so a large piece of work. Then again with the Window S, we may need to do something similar for Windows in the future.

On Tue, Oct 23, 2018 at 12:49 PM David Anderson [email protected] wrote:

It's clear that we'd need the cooperation of Apple to run BOINC on iOS. If anyone knows a high-up person there (I don't) I'd be happy to approach them.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/BOINC/boinc/issues/1376#issuecomment-432393289, or mute the thread https://github.com/notifications/unsubscribe-auth/AKXcslmgkIB43RgUnI9M1qq7a2pTjCu8ks5un3LBgaJpZM4FkPJE .

-- Eric Korpela [email protected] AST:7731^29u18e3

SETIguy avatar Oct 23 '18 20:10 SETIguy

I looked into this several years ago, and there were multiple issues with getting Apple's approval. iOS devices can download apps only from Apple's App Store (unless their are jailbroken, of course.) Here are Apple's App Store review guidelines.

CharlieFenton avatar Oct 24 '18 01:10 CharlieFenton

Some of the conversation in PR #1804 may be relevant to iOS also.

CharlieFenton avatar Oct 24 '18 02:10 CharlieFenton

I looked into this several years ago, and there were multiple issues with getting Apple's approval. iOS devices can download apps only from Apple's App Store (unless their are jailbroken, of course.) Here are Apple's App Store review guidelines.

This might not be true, as there's an app called Dreamlab from Vodafone: https://itunes.apple.com/us/app/dreamlab/id1273619275?mt=8 ;)

KLiKzg avatar Oct 24 '18 15:10 KLiKzg

I can't tell for sure but it's possible that it has executable inside the package itself and makes no additional downloads

AenBleidd avatar Oct 24 '18 15:10 AenBleidd

Can't we do the same? There aren't so many project which support android devices, so I assume there won't so many that support iOS.

adamradocz avatar Oct 24 '18 17:10 adamradocz

Yes, we can. But again, I do not know how DreamLab application works and I have no iOS device to check it. According to the description, you should plug-in charger to your device and then manually run DreamLab app. Current BOINC behavior is opposite: you plug-in charger to your device and do nothing, boinc run itself in background. As far as I know background apps can't work in background on iOS that use a lot of resources, Maybe David is right and we need someone from Apple to cooperate with. You're right, there are not so many projects that support Android and I'm sure there will be even less that could support iOS. Again, I do not know what calculations run DreamLab but BOINC will require other projects to cooperate with. Here could be questions of licensing and rights because in the case we will publish iOS app with projects' executables that are not created by BOINC. So there are a lot of questions that should be solved before starting work on this.

AenBleidd avatar Oct 24 '18 19:10 AenBleidd

I reopen this issue. The iOS development clearly possible, as we see the DreamLab. I contacted with them to give us some guidance about how they manage to do it.

adamradocz avatar Nov 27 '18 11:11 adamradocz

Here's the answer

image

This makes your phone always on to make calculations. And you need to do everything manually while on Android you can just plug your phone, switch off the screen and let it work in background. From my POV the way DreamLab is done is not a BOINC way.

AenBleidd avatar Nov 27 '18 11:11 AenBleidd

@AenBleidd I tend to agree with you, but since Apple released the A12X SoC, it's performance mindblowing. It compares with an Intel 8400 Desktop CPU.

I know it's not the usual BOINC way, but I bet there would be a lot of enthusiasts who used it. If you still think this is a dead-end or not worth the effort, just close the issue again.

adamradocz avatar Nov 27 '18 12:11 adamradocz

@adamradocz, ok, it's complicated. Personally I'd like to see this on iOS devices.

But there're several questions that should be answered: 1 - Are there any projects that are willing to port their app to iOS? Yes, probably these applications should be just rebuilt and nothing more but I'm not an iOS developer so I have no expertise here. 2 - DreamLab app told me that I'm the 107922 person who installed their application. It's big number but do we know how much people use this app on daily basis? We need to ask people whether they want to see BOINC on iOS where it will work in different way (you should manually start it and left it unlocked, personally I'm against it because I prefer to sleep without light and with my phone on the table near the bed) 3 - We need iOS developer. I guess, you now try to cover Android development and I'll be very grateful if you do this because last BOINC release for Android broke too many (you can always ask me if you need some help., you can find my email in my commits). 4 - What iOS versions and device models should we support? If we'd want to cover as much people as possible, I guess, we should support devices from iPhone 5 (or even from iPhone 4).

There will be a contributor call this Thursday and it is a great topic to discuss. If you can do this - please do it. If not - please tell me and I'd try to do this on the call.

AenBleidd avatar Nov 27 '18 12:11 AenBleidd

@AenBleidd Sorry, I can't attend the Contributors call.

you should manually start it and left it unlocked, personally I'm against it because I prefer to sleep without light

The Sleep as android had to be left turn on for certain functions too. They solved it by not turning off the screen just showing a full black empty screen. The backlight was still turned on but nearly not as disturbing as normally.

adamradocz avatar Nov 27 '18 13:11 adamradocz

Has anyone looked into how MobileMiner works?

It’s an IOS app that’s able to CPU mine crypto; they circumvent the AppStore rules by side loading if that is an issue you guys are running into.

Maybe this will give you an idea hopefully.

https://9to5mac.com/2017/12/21/hands-on-mobileminer-how-to-mine-cryptocurrency-on-an-iphone-video/

LisaMacintosh avatar Jun 07 '19 12:06 LisaMacintosh

@LisaMacintosh, thank you for the hint and link. Unfortunately there are much more limitations and we don't want to break AppStore rules like MobileMiner do (e.g. with background execution timer). Currently I like DreamLab way more (it is not perfect either but better than nothing and fully legal)

AenBleidd avatar Jun 07 '19 12:06 AenBleidd

I'm working on porting the Manager to iOS (besides a new Android build based on Xamarin). @AenBleidd could you create a build script (or whatever) which builds the Client on iOS?

adamradocz avatar Jun 30 '19 10:06 adamradocz

Do you have some branch with iOS client? I could try to do this using some CI provider

вс, 30 июня 2019 г. в 13:23, Adam Radocz [email protected]:

I'm working on porting the Manager to iOS (besides a new Android version based on Xamarin). @AenBleidd https://github.com/AenBleidd could you create a build script (or whatever) which builds the Client on iOS?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/BOINC/boinc/issues/1376?email_source=notifications&email_token=AAYVTIO7B6FEAPCSEBQG433P5CCQ5A5CNFSM4BMQ6JCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY4JL2A#issuecomment-507024872, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYVTINJHSIG3XAXX4FHRADP5CCQ5ANCNFSM4BMQ6JCA .

-- Best regards, Vitalii Koshura

Sent via iPhone

AenBleidd avatar Jun 30 '19 10:06 AenBleidd

Be sure to review Apple's App Store review guidelines and this overview of the approval process before you put a lot of effort into this so you don't waste too much time. I am quite certain that you must be a member of the Apple Developer program to submit an app to the store.

CharlieFenton avatar Jun 30 '19 10:06 CharlieFenton