Are there any default apps on Android? Especially in 4.2?
iOS 6 has Passbook, built-in Facebook/Twitter support, allowing for greater integration into these services.
Is there something similar on Android that can reliably be accessed across all devices running the latest Android OS version?
I know that there are Android apps that can read the Passbook file, but they're not Google products the way Passbook is an iOS product. Similarly, I know that there are Facebook and Twitter Android apps, but they may or may not be installed and may or may not respond to an Intent that's possibly structured differently between versions of those apps. Am I just doomed to deal with this fragmented space, building for the past and hoping it won't break in the future?
Yes, all Android developers are doomed to this fate. Most Android devices come with things like GMail, Google Calendar, and so on, but Android is fully open, which means not all devices have to include these (and in fact, have gotten in trouble for including them in the past).
Here are some things to keep in mind, though (in 99.999%+ of cases):
The Google Play store will always be installed on the device (assuming that's where you publish your app).
Either the browser or some form of it (Chrome, Dolphin, etc.) will be installed on the device.
And some other tips for developing for compatibility:
I would suggest you read up on intent filters; basically, when someone makes an app like, say, Twitter, they register it for a "share" intent filter. That way, when some app (maybe yours?) requests the user to "share" something, Twitter is shown as an option to share with.
I hate to make a bullet point entirely out of links, but you should read up on Receiving Content from Other Apps, Sending Content to Other Apps, and Sending the User to Another App. These are all key ideas in core Android that will apply to your situation.
Those aside, I have one final note: Assume nothing. Assume everything will break. Whenever you call an intent, you should be wary and catch any issues (such as ActivityNotFoundExceptions).
Related
The Android Instant Apps is a new thing, and I just wanted to know if it can be integrated with the Hybrid app structure (HTML/JS with Cordova wrapper).
I'm not a native app developer so I'm not sure of this myself.
According to Googlers ,well main idea behind instant app is
To make the native app experience as convenient as surfing to a web
site. “Web pages are ephemeral,They appear, you use them, and never
think about them again.” Apps, have lots of friction and
often you only want an app to perform one action or to get a specific
piece of information.
Google's examples of Instant Apps included museum or resort apps with maps and schedules, along with apps that help you pay for parking. These are the kinds of rarely-used apps that are useful in the moment, though you wouldn't necessarily want to install them on your phone beforehand or keep them around afterward. Developers can, however, can provide "call to action" links that encourage users to download and install apps that they find particularly useful.
Instant Apps are a logical evolution of App Links, a Marshmallow-era feature that lets installed apps designate themselves as the default options for opening certain kinds of links. For instance, clicking a link to Pinterest might open up the Pinterest app rather than Pinterest's mobile site—Apple's "Universal Links" in iOS 9 provide similar functionality.
Google requires apps that use App Links to prove that they're associated with the sites they say they're associated with; the exact same sort of verification will be used for Instant Apps.
So if we analyze all the information provided by googlers Instant Apps for a start is only for native apps there is no scope for Hybrid Apps...
Hope this make sense...I am able to clear your doubt..we will know more when..the exact availability of instant apps for both end users and developers will gradually expand access to feature and bring it to users...
Technically, I don't see why not as Instant Apps end up compiling to what is just a regular APK (or set of APKs).
Will it work out-of-the-box? I doubt it, as there may be issues with tooling (which is via Android Studio) as well as runtime issues (Instant Apps have some restrictions on what they can do, see the FAQ).
Is it recommended? Probably not, as the point of Instant Apps is to provide a fast, native app experience. If the hybrid app ultimately loads HTML/JS then there is likely minimal advantage over simply loading an optimized mobile website.
I am thinking of building a new tab page for chrome which works for both desktop and mobile devices. I know that the chrome extensions do not work for mobile devices but the mobile app can be integrated with other apps on the mobile device as found here. Hence, I was thinking whether an android app can be used as a workaround which overrides the new tab page. Is this possible? If yes, how?
What you want is not possible if the Google chrome does not provide you an API for that. It is because all the Android applications are prepared to be as a single app package that can't know anything about other apps but the things the OS (Android) provides to them. For example, you can query the OS to know what apps can answer to a question (Intent) like: "Who can open an email?".
Imagine what would happen if what you want could be possible. I am an attacker that for some reason wants to inject a behavior in another app. This app can't have the control of what it is doing anymore and we can inject, bypass permissions or whatever, without the user agreement.
However, some kind of modifications of this type can be done by adding some files in a rooted device. Anyway, this is a complex situation and something that cannot suit your needs.
I want to deploy an Android app in a similar fashion as the Wireless, Over-The-Air method that exists for iOS devices. That is, setup a web page and the user clicks a link from his device that includes the manifest (xml) file, containing information on how to download the app. This works well on iOS devices, and I thought Android may have something similar.
How do I go about this?
Thank you for any help.
Please the comments above. Have the correct MIME settings, link to the apk, and make sure unknown sources is checked on the device to allow non-market apps.
Since you seem to imply an app market / store is not involved in the iOS case, it seems you might be talking about an offline-cacheable "web app" rather than a native iOS application.
The android equivalent is: on devices where the offline web app capability exists, just visit the same web page (referencing an html5 manifest with appropriate mime type, etc) you are using for iOS. Perhaps you will ultimately end up with platform-specific refinements, but the basic idea is portable.
Or perhaps you just mean that a desktop/laptop need not be used to open obtain the app. On Android, that has been the case since day 1 - the primary market client is on the device, with over-the-air install. You can send an android device to the market with a market:// url. The ability to trigger an install from a web browser running on something other than the device is a more recent and still secondary capability on android.
Finally, android does offer the ability to side load native applications, something that has no iOS equivalent outside of jailbreaking or having a developer account. Most of the responses seem to concentrate on this, but it's not clear if that is what you are actually asking for.
I am writing an Android application that uses some functionality that has been published under the Apache 2.0 license. The functionality is available in 2 ways:
As java code
As an intent in an Android application.
Being the typical developer that I am, I don't want to make the user install a separate application so that they can use my own application - because it would definitely put me off using the application if I had to.
On the other hand, doing the work to get the application up and running using the Java code will take much longer.
My questions are thus:
What are most developers doing now? Are they using intents from other apps?
Does it matter to the average consumer that they need to download a separate application to make it work?
In my application EmailAlbum, I first depended on the presence of OpenIntents OIFileManager on the user phone to pick a file on SDCard or chose a destination folder for exporting a generated file.
Later, I integrated my own version of the code of OIFileManager in my app's source code for several reasons:
Depending on another app for basic (but essential) application features is like a suicide. If your app can't really live without the other app and this app is not installed on most devices, your app won't get used. Most people want apps that work on first start.
Another app was on the market which was providing it's own (bad) implementation of the same intent and was making my app crash... users having it installed on their phone thought that was my app's fault.
Providing a consistent UI was not possible.
I think using public Intents is great to allow people to chose from various applications to extend your applications features or to reuse the content generated by your application. BUT your application has to be able to live on its own, depending only on standard apps provided with ALL android devices (ie. not even depending on Google proprietary apps if you want your app to be able to be used on devices which have not been approved by Google, those which come without the Android Market or GMail).
Most developers are going to use a common intent (phone call, web browser, camera, etc.) to call an activity. If your app replaces one of these common intents, then you shouldn't have anything to worry about.
Developers do sometimes include intents to use other (non-common apps). One example that comes to my mind is OpenWatch that provides an API for other developers to build on. Of course, in this case, if you are using a bluetooth watch like this, then you most likely already have OpenWatch installed, therefore it isn't much of a bother to get another app that builds on top of it.
If you think people are going to use it, I'd say provide an API.
Might also want to take a look at here: http://www.openintents.org/en/
I think even google had an app at one time that depended on a third party package. At application startup the user was greeted with a dialogue that asked him to download said package. If he declined, the respective functionality was disabled.
But I'd only use that approach for tech savvy users, the regular joe will much likely be put off by it. If the functionality isn't crucial, just use it as an added bonus and leave it out otherwise.
I am developing a few mobile apps for different platforms including Blackberry, Windows Mobile, Android and Symbian S60.
I want my mobile apps to have the capability of checking for updates before starting and in case a new version is available, prompt the user to upgrade. Moreover in certain cases (like security patches), the user must be forced to update or the app won't work.
Surely I can cook some code to achieve the task but I was wondering if there are already existing framework to serve the purpose so that I don't have to re-invent the wheel and test all over?
If you are seeking a single solution for all four of those platforms, I strongly suspect you are out of luck. While all four could just look at your Web site for some current-version page to see whether an update is available, the actual means of applying that update will vary widely.
In the case of Android, if you are distributing through the Android Market, you can link the user over to the Market app to pick up the update.