I've just finished implementing the "Touch" capability in my iOS app. As I can't find anywhere to post bug reports, and this may help others, here's my experience:
BUGS:
1. sendImage in psconnection is multiply broken:
(a) Network communication depends on the PSRawImage C structure. However, that does not take padding into account. This may work for build settings that don't allow structure padding, it certainly doesn't work for my settings.
(b) Pixmap support is broken. The CGBitmapContext setting (RGB 888) it attempts to use is unsupported and will throw an exception on iOS
(c) JPEG support is broken - the (required) format byte simply isn't added to the network packet.
2. The documentation is wrong/incomplete
(a) It doesn't mention the format byte - you have to find that in the demo programs that don't use psconnection.
(b) It suggests that messages to the server are acknowledged. If they are, I'd like to know where/how.
3. The test version of Photoshop crashes with some (not all) JPEG images:
__________________________________________________________________________________________ ____
Process: Adobe Photoshop CS5.1 [976]
Path: /Applications/Adobe Photoshop CS5.1/Adobe Photoshop CS5.1.app/Contents/MacOS/Adobe Photoshop CS5.1
Identifier: com.adobe.Photoshop
Version: 12.1 (12.1x20110328.r.145) (12.1)
Code Type: X86-64 (Native)
Parent Process: launchd [100]
Date/Time: 2011-04-19 13:10:26.385 +0200
OS Version: Mac OS X 10.6.7 (10J869)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.adobe.Photoshop 0x0000000100541190 AWS_CUI_GetVersionComments(OpaqueWindowPtr*, adobe::q::QDocument&, adobe::q::QString&, adobe::q::QAttributeList&, adobe::q::QDocument*, adobe::q::QProject*, long) + 2510156
1 com.adobe.Photoshop 0x00000001004b4dfa AWS_CUI_GetVersionComments(OpaqueWindowPtr*, adobe::q::QDocument&, adobe::q::QString&, adobe::q::QAttributeList&, adobe::q::QDocument*, adobe::q::QProject*, long) + 1935798
2 com.adobe.Photoshop 0x00000001004b84d2 AWS_CUI_GetVersionComments(OpaqueWindowPtr*, adobe::q::QDocument&, adobe::q::QString&, adobe::q::QAttributeList&, adobe::q::QDocument*, adobe::q::QProject*, long) + 1949838
3 com.adobe.Photoshop 0x00000001007ba4a7 AWS_CUI_GetVersionComments(OpaqueWindowPtr*, adobe::q::QDocument&, adobe::q::QString&, adobe::q::QAttributeList&, adobe::q::QDocument*, adobe::q::QProject*, long) + 5103715
4 com.adobe.Photoshop 0x0000000100066573 0x100000000 + 419187
5 com.adobe.Photoshop 0x0000000100066636 0x100000000 + 419382
6 com.adobe.Photoshop 0x00000001012e0723 AWS_CUI_GetVersionComments(OpaqueWindowPtr*, adobe::q::QDocument&, adobe::q::QString&, adobe::q::QAttributeList&, adobe::q::QDocument*, adobe::q::QProject*, long) + 16794335
7 com.apple.Foundation 0x00007fff80d057d5 __NSFireTimer + 114
8 com.apple.CoreFoundation 0x00007fff86d90be8 __CFRunLoopRun + 6488
9 com.apple.CoreFoundation 0x00007fff86d8edbf CFRunLoopRunSpecific + 575
10 com.apple.HIToolbox 0x00007fff87bc97ee RunCurrentEventLoopInMode + 333
11 com.apple.HIToolbox 0x00007fff87bc95f3 ReceiveNextEventCommon + 310
12 com.apple.HIToolbox 0x00007fff87bc94ac BlockUntilNextEventMatchingListInMode + 59
13 com.apple.AppKit 0x00007fff80f7be64 _DPSNextEvent + 718
14 com.apple.AppKit 0x00007fff80f7b7a9 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
15 com.apple.AppKit 0x00007fff80f4148b -[NSApplication run] + 395
16 com.adobe.Photoshop 0x00000001012e0644 AWS_CUI_GetVersionComments(OpaqueWindowPtr*, adobe::q::QDocument&, adobe::q::QString&, adobe::q::QAttributeList&, adobe::q::QDocument*, adobe::q::QProject*, long) + 16794112
17 com.adobe.Photoshop 0x00000001012e10a1 AWS_CUI_GetVersionComments(OpaqueWindowPtr*, adobe::q::QDocument&, adobe::q::QString&, adobe::q::QAttributeList&, adobe::q::QDocument*, adobe::q::QProject*, long) + 16796765
18 com.adobe.Photoshop 0x0000000100068286 0x100000000 + 426630
19 com.adobe.Photoshop 0x0000000100237199 0x100000000 + 2322841
20 com.adobe.Photoshop 0x0000000100237229 0x100000000 + 2322985
21 com.adobe.Photoshop 0x0000000100002294 0x100000000 + 8852
__________________________________________________________________________________________ __
A Google search on the crash signature above shows it has previously occurred as a result of corrupt fonts. However (a) I'd done all the font checking etc as recommended, and (b) this only occurs for JPEGs, not pixmaps.
Annoyances:
1. psconnection is a huge memory hog; it creates multiple copies of images and network packets. Be prepared to rewrite if you're dealing with large images.
2. psconnection is not thread safe. Be prepared to put in locks and inter-thread communication code.
3. psconnection is iPad only. Be prepared to rewrite to be able to use it on an iPhone
4. The serial number for the test version of Photoshop as provided on the Adobe site only works for a few hours, then decides that the serial number is invalid.
Hints:
The demo programs e.g., transmitimage, do seem to work, as opposed to psconnection. However, they use their own code that doesn't do much in the way of error checking, etc.
Sandy