Server-side mobile infrastructure for native iOS app - ios

I am looking for storage and database infrastructure that can help me save and retrieve information from my Swift codebase app. But I have no experience with server-side code. Requirements have no need for full blown backend solution and REST API. My application is proof of concept where I would use Cocoa frameworks in Xcode. After a some research I am missing information regarding to cost management of few popular services. I am new to iOS development and would like to learn a simple server-side component, but at the same time I do not want to pay fees for production usage.
I am looking for service to achieve this goal, with the following features:
can save location coordinates form app
can save images taken from app
can retrieve location and images from storage
I like Parse Bitnami, IBM Bluemix, Azure App but it fails in a critical way because I have to pay for it without being profitable to start with.
Regarding IBM Bluemix I see it is again 90 days trial free. Does anyone have experience with price after trial? As well know Azure App is also an option but I am hoping for real-time DB or cloud DB solutions. Amazon is charging services of 4-5$ per month on a free tier and I would like to leave them.1 year free AWS tier

Have you considered CloudKit? It is a part of the iOS development toolbox and is free for up to 10 million active users. It is somewhat limited but should be enough for what you are trying to make. Also, it's made and hosted by apple and they have a good library (CloudKit) that is already available inside Xcode.
https://developer.apple.com/icloud/cloudkit/

Related

How to use Google Tag Manager for iOS (swift) with GCP Recommendations AI?

We are planning to make a recommendations engine for the features in the app and we were thinking about using GCP Recommendations AI. Then, we ran into some unclear areas due to lack of examples.
Can we use Google Tag Manager for iOS (with Firebase Analytics) to send real-time event data to GCP Recommendations AI? Could you please provide some docs/examples/articles that explains how (We are using Swift to code the app)? It is possible for web sites, according to the docs.
You can not. Unless it's not a native app.
If it is a web-app, then sure you can use the power of JS to send whatever you need to any endpoint. We use Segment for real time personalization, but even that requires quite a lot of involvement from the app teams. And no, GTM is not helpful for native apps.
If you already have custom analytics tracking implemented in your app, then there's a high chance that the devs used a wrapper around the firebase/gtm sdk to send events in a more comfortable way or add adequate logging. In that wrapper then, the devs could implement the event streaming to your GCP recommendations AI in case it has the capability to store data.
If it does not, you can still set up a neat app engine (or a differnet endpoint) and stream data to it. The app engine would allow you to tweak, sanitize and debug the data, after which you can stream them to something like Big Query, which your Recommendation AI would likely to be happy to work with.
I'm talking about app engine and big query because there's a nice repo I've used a few years ago... Here: https://github.com/MarkEdmondson1234/ga-bq-stream
This repo is attempting to use front-end GTM to stream events, but you won't be able to use it (unless you're dealing with a web app). So instead, you stream them in a very similar way from your analytics wrapper.

Firebase Realtime database vs socket.io on AWS

I need suggestions.
I want to build Live location tracking app in android and iOS. So which should i choose for backend (Firebase Realtime database or Socket.io implementation on AWS).
My main concern is uses cost, means which is less costly?
which is less costly?
Costly can be time + money. I think using firebase will save you time over building a node server and implementing Socket.io.
When it comes to $$, you won't have to worry about that until the app really scales up. But sorry I don't know specifics about rates (I assume you'll get a better deal with IaaS solution rather than a MBaaS, which is what Firebase is)
I created a location-based media sharing web app using Firebase, Google maps, and geofire. As a beginner web developer, it was pretty easy to get up and running!
Granted, I don't know a lot about AWS, but it seems the learning curve is a lot steeper.

Clout kit basics - what is held on the app vs cloud? (struct instances, specifically)

So I'm looking to create a niche market static yelp-style wine/dine restaurant finder. After asking around, I was suggested to look into cloud kit since apple provides asset storage and synchronization. I'm looking to provide misc. information in regards to restaurants: menu, location, open times, images; this information will be provided by myself.
With that in mind... here is the problem. It appears that cloud kit may be the perfect fit, unfortunately beginner-type tutorials are insufficient in explanation or outdated (obj-c - I only know swift). So for one, would you be able to recommend any tutorials?
Nonetheless, here is the meat of the question...
I am aware that a public database held in a container will be able to hold numerous bits of information: strings, integers, assets, date, etc.
However, would cloud kit (as in, off the device), hold the entirety of instances of a struct in the cloud or are only variables held? In other words, what is held on the device and what is held in the cloud when using cloud kit?
Also, should I create a iCloud id just for development usage or should I use my existing iCloud if?
Jon,
There is a lot of questions here.
1. CloudKit is very easy to get started, but a little bit of a challenge to use in a real app.
2. You can store basic types + assets in cloud kit; an asset being an image for example or just a glob of data.
3. The https://www.raywenderlich.com/video-tutorials#cloudkit website has a number of good tutorials on the subject in SWIFT, although no its not free, you need to pay a small monthly charge; although its worth it if you want to learn more about code development.

How to get everyone to see everyone else's photos in an instagram-like app

I am a first time iOS developer trying to build an iOS app from the ground up. It is for a photo-sharing startup that will have similar functionality to Instagram.
I am not sure how to approach the sharing/viewing aspect. Would I use something like Parse or Google cloud storage? It is an iOS only app, if that helps. Given that we are just a startup, a long trial or a cost per GB is fine, but I don't want to be stuck with something expensive if we start getting a lot of photo uploads.
Given that I'm the only developer, I'm hoping for something that doesn't require me to learn too many new technologies. Any help would be greatly appreciated!
Parse.com, the API is fairly easy to use. The free plan has a lot of functionality and it scales up well.
That's really a tough question. You first want to research each company and weigh the pros and cons with selecting each service. The Google Cloud and Google App Engine (while they do work extremely well together) are going to be a little less "centralized" since they are essentially marketed as separate services. Parse does have that "centralized" feeling since all of their services are designed to work together.
Another nice thing about Parse is that it has build in support for iOS local datastore which means even if your users don't have an internet connection the request will be queued until a connection is made. If you go with a service like the Google Cloud then you would have to implement that on your own or just not have offline functionality.
While Parse looks like a good solution for you, it would be hard for someone to answer your question with a definitive solution as that is up to you exactly how you want your product to work. Just continue to research other solutions as there may be something better and more suited for your exact needs. You may want to build a small prototype on one platform before dedicating all of your development to that platform.

hybrid mobile app development features

I am developing one mobile app, the requirement is as follows.
1.The app should work offline and online.
2.It should have database in both local device and in the server.
3.When internet is on data has to be synced between local and server.
4.At any point of time local data and server data should be the same.
I have done lot of research on this but not able to find whether hybrid app development supports or not. Some one says we can do but other link says it's difficult and might not be possible.
Please help to me sort out this issue.Thanks in advance
for sure it is possible to have those features in an hybrid app. All depend what you choose to use to deal with that or how you choose to program it.
Remember than an hybrid app have almost all features that a web application could have as it could use almost all technologies, tricks, frameworks and libraries out there.
I have already developed an hybrid mobile app using cordova, jquery and jquery mobile that meet points 1 to 3. Though I am not saying you need to use jquery, or any of the other tools. I described the solutions I use for that app, however they are maybe not the best but it was the most practical and easiest solutions given the time frame and budget.
Was achieved by mirroring the server "data base" the first time the app is installed with WiFi access. When no internet is available the the app use the local data, when it is available then it take the data from the server and update the local data.
The local database was not a formal one, just JSON data files, very similar to the ones provided by the web service.
You can be checking for an active internet connection with the cordova network functions, once detected try to reach the server to check if the actual connection is working, on success then proceed to request mirroring the data. Just be sure to check if the local data is newer to the server one and instead of overriding you should first update the changes in the server.
I think this point is a bit difficult given the fact that you want to work offline. When you are offline you couldnĀ“t do too much to reflect the server data into the app, as you are offline. Then having an exact mirror at any time is not feasible. However having a mirror when you have connection then that is another story.
Having a perfect data sync should be done carefully and instead of programming you own solution try to use a service or tools for that, like http://www.couchbase.com/mobile.
Hope it helps.
Hybrid applications are, at core, websites packaged into a native wrapper. They look and feel like a native app. Hybrid app have main features are portability (one code base, multiple platforms), Access to various hardware/software capabilties, cheaper orginigation costs, faster speed to market.

Resources