How to select a theme in a Getting Started page for a theme extension app using NodeJS - shopify

In the UX guidelines for theme app extensions it says that users need to be able to select a theme on which they want to implement their theme app extension.
Is there an example project which implements this theme selecting feature, and if not, is there any resource in which I can read about how to implement this feature in NodeJS?
All the logic of my app happens in the extension, so I only really need to use the app for showing this Getting Started page.

Related

can I remove specific app reference in my development of Shopify theme(unpublish theme)?

I am trying to make one feature in my Shopify theme that is currently integrated using 3rd party app. now I am achieving the same functionality using liquid code and javascript code but now I want to test without the app and once all tested on the development and if all working well then an then I want to push or deploy on a live one.
so for that, I want to remove that 3rd party app reference in the development theme only. the app will add js using a script tag.
I am using Shopify CLI to develop the theme feature. also I have blocked the JS of that app from the console window but I need to block it permanently on an unpublish theme so I can send the preview link to everyone to test the same things on a different machine and in a different browser.

React-Native: Share file

I'm a web developer (React) and I'm facing in my first react-native App. The context is an app where user can create and configure recipes. The app is without any type of authentication (at the moment). Now I would like to implement a Share functionality to share a recipe through social and messaging apps. The user clicking in the shared content open the app and can view the recipe.
At the moment I used react-native-fs and react-native-share to create and share a file (json or txt). Now I have problem to open app clicking the file shared. I saw some example of DeepLink but all the example involves only web resources. There are any way to use deeplink with file?
There are better pattern to achieve my objective? (considering the use case where there are only Application without any backend and server)
Thanks in advance.

How to get the URI scheme of any app for AppLinks/universal linking?

I need to open a third-party app from my react native mobile app. I understand that this is called universal linking on iOS and AppLink on Android.
I have done a lot of research for this, and I have been able to set up a link to the third party app on the app store. Now I just need to get my app to open up the app if the user has it installed. That requires the URI scheme of the other app, though.
My question is, how do I get the URI scheme to this third party app? Rather, how do I get the URI scheme of any app? I know the URI scheme of the twitter app is 'twitter://app', but the app I am trying to link to is way more niche than twitter or other popular apps, so there is no help for this sort of thing online.
Any tips?
Finding the URL scheme of an iOS app
Due to Apple's tendency for secrecy, it's not easy to find the URL scheme of an iOS app. But it can be done. Here's how I do it, using a Mac app called iMazing.
Launch iMazing, select a connected iOS device, click Apps:
In the footer of the window, click Manage Apps:
Select the app you're interested in , then select Export .IPA menu item. Note: You may need to download the app first.
The saved file will have the .ipa extension. Change the extension to .zip, and unzip the file. You now have a directory with the name matching the app's name.
Assuming "asana" is the app name, open the file "asana/Payload/asana.app/Info.plist" in a text editor, and search for a section that contains "CFBundleURLSchemes". Assuming the app contains CFBundleURLSchemes (they are optional), it should look something like this:
The URL scheme is in the <string>asana</string>, so the complete url scheme in this case is "asana://". Test that the URL launches the app by typing it into iOS Safari browser window. If it works, Safari should display an alert like this:
What About Apps Without CFBundleURLSchemes?
I haven't found a way to launch apps without CFBundleURLSchemes directly, but you can link to the app's page in the App Store, where the user can open the app with the Open button (or Get button if the app is not installed).
You will need to obtain the app page's URL from the App Store:
Open App Store, go to the app's page, click the share icon:
Click Copy Link:
The URL will look like this:
https://apps.apple.com/us/app/asana-organize-tasks-work/id489969512
Clicking on that link in Safari will bring up the app page in the App Store.
Maybe it is worth to start with some background:
There are various ways to deep link into an app, and it depends on the platform (iOS\Android\WindowsPhone...) and its version.
On iOS, up until version 9, the way to open an app was by using URI schemes, e.g. the one you added above: twitter://app. Each app declares the scheme that should be used. Therefore in order to deep link into the app you wish to open, you'll need to use the scheme that it declared. This is the same for Android until version 6.
Starting iOS9+, Apple introduced Universal Links as the method for deep linking. Here's some information: https://developer.apple.com/ios/universal-links/
In these versions, URI schemes won't longer work when using Safari browser (which is the iOS default browser) if the app is not installed. If the app is installed, however, URI schemes should allow opening the app, if everything is configured successfully. In Android there's a similar method called "AppLinks".
Having said this, the above information is for setting deep link for your app. I do not think that it is a common use case to open a third party app from your app - deep links are configured and used by the app owner (e.g. for publishing his\her app to engage users).

Install an App in unpublished theme in shopify store

I want to install some Apps in my unpublished theme (development theme) without impacting published (live) theme.
I have searched in google but couldn't find any solution. If anybody have done this type of task then please help me. Thanks in advance!
If the app provides an option for choosing a theme then yes you can, but otherwhise you can't.
Most APPs now install scripts that inject some content. Those scripts are tied directly to the live theme and if there is no option to choose a specific theme you can't change that functionality.
So you don't have a lot of options, if the APPs are not paid you can create a separate dev store where you can do your testing or styling and transfer the theme to the live store once you are done. But if the APPs are paid you will need to communicate with your client that there is a chance that the app may modify some of the current theme functionality and this may be visible on the live site.
The different apps are as follow:
Has an option for choosing a theme
Modify the theme files directly
Includes a script that will inject content and functionality to the front-end
Mash up of the above
Have in mind that all of the above indicates that these apps will modify the front-end in some way, there are APPs that extend the back-end and doesn't modify the front-end.

Shopify custom setting page for app

I tried searching up and down, but haven't found any thing that would even give a hint. My question is, If it is possible to create a custom setting page for a custom (public/private) app with Shopify?
What I want to achieve, is something like a custom setting page for my custom app.
Anyone have any clues?
Like all other apps from shopify app directory, You can also create settings page for your custom app (private/public).
You just need to develop the settings page for your app and allow its access to verified users.
If you want to show your app settings on Shopify store, then you have to develop a public app. You can't achieve this with the private app.
Except showing app setting on Shopify admin you can do all the things that you want in Shopify.
Please, check the Shopify tutorial to develop the public app