interfacing with chess engines on iOS

Discussion of chess software programming and technical issues.

Moderator: Ras

adams161
Posts: 630
Joined: Sun May 13, 2007 9:55 pm
Full name: none

interfacing with chess engines on iOS

Post by adams161 »

Hi,

I'm looking to add engine analysis to some kind of iPad chess app(app idea not fully developed yet). With windows or mac users can just select engines they own and your app can talk to the engine through a pipe or runtime and other methods. How is this done on iOS? Most of what i'm seeing is stand alone chess playing programs, or built chess programs for analysis. I saw one app that had a second app you download to get the engine the first app uses but this seemed applicable only to his program?

I've got crafty to build under an ios project. Is it practical to just talk to the crafty code directly an emulate as if crafty thought it was talking to winboard? This solution means they have to use the built in crafty and couldn't import engines they owned.

Mike
Rémi Coulom
Posts: 438
Joined: Mon Apr 24, 2006 8:06 pm

Re: interfacing with chess engines on iOS

Post by Rémi Coulom »

In iOS, your app must be a single executable. You must link all your code into a single binary.

The reason is that Apple wants to strictly control what runs on the phone and how it is sold, and they don't allow apps that can download executable code (either binary or interpreted).

It may be possible to let two different apps communicate with each other, though. I am not sure how it is done.
daylen
Posts: 40
Joined: Fri Dec 30, 2011 5:33 am
Location: Berkeley, CA

Re: interfacing with chess engines on iOS

Post by daylen »

Remi is correct. On iOS you must have a single binary. If you're developing for OS X, though, it is a different story. You get to use NSTask to launch subprocesses. Example: https://github.com/daylen/stockfish-mac ... IEngine.mm
adams161
Posts: 630
Joined: Sun May 13, 2007 9:55 pm
Full name: none

Re: interfacing with chess engines on iOS

Post by adams161 »

in iOS store, StockFish for ChessApps application advertises:

Important:
You need to install both free apps: ChessApps and stockfish for ChessApps

the two communicate.

Mike