Can car manufacturers exclude specific apps from CarPlay? - carplay

I read they have some influence at aspects of the CarPlay integration, but can they exclude/hide specific apps they don't want to get used?

Related

Best way to build a proximity app within 200 meter range of the user?

I am using Swift to develop a personal app for my family and have been researching methods of what toolset to use to build an app that allows a user to see other people using the same app in a vicinity of around 0 - 200meters.
I was looking at bluetooth and also trying to work out how Tinder finds other users. Do they just use GPS? If so how would one best implement that.
What would be the most effective way to determine another users location within 200 meters?
Note: 1 user would search the surrounding area for any devices that are on the app - Then it would tell the user their location. So it is doing both, finding the distance between the two locations and how you should get to that location. Obviously as this is for personal use, security issues arent much of a concern.
As you may have expected, you have many options of different approaches that will all accomplish your goal. I suggest you start by taking a look at a couple open-source projects:
PeerKit
LocationChat
Both of these libraries demonstrate a way to transfer a payload of data between devices. In addition, both projects provide very helpful example apps.
Assuming you choose to use PeerKit, each device could be responsible for obtaining its own location (via CoreLocation) and then broadcasting it to other devices (via PeerKit). Then the receiving device will be able to calculate the distance between itself and its nearby peers.
Note: At the time of writing, I have not contributed to either of the projects suggested above.

Specific Country restriction Appstore

I have made application only visible to Germany, Now Apple informed to include Monitoring Shape-Based Regions for if the user move away after installing from Germany? How to monitor the region to restrict the application if exceed Germany area?
I have tried with following links
1) Core Location region monitoring
2) Apple: Location Awareness Programming Guide
My doubt is how to restrict application only available to Germany. Should I try with latitude, longitude. And how to monitor the regions/territory exception.
I uploaded it to the app store, but they reject with the following reason :
22.1: Apps must comply with all legal requirements in any location where they are made available to users. It is the developer's
obligation to understand and conform to all local laws.Please see
Monitoring Shape-Based
Regions
for information on how to apply Geo restriction.
My doubt is how to restrict Geo location.
By default, the app will be available in all countries the App Store currently supports, unless you specifically select individual countries/stores. You can choose individual countries.
log into iTunesConnect and click Manage Your Apps. Select your app and click the Rights and Pricing button. You can select the stores you want from this page. For More you can
review the page 48
Update
As Updated
Easiest way to solve this topic would probably is to decide which countries you want to make your app available in ? and as i have search something like review countries local laws to see if any thing is illegal related to the app. And this relate to your Questions
What if I make my app available on other countries than usa?
If your application relies on location services to function properly,
you should include the UIRequiredDeviceCapabilities key in the app’s Info.plist file.
You can use this key to specify the location services that must be present in order to execute your application. The App Store uses the information in this key from preventing users from downloading apps to devices that do not contain the listed features.
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html
this link contains all the information you need.

App with different functionality based on the user's country

I need to develop an application that will behave differently depending on the user's country. Let's say, if the user is in France, some functionality would be available. But, if the user were from India, he would be able to acces a different set of functionality.
If it were only language based restrictions, I could switch functionality using NSLocale class methods. But my functionality is really dependent on the user's country because of licensing and legal reasons.
What are the best practices for dealing with this situation?
For each market where you have specific requirements due to market-specific licensing or legal issues, you can create a separate app in iTunes Connect and make it available for download only in the relevant market. And if you need to, this also allows you to provide a market-specific EULA. It's a big maintenance burden, but it would ensure that only users in a given market can access the app.
Note that in XCode you can fairly easily build, deploy and publish multiple versions of your project built from different configurations (XCode calls this "Targets"), so you could still achieve this in a single codebase by simply adding some preprocessor definitions in the relevant target definitions and putting #ifdef in your code where you want differentiated logic.
A 3rd party app has no access whatsoever to any information about the user of the device or access to the iTunes account. There is no way to know the user's true country. At any given time, the device may not even be associated with any one person. An iPod touch, for example, may have no user logged into any iTunes account. The same device can ultimately be logged into one of several different accounts.
All you have access to is the user's current GPS location (if the user allows your app to access that information) or their current locale.
Basically, there is no way to do what you need. Of course you could prompt the user but obviously there is no way to verify this information.

iPhone indoor location based app

I am researching how to create an app for my work that allows clients to download the app (preferably via the app store) and using some sort of wifi triangulation/fingerprints be able to determine their location for essentially an interactive tour.
Now, my question specifically is what is the best route to take for the iPhone? None of the clients will be expected to have jail broken iPhones.
To my understanding this requires the use of the wifi data which is a private api therefore not meeting the app store requirements. The biggest question I have is how does American Museum of Natural History get away with using the same technology, but still available on the app store?
if you're unfamiliar with American Museum of Natural History interactive tour app, see here:
http://itunes.apple.com/us/app/amnh-explorer/id381227123?mt=8
Thank you for any clarification you can provide.
I'm one of the developers of the AMNH Explorer app you're referencing.
Explorer uses the Cisco "Mobility Services Engine" (MSE) behind the scenes to determine its location. This is part of their Cisco wifi installation. The network itself listens for devices in the museum and estimates their position via Wifi triangulation. We do a bit of work in the app to "ask" the MSE for our current location.
Doing this work on the network side was (and still is) the only available option for iOS since, as you've found, the wifi scanning functions are considered to be private APIs.
If you'd like to build your own system and mobile app for doing something similar, you might start with the MSE.
Alternatively, we've built the same tech from Explorer into a new platform called Meridian which provides location-based services on both iOS and Android. Definitely get in touch with us via the website if you're interested in building on that.
Update 6/1/2017
Thought I would update this old answer - AMNH is no longer using the Wifi-based system I describe above, as of a few years ago. They now use an installation of a few hundred battery-powered Bluetooth Beacons (also provided by Meridian). The device (iOS or Android) scans for nearby beacons and, based on their known locations and RSSI values, triangulates a position. You can read more about it in this article.
Navizon offers an indoor positioning solution that works for iOS as well as any other platform. You can check it out here:
http://www.navizon.com/product-navizon-indoor-triangulation-system
It works by triangulating the WiFi signals transmitted by the device. Since it doesn't require an app to run on the phone, it bypasses the iOS limitations and can locate any other WiFi device for that matter.
Google recently launched an API called Maps Geolocation API. You can use it for indoor tracking of devices, which essentially can be used to achieve something similar to what AMNH's app does.
I would do this using Augmented Reality. There is a system sort of in place for this, the idea being that you place physical markers that have virtual information associated with them. I believe the system I saw was a type of bar code. When a user holds up the phone with the app, the app uses the camera to read the code and then display information. This could easily be used to make a virtual tour type app distributable through the app store and not even require a WIFI or 3/4G connection. This assumes that you simply load your information and store it locally with your app. Then to update it you simply push an update through the app store. Another solution is to use a SOAP/REST service and provide the information in that way, and this does not use private API's, though it does require some form of internet connection. For this you can see a question I asked about this topic a little bit ago:
SOAP/XML Tutorials Question
In addition, you could load a map of your tour location, and based on what code is scanned you can locate the user on the map and give suggested routes based on interests etc.
I found this tutorial recently on augmented reality, I haven't gone through it, but if its anything like the rest of Ray's tutorials, it will be extremely helpful.
http://www.raywenderlich.com/3997/introduction-to-augmented-reality-on-the-iphone
I'll stick around to clarify any questions or other concerns you may have with your app.
To augment the original answer for devs who were using Cisco MSE for indoor location - now they have an iOS and Android SDK which enables you to do indoor location using the MSE. A simulator can be used as well to develop the app without implementing the infrastructure to start with : https://developer.cisco.com/site/cmx-mobility-services/downloads/
For indoor location you can use Bluetooth LE beacons since it's a very accessible technology nowadays, there are several methods:
Trilateration: it uses 3 beacons, but with the noise and attenuation of Bluetooth signals, it gets quite difficult to determine the exact position and also it's not easy to use more than 3 beacons to increase accuracy.
Levenberg Marquadt method: used to solve non-linear squares problems showed good results on indoor positioning.
Dead Reckoning method: using the motion co-processor of the device, giving an initial position you can calculate the moving path of the device. Not that easy to implement anyway.
I wrote a post on the topic, you can find more info here: http://bits.citrusbyte.com/indoor-positioning-with-beacons/
And you can use this iOS app for your own indoor positioning experiments: https://github.com/citrusbyte/beacons-positioning
I doubt the American Museum is actually using private APIS; you'll probably find the routers that have been setup serve different responses to each other, so the app can detect it's position in the museum.
If you are looking for a cheaper to way to do the same task, you could have signs with QR codes, and use an open source library to let users scan these barcodes as they move through the museum, and update the onscreen content accordingly. On an even more low tech level, you can just tag each area with unique numbers, and distinguish that way.

What software can I use to create a indoor map and see it on iPhone?

I want to create a inside building map with multiple levels (building floors), directions (navigation), coordinates and statical locations (elevators, escalators, emergency exits, etc) but I don't know what software can I use for that.
Also I want to include this map on a iPhone app so other users can see it and interact with it. I don't know if it's possible to use Google Maps API to doing that.
I could use a image in Illustrator or Dreamweaver to create a image map, but I think that isn't a good option to update data (layout changes often).
Thank you very much!!!
I'll answer the question I asked three years ago, as this can help other StackOverflow users seeking answers to the same question.
Currently there are several tools that can be used to create indoor maps for iOS (iPhone and iPad) apps.
There are two tools that IMHO are the best options, and they have different approaches, as follows:
https://www.indooratlas.com/ - Indoor atlas detects variations to magnetic fields inside buildings to better identifies user's position. You can use smartphones (iPhone and Android) to sense and record these magnetic variations and to map indoor locations.
http://indoo.rs/ - Using iBeacons you can develop indoor maps and guide users with routes inside small our large buildings like malls, universities, museums, etc.
Both tools have APIs that you can use on your apps.
Firstly you need to decide how you want to deliver it. You indicate that it's not just on an iPhone and given it's a building map it probably changes a lot. So I'd be suggesting you look into doing it as a web site. If you go that way there are a whole range of technologies that you can employ to construct a web site. But basically there are two pieces you would need to research and consider. That being the technologies you want to employ on the web server to generate the site, and the technologies you want to use on the client (browser) to view the site.
I'd suggest searching for other similar sites and looking at how they do them. This can tell you two things - what works and what doesn't work.
Lastly you need to consider your strengths, what programming languages do you know? Is it practical for you to learn new languages and technologies for this? What's your budget like? Can you afford to contract the work? etc.