XFC : Xtensions For Codea

Hi everyone!
I am proud to present a project i’ve been working on for a couple months, XFC.
The idea of this project was to provide basic users, newbees, or more experienced ones, an ultra simple way to install into their projects some functions that are available on the forum.
The idea is: once you’ve installed XFC from the gist (https://gist.github.com/JMV38/c7e33b175d33f9f01ee5), with autogist for instance, you just have to check a dependency from your project to XFC. Nothing else, not a single line of code! Then XFC will run in your project and you can install the functions you want in you project and only those ones. And you have a built-in documentation. Then you can remove the dependency to XFC and the functions are still there: very practical to export your project.

Here is a (long, 10mn, sorry) video that shows how to use it: http://www.youtube.com/watch?v=Rh0R7cCnZ5k

At this stage the project is just a proof of concept: there are only 2 functions installed. But everything works: auto-install, download, upload, links. Still, a lot of polishing would be necessary (around the upload and the automatic update). However, i know some people much more competent than myself in software are working on a probably better version of this project, with very different technical choices, so i fear my version of XFC will soon be completely obsolete. So i think i will let the project ‘as it is’ until i see what comes up from this other direction.
I also want to send a milion thanks to @Briarfox for supporting me in some aspects of the code, and for his enthousiasm. I would not have made it without him!
I hope some of you will enjoy the project and that it will give them some ideas!

Thank you.
@Luatee Actually, my initial idea was to add among first things … your UI libray! But as i explained, i’ll let the code rest ‘as it is’ until i see what some other similar project does. Let me know if XFC works well for you, if you have tried it. Just to confirm it is fine.

@Jmv38 XFC is looking sharp! Nicely done! You really got this up and running fast. Now I’ll go have some fun with it :slight_smile:

Wow, that’s amazing! Top job here @Jmv38 I can see loads of people using this, especially newbies. I cant wait to see what’s its like when it has more ‘addons’.

Well there’s a few additions to the UI which will come out soon hopefully, XFC works like a charm as far as I can tell. I doubt that someone else will make something like this if you manage to make it simple yet efficient, keep on top that’s what I always say!

Very spiffy, and it looks incredibly useful.

Thanks @Mark!

Great work @Jmv38, this looks like a great toolkit :slight_smile:

Very slick. The only thing I can see to add is a way to select multiple functions (classes, etc.) at once (using a series of checkboxes) to download, and similarly for removing them from a project. Doing onesies is good but doing several is better.

I have one question for you. Is this written only in Codea? Some users seem to be running some sort of SDK for Codea (maybe they’re beta testers), so they can do things others can’t, like add sexy sound files. It’s certainly been a pain to read/write simple text files, and yet you’re reading and writing Lua files, so I’m curious as to how you did it. A several-sentence high-level overview would be fine.

Thanks @toadkick and @startblue.
@starblue I agree about the interest of selecting several functions at once. I’ll remember this advice.
I have written all this under codea, on my ipad1 only. No SDK. Reading/writing lua file is quite easy with the read/saveProjectTab function. The whole file comes into a single string. But maybe i didnt understand your question?

No, you did fine, thanks.

Based only on viewing your video, it seems functions are downloaded singly. I’d like to have the ability to download a “library” of functions. (That’s one way to avoid choosing individual functions, but this is meant to be a second suggestion. ) In your video you have “functions”, “classes”, “shaders”, “toolbars”–you can add “libraries”.
And then use my earlier suggestion to select multiple libraries to load.

In principle it is possible to load a library at once by putting all the functions of the library in one single tab.

Ideally the tabs should be independent of each other. Otherwise the order will have to be managed, and there are some problems there (although doable).