-
Login control - reset pas...
Forum: General
Last Post: marktalluto
10-31-2024, 05:38 PM
» Replies: 3
» Views: 1,209 -
BLOBs: Multiple feature r...
Forum: Feature Requests
Last Post: stam66
10-18-2024, 12:10 PM
» Replies: 5
» Views: 1,079 -
LiveCode licence needed?
Forum: General
Last Post: marktalluto
10-17-2024, 08:49 PM
» Replies: 3
» Views: 1,018 -
Script as text
Forum: Feature Requests
Last Post: linda
10-11-2024, 11:37 PM
» Replies: 1
» Views: 605 -
List Files issue
Forum: Bug Reports
Last Post: stam66
10-11-2024, 01:17 AM
» Replies: 5
» Views: 968 -
Buttonbar
Forum: Feature Requests
Last Post: marktalluto
10-08-2024, 11:58 PM
» Replies: 1
» Views: 484 -
Hey
Forum: Introduce Yourself
Last Post: marktalluto
10-08-2024, 11:47 PM
» Replies: 3
» Views: 4,999 -
I'm interested in opinion...
Forum: General
Last Post: marktalluto
10-08-2024, 10:52 PM
» Replies: 4
» Views: 5,043 -
Appli Founder Message for...
Forum: Announcements
Last Post: marktalluto
10-02-2024, 12:26 AM
» Replies: 0
» Views: 766 -
An interesting Find in Ap...
Forum: General
Last Post: MichaelJes
09-19-2024, 12:19 AM
» Replies: 3
» Views: 10,512
- Forum posts:207
- Forum threads:72
- Members:1,192
- Latest member:EnriqueHeifs
Hi all,
Quick question - Does Appli have a "reset password" functionality similar to cdb_forgotUserAccountPassword in LiveCloud? (still undocumented btw!)
If not I presume it's possible to add as a code block - but would that work without having the LiveCloud libraries?
Many thanks
Stam
Hi Mark & team
I have a recollection that when Appli was first announced, there was a requirement to have a LiveCode licence as well (please do correct me if I'm miss-remembering).
Quick question: Is that still la requirement?
If so, how does that work with the multiple licences and changes in LiveCode which is now being sunsetted in 3 years, to be replaced with LiveCode Create? (a little bit academic right now as for the foreseeable future I will have a liveCode licence anyway)
Many thanks
Stam
Hi Team
One thing that has become very apparent when trying to share scripts on this forum: there is no way to do this without a screenshot - or re-typing everything manually.
The current lowcode interface is nice, and promotes feeling simplicity - but is not always the most practical.
- The script does take up a lot of screen real estate so longer scripts are more difficult to visualise.
- There is no way that I know of as yet anyway to take a copy of the script as actual text, for example to paste in the forums, or share with others.
Feature request: would it be possible to create an alternate layout where the script simply appears as text (even if it can't be modified by typing and is used as it is now) with the ability to copy/paste this on forums or elsewhere like gist/github?
Or at least implement a function to copy the current script as text?
Many thanks once again,
Stam
Hi team
first of all thank you for the fixes just pushed - list files works perfectly.
The intention with the lowcode script I was trying to use this in was to
1. browse a folder containing mp4 videos
2. upload them to the cloud for use in an app.
The first request is an issue I've had with LiveCloud as well: uploading a blob does not retain the filename or modifiable metadata for the file and essentially just contains a UUID and an extension. Therefore working with BLOBs is not possible unless I also create a kind of join table to include the BLOB UUID and metadata, whereas this could be solved easily by including the filename as a key in the cdbBlobs table. This is fine and it works but is extra work.
In Appli, this script uploads the BLOBs and populates a separate table with their IDs and filenames. This works but may not be the most efficient:
So the first question is: can I use blobType in livecloud with the filename instead of the extension to make up for this? (I attempted to create. new key in the cdbBlobs table but that caused catastrophic errors only solved when I deleted the project...).
The second question is: was there an easier way to achieve the tasks shown in the script above?
If not, then the first feature request is: would it be possible to consider adding a "description" key in cdbBlobs that could for example be populated with the filename by default?
Another issue I've had with BLOBs is that create blob has been implemented as a non-blocking action - but there is as far as I can see no way to set up a callback/notification for when upload has been completed. Since there is no batch upload in Appli (as far as I can see), that means this is a stepwise process and there is no way for the app to know when the process has been completed.
So my second feature request is: please consider implementing callbacks for BLOB actions in Appli and BLOB handlers in LiveCloud
As far as I can see there is no easy way to periodically poll this from Appli so I dont' think I can work around this; and in LiveCode + LiveCloud it would mean setting up a recurring handler to check if the number of records in LiveCloud matches the number of records the handler knows it has uploaded - again a lot of extra and possibly error-prone work.
If adding a callback isn't feasible, is it possible to have an option to make this a blocking action, so the script cannot proceed until upload is complete?
Many thanks once again,
Stam
Hi all
I want to iterate the files of a folder.
As I'm new to Appli I'm still finding my feet, so I thought I'd try and just show the "list" in an answer dialog in way of debugging, as I can't see a way to examine this during script execution. But this script fails for reasons I can't really understand:
the error I'm getting is:
Looking at the documentation for List Files, it seems this only works for folders within the Documents folder (is this true?)
Moving said folder into the documents folder produces the same error...
Extracting the folder name using get item from variable (for the folder that is in /Documents) and using that with list files instead of the path produces the same error...
Grateful for explanation as to why this isn't working (I presume this isn't a bug and I'm "doing it wrong"), and more importantly, how I can iterate files of a folder
Thanks in advance,
Stam
Hi team,
great product... I'm guessing this can be done manually, but would be a nice timesaver to have a buttonbar control... ideally something that can combine buttons with popovers configurable in settings. Maybe also with an 'action button' as in material design.
Stam
Part of this would require "sticky" buttons which I can't see a way to do in Appli at present (did I miss a setting?)
Ideally would also require a "popover" control (eg as in FileMaker Pro). I guess a roundrect could be used (although I'm always partial the arrow).
Hi all - I'm a cardiologist based in London and code a bit on the side mainly for workplace apps.
My interests are mainly medical/related apps, and most things LiveCode!
I've just (re)discovered Appli - I had seen very early versions of Appli but had no real use for it at the time.
Just a few days ago, a use-case came up that Appli may fit the bill for and I looked at this again - and was balled over!
The product has matured really well since I last checked it out; the interface is truly well thought out. Seems like a joy to use and I look forward to getting into this :)
PS: great thanks also to Andre for the YouTube video series, that was a great way to quickly get up to a speed with Appli basics!
It has been some time since I last wrote you about Appli. If you are new to the Appli community, welcome.
We are trying a new format in full respect of your valuable time. Drop me a quick email and let me know what you think.
Here is a quick synopsis. Please keep reading for the full details.
We are thrilled to talk with you. Do you want direct access to get started on your project? It's free! Contact us at hello@appli.io. My direct email is mark@canelasoftware.com.
New killer feature called Appli Connect
With a few actions, you can access any web service and break through the walls of low code. A new template is available, which demonstrates Dropbox, Microsoft, Google, Appwrite, and TimeAPI.
We are creating our first commercial SaaS using Appli and will introduce Quizli this weekend at the CUE Conference.
We have new actions for QR codes, sockets, files, and folders
Enjoy our new frictionless Appli onboarding experience.
New FAQs:
Can you use the LiveCode language in Appli? Yes!
Do my apps require the internet to run? No.
Can I build standalone executables? Soon.
Do you have a feature to build reports? Yes, with more to come.
Are there limits to how many users can run my apps? No.
Let's Talk
While most users prefer to communicate with us privately, we have noticed a nice uptick in our forums and Twitter, which is excellent. We are grateful to all of you for using Appli and are thrilled to see it being embraced. Do you have questions about Appli? Do you want to discuss what we are doing and how Appli may be helpful in your workflow? We enjoy talking with curious folks. The goal is to answer your questions and get you moving in the right direction - you entirely direct your call. A good chunk of our development direction comes from talking with people like you. We are developers, too. We know what it is like to get started with a new platform.
Appli Connect
We are pleased to announce the launch of Appli Connect, a game-changing technology that allows integration with external data and services. This will open up new possibilities for app development and allow users to integrate with virtually any service. OAuth 2.0 support is included when you need it. A new template showcasing Appli Connect with Dropbox, TimeAPI, Google, Microsoft, and Appwrite has been released, providing a detailed breakdown of how to use each service efficiently. We will also add more pre-built connections to popular services in the future.
To access this template, go to your project screen, click the account icon, and select the 'Refresh Apps' option to download the latest templates. Stay tuned for more details about Appli Connect on our YouTube space, documentation, and blogs. Please see our initial blog post about Appli Connect and how we use AI to help build current and future definitions. https://forums.appli.io/showthread.php?tid=667
Quizli ? Gamefy quizzing students
In addition to working on Appli, we are also engaged in two commercial SaaS projects. Today, we will focus on Quizli, an education service that provides a fun and engaging way to quiz students on any subject. The teacher may run quizzes on any device for students running on any device. Cool! Students play a game show-like experience while testing their knowledge of recent learnings.
Appli allowed us to develop our MVP in weeks instead of months or a year. It uses sockets to simplify the connection between the teacher and students; no internet is required. We use Appli to create new business opportunities, increase performance, and bring innovative ideas to the market.
New Actions
QR codes - Quickly generate QR codes for display on screen. You can use this to link computers together or direct users to a website. A single action does all the work and outputs an image element. Quizly uses this feature to connect students to their teacher's computer easily.
Sockets - Twelve socket actions are divided by host and client. Easily set up a server and have your apps connect. Authentication and security are built in. Quizli uses this feature for all interactions between students and teacher systems.
Files and folders - Seven new actions allow interaction with folders and their files. You can load and save content as text or binary.
Appli Onboarding Improved
We have made getting started with Appli a lot easier. Account creation is painless, and there is no need to verify your email or supply a credit card. You get instant access to our 'Growing Tier' for FREE! An optional quick tutorial instantly starts on the first run. It will guide new users in making a Hello World app.
New FAQs
Q: Can you use the LiveCode language in Appli?
A: Yes! Our built-in script editor allows you to create your functions and commands. The scripts integrate seamlessly with our low-code actions editor.
Q: Do my apps require the internet to run?
A: No. Your apps are local to the device. Your data can be either local, cloud, or hybrid (both). The internet is required if your app uses cloud data or your user wants to get an updated version of your app.
Q: Can I build standalone executables?
A: Soon, you can choose between Appli Player or Standalone executables to deploy your apps. This feature will require an appropriate developer account to submit to the various app stores.
Q: Do you have a feature to build reports?
A: Yes, we have twenty-five actions available that cover everything you need, such as creating, setting up, sorting, navigating, and printing. You can easily create complex reports.
Q: Are there limits to how many users can run my apps?
A: No. Appli apps scale well because the logic is client-side. Our technology leverages the power in your mobile and desktop devices to enjoy a more robust experience like faster app loading, complete offline support, and computation. We save the initial serving of your app, updates, and off-device data to the cloud. This design allows us to offer incredible scaling of users to run your app. It also lowers the cost of running independent clouds around the world.
Q: How is responsive design managed in Appli?
A: Responsive design is WYSIWYG in Appli. Your apps automatically hold their place as you designed them. The elements will automatically scale up or down and adjust to different aspect ratios. You have complete control over the result and can fine-tune it as needed.
That is it for now. Have a great week!
Mark Talluto
Appli Founder and CEO
Get Appli from https://www.appli.io
Forums
https://forums.appli.io/
YouTube
https://www.youtube.com/@appli_io
Social
https://twitter.com/Appli_IO
https://www.linkedin.com/company/90523494/
Hello Appli Users,
Launching Appli Connect was a significant milestone on our development roadmap.
However, it is a feature that is never finished, and will require support and communication with all of you.
Over the coming weeks we will round out the interface, training and documentation of this feature.
The purpose of Appli Connect is to help your apps to be able to communicate with any and all web api's and endpoints. Without limits.
In creating this feature we sought to create a flexible system that will allow us, AND our users to build Appli Connect endpoints and connections.
Introducing the Appli Connect Endpoint Definition Script:
Example Definition:
// PROVIDER: EXAMPLE API PROVIDER
//*******************************
// PROVIDER INFO
put "ExampleAPI" into tProvider -- NAME OF API PROVIDER
put "https://appli-public.nyc3.cdn.digitaloceanspaces.com/vendor-logos/ExampleAPI-Logo.png" into gAppliConnectA[tProvider]["Provider Meta"]["Provider Logo"] -- LINK TO PROVIDER LOGO
put "https://exampleapi.com/docs" into gAppliConnectA[tProvider]["Provider Meta"]["Developer Documentation URL"] -- LINK TO DEVELOPER DOCUMENTATION
// ENDPOINT: GET EXAMPLE DATA
//***************************
put "ExampleAPI Get Data" into tName -- UNIQUE NAME OF THE ENDPOINT
// DEFINE ENDPOINT
put "https://api.exampleapi.com/data" into tEndpoint -- BASE URL FOR THE ENDPOINT
put "https://api.exampleapi.com/data/{VariableName}" into tEndpoint -- BASE URL FOR ENDPOINTS WHICH INCLUDES VARIABLES IN THE ENDPOINT
put tName into gAppliConnectA[tProvider]["Endpoints"][tName]["name"] -- STORE ENDPOINT NAME
// ENDPOINT SETTINGS
put "This endpoint retrieves example data from ExampleAPI." into gAppliConnectA[tProvider]["Endpoints"][tName]["Description"] -- SIMPLE DESCRIPTION OF WHAT THE ENDPOINT'S PURPOSE
put "GET" into gAppliConnectA[tProvider]["Endpoints"][tName]["method"] -- HTTP METHOD OF THE ENDPOINT
put tEndpoint into gAppliConnectA[tProvider]["Endpoints"][tName]["base url"] -- STORE BASE URL
// IS THIS AN OAUTH PROVIDER ENDPOINT?
put "false" into gAppliConnectA[tProvider]["Endpoints"][tName]["is oAuth2"] -- IS ENDPOINT FOR OAUTH ACCESS TOKEN RETRIEVAL
put "https://www.dropbox.com/oauth2/authorize" into gAppliConnectA[tProvider]["Endpoints"][tName]["oAuth Authorize URL"] -- IS THE URL OF AUTHORIZING THE OAUTH USER WITH THEIR LOGIN
// ENDPOINT URL VARIABLES
put "variable1,variable2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["endpoint variables"] -- COMMA DELIMITED LIST OF REQUIRED URL VARIABLES
put "Description of variable1,Description of variable2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["endpoint variables desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH URL VARIABLE
// REQUIRED HEADERS & DESCRIPTION
put "header1,header2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["required header keys"] -- COMMA DELIMITED LIST OF REQUIRED HEADERS
put "Description of header1,Description of header2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["required header keys desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH REQUIRED HEADER
// OPTIONAL HEADERS & DESCRIPTION
put "optionalHeader1,optionalHeader2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["optional header keys"] -- COMMA DELIMITED LIST OF OPTIONAL HEADERS
put "Description of optionalHeader1,Description of optionalHeader2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["optional header keys desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH OPTIONAL HEADER
// REQUEST DEFINITION
// REQUIRED URL PARAMS & DESCRIPTION
put "param1,param2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["required URL params"] -- COMMA DELIMITED LIST OF REQUIRED URL PARAMETERS
put "Description of param1,Description of param2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["required URL params desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH REQUIRED URL PARAMETER
// OPTIONAL URL PARAMS & DESCRIPTION
put "optionalParam1,optionalParam2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["optional URL params"] -- COMMA DELIMITED LIST OF OPTIONAL URL PARAMETERS
put "Description of optionalParam1,Description of optionalParam2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["optional URL params desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH OPTIONAL URL PARAMETER
// REQUIRED JSON BODY KEYS & DESCRIPTION
put "jsonKey1,jsonKey2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["required JSON body"] -- COMMA DELIMITED LIST OF REQUIRED JSON BODY KEYS
put "Description of jsonKey1,Description of jsonKey2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["required JSON body desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH REQUIRED JSON BODY KEY
// OPTIONAL JSON BODY KEYS & DESCRIPTION
put "optionalJsonKey1,optionalJsonKey2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["optional JSON body"] -- COMMA DELIMITED LIST OF OPTIONAL JSON BODY KEYS
put "Description of optionalJsonKey1,Description of optionalJsonKey2" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["optional JSON body desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH OPTIONAL JSON BODY KEY
// POSSIBLE PREREQUISISTE ENDPOINTS
put "" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["prerequisite endpoints"] -- COMMA DELIMITED LIST OF ENDPOINTS THAT MUST RUN BEFORE THIS WILL BE SUCCESSFUL (e.g., AUTHENTICATE, CREATE SESSION)
put "" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["prerequisite endpoints desc"] -- COMMA DELIMITED SHORT DESCRIPTION OF EACH PREREQUISITE ENDPOINT
// DEFINE SUCCESSFUL RESPONSES
put 200 into gAppliConnectA[tProvider]["Endpoints"][tName]["success"]["code"] -- THE CODE EQUIVALENT TO A SUCCESSFUL CALL
put "data,total" into gAppliConnectA[tProvider]["Endpoints"][tName]["success"]["keys"] -- THE KEYS THAT COME BACK WITH A SUCCESSFUL REQUEST
put "array,int" into gAppliConnectA[tProvider]["Endpoints"][tName]["success"]["key types"] -- THE TYPES OF EACH RETURNED KEY
put "/" into gAppliConnectA[tProvider]["Endpoints"][tName]["success"]["path to returned data"] -- THE PATH TO REACH THE DATA THE USER WANTS
// SPECIAL KEYS
put "Authorization" into gAppliConnectA[tProvider]["Endpoints"][tName]["request"]["bearer tokens"] -- SIGNIFIES WHICH KEY(s) NEEDS THE "bearer" KEYWORD PRIOR TO IT
put "application/octet-stream" into gAppliConnectA[tProvider]["Endpoints"][tName]["default Content-Type"] -- SET THIS AS DEFAULT CONTENT-TYPE WHEN FIRST CONFIGURING THE CONNECTION
put false into gAppliConnectA[tProvider]["Endpoints"][tName]["handles files"] ## DOES THIS ENDPOINT UPLOAD OR DOWNLOAD "FILES" INSTEAD OF DATA TO/FROM VARIABLES
Our dev team will create and add new definitions on a regular basis but we wanted to set you free so you too can create them and use them with the appli Connect input method.
The easiest way to create one is to use our GPT https://chatgpt.com/g/g-IvA7mBjg1-appli-...tion-maker and paste in a link for the documentation of the endpoint that you need. (a free OpenAI account is sufficient)
GPTs are not perfect, but they will get you started in correctly defining any Appli Connect connection, but sometimes the definitions work out of the box. We will improve the training of the GPT as we learn more about where it makes mistakes.
Important Notes:
- * The 'provider' details needs to be defined only with one of your endpoints, if you have multiple endpoints from the same provider. The GPT will include provider details each time.
- * The definitions you add to Appli Connect end up in the provider & endpoint dropdowns, so use a unique provider & endpoint name to make sure you don't replace existing connections.
- * If you are adding an endpoint for an exiting provider, just make sure the provider name matches in each endpoint definition.
Do not hesitate to ask us for help in this forum.
Have fun with Appli Connect.... and please share with us how you plan to use Appli Connect to expand your apps' horizons.
I have an app which needs the user to be able to upload their own photographs (ideally with tags / comments / titles / ...)
I kind of guess there is some way, and I've just missed it. If so, could someone point me to the docs that describe it.
If not - please make it a (high-ish priority) feature request.
(How am I ever going to replace tripadvisor without this feature :-)