Does Spotify and cocoalibspotify apps share a common offline file repository? - cocoa

Can an app using cocoalibspotify access offline files that were made available offline through the iOS Spotify app or a separate app with libspotify, or does libspotify use a separate offline file repository for every app which incorporates it?
I.e. If I make a song available offline in Spotify's iOS app, will it be accessed locally when played through a third party cocoalibspotify app or will it be streamed?

CocoaLibSpotify/libspotify uses a completely separate offline store. This is partly due to a limitation of iOS — applications cannot share files. Whether a track is offlined or not in the Spotify client has no effect on third party applications.

Related

Is it ok to hide a "Developer mode" in my app?

I have an mobile app. While in debug, I need to test several different stuff, so I created a button that shows a list of these tests.
Even in Release, some things are different (Apple Push Notification). So I need to test in release too.
Is it ok to leave these shortcuts hidden when releasing the app?
Doing so would leave a massive security hole in your application, which should be avoided at all costs. In fact, if you're creating an iOS app, I doubt such a hole would get by Apple's independent release testing.
Ideally, you should be using separate coding environments for development, testing and production. When you're developing, you should be using one of the various simulators to test as you work. There's an in-built one in XCode that can simulate a variety of Apple devices, and if you're using something like Ionic, you can hook it to a live preview in a web browser.
Once you're happy that things are working on your computer, you then should be deploying a development .ipa / .apk file. This file should only be released 'in-house', manually. If that's all good, you move on to testing. For testing, create a secondary file, and this can be distributed for external testing through something like Apple TestFlight.
For production, you'd remove any 'backdoors', as in theory, your app would be ready for the public. At this stage it's a simple matter of releasing it through either the Google Play Store or Apple Store.

Hybrid apps to Xcode

it's a really normal thing to say "I build Hybrid apps", but why can't I find anywhere on the internet how to achieve this? I read about adding cordova and build ios with that, but that doesn't make it a Xcode project I can open.
I build a Hybrid app with framework7.io with Vue. That's finished almost, but how can I make this a app to submit to Apple now? It's probably a non-framework7 related way around to achieve this. But the internet shows me only some years old tutorials how to do it in Phonegap..
You still need a native "container" project to submit your web-app to the app stores. A native "container" project is a XCode or Android Studio project which contains a webview which renders your web-app (the files a served via the file:// protocol or via a local HTTP server). You can setup one of these yourself or (which I strongly recommend) use a framework for doning the heavy lifting. You can choose the one you like most, some examples:
Cordova
PhoneGap
IntelXDK

Xamarin and Managed Extensibility Framework (MEF)

I'm thinking about a new mobile/tablet application.
I want to allow the users to develop their own plugins.
Imagine a cash desk application running on a Android tablet. The user could use many alternative when connecting to the credit card reader (Square, Sum'Up, ...).
If my application was an old Win32, I would just publish an API and let Square or Sum'Up developpers create a DLL. This DLL would then be placed somewhere on the computer. At application startup, I just have to look for those DLL and dynamically load them.
In fact, the real question is : Is it possible to create a plugin based application ? I'm thinking about Managed Extensibility Framework here. Many questions come to mind :
How to deploy those plugins ?
Does this work for all the platforms (iOS, Android, UWP) ?
...
I was unable to find any documentation on this.
Many thanks for your thoughts and indications.
Not sure if this answers your question fully.
However, a MEF like architecture could probably work on Android if you put the DLL's somewhere publicly discoverable, such as in /storage/emulated/0. Alternatively, such plugins could be distributed as separate Apps, providing Services, Content Providers and Activities consumable from other Apps.
However, on iOS you would not be able to publish such an App in the App Store though, as Apple does not allow you to use dynamically linked libraries there. You could maybe do it for Apps that don't go on the App Store, such as for Enterprise distribution.
While it might not be the greatest solution. You would always be able to navigate between Apps on iOS through URLs. However, that is not the greatest experience, since this would mean you would be leaving your App every time you wanted to get into a "plugin" App to do something.

Chrome ARC, Android -- ways to make paid apps?

I've recently posted my Android app to Chrome Web Store using ARC Welder, and wondering about how I can make it a paid app.
Currently, for Android, I have a free version and an "unlocker" as a separate app on Google Play. The user installs the free version first, and then if he/she decides to "go pro", he/she purchases and installs the "unlocker" which talks to the free versions and activates it into "pro" mode.
So my questions:
When packaging an Android app with ARC, it runs on its own, so there is no way to have a second app ("unlocker") running in the same Android "sandbox", correct?
Is it possible for an Android / ARC app to access "purchased" state via Google Play APIs, say for checking if the user purchased the "unlocker" app on Android?
I assume that the answer is "no", at least for now:
https://developer.chrome.com/apps/getstarted_arc
Since ARC is in Beta, it doesn't support all of Google Play Services yet.
However, here are some available APIs:
Auth (OAuth2)
GCM
Google+ sign-in
Maps
Location
Ads
I don't see licensing APIs here.
I found these links on monetizing Chrome apps:
https://developer.chrome.com/webstore/money
https://developer.chrome.com/webstore/payments-iap
Even if this also applies to Chrome OS (not sure), it seems to require JavaScript coding to talk Chrome Webstore APIs. Is it possible to access those from inside the Android ARC sandbox?
Are there better options that I'm missing?
None? Should I just wait until Android ARC is fleshed out more and hope that it includes support for paid apps?
The direct answers are:
1) You can bundle up two APKs so they both run in the same sandbox. But only one of them is launched as "your app". It is free to then launch or otherwise use the second APK as it sees fit.
2) But as you noticed, there is no way to easily check for a purchase/license right now.
Your best bet may be to wait for the Google Play Services license APIs to be implemented.

Which update mechanism should I apply to an around 30m app?

Now I have an around 30M app, when I need to make an update for the app ,I want to update only a little part of the app,what shall I do with the app? Should I make a updating app for the app or should I make it like downloading the whole new app every time?
I forgot to say that it is an app running on the Mac OS, not iOS.
Without more context, the best answer is "It depends". Off the top of my head, I can think of these factors which would affect your decision:
How many users use this app? What is
the bandwidth availability of these
users?
Do you expect the users to download and install the app? Or do they need
an automatic update? Has anybody
asked for an automatic update?
Is it a desktop app or is it a client server kind of situation?
Have you already split up the app into components so that you can ship
just a small component, replace it in
the deployed app and expect the whole
thing to work?
Edit: Based on context in the comments: Since the app is a playing music from some online source, I'm assuming it'll need to connect to some central server to play the music. You could make a small wrapper application around the music app. You'll need to change the installer such that the wrapper app's icon appears on the desktop and any launchers you have. So the user will launch the wrapper app first instead of your music player app. The wrapper app can then contact the central server and ask for the latest version of the music app. If the installed version of the music app is older, then the wrapper app can either automatically download the latest version of the music app or prompt the user to download it or .... Once the download and install finishes the wrapper should launch the music app as well. Depending on your situation, you can get fancy and make the wrapper app download only the changed portion of the music app, etc.

Resources