|
POST
|
Garrett, Copying the entire content of the file from one template to another would not work. But taking the time to understand how each of them work then copy just the portion of UI code and portion of the Javascript code from one to another is the way to go. So it's good that you already have some kind of vision of how it's going to look like. Not everything should come from MapViewer, they can also come from our sample as well. I want to point out there is an app out there in Google Play Store and Apple Store called Earth Challange 2020 that is a custom AppStudio Player and contains several custom Quick Report templates for inspiration. iOS: Earth Challenge 2020 on the App Store Andriod: https://play.google.com/store/apps/details?id=org.earthday.ec2020app&hl=en_US This was built by our partner and friend at GeoMarvel, GeoMarvel | GIS Solutions & Services. Thank you, Erwin
... View more
07-22-2020
04:07 PM
|
0
|
1
|
1961
|
|
POST
|
Rajni, I want to point out that you can also use the proxy services to make this work, here is the documentation on how to set it up, Working with Proxy Services | ArcGIS for Developers This is the documentation on how to generate a token, Generate Token—ArcGIS REST API | ArcGIS for Developers, in AppStudio you can use the NetworkRequest component from AppFramework or XMLHttpRequest in javascript to make a request to REST endpoint. This is the documentation on NetworkRequest component in AppFramework, NetworkRequest QML Type | ArcGIS You can follow the sample called Nearby, it has a simple enough Network Manager class that you can copy from, arcgis-appstudio-samples/NetworkManager.qml at fd2e133089b189f3308de210612c3802d474f62b · Esri/arcgis-appstudio-samples … Thank you, Erwin
... View more
07-22-2020
12:16 PM
|
1
|
0
|
1525
|
|
POST
|
Truptimayee, They are possible in AppStudio using OAuth of Google or Facebook login endpoint on a WebView. You can search for the app that I have shared publicly called "Social Login - GeoNet" on AppStudio Player or see attached for the source code of the app. This sample shows you how to login to Facebook, Twitter, Google and ArcGIS Online. Thank you, Erwin
... View more
07-22-2020
09:25 AM
|
1
|
2
|
1455
|
|
POST
|
Rajni, You can try hard-coding the username and password to create the Credentials object based on this ArcGIS Runtime SDK for Qt documentation page, Credential QML Type | ArcGIS for Developers Thank you, Erwin
... View more
07-21-2020
09:11 AM
|
1
|
2
|
1525
|
|
POST
|
Garrett, I know its not an easy experience to do this, I just want you to know that I have taken note of this pain point, and we will see if there is anything we can do in the future to make this experience a little bit better. My suggestion is to use the Quick Report as a based app, and add the functionalities that you want from the MapViewer to be added to the QuickReport on the map page. I think that is the easiest path, depending on how much map-related functionality you would need. Thank you, Erwin
... View more
07-16-2020
05:40 PM
|
0
|
0
|
1373
|
|
POST
|
Ryan, MapViewer template in AppStudio does not have "Add Data" functionality you described, but I know that working with KML file is supported in ArcGIS Runtime SDK for Qt, so this would be a customized version of the MapViewer template with functionality to select a file then use the KML file in the MapViewer template. Thank you, Erwin
... View more
07-16-2020
04:49 PM
|
0
|
2
|
1821
|
|
POST
|
Sonja, if Survey123 can do all the requirements that you need, we would recommend using the out of the box app by Esri, since it would the simplest solution, and also Survey123 supports webhook that would let you send an email after a survey is submitted. The custom app using AppStudio is also an option, like the Quick Report template. Thank you, Erwin
... View more
07-16-2020
04:47 PM
|
0
|
0
|
593
|
|
BLOG
|
Working with the file system is an important part of developing any AppStudio app. For an Android app, up until targeting Android 10, when you gave an app storage permission, it could access any file on the device. When an app targets Android 10, Google enforces the concept of Scoped Storage, which enhances user control and privacy while cutting back the file clutter that removed apps leave behind. Google is changing the rules for submissions to Google Play. Starting on August 3, 2020, all new apps submitted to the Google Play store must be built for Android 10 by targeting SDK 29. And starting on November 2, 2020, all new apps and existing apps (app updates) must target Android 10 by targeting SDK 29. The upcoming AppStudio 4.3 and AppStudio 4.3 Beta will have default Android targetSdkVersion set to SDK 29. This blog discusses exactly what this means and how it may impact users of your app. How will users be affected? Users of your apps will be affected if both of the scenarios are applied, They have installed an older version of your app and have upgraded to a version of your app built with AppStudio 4.3 (Android targerSdkVersion set to SDK 29), AND, They have unsaved work ( e.g. input, forms, data, surveys, images, databases, etc ) from the older version of your app. You should advise your users to save their work before installing app updates targeting SDK 29. This may mean submitting their unsaved work online. Currently, up until targeting SDK 28, when your user uninstalls your app, their work will persist on storage location like /sdcard. After targeting SDK 29, when the user uninstalls your app, data stored with the app will be deleted. How you should prepare your apps and users? The worst-case scenario, after targeting SDK 29, is the app will not be able to access old data from before. The primary method of preparation is you should give users ample warning as soon as possible. Tell them that changes are coming and that they should prepare. Also, tell them to save their work online before upgrading their application. Such messaging can mitigate any loss of data better than any app code will do. The secondary method of preparation is to offer your users in-app mechanisms for access or migration of their data. However, as indicated, Google is closing off access to the older files location and you have limited opportunities to maximize your user’s success with this option. Also, you don’t want to implement migration code that’s stuck in your codebase for, potentially, forever (as you don’t know when the user will conduct the migration). AppStudio 4.2 and Android 10 AppStudio 4.2 default Android targetSdkVersion set to SDK 28. If you wish to opt-ni and want to target SDK 29, you can edit appinfo.json to change the "targetSdkVersion" property to 29 "deployment": {
"android": {
"targetSdkVersion": 29
}
} AppStudio 4.3 and Android Scoped Storage The upcoming AppStudio 4.3 and AppStudio 4.3 Beta will have default Android targetSdkVersion set to SDK 29. So when your app is built using AppStudio 4.3, it will already target SDK 29 required by Google Play. If you wish to opt-out and do not want to target SDK 29, you can edit appinfo.json to change the "targetSdkVersion" property to 28. "deployment": {
"android": {
"targetSdkVersion": 28
}
}
If you want to keep the targetSdkVersion at SDK 28 but still want to use the new Android Scoped Storage, you can set the "scopedStorage" property in appinfo.json. This will allow apps to get ready with the changes in AppFramework.userHomePath without incurring losing access to the old location. "deployment": {
"android": {
"scopedStorage" : true
}
} The changes in AppFramework.userHomePath For apps targetting SDK 28 and apps setting "scopedStorage" property to false the AppFramework.userHomePath will default to “/sdcard”. For apps targetting SDK 29 or apps setting "scopedStorage" property to true the AppFramework.userHomePath will default to Scope Storage location. "/storage/emulated/0/Android/data/com.myorg.myawesomeapp/files" Apps should use AppFramework.userHomePath or ~ to save data using the following code snippet as a guide: let fileInfo = AppFramework.fileInfo( "~/Data/file.dat" );
let fileFolder = fileInfo.folder();
let data = "sample data";
fileFolder.makeFolder();
fileFolder.writeTextFile( fileInfo.fileName, "sample data" ); Apps should use AppFramework.userHomePath or ~ to read data using the following code snippet as a guide: let fileInfo = AppFramework.fileInfo( "~/Data/file.dat" );
let fileFolder = fileInfo.folder();
let data = fileFolder.readTextFile( fileInfo.fileName ); The above methods are supplied as a guide because: The fileInfo object is a good way to expand userHomePath via the ~ shorthand The fileInfo object contains an easy way to access a FileFolder object ( which is needed to ensure the folder actually is created before writing files within ) Apps effectively using AppFramework.userHomePath or ~ will automatically migrate to the newer location. When apps target SDK 28 and below (i.e. AppStudio 4.2 and below), we are currently defaulting AppFramework.userHomePath to “/sdcard”. When apps target SDK 29 and above (i.e. AppStudio 4.3 and above), we will be setting AppFramework.userHomePath to a new location defined by the Scoped Storage. And when uninstalling and re-install, data will be gone. New AppStudioHomeLocation enumeration In AppStudio 4.2, we have introduced a new StandardPaths.AppStudioHomeLocation enumeration. To use it, let userHomePaths = AppFramework.standardPaths.standardLocations( StandardPaths.AppStudioHomeLocation ); On Android, this will return a string array containing two values, the first value will contain the new target SDK 29 userHomeLocation location and the second value will contain the target SDK 28 userHomePath. [ "/storage/emulated/0/Android/data/com.myorg.myawesomeapp/files", "/sdcard" ] This location could be to check the old SDK 28 location to see if there was old content that we could migrate to the user location. This could be used to implement data migration, however, only a small group of users will be able to use it to migrate their data effectively. i.e. those users who haven’t upgraded their phone to Android Q, or those users who are running a target SDK 28 version of your app. AppStudio Player as a distribution tool We have made the changes in AppStudio Player 4.3 to target Android 10, and introduced a new feature called Custom Profile so you could better use AppStudio Player as a distribution tool. Using AppStudio Player as a distribution tool for your AppStudio apps would make sure that your apps would continue to work since the changes are done by us in the AppStudio Player side. If you have any questions regarding this or anything related to AppStudio, please leave your comment below or reach out to us at [email protected]. New to AppStudio? Check out this website to learn more about what AppStudio for ArcGIS can do to you and your organization. Become an AppStudio for ArcGIS developer! Watch this video on how to sign up for a free trial. Follow us on Twitter @ArcGISAppStudio to keep up-to-date on the latest information and let us know about your creations built using AppStudio to be featured in the AppStudio Showcase. The AppStudio team periodically hosts workshops and webinars; please sign up for the AppStudio newsletter if you are interested in information regarding AppStudio events.
... View more
07-10-2020
02:48 PM
|
0
|
0
|
3348
|
|
POST
|
Alexander, You can take a look at the sample "Portal User Info" sample, arcgis-appstudio-samples/Portal User Info(4.2) at v4.2 · Esri/arcgis-appstudio-samples · GitHub , and then replace this MyApp.qml code attached to the sample for the additional functionality to check on Player credential information (if it is running inside the Player) and then creating the Runtime Portal object for the app. Take a look at the Component.inCompleted section. Thank you, Erwin
... View more
07-07-2020
01:26 PM
|
1
|
2
|
1718
|
|
POST
|
Truptimayee, The x and y for App and Image background of the Page are not necessary, they default to 0,0 unless there are Layout and Anchors that are set. On the button, we would recommend to use Anchor or Layout as outline in this QML documentation, Use Case - Positioners and Layouts In QML | Qt 5.15 For example, the button could just use anchors.centerIn: parent, Button {
id: button
anchors.centerIn: parent
width: 284
height: 40
text: qsTr("Login")
spacing: 0
}
... View more
07-02-2020
09:25 AM
|
1
|
0
|
974
|
|
POST
|
Oh ya?! Although we are striving to make this experience to be more like a walk in the park, from one ultra runner to another, all I can say is one foot in front of the other.
... View more
07-02-2020
09:03 AM
|
0
|
0
|
1586
|
|
POST
|
What you see on the OTA website are the items in the your ArcGIS Online items under "My Apps" folder with type "Native Application Installer". So you can remove it from there.
... View more
07-02-2020
09:01 AM
|
1
|
0
|
1826
|
|
POST
|
Simo, I think feature layer clustering is not supported in ArcGIS Runtime SDK for Qt. Tagging Runtime SDK for Qt in this thread for visibility. I would recommend bringing this up in ArcGIS Ideas or create an official Enhancement request via Esri Technical Support. Thank you, Erwin
... View more
07-01-2020
10:33 AM
|
0
|
0
|
914
|
|
POST
|
Garrett, We recently hosted Virtual AppStudio Workshop that was recorded, here is the details, ArcGIS AppStudio Virtual Workshop Recap You want to focus on Day 3 and Day 4 on the coding with QML/Javascript in Qt Creator. Erwin.
... View more
06-30-2020
04:26 PM
|
1
|
2
|
1586
|
|
POST
|
That is correct, you can either make the feature layer completely public or with restricted editing, meaning anyone can add data, but they can not query. That's up to you.
... View more
06-30-2020
12:56 PM
|
0
|
1
|
1252
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 07-07-2020 01:26 PM | |
| 1 | 10-27-2020 10:33 AM | |
| 1 | 12-06-2021 10:36 AM | |
| 1 | 10-01-2021 12:53 PM | |
| 1 | 08-24-2021 06:15 PM |
| Online Status |
Offline
|
| Date Last Visited |
12-08-2021
03:08 PM
|