Backend choice for android app - android

I'm new to android ,the app i'm building will do some computation on some lat,long values retrieved from a database and plot it on a map and also make some API calls.It will also store the user profiles .I am familiar with python so I'm planning to Build the back-end using Google App Engine.I was wondering if that is the right choice or are there any better choices available

Use any back-end, in which you feel comfortable, your just have to provide web services for Android. Google App Engine & python is as good as any other. Only thing which matter is your comfort or experience (in a particular platform).
Some other options are:
PHP, MySql
Java (see Spark Framework)
Scala/Java Playframework
& Many other

Related

How to integrate Android app and website?

I have no idea how does applications like Amazon, Flipkart etc work. They have both android application and website. How does data between both web and Android synchronise?
Do we write separate codes for building android app and website? If yes then in what language we build the website so that it's compatible with the android application.
And how to build the database for the same.
If answer is no to the above question, then how exactly do we proceed to build such Android and web application.
I am new to this and want to learn how to build it.
In general, web sites are built with web technologies such as JavaScript, HTML, and CSS, but there a many different frameworks and libraries in other languages (such as Angular, which is written in TypeScript) that can also handle the creation of web apps. In comparison, mobile applications for Android and iOS are written it Java/Kotlin or C#/Swift, respectively. There isn't really a clean, native way to create a single app for web and mobile platforms. But, the data that backs both of the platforms is the same.
How does this work? The data is hosted on what is called a backend, a server that has the information that you want to display to your users. Typically, the client app can get this information with an HTTP request to the backend, and the response will be the data formatted in a JSON string. Data is stored in the backend in a database. There are many databases in use today, but some more popular ones are MySQL, MongoDB, and SQLite, and each of them have their advantages and disadvantages. As you get further along in your development cycle, you will need to choose the tools that work for you.
Websites (and relative applications) like Amazon have very complicated systems behind what you see on the screen. Of course they have different code for either application and website. Usually, in small projects, you can create the mobile android app with languages like Java or Kotlin and websites with html, css and Javascript. But when it comes to get together data between an app and a website, you will need to write backend software, which is not so easy, for example in php and then create a database to store the data (with mySQL for example). Then you can access your data from either app and website and decide what to do with it. I suggest you to learn one of these technologies at a time. Trying to learn them all together will only create misunderstandings.
Hope I've been useful.

How to make the server backend of a mobile app?

I am an Android developer and I want to make an app which shows users on a map and performs tasks based on their location.
The whole model of the app has to run in the server. I need an API which:
Receives user location
Performs calculations based on the location of the users
Sends response to specific users with the results
The problem is that I have 0 experience in doing server side programming.
Can you please suggest me a way of making the server?
I checked the Google Colud Platform and this video. The video addresses the connection between the app and the server, but what I really need is coding the model and deploying it on the cloud.
What is the way for me to build the API for such an app, as a developer with no server side programming experience?
Can you suggest me a tutorial which goes trough the process of building a cloud backend for a mobile app?
This is a very complex question. I don't recommend using a "ready-made" solution like FireBase because it's even harder to transform it into a "proper" API later on when you need it. If you know Android then you know Java, you'll have no problem learning working with a framework like Spring Framework which I recommend. Java on the backend needs a Java Servlet container, like Tomcat. First you should set up a development environment on your machine for this. I recommend searching for Spring Framework tutorials for this i.e. Spring Framework REST tutorials.
Secondly you'll need a database like MySql or MongoDB to store data. Spring comes with ready made connections to most of the most common databases, so its pretty easy to work with them.
When you're ready to deploy your service I recommend using a PAAS like Heroku.com where you can run your service for free first. In this way you get to control everything yourself and you also learn a useful skill.
Since you are coming from the JAVA background you just need some basic building blocks and you shall be good to go.
Use PASS: They will take any devops from your side which will be a big relief considering you are not familiar with anything on server side. I recommend using Heroku or App Engine. Here's guide to App Engine with JAVA on top. https://cloud.google.com/appengine/docs/java/
Database: Not sure how you are storing and managing your user data as of now, but if you need database, there are various of those available now. The reason Firebase is top suggestion, cause it leverages realtime and gives you control on your side without spending a lot of time on your side.
APIs: You will be taking user's geo-location and sending it to server. On server you will need to process that into a real world location and any other logic. You will need to use Google's GeoLocation and reverse geocoding APIs for that. Find apis here : https://console.cloud.google.com/apis/
Also if it's any help, App Engine and Heroku both offer free limits and should be pretty sufficient for your use case.
Since you have limited experience on server side development I'd suggest using a backend-as-a-service platform. This approach has the benefits of allowing you to focus your time coding the client where your competitive differentiators are, and lets you leverage years of experience in server-side development without having to ramp up on the technology. It also means you can iterate quickly and test features ideas with less risk.
There are several options out there, but in your case, you'll need something that provides enough flexibility to implement custom logic and a custom data model. Some platforms allow you to create a full backend application with REST api endpoints, and automatically take care of deployment, security and management. Some examples of backend service providers can be found here https://en.wikipedia.org/wiki/Mobile_backend_as_a_service.
Some of the platforms actually allow you to build a full custom app without actually writing any code, and some of them provide ready-made components (like chat, leaderboards etc) but are less flexible.
Here's a list of Backend-as-a-service providers:
https://quickblox.com/
https://www.appcelerator.com/
http://www.configure.it/
https://cloudboost.io/
http://api.shephertz.com/
https://backendless.com/
http://pipegears.com (No coding required)
You didn't provide specific details about the tasks you want to implement on the backend, but it's likely that you could satisfy your requirements with a straightforward REST api that accepts your location data, runs business logic, reads or writes from your data model and returns whatever data your client needs. (Sorry I can't get more specific without details on your requirements). If you're dealing in sensitive information like location data, I'd strongly recommend securing the api with TLS/SSL (i.e. https), or make sure the platform you use provides this.

Android Application Backend from scratch

I am developing an android application which needs a backend to process login and store data remotely on a server. I have previously worked with a BaaS service "Parse" for android. but since this is my final year project for my university I need to develop a backend from scratch, I have never worked with web services. I need some guidance on how to approach this and which framework will be the best to work with.
Thanks in advance.
If I understand you correctly you want to build a server application that allows you query data from your android app?
I'm not an expert on this since i just started coding myself, but I did do some research and it seems to be a very viable option to implement a RESTful API on the server side. The wiki article is pretty specific about how it works.
If you can use PHP the slim framework allows you to get a scrappy prototype RESTful API up in less then an hour if you familiar with the server configuration. It seems to be sophisticated enough to drive small and medium sized projects (maybe even big projects; I can't tell to be honest.)
On the start page you can see an example that allows you to query for a "hello, world" string from the API with less then 50 lines of code.
http://www.slimframework.com/
Where the example returns a "hello world" string you would perform database queries using PHP and return your results as json objects to your client.
The benefits of this are that you can use this Backend for different clients: Android, iOS or even your own browser-based web application.
This also makes it easy replace / port the backend once requirements change since it's very easy to implement the same API using other technologies and languages that fit the requirements better.

Server Side API for Mobile Applications

I am an iphone developer. I create many mobile applications. Some of them need a server side backend to store data and then my iphone applications access them.
Usually, I need to create a backend web application myself using PHP or RoR. However, they are very straight forward web application with some cruds (create, update, delete, edit, ..etc)
There are some troubles with this work:
I need to create very simple application and deploy it myself to the
server
If I am only iphone developer and don't know PHP or RoR, I
ask for some other web developer help.
Is there any existing web application that enables me to build my database schema and just give me API access to my data?
I'd like to recommend Appacitive - Its an awesome tool with many innovative features. One of the biggest advantage it has is that you can create your data model diagrammatically, and all the corresponding APIs are automatically generated for you.
They have relationship managers both in diagrammatic designer and via code. You can also filter data by using their visual tools. Test drive the APIs via their Test Harness tool.
Other great features include a data explorer, inbuilt Social Integration and Geo Location. Have a look at their features.
Try out their free package, they have all sorts of SDKs for Javascript, Android, iOS etc.
You should take a look at parse.com, it provides you the facility to add back-end to your mobile applications in minutes. Here is a tour of their services and android guide.
Look at QuickBlox. There is Custom Objects module, it allows to to build any data structure you want. There are a lot of iOS samples

How To Develop LBS app for Android

I want to develop a LBS app for Android,but I do not know how to begin the project.
I want to use the Google Map API to use the map data of Google.The user can also add information on map,and the information can show on the map.
(For example,an user find one street is not safe,then the street will be red on the map.)
And I use the MSSQL SERVER or Oracle to store the information,but I don`t know how to get and use the data when I need it,should I use a GIS Engine(like ArcGIS)?
How can I show the information on Google Map?And Which GIS Engine I should use?
I also have another idea to use the Google Maps Data API.
Anybody can give me some suggestions?Thank you very much:)
One of the solutions could be following:
You can use MSSQL Server 2008 or Oracle to store data. PostGIS is even better because it's free and has a solid spatial capabilities.
As GIS engine you could use Geoserver. It works with all databases mentioned above. From my own experience it works really good with PostGIS.
If you want a native Android app you can go ahead and use native Google Maps APIs and manually construct WFS requests in order to communicate with Geoserver when storing data in the database.
Another option is to built it as a webpage and use coming OpenLayers 2.11 javascript library which has great support for mobile devices. It's also great at constructing WFS requests so you won't need to handle this stuff manually. If you still want an Android map, you can use Phonegap to wrap you OpenLayers webpage into an app.

Categories

Resources