When registering a BackgroundTask using BackgroundTaskBuilder, the Name property can be set to identify the task. The sample application shows this property being used to subsequently locate the task when it's already registered.
Should this name be unique across multiple applications; can other applications detect my application's background tasks if they look for the same name?
Not something to worry about. App-specific information like this is isolated between apps. There won't be name conflicts, nor will other apps be able to access anything in yours. The same principle applies to APIs like the credential locker, app data, secondary tiles, and so forth.
Related
I am trying to develop a RN application which would contain different screens, based on the role of user logged in.
Application would have 4-5 roles and each role would kinda be like a whole application within itself.
I am undecided as to what kind of architecture should I have if I am looking to incorporate all these roles within one application only. Or if I should go about making a separate application for each role?
I think more important than the roles will be the actual tasks your roles have. I'd create a matrix for getting clarity on which role requires which tasks. You then write task specific ui screens/components and show/hide based on the role matrix. This will probably be the most logical architecture and promote reuse of your task oriented ui components. Imagine a new role comes into the picture for your application - Or a new task. For both cases this architecture is easily extensible/changeable.
You can do this approach with writing a single app for all roles or a separate app for each role - Your task specific modules will be reusable in either approach.
And the comment to use redux for state management is a somewhat different topic, but generally not bad advice for a reasonably complex app. Just read this to get more clarity.
I am working to develop an external application that will be used to update items in a Podio workspace via AJAX request. However, I'm having a bit of a hard time understanding how to properly generate an API key...
In the API key generator, it asks for the 'Application name (displayed in stream byline)' - what exactly is meant by this? Is 'Application' just an individual app in our workspace? If so, is it possible to generate one API key for the entire workspace? We will need to update items inside of many different apps (including apps that do not yet exist) from the same external application, and would probably prefer to not have to generate a unique key... it would be preferable for us to just have one API key with which we can update items in all of the apps in our workspace.
Application name is not Podio individual app in your workspace, but rather name of application that you develop. So, in sentence:
We will need to update items inside of many different apps (including
apps that do not yet exist) from the same external application ...
Apps - means Podio applications
External application - means application that you develop and you want to generate your API key for it, so it would be natural to name your API key in a way that you know which application is using it.
Our Team is trying to build multiple Windows 8 Store Apps for an enterprise.
How do we maintain a common session for all apps(where we store data which need to be shared)?
How do we enable direct interaction between the apps developed i.e. sharing objects or string(JSON) among the apps?
There is not built in way to do this. Realistically you probably have three options to share data between applications.
The first is to use the cloud / web services. This makes the most sense as you'd have full control about what is shared, authentication etc. Using libraries such as SignalR could let you add real time functionality between the applications as well as multiple users.
The Share contract, by using custom data formats you could enable the apps to share specialised data between each of them. This can make sense if the user has a set of data they want to send to another application to enable a quick piece of workflow as the Share target is only partially launched. This also is limited in that it's enabled by user action.
Custom protocol handlers, by giving each app it's only protocol my-custom-app:///some-action?param1=value etc then you can pass data between apps, note this launches the app in question when you launch that uri. This would be best for more longer running scenarios.
I'd suggest a combination of all three depending on the user action. Cloud services to store the data for the user and then a mixture of Share and Protocol to enable to the user to smartly move the apps seamlessly.
Here exactly the same question as yours. In short: there is no such ability. Sometimes I think that it will be easier to share data via Internet that in device.
Does anyone know how to access Contacts in Windows 8 Store apps?
I know that because of the sandboxed nature, Windows Store apps cannot access AddressBook from files such as Outlook Express contacts or Outlook, but since there is already an app called People that comes pre-installed, I figure why not let users make use of whatever Contacts the user has already allowed the app to see, rather than creating separate list of Contacts for my app. It seems silly to recreate the wheel by asking the user to re-import all the contacts again.
I have seen Contact Picker example but I still have no clues how to get list of Contacts/People as in that People app.
I have not developed for mobile phone, however if the device is a mobile phone, surely the app is expected to use local contacts rather than keeping separate list of contacts. So I am thinking there's got to be a way to do the same thing on a PC or any device really, rather than each app managing its own contacts. I have not seen any guidance on how to do this. What are your thoughts?
I asked a similar question a few days ago and, after a lot of research, it looks like it's just not possible to get that information from the people app outside of the contract. The reason that it works within calendar/mail/messenger is because they're all technically contained within the same app and are able to use each other's data and violate normal rules.
A lot of people have pointed me to look at the live SDK, but it still seems like it's not at all possible to get people information in your app, since the SDK doesn't support it anymore.
Look at the ContactPicker class :
http://msdn.microsoft.com/en-us/library/windows/apps/br224913.aspx
Another way is to share your resource or whatever you want to send and user will choose an app that will send or on any another way use your shared resource (url, image, whatever)
IMO the latter is preferred way since then user will have a choice of applications that can send mail or post that resource on facebook / twitter.
Check this sample on ContactPicker
I would like to be able to change the OSX services that my application provides based on the current user's preferences (like adding more, changing the name,...). This basically means modifying the Info.plist (NSService key), but I don't think it is a good practice when an application modifies its own Info.plist while running, right? (At least based on few searches here). Is there any other option how to get this functionality?
I guess it should always be an external entity who does modify the Info.plist? So far I can only think about providing a system preference bundle which will do the modification in the actual app? Do you have any ideas?
Thank you
One way would be to install a service in ~/Library/Services that provides the services, and edit that application's Info.plist from your main application.
Of course, that should be an explicit action, so the user (hopefully) knows to delete the service if they delete your application. And you should document that procedure on your product's support web page, just in case they don't.
Here's a small twist to the previous recommendations, create a separate app that handles the service and bundle it within your Resources. When you want to enable the service, instead of copying the file over to ~/Library/Services, create a symbolic link within the ~/Library/Services folder that points to the app you bundled in your Resources.
This way if the user deletes your application, all that will be left behind is a symbolic link pointing to an invalid location. Does less arm than actually leaving the app behind and will have the added benefit that the service will no longer be available (since the info.plist will have been removed when the user deleted your app).