Mapkit routes and google license [closed] - iphone

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
So, this question is not if I can do routing with mapkit. You can't with the API. So I found the clever way of using an annotation to render a route between two points. The route is based on a series of lat/long values. In my app, I use it to render a route (but not for vehicles or walking). There is no list of directions, so it's not turn by turn. Just shows the line on the map.
This may be more legal, but does this violate the license? Is there the possibility that my app could be rejected? This is a very big deal for my app. Has anyone gotten a commercial app out using this method?

You should not be allowed to display a route on top of the map. The terms state clearly that you are not allowed to display route guidance.
http://code.google.com/intl/de/apis/maps/iphone/terms.html
10.9 use the Service or Content with any products, systems, or applications for or in connection with:
(a) real time navigation or route guidance, including but not limited to turn-by-turn route guidance that is synchronized to the position of a user's sensor-enabled device;
(b) any systems or functions for automatic or autonomous control of vehicle behavior; or
(c) dispatch, fleet management, business asset tracking, or similar enterprise applications (the Google Maps API can be used to track assets (such as cars, buses or other vehicles) as long as the tracking application is made available to the public without charge. For example, you may offer a free, public Maps API Implementation that displays real-time public transit or other transportation status information.
You may want to look at http://www.cloudmade.com
and the route-me library which gives you much more freedom.

What you want to do seems like it is OK, as long as when you are showing routes you do not display the user position. I am basing this on the docs here (linked to from the MKMapView documentation):
http://code.google.com/apis/maps/iphone/terms.html.
that state you cannot:
10.9 use the Service or Content with any products, systems, or applications for or in connection with:
(a) real time navigation or route guidance, including but not limited to turn-by-turn route guidance that is synchronized to the position of a user's sensor-enabled device;
(b) any systems or functions for automatic or autonomous control of vehicle behavior; or
(c) dispatch, fleet management, business asset tracking, or similar enterprise applications (the Google Maps API can be used to track assets (such as cars, buses or other vehicles) as long as the tracking application is made available to the public without charge. For example, you may offer a free, public Maps API Implementation that displays real-time public transit or other transportation status information.
Even that language I feel is a bit fuzzy on if you can show user location or not along with routes, if you do not adjust the map coordinates automatically to follow the user.

Given the inconsistency of the app store approval process, what got through for one person may not get through for somebody else.

I believe the only requirement of the MapKit license (which is from Google and not Apple) is that you do not sell an application that features only a map + additional features built around the map. If the map feature was just a small piece of the application then it's fine, I believe.
I don't think that Apple will enforce this when approving apps, though. Unless you're using undocumented/underground API then you should be fine getting through to the App Store.

Related

Is it possible to build Cutomer Support in Flutter with AR and how?

I am trying to develop a customer support page using ARCore and ARKit with Flutter. And there are 2 ARCore and ARKit plugins in pub.dattlang.org.
First I need to establish how to create a customer support for:
nearest branch on map
nearest ATM on map
new credit offer and how to effect me if I apply etc...
Secondly I need to use ARCore and ARKit plugins to my Flutter app.
But I am not sure if the plugins will allow me to develop a customer support for my app.
So question is: is it possible to build Customer Support with AR and how?
I know that if I was a customer in need of support, an augmented-reality customer support experience would not be my first choice. I would much prefer a web form where I could describe my problem in a text box. In general, customer support is going to require text entry, and handling that through augmented reality is probably a bad idea.
That being said, there are ways that you could use augmented reality to improve customer support, especially if the customer's problem has to do with the physical arrangement of objects. For example, a customer support application for IKEA might use augmented reality to display a 3D view of the customer's furniture assembling itself, to help customers who have trouble reading the 2D instructions. Or, you could have the user "paint" in AR over a 3D scene of something to indicate their problem, and then send the resulting 3D scene in to the company for the support staff to look at, which could be a higher-bandwidth form of communication than the customer trying to describe the problem by typing.
But you can't just throw arkit and arcore at the problem of "customer support"; you have to think through what the customers actually need to be supported to do, and whether and how you actually want to use AR to improve that over what you get from a simple text form. A problem like "my package didn't arrive" can't really be solved with AR. I doubt anyone else has ever used these technologies for customer support; you won't find a ready-made design here.
So that's the first step: make a list of some example customer problems for the business whose customers you are supporting, and for each of them think through whether and how AR would be useful for solving them. Once you have an idea of what AR stuff you actually want, then you can come back with a more specific question about how to achieve that using the tools at hand (arkit and arcore).

Using Static Maps in free Unity3D based game

we are creating a free game that like Pokemon Go, has their roads from their surroundings reflected in the game so you can move around on them.
We built the game using Unity3D and Google static maps API.
Our concern is their is a huge cost if we exceed downloads with a key.
Question:
Is there a free way to get unlimited maps or road details?
Is a key required since each user has their own IP? We noticed it seems to work fine without a key but we are not certain of any restrictions on this.
Would love some good advice and pointers!!
Thanks,
--Mike
Is a key required since each user has their own IP? We noticed it
seems to work fine without a key but we are not certain of any
restrictions on this.
Google Map will always work without a key but there are few limitations such as map resolution when using it without a key. The free version is made for ordinary users. There is also request limit per day without a key. So, once your player hit that threshold, they won't be able to make more requests.
You need a key(paid version) since this is used for commercial purposes.
You will likely violate the Google Maps Terms of Service if you use this for a commercial purposes without a key.
Is there a free way to get unlimited maps or road details?
No, there is no such thing as unlimited maps with Google Maps. You pay by how many request is made with your key. Another option you have is the OpenStreetMap which is free. I haven't used this and can't say how good it is.

Own Backend vs BaaS [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I am trying to decide between two development firms. One wants to go with Parse while the other wants to build a backend. I would like to get feedback and reasons why building a backend or using a BaaS such as Parse, Stackmob is better in terms of scalability and performance.
For example let's use SnapChat a highly used app that handles millions of users and data requests. What would happen if a newly created app were to experience a large increase in users and data request. Would the backend be able to handle this? Would I be looking to have it fixed shortly after the increase in users?
Something like Parse.com gives you a lot of value for very little capital investment. With BaaS, all of the gory details of infrastructure management are hidden. Deployment, system capacity issues, system availability, system security, database administration and a myriad of other task simply go away when using a good BaaS. Parse.com for instance, uses Amazon Web Services and elastic load balancing to dynamically add more capacity to the system as usage increases. This is the nirvana of capacity management.
Parse.com is a special kind of BaaS. Parse.com's intended purpose is to be a light-weight back-end back-end for mobile apps. I believe Parse.com is a very good mobile backend-as-a-service (MBaaS - link to a Forrester article on the subject).
That said, there are times when Parse.com is not the right solution. Estimate the number of users for the application and the number of HTTP requests and average user would send in a day. Parse.com charges by the number of transactions. The Pro Plan has these limits:
15 million HTTP requests per month
Burst limit of 40 requests per second
Many small transactions can result in a higher cost to the app owner. For example, if there are 4,500 users, each sending 125 HTTP requests to Parse.com per day, then you are already looking at 16,850,000 requests every 30 days. Parse.com also offers a higher level of service called Parse Enterprise. Details about this plan are not published.
The services provided by a BaaS/MBaaS save much time and energy on the part of the application developer, but impose some constraints. For example, the response time of Parse.com might be too slow for your needs. Unless you upgrade to their Enterprise plan, you have no control over response times. You currently have no control over where your app is hosted (Parse apps are presently run out of Amazon's data centers in Virginia, I believe).
The BaaS providers I have looked at do not provide quality-of-service metrics. Even if they did, there is no community agreement on what metrics would be meaningful. You just get what you get and hope it is good enough for your needs.
An application is a good candidate for an MBaaS if :
It is simple or the application logic can run entirely on the client (phone, tablet...)
It is impossible to estimate the number of users or the number of users could be huge.
You don't want a big upfront capital investment.
You don't want to hire infrastructure specialists to handle capacity/security/data/recovery/network engineering.
Your application does not have strict response time requirements.
Parse's best use case is the iPhone developer who wrote a game and needs to store the user's high scores, but knows nothing about servers. That said, complex application like Hipmunk are using Parse. Have a look at Parse.com's portfolio of case studies. Can you imagine your application in that portfolio or is it very different from those apps?
Even if a BaaS is not the right solution, a PaaS or IaaS might be. Look at Rackspace and AWS. In this day and age, buying hardware and running a data center is tough to justify.
BaaS providers like apiomat or parse have to handle the requests of thousands of apps. Every app can have lots of users there. The providers are forced to make the system absolutely secure and scalable because if there are any issues about one of those points it will be the end of their business... Building scalable secure backends on your own is not as easy a you would expect. Those companys mentioned above have invested some man-years in that.

Webservice standards and DTDs

While brainstorming about six years ago, I had what I thought was a great idea: in the future there could be webservice standards and DTDs that effectively turn the web into a decentralized knowledgebase. I listed several areas where I thought this could be applied, one of which was:
For making data avail. directly from a business's website: open hours, locations, and contact phone numbers. Suggest a web service standard by which businesses have a standard URL extended off the main (base) URL for there website, at which is located a webservice. That webservice as well has a standardized set of services for downloading a list of their locations, contact telephone numbers, and business hours.
It's interesting looking back at these notes now since this is not how things have evolved. Instead of businesses putting this information on only their website then letting any search engine or other data aggregator to crawl it, they are updating it separately on their website, their Facebook page, and Google Maps. Facebook and Google Maps, due to their popularity, have become the solution to the problem I though my idea would solve.
Is the way things are better than the way I thought they could be? If so then why doesn't my idea fit the reality? If not then what's holding my idea back from being realized?
A lot of this information is available via APIs, that doesn't mean that it doesn't get put other places as well, through a variety of means. For example, a company may expose information via an API, and their Facebook app might use that API to populate a Facebook page.
Also, various microformats are in use that encapsulate some of this information.
The biggest obstacle is agreeing on what meta-information should be exposed, how it should be exposed, and how it should be accessed.

What are general areas you would want to use XMPP?

I understand that XMPP is used in chat services, but it seems to be more generally useful than that. Can someone list some scenarios and examples where you would consider using XMPP, and the pros and cons of it versus other approaches?
I know that Dropbox uses it for its filesharing system in Android (possibly it does in other platforms too).
Cons: much more verbose than binary (more bandwidth).
Pros: a wide variety of already implemented client and servers. A wide range of already implemented reliability, scalability, security, presence, rpc, federation, custom components, mail, VoIP mechanisms... the list is very very long. Even if you need something different, and you know where to touch, you could extend it to your needs, inheriting all the already implemented features.
We had a project on collecting information eg. wind direction, temperature, stock and forex, etc. Every sensor is a Jabber 'user'.
This allows us to detect if a sensor
is online, offline or problematic.
Sensors also publish information to
a pubsub node to be distributed to
collectors.
Human users can also
interact with a particular sensor by
querying with the sensor. The sensor
returns human friendly formatted
data.
We use it for chatrooms, and for distributing sports results to users watching live events.
Google Buzz and Facebook talk is built on it.