Interface Builder Alternatives etc

  • I posted on this topic previously, but it needs to be revisited. I
    hope someone out there can help me find a practical solution.

    I'm a blind programmer.  I develop mainly under Windows, but have been
    wanting to transition to Mac development, as many blind computer users
    are moving that way.  Plus, I'm a Mac fan anyway.

    Interface Builder is essentially useless with VoiceOver, (Apple's
    built-in screen reading solution), due to its highly visual usage.  So
    far as I can tell, there is no way to build an interface with it and
    avoid dragging and dropping controls.  That means, I can't create NIB
    files with it, and I lose all the benefits that come with having NIB
    files.

    So, a nice user here on this list gave me some sample code of how to
    build a basic interface, purely in source.  It was all fine and well,
    but such a method has a huge number of disadvantages.

    1. You lose all the advantages of NIB's (i.e. faster load times, ease
    of localization, etc.)

    2. Source code building of interfaces is virtually undocumented.  It's
    extremely difficult to work out the best way of doing things, when
    virtually no one builds their interfaces this way.

    3. Development time is substantially increased by having to build
    interfaces from scratch in the source code.

    4. This puts my own development completely out of sync with the rest
    of the Cocoa software development universe.

    It seems to me that, with Interface Builder or some other tool, there
    has got to be some sort of utility for editing NIB files out there.
    Something that gives a list of properties in text form of all of the
    objects in the NIB file and allows you to adjust the positioning,
    look, and other properties without relying on drag-and-drop.

    This is the most frustrating situation I've ever faced in nearly
    twenty years of software development.  Apple came a long way by making
    XCode nearly entirely accessible with VoiceOver, but without access to
    Interface Builder, it's not yet practical.

    If you can help...offer suggestions...anything at all, please do.  I'm
    still learning the ins and outs of Cocoa itself, but that is getting
    increasingly difficult without being able to build apps with a UI to
    experiment.  Cocoa books and manuals constantly tell you to build an
    interface in IB...connect this UI element to this method, etc.  All
    useless if you can't get past the UI design step.

    Josh de Lioncourt
    <overlord...>

    ...my other mail provider is an owl...
  • On Leopard, with interface builder 3.0, there is a new file format
    called XIB. This basically just stores the nib file in xml format
    (which is much more friendly with subversion, etc). Perhaps this
    format would be of interest to you? It is recommended to never
    manually alter the xml file by hand though...

    XIB appears to be the new standard format that apple recommends for
    use if all your development work is done on Leopard. The XIB files are
    compiled into a deployable nib while compiling in xcode.

    See: http://developer.apple.com/DOCUMENTATION/DeveloperTools/Conceptual/IB_UserG
    uide/BuildingaNibFile/chapter_4_section_6.html#/

    /apple_ref/doc/uid/TP40005344-CH11-DontLinkElementID_33

    for more information.

    Hope this helps,

    Nik

    On 12/12/2007, at 11:19 AM, Josh de Lioncourt wrote:

    >
    > I posted on this topic previously, but it needs to be revisited. I
    > hope someone out there can help me find a practical solution.
    >
    > I'm a blind programmer.  I develop mainly under Windows, but have
    > been wanting to transition to Mac development, as many blind
    > computer users are moving that way.  Plus, I'm a Mac fan anyway.
    >
    > Interface Builder is essentially useless with VoiceOver, (Apple's
    > built-in screen reading solution), due to its highly visual usage.
    > So far as I can tell, there is no way to build an interface with it
    > and avoid dragging and dropping controls.  That means, I can't
    > create NIB files with it, and I lose all the benefits that come with
    > having NIB files.
    >
    > So, a nice user here on this list gave me some sample code of how to
    > build a basic interface, purely in source.  It was all fine and
    > well, but such a method has a huge number of disadvantages.
    >
    > 1. You lose all the advantages of NIB's (i.e. faster load times,
    > ease of localization, etc.)
    >
    > 2. Source code building of interfaces is virtually undocumented.
    > It's extremely difficult to work out the best way of doing things,
    > when virtually no one builds their interfaces this way.
    >
    > 3. Development time is substantially increased by having to build
    > interfaces from scratch in the source code.
    >
    > 4. This puts my own development completely out of sync with the rest
    > of the Cocoa software development universe.
    >
    > It seems to me that, with Interface Builder or some other tool,
    > there has got to be some sort of utility for editing NIB files out
    > there.  Something that gives a list of properties in text form of
    > all of the objects in the NIB file and allows you to adjust the
    > positioning, look, and other properties without relying on drag-and-
    > drop.
    >
    > This is the most frustrating situation I've ever faced in nearly
    > twenty years of software development.  Apple came a long way by
    > making XCode nearly entirely accessible with VoiceOver, but without
    > access to Interface Builder, it's not yet practical.
    >
    > If you can help...offer suggestions...anything at all, please do.
    > I'm still learning the ins and outs of Cocoa itself, but that is
    > getting increasingly difficult without being able to build apps with
    > a UI to experiment.  Cocoa books and manuals constantly tell you to
    > build an interface in IB...connect this UI element to this method,
    > etc.  All useless if you can't get past the UI design step.
    >
    >
    >
    >
    > Josh de Lioncourt
    > <overlord...>
    >
    > ...my other mail provider is an owl...
  • On Dec 11, 2007, at 6:19 PM, Josh de Lioncourt wrote:

    > I posted on this topic previously, but it needs to be revisited. I
    > hope someone out there can help me find a practical solution.
    >
    > I'm a blind programmer.  I develop mainly under Windows, but have
    > been wanting to transition to Mac development, as many blind
    > computer users are moving that way.  Plus, I'm a Mac fan anyway.
    >
    > Interface Builder is essentially useless with VoiceOver, (Apple's
    > built-in screen reading solution), due to its highly visual usage.
    > So far as I can tell, there is no way to build an interface with it
    > and avoid dragging and dropping controls.  That means, I can't
    > create NIB files with it, and I lose all the benefits that come with
    > having NIB files.
    >
    > So, a nice user here on this list gave me some sample code of how to
    > build a basic interface, purely in source.  It was all fine and
    > well, but such a method has a huge number of disadvantages.
    >
    > 1. You lose all the advantages of NIB's (i.e. faster load times,
    > ease of localization, etc.)
    >
    > 2. Source code building of interfaces is virtually undocumented.
    > It's extremely difficult to work out the best way of doing things,
    > when virtually no one builds their interfaces this way.
    >
    > 3. Development time is substantially increased by having to build
    > interfaces from scratch in the source code.
    >
    > 4. This puts my own development completely out of sync with the rest
    > of the Cocoa software development universe.
    >
    > It seems to me that, with Interface Builder or some other tool,
    > there has got to be some sort of utility for editing NIB files out
    > there.  Something that gives a list of properties in text form of
    > all of the objects in the NIB file and allows you to adjust the
    > positioning, look, and other properties without relying on drag-and-
    > drop.
    >
    > This is the most frustrating situation I've ever faced in nearly
    > twenty years of software development.  Apple came a long way by
    > making XCode nearly entirely accessible with VoiceOver, but without
    > access to Interface Builder, it's not yet practical.
    >
    > If you can help...offer suggestions...anything at all, please do.
    > I'm still learning the ins and outs of Cocoa itself, but that is
    > getting increasingly difficult without being able to build apps with
    > a UI to experiment.  Cocoa books and manuals constantly tell you to
    > build an interface in IB...connect this UI element to this method,
    > etc.  All useless if you can't get past the UI design step.

    Josh,

    I just tried using UI Browser to see how controllable IB was.  Was a
    bit tricky since UI Browser is an application and when IB is not
    frontmost, it will hide many of its windows.  This includes the
    startup template window, library object window and inspector window.
    Anyhow, I got around that by using UI Browser's hot keys.  But, it
    appears that much of the basic tasks in IB's UI is not accessible.

    For example, the "Choose a Template" window doesn't make any of the
    choices accessible.  So, that part is useless.

    I also see no alternate method of dragging library template objects
    into your windows, etc.

    As a minor consolation prize, it does appear that at least the
    inspector itself is accessible.  I was able to modify at least window
    attributes using UI Browser.

    Sorry to not be able to point out workarounds.  The only thing I can
    suggest is to write in to Xcode-users and/or accessibility-dev.  The
    latter list may be able to provide potential workarounds.

    Definitely file bugs on this too.  All applications that Apple ships
    really need to be accessible.

    ___________________________________________________________
    Ricky A. Sharp        mailto:<rsharp...>
    Instant Interactive(tm)  http://www.instantinteractive.com
  • Hello,

    Thanks to those of you who responded about the XML-based XIB file
    format for UI development.  This is exactly what I needed.  It has the
    accessibility of source code, but relative simplicity of
    implementation.  If anyone knows of any documentation about the format
    of these files, and how to build them by hand, let me know.  Apple
    discourages this, it seems, but hopefully some documentation will be
    available somewhere.  Technically, one could build UI's in IB and then
    save them to XIB to examine, but as I can't build the UI's in the
    first place to dissect them, I'll need some docs, or at least a
    variety of examples from simplistic to advanced.  Thank you all
    again.  This gives me fresh hope.

    Josh de Lioncourt
    <overlord...>

    ...my other mail provider is an owl...
  • Hi Josh,

    You won't find any docs for the format because it it isn't a supported
    interface - it can change between releases.  But, the command line
    program, ibtool, _is_ a supported interface for working with xibs and
    nibs.  Maybe that'd help some?

    Good luck to you.  If you haven't already filed bugs about IB's
    accessibility, I'm sure they'd be appreciated.

    -Ken

    On Dec 11, 2007 5:08 PM, Josh de Lioncourt <overlord...> wrote:
    > Hello,
    >
    > Thanks to those of you who responded about the XML-based XIB file
    > format for UI development.  This is exactly what I needed.  It has the
    > accessibility of source code, but relative simplicity of
    > implementation.  If anyone knows of any documentation about the format
    > of these files, and how to build them by hand, let me know.  Apple
    > discourages this, it seems, but hopefully some documentation will be
    > available somewhere.  Technically, one could build UI's in IB and then
    > save them to XIB to examine, but as I can't build the UI's in the
    > first place to dissect them, I'll need some docs, or at least a
    > variety of examples from simplistic to advanced.  Thank you all
    > again.  This gives me fresh hope.
    >
    >
    > Josh de Lioncourt
    > <overlord...>
    >
    > ...my other mail provider is an owl...
    >
  • Hi,

    Yeah.  I managed to open some NIB files in Interface Builder and
    resave them in the XIB format to examine.  Unfortunately, it doesn't
    look like it is a viable option either.  The XML generated looks
    pretty unintelligible.  You might be able to make minor modifications
    this way, but building a whole UI from the ground up would be next-
    door to impossible.  I have contacted Apple Accessibility many times
    over the past several years regarding this, and I know other blind
    developers have as well.  As yet, they haven't shown any interest in
    resolving the problem, though it isn't really that difficult to fix.
    For example, allowing a developer to set X,Y coordinates for
    positioning and sizing of controls on the screen through a Inspector-
    like interface would allow us to set up a window properly.  Allowing
    the adding of controls to a window without drag-and-drop would also
    need to be implemented.

    So! Frustrating!


    Josh de Lioncourt
    <overlord...>

    ...my other mail provider is an owl...

    On 11 Dec, 2007, at 6:23 PM, Ken Ferry wrote:

    > Hi Josh,
    >
    > You won't find any docs for the format because it it isn't a supported
    > interface - it can change between releases.  But, the command line
    > program, ibtool, _is_ a supported interface for working with xibs and
    > nibs.  Maybe that'd help some?
    >
    > Good luck to you.  If you haven't already filed bugs about IB's
    > accessibility, I'm sure they'd be appreciated.
    >
    > -Ken
    >
  • On Dec 11, 2007, at 8:11 PM, Josh de Lioncourt wrote:

    > For example, allowing a developer to set X,Y coordinates for
    > positioning and sizing of controls on the screen through a Inspector-
    > like interface would allow us to set up a window properly.

    There is such an inspector, but for some reason it's never been
    visible by default.

    Nick Zitzmann
    <http://www.chronosnet.com/>
  • Interesting.  The name of it in the menu through me.  It's called the
    "Size Inspector."  OK.  Assuming I could use this to move stuff
    around, is there any way to get controls into a window without
    dragging and dropping?  Using keyboard commands and constantly reading
    the text descriptor for the controls as they are selected in the
    Library view, I seem to be able to at least select the control types.
    I just can't get then into the window.

    Thanks again to all who are working this through with me.

    Josh de Lioncourt
    <overlord...>

    ...my other mail provider is an owl...

    On 11 Dec, 2007, at 7:30 PM, Nick Zitzmann wrote:

    >
    > On Dec 11, 2007, at 8:11 PM, Josh de Lioncourt wrote:
    >
    >> For example, allowing a developer to set X,Y coordinates for
    >> positioning and sizing of controls on the screen through a
    >> Inspector-like interface would allow us to set up a window properly.
    >
    >
    > There is such an inspector, but for some reason it's never been
    > visible by default.
    >
    > Nick Zitzmann
    > <http://www.chronosnet.com/>
    >
  • Hi Josh,

    I'm not sure whether it will help or not, but there is GNUstep
    Renaissance project, aimed on creating NIB documents from hand-made
    XML. It was interest of me some time ago as it looks *very* promising
    (and I'm a plain-text fan anyway :-). The problem is that it lags
    behind the "current" technologies and, moreover, from what I see on
    their site, it has not been updated for a few years. If I'm not
    mistaken, that means that you should forget about bindings and
    technologies introduced after 10.3..

    Anyway, I hope it might help.

    http://www.gnustep.it/Renaissance/

    Regards,
    Grigory
  • On Dec 12, 2007, at 04:46, Josh de Lioncourt wrote:

    > Interesting.  The name of it in the menu through me.  It's called
    > the "Size Inspector."  OK.  Assuming I could use this to move stuff
    > around, is there any way to get controls into a window without
    > dragging and dropping?  Using keyboard commands and constantly
    > reading the text descriptor for the controls as they are selected in
    > the Library view, I seem to be able to at least select the control
    > types.  I just can't get then into the window.

    I've been able to do it by using this procedure:

    Cmd-Shift-L focuses the search field in the library
    enter a search term (like "table view")
    press tab 3 times
    select the appropriate item using the up/down arrows
    press enter

    andy
previous month december 2007 next month
MTWTFSS
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Go to today