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