I'm trying to build a mobile application on Android, and being new to cloud services in development, I was shocked at how many options were thrown at me. The app will only upload store and use pictures from the cloud, there won't be many at once (+-100). Also, I want all of them to be centralized (I guess it's basically a server).
I was met with options like: Google Drive API, Google Cloud Storage, and a few more Google and non-Google services, and I'm a bit confused as to which is the most suitable for my needs.
Preferably it would be a free service, but I work with what I get.
All your suggestions are welcome, and thank you.
Related
I am new in android development and i have been developing android apps using cloud firebase but how can i make an app for a website which is not using firebase. I know i need to connect to its database but what if the website is hosted on wordpress.com which does not provide phpmyadmin. So is there any other way? I know there is something called rest api. Can we use rest api in websites that are developed in some framework like codeignitor? Please explain what rest api is and is there any other way to get the data for our app? Please let me know thank you.
This is going to be tough. Usually, an application communicate with a web service. A web service may be a Rest API, Firebase or any hosted service that can provide data (I don't know all of the subtilities of it).
Explaining to you how all of this works wouldn't work here as it will be objective as every application have different needs and every developper have preferences on how he want his application to communicate with the world.
One thing you should avoid at all costs would be to access an online database directly from your application as it is a huge security flaw.
Here are some links that will help you understand better all of this.
REST API concepts and examples
Make an HTTP request with Android
Web services explained
I am well aware that stackoverflow answer shouldn't be mainly links but I still thinks that they will be relevant to your problem. Be aware that this answer doesn't even cover a little part of communication between an application an a webservice. You'll have to learn that by yourself, using courses and tutorials.
How can I make an online server to access API's and handle requests? Then how can I have my android app access this online server to make requests?
I have an android app that I am building for a school project. This app will need to use multiple APIs to gather information to display to the user. However I don't want to allow people to decompile to source code and take my API keys. My plan is to build an online application that will do all of this work on the server side. This way the user only submits a query and the server sends information in response to their request. This will speed things up for the user and keep the keys from being accessed by other individuals.
Steps I think I need to take.
Set up server to access the API's
Make app access online server through HTTP requests
3....
4...
I have a very general concept in my head, but I'm not sure where to begin. If I'm wrong on any part of this question please correct me.
I do plan on moving this to the app store in the future.
edit: Do you know of tutorials that show the building of the API and then loading it to Amazon AWS or another server?
There are many options when building restful services for api consumption. You could start with php, which is the easiest to start with. Here is a nice tutorial that takes you through the initial stage all the way to the end of building login system for android using mysql and php as the server language. It contains the barebone details of setting up the infrastructure and logic. I think from there you manipulate and go further.
https://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/
check out java rest easy, it is a nice tool to use to build web API's. You can host it for cheap at red shift or amazon using their pay what you use billing.
The cheapest way for you to host your REST API is to use Amazon's API Gateway. You pay for what you use and pay nothing if it is not being used. API Gateway plays very nicely with Amazon's Lambda service that allows you to run discrete code units - again, you only pay for what you use. Lambda itself plays nicely with Amazon's pay-as-you go NoSQL datastores (SimpleDB and DynamoDB).
I want to create a java server application which receives data from an Android client and also transmit notification to client. Actually i did not know much about server apps. I am quite familiar with servlets and mysql, is there any tutorials based on these??
So any suggestion how to build it or any tutorials for it?? please help me!
What you are probably looking for is Google App Engine a SaaS by Google. While there are many alternatives this is probably the best route you can take for implementing a Java based backend. Follow these tutorials* and you'll be good to go. Keep in mind the GAE is a bit complicated and will take some time to get on your feet.
https://cloud.google.com/appengine/docs/java
More tutorials on GAE can be found by a nice google search!
I am on the lookout for doing analytics for a desktop application written in Java. I came across two services viz: TrackerBird and DesktopMetrics , but for a small time developer like me , those services are not affordable.
Google analytics has android support. So I was wondering if I could use the same in the desktop application which is on Java.I am looking for a headsup if anyone has implemented the same and tips on how to proceed on using GA on desktop.
the SO link here says no , but I think it can be done.
Here is the link of google code on using GA in android , says it should bind to an application context. I was wondering if I could hack it to work in a desktop app.
There is no Google supported library for GA on desktop Java. The Google Analytics Android library has a lot of dependencies on Android infrastructure (for extracting basic user information, maintaining persistent state, and tracking application lifetime). But, since GA just boils down to HTTP image requests, it should be possible for a desktop Java app to mimic those. I have not used it, but this library looks like what you want: http://code.google.com/p/jgoogleanalytics/
For more details and other useful links see Manually sending data to Google Analytics
Have you thought about using Mixpanel? It gives you 25,000 to 175,000 free data points a month and has a Java integration library:
https://mixpanel.com/docs/integration-libraries/java
I am planing to make an android app which download required files from cloud drive Amazon or Google drive.
Details:
Let we have 30 lectures on cloud drive user can download a lecture {according to need/Intrest} from cloud drive using my android app.
Just i need is the public URL of the data stored in cloud drive. Or any API that can do this job {Amazon, google drive...etc}
How to do this ? is there any Cloud API or something that help me ?
There are plenty of APIs available. Amazon's API/SDK is here. Rackspace has one as well, iirc. Google Drive and Dropbox aren't really public-facing cloud-storage, and you would probably want to look very closely at their TOS before utilizing them. For any public-facing services, I generally use a small php-app which talks to the mobile app and delivers the time-limited url for the requested content. This prevents side-loading and allows me to switch CDN providers without changing the app.
To get a more specific answer, you probably need to ask a more specific question.
If you are looking to host a number of video lectures and have any user download them you probably want to use Amazon S3. Cloud drive is for each user of the application to download and upload videos to their (the end user's) cloud drive account. Google drive is similar. Amazon S3 lets you (the developer) hold onto the data and then give it to your users.
The Android SDK for AWS can be found https://aws.amazon.com/mobile/sdk/
A getting started guide is http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/Welcome.html
Specifically content on uploading and downloading with S3 is http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/getting-started-store-retrieve-s3-transferutility.html (short version) and http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/s3transferutility.html (more detail)
You can also find a sample on GitHub (along with a tutorial) https://github.com/awslabs/aws-sdk-android-samples/tree/master/S3TransferUtilitySample
I know this probably sounds like huge overkill, but if anything changes in the future (and it will), this will help you enormously.
I'd probably create a web service that responded with HTTP redirects to a URL where the content currently is. If hosting cost is the issue, you could probably remain within the free tier on GAE pretty easily.
Amazon S3 is probably a decent fit here. Costs will probably be very low unless you start using a ton of bandwidth.
Now amazon have the cloud drive service with unlimited space for ~60$ per year.
Also have api for android.