Message Boards Message Boards

What content will work on the CDF Player (beta) for iOS?

Hi,

With great excitement I read the announcement given by John Fultz that the CDF Player for iOS is about to be released in a Beta-version here. This was urgently anticipated as interactive content (CDF) makes the most sense on those devices, that are usually used by people for interaction (e.g. iPhones and iPads for Apple customers).

Needless to say, that I signed up for a Beta-version and finally got one to play with on my brand new iPad Pro 12.9'' using TestFlight. Unfortunately that testing experience has proven quite frustrating for me, as pretty much not a single CDF I had on my PC (mostly produced with Mathematica 10 or 11) would run on the CDF Player App for the iPad.

Thus my question(s) is/are:

  1. What content will run as should be on the current Beta-release of the CDF Player for iOS? (are there examples to test which should give a user experience as it is supposed to be?)
  2. How should Manipulates or DynamicModules be written, so that they work with iOS?
  3. The antipode to question 1: What type of content is so far a rather bad match for running within a CDF on an iPad?

Thanks for some insights in advance!

Best regards, Guido

2 Replies

... not just another "Dear John - Letter" from Germany :)

Hello John,

thank you very much for taking the time to respond in person, I can quite imagine how you are taken up in that Sisyphean task of yours. First of all, I would like to really encourage you and your team to keep up the good work which is looking very, very promising (probably an explanation for my high expectations). Since I am coming more from the business world, which is yet rather untouched by Wolfram's magic (I am excluding finance here, of course). This world is still heavily invested in Excel and lots of "gadgets". So addressing THE gadget of them all, the iPad, is a very wise and strong move.

Regarding the issues, I can quite follow you arguments. I must admit, that while I have mastered a lot of Mathematica by now, I still have to learn to be more aware with regard to the lower level OSI-spheres: Memory and Performance - which often are not very obvious.

So, I had thought that preprocessing the content and inserting it in a compressed form (I learned that from a wizard in Berlin :) ) would aleviate the problem a bit. Unfortunately it did not. Using Datasets to dynamically present results is a must have to me (It should use up not much more of 4 MB if I remember correctly).

I will try to be patient a bit more - also "try out" some more.

Thanks for the reply and keep up the good work!

Hello, Guido.

First, it seems that a number of your useful feedbacks were still in the queue of items to be processed for our development team. Sorry, I know that's probably a little frustrating (and it is for me, too), but I'm pushing your items to the top of the queue. Some specific comments based upon about an hour's time spent looking at your various notebooks:

  • There are definitely bugs and missing implementation issues here. One of the big things missing is the slideshow experience, as you've no doubt observed.
  • There was some kernel functionality which was accidentally missing related to Entity frameworks. That should be fixed in the next beta.
  • Some of the problems you experience have to do with the fact that your Manipulates are computationally intensive, which can cause two kinds of problems.
    • First, iOS devices do not have storage-backed virtual memory like traditional desktop devices. If you use too much memory, iOS simply kills your app. We try very hard to be conservative about memory usage, but the problem with exposing the full Wolfram Language is, of course, that you can choose to very easily allocate a ton of memory in your code.
    • Second, the A8/A9/A10 processors, while being extremely capable mobile processors, simply don't hold a candle to desktop CPUs for raw computational power. Some of your Manipulates are slow even on the desktop (which I noticed on my Mac Pro!), and these are likely to be killed by the TimeConstrained that we wrap around all synchronous Dynamics.
  • Also, related to the above, the beta doesn't support asynchronous Dynamics. It simply runs them as if they were synchronous (we might not be able to fix this in time for the initial v1 release).

Ultimately, notebooks will have to be tailored to be computationally lightweight. There's just no avoiding that as long as the computation is local. Apple devices are a moving target, of course, so "computationally lightweight" isn't something I can give a fixed definition.

As for various other features, we are re-creating 25 years of development, so there will be some holes. I appreciate your patience, and please keep reporting the things that you find.

POSTED BY: John Fultz
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract