Question about organization of large projects

Andre Garzia andre at andregarzia.com
Mon Feb 7 09:04:07 EST 2022


Hi,

Just bumping into this thread to remind people, I wrote a couple of books
that tackle topics of organising your large LC projects:

*
https://andregarzia.com/books/livecode-advanced-application-architecture.html
* https://andregarzia.com/books/development-oriented-development.html

Best
A

On Sat, 5 Feb 2022 at 20:26, William Prothero via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Jacqueline,
> Thank you very much! Your explanation will save me a load of time. There
> really ought to be a lesson on this, rather than making folks figure it out
> for themselves. It’s so simple, yet so time consuming to figure how to
> implement from the dictionary.
>
> Best,
> Bill
>
> William A. Prothero, PhD
> Prof Emeritus, Dept of Earth Science
> University of California, Santa Barbara
>
> > On Feb 5, 2022, at 12:05 PM, J. Landman Gay via use-livecode <
> use-livecode at lists.runrev.com> wrote:
> >
> > On 2/5/22 12:21 AM, prothero--- via use-livecode wrote:
> >> Ok, thinking….. so for development, I would need to do something like:
> >> function resPath
> >>     if the environment contains “Development” then
> >>        put specialFolderPath("resources”)&”/mydataFolder" into dataPath
> >>    else
> >>        put
> specialFolderPath(“resources”)&”/dirSplashStackisin/pathToThisStack“&”/mydataFolder"
> into dataPath
> >>    end if
> >>    return dataPath
> >> end resPath
> >> In other words, all app paths would be relative to the splash stack.
> >> Is that right?
> >
> > There are a couple of ways to handle this. One is by using the
> stackfiles and the other is by creating a specific file path. In both
> cases, the module stacks should be in a folder structure that lives in the
> same directory as the splash stack; files scattered around the hard drive
> don't do well. You can choose either method, you don't need both. Either
> method will work the same way in the IDE and a standalone (including
> mobile.)
> >
> > For stackfiles: when you enter the path to the file, use a path relative
> to the main splash stack. The standalone builder retains the file structure
> when it builds the app, so the relative file paths will be correct
> anywhere. Add the entire folder of modules in Copy Files, you don't need to
> include individual files. If you use this method, just refer to the module
> stack by its short name.
> >
> > For example, if your modules are inside a folder named "Resources" which
> contains other folders, including a "FolderA":
> >   Stack1      Resouces/FolderA/Stack1.livecode
> >
> > When a script calls 'go stack "stack1"' LC will look at the stackfiles
> to get the path. It's pretty easy to set up because the inspector includes
> a button that lets you choose a stack and then fills out the correct path
> automatically.
> >
> >
> > For scripted paths: The specialFolderPath("resources") points to the
> folder containing the stack that called it. What I usually do is write a
> filepath function and put it into the splash's stack script. On startup I
> put the splash in use so that all other stacks can see it.  All navigation
> goes through this handler. Because it's in a single place,
> specialFolderPath("resources") is always relative to the splash stack.
> >
> > A very simplified example:
> >
> > function getFilePath pFolder,pStack
> >  -- pFolder can be a single folder or a path through more than one folder
> >  if last char of pFolder <> slash then put slash after pFolder
> >  put specialFolderPath("resouces") & slash & pFolder & pStack into tPath
> >  put ".livecode" after tPath -- omit if you pass the extension in the
> pStack parameter
> >  return tPath
> > end getFilePath
> >
> > Call it like this:
> >
> > put getFilePath("FolderA","Stack1.livecode") into tFilePath
> > or:
> > put getFilePath("FolderA/FolderB/FolderC","Stack1") into tFilePath
> >
> >
> > --
> > Jacqueline Landman Gay         |     jacque at hyperactivesw.com
> > HyperActive Software           |     http://www.hyperactivesw.com
> > _______________________________________________
> > use-livecode mailing list
> > use-livecode at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>


-- 
https://www.andregarzia.com <http://www.andregarzia.com>
Want to support me? Buy me a coffee at https://ko-fi.com/andregarzia


More information about the use-livecode mailing list