Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am creating my first Android application. This will be something like a Diary or Notebook.
Andorid part is almost done and I don't know what should I do next.
Should I use data base, server....
Or can I use Drive API instead of both?
Thank you
If you're creating a note or a diary app, your better off using some sort of database, whether that's a local SQLite database on the device or a remote database.
If remote it will need some sort of web service to communicate with the database as Android doesn't support connecting to remote mysql databases such as MySQL.
Whether the database is local or remote, it doesn't matter but this would be the better option. If it is stored in the database you can store and retrieve the meta data more easily, such as creation time, title, etc whereas in Google Drive you would either need lots of files or store the data in 1 file in a particular way that you can then parse to get the meta data out.
You could however, export the data from a database and store that on Google drive that can be used as a backup/restore option.
This is a variation on the perennial rdbms vs networked filesystem approach. Many large projects I have worked with have used both, even together. Usually an RDBMS gives you more flexibility and easier development, while a networked filesystem approach works better when you are working with other tooks which expect file-level access.
The simple answer is yes you can but it probably is not worth it. You end up having to do a lot of work yourself to implement what SQLite can offer you. And in the case of Google Drive, latency will likely be a killer.
So keep your data local and fast. And work with something that gives you the flexibility you need.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
This might seem a bit crazy and it is, but its one of those things you do just because it's vaguely possible. I'm trying to host an SQL server on an old android phone of mine to be used as a personal database. Preferably Postgresql or mysql whichever is possible (I'm not worried about the difficulty.)
I've done a little digging on Google and only keep finding results for connecting android apps to SQL databases. So what I'm trying to do is host an SQL server on my old HTC one M9 and only intend to keep it isolated to localhost and my laptop would be the one device running queries to the phone. I'd keep the physical database stored on the memory card so maybe it can be moved about. Note all data stored here is only for testing and I'd just host a Postgresql database on an aws instance after the app goes live. I know there are a few free cloud providers for testing but I'm just too hipster to do that.
Any suggestions or links to get me started on my crazy idea would be appreciated. Thanks!
Since Android runs Java by definition, I would think that any Java-based RDBMS should run. I would try with:
H2 database.
HyperSQL database.
Apache Derby database.
My guess (since it's not more than a guess) is that setting up any of these just requires a JVM installed and nothing else. Since Android already has it it sounds like any of these should work.
And I have a high opinion of H2. It's a powerful engine and supports quite complex SQL.
Good luck!
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I don't want to be an expert or anything, I just need the simplest local database for android applications. I'm used to Parse (not local) but as it has been taken out I need a new one.
I've come accross SQLite and Couchbase Lite. I don't like the first one and I am not sure I can use Couchbase Lite only locally, without uploading my database to the server. Which do you recommend? Which is closer to Parse?
My application will save A LOT of data, so the database needs to be light, fast and with good documentation.
Thanks!
You can use Realm.
Realm Mobile Database is an alternative to SQLite and Core Data. Thanks to its zero-copy design, Realm Mobile Database is much faster than an ORM, and often faster than raw SQLite.
In Addition, it has good documentation.
You can use Couchbase Lite purely as a local data store. It's quite capable as is, and will be adding some very powerful features in the upcoming 2.0 version.
In terms of simplicity, I find it just about equivalent to regular file i/o in complexity, for basic use.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I'm currently developing an android application. It stores user login and sign up information using Firebase.
The challenge I'm faced with is finding a suitable database to store information from websites which I would gather myself and allow the app to automatically update and include that information.
Firebase doesn't have a GUI that can create tables and records, so it does not fully meet my requirements. It'll only be used for user authentication.
I've read answers to questions similar to this and saw alternatives such as:
AWS
Buddy
Kinvey
I currently don't have the budget to pay for a premium service so I'm looking for a free and reliable one until I can upgrade.
To sum it all up, I want a online database with either a GUI or text based (preferably SQL syntax), that is reliable and easy to understand.
For my first Android app where I developed it from my diploma thesis and to learn about android philosophy I used MongodDB.
MongoLab has free services to store your documents there. I used Java so you may have to look the MongoDB for java documentation, you can find it easy on the internet and the documentation is very explainable.
Also, for security reasons you may have to develop a restfull API and as a result you may have to use (for example) the PHP API of mongodb to cummunicate with a server and get the query results from there and use them for your Android app. You may have to search about how to get json data from a server to your android app but there are many tutorials about this too.
I have to mention that I am not an expert on which databases are the best to use for Android apps but MongoDB did the work for me.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I have recently started to built some android applications now I want to add a back-end database to my android application.
Can anyone tell me that which database to use and how to go proceed with it?
I have read lot of articles and links about SQLite, Parse, MongoDB and other relational databases.
My requirements are like number of user would be more than million and most of the data shared by the users amongst all of them would be in text only. And all the users would be related to each other.
I know there are many articles out on internet but I am not able to find one stop solution, I am a beginner in this please help me.
Thanks!
I think you meant "MongoDB." I wouldn't use MongoDB. It is not a relational database. It is a NoSQL database. If the database is going to be embedded in the application, then SQLite would be ideal. If the database is going to house the communication data of the users, then you'll need a back-end platform.
Facebook uses MySQL. PostgreSQL is ACID compliant. This has its advantages. But MySQL and Postgres would be ideal of back-end database platforms. I'm not sure if the fact that it is an Android application matters. Oracle licensing can be expensive. Installing it can be complicated. SQL Server would wed you to Windows. I think MySQL or Postgres would be the best options.
AS Propulsion said Mongo is not a relational database but I think that could be an advantage. NoSQL databases provide great advantages such as great posibilities to manage big amounts of data in the server side of your app. Another advantage is the scability that they provide. If you start an app with an small amount of data, and your app is sudenlly a great success, a NoSQL database will be easier to scale. On the other hand relational databases are often easier to use for most programmers as well almost everybody knows how to use them and of course the native solution to manage data in Android is SqlLite which is a relational database. And of course have a relational database in ayour app and a NoSQL database in your server could be a nightmare ar the moment of synchronization.
I could recomend to have a look to couchbase. It is a NoSQL database. It has a version nor mobile devices (at least Android and IOS) and a version for the server side. And for me the biggest advantage is that it can handle the synchranization of data almost automatically (wich can be very hard to program). check here http://www.couchbase.com/nosql-databases/couchbase-mobile
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Here is my scenario: I need to distribute optional content packages for an Android application in a secure/protected way, i.e. prevent download of the content from outside the application. The content consists of zipped SQLite database creation files with sizes up to 4 Megabytes. The packages will be updated 4 times a year. I have currently about 1000 active installations. This means at peak times traffic for downloading the content package updates could yield in about 4 GB per day. The installation base of the app grows by roughly 100 users per day.
Based on the scenario I wonder how to solve the following issues:
What would be the best way to distribute the content? HTTPS transport? What would be a recommended way to do authentication (e.g. passwords, certificates)? Should I use password protected Zip files instead?
Which infrastructure should be used for content delivery that fits the following criteria:
support of the protection mechanism from 1) out of the box
easy to setup and maintain
scalable and download nodes in Europe and the US
relatively inexpensive (not more than 30$ per month). Ideally pay-as-you-go bandwidth.
I was considering CDNs like SoftLayer, Amazon CloudFront, etc. Any recommendations?
I don't think you need a fancy server configuration. From what I understand HTTPS is used to secure the link between the client and the server and basically ensures that you are connected to the server you think that you are. But any HTTPS capable client will be able to connect to the server and request your files. So it won't help with what you are trying to do. (If you were trying to prevent someone from impersonating your server then you would use it.)
To solve the problem you describe you'll probably want to use standard file encryption. This will keep your content safe from anyone that does not have the cryptographic key. Someone will eventually be able to dig the key out of your app, but you can update to new keys and hopefully make it more of a pain than it is worth.