i'm stuck with problem of what lib to choose for my nav app project.
At the moment there is:
1) route-me
2) Alpstein route-me
3) mapbox-ios-sdk
What is the difference between them all? What to choose as a foundation for navigation app?
Requirements for my app:
1) Multiple maps available
2) Multiple selected areas of different maps to work offline
Thank you a lot!
Basically you've got:
Route-me/Route-me
Alpstein/Route-me (branch from Route-me/Route-Me)
Mapbox/Mapbox-ios-sdk (branch from Alpstein/Route-Me)
Although Alpstein is a fork from the original route-me it has derailed a lot. Feature-wise it's not that different, but has lots of performance improvements, and the API itself is different (and better IMHO).
Also, the Alpstein has more activity in Github than the original branch, which I find a positive thing.
The mapbox branch is exactly the same as the Alpstein, but includes some specific MapBox features like:
Ability to load maps from the MapBox cloud storage service natively
Interaction with the UTFGrid technology.
So, to summon up, I would choose the Alpstein fork if you don't use MapBox specific features, and the MapBox-ios-sdk if you do.
Related
I'm currently implementing MapBox in a Xamarin.Android application, I'm looking at the examples from MapBox Github, this one in specific https://github.com/mapbox/mapbox-android-demo/blob/master/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java, which I'm translating to C#, but now I'm facing a problem. In this example they use a class called "MapboxOptimizedTrips" which comes from lib 'com.mapbox.services.api.optimizedtrips.v1.MapboxOptimizedTrips'. In Xamarin I have imported all libraries that Xamarin made for MapBox, which is these 3:
MapBoxSDK.Android
MapBoxSDK.AndroidServices
MapBoxSDK.JavaServices
None of these includes the Optimized Trips API related classes. Has anyone faced this issue before?
Screenshot of code
I thought you read and followed this document from Mapbox?
Mapbox Navigation library is kept changing and adding new features
There are two DirectionsRoute class from Mapbox libraries
both DirectionsRoute returned by Mapbox Optimization packages doesn't fit with what NavigationRoute does.
I think you have to go with the way you mentioned, call to API directly. Or wait for Mapbox to evolve their library.
Cheers.
I have created one project using third party SDK.
I have done some changes in SDK and improves it more.
I want to separate out SDK in such a way that any one can use my SDK in there project.
just as same I have taken it before from somewhere else and used in my project
Is there any standard way to separate out SDK from App?
Probably you took it on a github, if not - let's anyway take github as an example.
First, when you did improves some code of third party library / sdk - i hope you still holding all the code in the same classes or at least connected classes, other way it will hard to work for that code. So, you should just take the code you improved and to contribute. Go over link it will describe you the process of how to support projects with your code.
I want to know which is the best and most reliable method. i have looked on here for an answer but didn't come across any.
I Want to use multiple API'S in my project so please keep that in mind when answering. Any advice about the best way of doing this and most reliable method will really be appreciated. Thanks in advance!
Isit possible to download multiple SDK's into an iOS application through Xcode?
Pros of SDK:
Can be used offline
Most SDKs are small in file size
All of the functioning code is visible to you, the SDK developer can't keep many secrets
Cons of SDK:
Larger binary
More clutter in your Xcode project
Pros of API:
Smaller binary
Less 3rd party frameworks cluttering your Xcode project
Cons of API:
Can't be used offline
Tends to be a blackbox
App will need to be updated every time the API is updated
In terms of reliability, the SDK will always be functional assuming
It worked in the first place
It doesn't rely on an API in the background
You can integrate SDK using Cocoapods library.CocoaPods is a ruby gem that downloads all the third party libraries that you want for your project.
Getting a specific version of a pod is done by specifying the version number, and CocoaPods downloads that specific version for you saving you from searching through commits for it.
With CocoaPods, updating your dependancies is easily done with the pod update command.
CocoaPods also provides a central place where third party libraries can be found. This improves discoverability of open source libraries that you can use in your projects. You can use the search engine at cocoapods.org to search for pods.
I have developed a generic app, which can ne customized for clients. Each app should be available in the app store.
Any idea what is the best way to deploy the different apps? This is of course also necessary on app updates.
Only the package name, some graphics and some settings change for different Apps. The Code will be the same for all.
Consider deploying your app as a framework, static library or CocoaPod. The clients should be able to use your framework/pod to customize the appearance (and anything else) and publish their apps.
CocoaPods: If your project is in progress and your client is using it, I wouldn't recommend it. Pods are great way for managing dependencies mostly if dependencies are not going to change on nightly basis. Also you'll have to make a few decisions about how to integrate it with your source control. If you and your clients will be working on their client app and pods simultanously. They'll most likely have to get your pods in a workspace, which defeats the purpose of pods. (If somebody knows a better way around editing pods and project simultanously, please let me know as well.)
Static Library/Frameworks: Rey Wenderlich has a good tutorial for creating frameworks. http://www.raywenderlich.com/65964/create-a-framework-for-ios
I'm completely confused and I don't know where to start asking questions. I tried googling, but the terminology is confusing and I'm not sure what either of these things do (except for Xcode). Can someone explain like I'm 5?
I'm on the cocos2d-swift website and after reading the getting started section it says "From this point onwards, using SpriteBuilder is optional.". I don't know what they mean by that.
How do each of these correlate with each other?
Also, how is an API Documentation Browser and Code Snippet Manager useful to an everyday iOS Developer?
cocos2d-swift is a framework that enables you to build things like sprite-based games quickly.
SpriteBuilder is a tool that helps you build your own multilayered sprites (images and animations grouped into a single package -- i.e. Mario, a Goomba, a Fireflower fireball, etc.).
Xcode is a developer environment in which you write your source code, compile, distribute, and test.
CocoaPods is a tool that fetches and manages framework/SDK dependancies.
You would use CocoaPods to fetch the cocos2d-swift framework so that you could build a sprite-based game in Xcode using sprites you generated in SpriteBuilder.
Not sure what Cocos2d is, but swift is the latest programming language by Apple for both OS X and iOS development.
http://en.wikipedia.org/wiki/Swift_(programming_language)
SpriteBuilder is a framework used to create games for iOS very quick. Think of it as a game engine.
http://www.spritebuilder.com/about
Xcode is the IDE (integrated development environment) that you use when writing native OS X and iOS applications. It's awesome!
CocoaPods is a way to load in third-party libraries and frameworks without having to manually install them on your own. It also makes it very easy to keep the frameworks up-to-date. Pods also allows your project to be more portable as it's much easier to install an application with multiple dependancies via Pods.
http://cocoapods.org
A documentation browser is good if you want to have access to documentation while offline. However, I almost always use Google to find what I'm looking for regardless of what technology I'm working on. Google is just the best way to search.
Finally, I'd start off with this book. I read the first edition years ago, and made things very easy for me to understand.
http://www.bignerdranch.com/we-write/ios-programming.html
Hope this helps!
Here are some basics:
XCode (A Program)- Most of your iOS development will happen here. Coding, creating the app etc.
Think of an SDK as a suite of commands or tools you can use-API's (API - Application programming interface)
Cocoas2d (An SDK) - Game engine. A software development kit for creating games. you would pull this library of code and tools into xcode to use it.
SpriteBuilder (An SDK) - Suite of tools for building games. Just like Cocoas, you would pull this into xCode to make use of it as you code.
CocoaPods - A tool for linking/loading SDK's into XCode and easily updating them.
Moral of the story: XCode is the software you will use for everything. Everything else are just additional libraries of code you can pull in.