The AppStudio Framework, or AppFramework, contains platform-neutral QML components to allow you to create apps that work across multiple platforms. The components that the AppFramework provides are intended for use in providing base functionality for your app, including managing file paths, networking interfaces, and image manipulation, as well as tools specific to working within the AppStudio environment. The AppFramework library is unique in that it has features and capabilities that are neither natively provided by the underlying Qt framework nor the ArcGIS Runtime but are necessary and commonly used for developing apps. We are excited to share new features and enhancements added to AppStudio 4.4 release with you in this blog post.
The comma separated values format (CSV) has been widely used for exchanging and converting data between various spreadsheet programs, this format is very common including in ArcGIS Survey123. The AppFramework FileFolder component now parses CSV files using the internet standard RFC 4180 and the AppFramework SQL component now uses the internet standard RFC 4180 for improved virtual table handling of CSV files.
This code sample shows potential usage of FileFolder.readCvsFile() method, using all provided options.
Item {
FileFolder {
id: testFolder
path: "TestFolder"
}
function runTest() {
var options = {"delimiter": "|"}
var inputFile = AppFramework.resolvedPath(testFolder.filePath("test.csv"));
try {
testFolder.readCsvFile(inputFile, options);
} catch (error) {
console.log("Error in " + error.fileName + ":" + error.lineNumber + ": " + error.message);
}
}
Component.onCompleted: {
runTest();
}
}
The BrightnessConstrastFilter component provides a way for an app to change video output by allowing for brightness and contrast to be modified before being passed on to another filter. When used in conjunction with another video filter, it can result in improving the digital image processing in that video filter. For example, when used with BarcodeVideoFilter, it can improve the capture of barcodes.
This code sample shows a potential usage of BrightnessContrastFilter, altering the contrast of the video output before passing it on to BarcodeFilter.
Page {
VideoOutput {
anchors.fill: parent
filters: [ brightnessContrastFilter, barcodeFilter ]
}
BrightnessContrastFilter {
id: brightnessContrastFilter
contrast: 0.20
}
BarcodeFilter {
id: barcodeFilter
onDecoded: console.log("barcode.decoded: ", barcode, barcodeType, barcodeTypeString)
}
}
This method, bool AppFramework.openUrlExternally(URL), opens the provided URL in an external app. This method can accept multiple kinds of URLs, and will behave differently depending on what kind of URL is provided.
If given a web URL, the destination will open in the device's default browser. On Android, a share sheet will open allowing the user to select a preferred browser. If given an app link, the app will open if installed on the user's device. Otherwise, it will behave in the same way as a web URL. If given an app schema, the app will open if installed on the user's device. Otherwise, it will do nothing. If given a file URL, Android will open a share sheet to select an app to open the file with, iOS will open it in a document viewer, and all other platforms will open the file using the default app used for its MIME type.
The URL parameter for this method is the URL to open in an external app. This can be a web URL, an app link, an app schema, or a file URL.
Other changes and new features include the following:
Other bug fixes and enhancements are listed in this blog post.
Learn more about AppStudio:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.