Controls on mobile apps - am I missing something?

Richard Gaskin ambassador at fourthworld.com
Fri Jul 1 12:28:48 EDT 2016


Terence Heaford wrote:

 > So with regard to Mac OS if we/I want native controls for:
 >
 > Buttons,
 > Fields,
 > Tabs,
 > DataGrid (NSTable)
 > etc.
 >
 > I will have to roll my own in LCB (when available for this) or wait
 > for LiveCode to require to do it via a stretch goal?


If you're looking for an implementation of a control on just one of the 
6 GUI platforms LC supports, it would seem reasonable to roll your own.

The LC team has to support multiple OSes, which of course multiplies the 
cost of an implementation.

But for the most part that shouldn't be needed.

Buttons are already quite good on macOS, as are fields, tabs, progress 
bars, and most others.  The transition to Cocoa really moved those 
forward nicely, and the recent theme refinements have made them quite 
satisfying.  There should be no need to rewrite those from scratch in 
any language at all.  And they look very good on Windows and Linux as well.


To rewrite the DataGrid for macOS using NSTable would be non-trivial. 
Indeed, I've never seen any control on any platform implemented in C (or 
C++ or Objective C etc.) as flexible for the end-user as what the DG 
provides.

I was talking about these sorts of issues recently with my friend Mark 
Lucas, the lead developer of SuperCard.  He reminded me that the Cocoa 
framework provides many great features that save significant time for 
Objective C developers, but they assume your app's appearance and 
behavior are defined before compile-time.  With xTalks like SuperCard 
and LiveCode, the engine developers need to accommodate a much more 
dynamic world in which, for the scripters using these tools, development 
and runtime are virtually indistinguishable.  This requires the stewards 
of an xTalk engine to, as he likes to put it, "reach in between the fan 
blades", to work around the constraints of the OS APIs that made 
NextStep/Cocoa so great for ObjC devs but unusually challenging for 
xTalk devs.

When we see apps making good use of APIs like NSTable, we usually see a 
user-facing implementation that reflects a relatively small subset of 
all of the capabilities of that class.

If there is any other high-level scripting language that uses NSTable to 
provide access to as many properties and features as LC's DataGrid, I've 
not come across it yet.

That said, I've never programmed in Objective C and am not familiar with 
the NSTable class.  If it's affordable to implement, perhaps you could 
point the way.

The LiveCode team, however, faces a very different challenge:  in 
addition to a macOS version they'd also need do that work all over again 
with a different set of APIs for Windows, Linux, and Android.

I'm sure they'd love to have the time for that.  But to get them that 
time we'd need to let them know which other things we've been asking 
them to do are less important so they could set those aside.  And given 
the scope of the task, I'd imagine the list of set-asides would be 
rather long.

-- 
  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  ____________________________________________________________________
  Ambassador at FourthWorld.com                http://www.FourthWorld.com





More information about the use-livecode mailing list