As i am being an Android developer, and android is supporting SQLite database,
i would like to know that which are the other mobile platforms supports the SQLite Database
so that i can make SQLite database common and can place it at one place,
and thereafter i can make database transaction from different mobile platforms.
"Due to its small size, SQLite is well suited to embedded systems, and is also included in Apple's iOS (where it is used for the SMS/MMS, Calendar, Call history and Contacts storage), Symbian OS, Google's Android, RIM's BlackBerry and Palm's webOS.[20] However, it is also suitable for desktop operating systems; Apple adopted it as an option in Mac OS X's Core Data API from the original implementation in Mac OS X 10.4 onwards."
Reference: http://en.wikipedia.org/wiki/SQLite#Adoption
If I am not wrong, even meego and maemo have support for sql lite database... In-fact sql lite was created for hand held devices, it doesn't provide all the functionalities of full fledged SQL but then you need to consider its being run on a battery powered device!
Related
We have build and Android app with sqlite db and a Windows program with JavaFX that can use either Derby db or sqlite db. Synchronization does not want to use a server yes old fashion wire form one device to another. So my question is has anyone found an open source API to accomplish this task? As a novice developer I might add that the perhaps the other fly in the soup is we would like to encrypt the data on both databases. This fly can be optional. The desktop development is using NetBeans and the Android development is the obvious Android Studio.
If anyone has a book or web site suggestion that would be great.
We can consider a NON FREE API with cost as a factor.
I am creating mobile application using HTML5 (AngularJS, PhoneGap). For local data storage I am using PhoneGap. My application is kind of account management software which required to store lot of relational data on local db. I deployed the application on mobile using command.
cordova run android
I am using following script to data store
http://docs.phonegap.com/en/3.0.0/cordova_storage_storage.md.html#Storage
This is working properly but performance is really bad (I having Moto G, Quad Core processor, 1 GB RAM). I fired 3 different select query on local database, and it took almost 2-3 second to process. each 3 table has only 1 rows.
I have seen performance matrices provided here. But to reduce my overall effort I am thinking of using PhoneGap.
So here are my questions
How to improve performance with phoneGap on mobile database?
I checked the db file application creating in emulator. Found that it's sqlite db file. The same database gives very good performance on native android application. How?
Since I am creating mobile application with local database. How suggestive it is to use phonegap database interface?
Use the Cordova SQLite-Plugin. It should perform much better for your purposes. Native Android also uses SQLite as database.
I am web developer starting with phonegap. I need to create one app for iPhone, android and Windows Phone 8.
I need to store some data (too big for localStorage) locally.
I don't know witch solution is the best:
Phonegap provides Storage (based on WebSQL - which is deprecated), but it is not supported by windows phone. Is there any plugin to fill this gap?
I read about Indexed DB, but I haven't used it before and it is not very intuitive for me. I am not sure if it is fully supported in all platforms? I based on (http://blog.nparashuram.com/2012/10/indexeddb-example-on-cordova-phonegap_12.html)
Or maybe I can use phonegap plugins https://github.com/marcucio/Cordova-WP-SqlitePlugin for windows phone and https://github.com/marcucio/Cordova-SQLitePlugin for android and iphone.. Then my code would be the same in all platforms as I suppose.
Did someone create such an app before? I would be greatful for any solutions or ideas.
Cordova WP8 supports IndexedDB only. iOS and Android WebSql only. Since WebSql is deprecated (I know how many people love/use it and agree that in many situations WebSql is very cool) I would recommend to proceed with IndexedDb and use the following polyfill for Android/iOS.
PhoneGap polyfill for IndexedDB that makes the IndexedDB API to work with WebSQL
Example
Latest Update (May 05, 2014):
New Cross Platform Cordova WebSQL plugin by MS Open Tech
Microsoft Open Technologies is publishing the new open source WebSQL plugin for Apache Cordova and PhoneGap. This plugin allows developers to integrate a persistent SQL-based local storage solution in their Cordova apps using the exact same JavaScript code across Android, iOS, Windows Phone and Windows Store.
IndexedDB -
It is incompatible with many types of popular mobile OS and versions
It is only compatible with very specific versions of mobile OS
Developers cannot use SQL with IndexedDB. SQL statements can be used on SQLite and WebSQL
Most developers actively avoid using IndexedDB as much as they can
WebSQL -
It has been deprecated by W3C which means it is no longer maintained or developed
It requires another plugin to enable mobile applications to work with popular mobile OS such as Google Android and Apple iOS
SQLite -
It received an award from Google
SQLite has its official website. IndexedDB and WebSQL do not
On Google, SQLite returns 1.8 million results. WebSQL returns a bit less than 700K results and IndexedDB returns 282K results.
Developer can use common SQL statements with SQLite
It is compatible with most versions of all popoular mobile OS such as iOS and Android
If you want a quick tutorial on SQLite
Storage of SQLite database using Android and Phonegap
LocalForage seems to be the best and newest solution:
https://github.com/localForage/localForage (1000 commits, 83 contributors)
It has fallbacks for none supported navigators.
I haven't tried it yet (over phonegap) but as soon I do i'll give you feedback ;)
How about using my open source library, ydn-db? It has very nice abstraction layer on top of those.
Edit:
Android todo app: https://bitbucket.org/ytkyaw/android-todo/wiki/Home
YDN-DB project repo: https://bitbucket.org/ytkyaw/ydn-db/wiki/Home
API doc: http://dev.yathit.com/api-reference/ydn-db/storage.html
It seems most apps are writing custom logic to sync/replicate cloud data, or using a platform locked service like iCloud.
What cross platform data sync solutions are out there besides roll your own? By "solution" I mean well tested combinations of server and client components.
The two I know of are:
CouchBase Mobile (CouchDB on server, CouchDB on device)
Microsoft Sync Framework (SQL Server on server, SQLite on device)
I know these are quite different data stores, but any data solution that is generalized for many problem types could potentially reduce some wheel reinventing. For example I may need NoSQL for one app and relational for another.
Any other options besides these two?
Sybase SQL Anywhere Studio has UltraLite database as a part.
This database has versions running on iOS, Android, Blackberry, and lets you synchronize through HTTP/HTTPS
Android Supports JDBC ODBC Driver for accessing MDB database. If yes then how access MDB database from android application.
You probably will want to build some kind of middleware application (i.e. RESTful web app, etc) to interface between your Android clients, and your backend database.
I suppose you could include a whole bunch of ODBC libraries on Android, but that seems absolutely the wrong way to be doing things.
android,iphone all phones supports light weight DB.
thats y all the phone require the SQLIte Database.
because all the phone application running in light weight process.
So according to me JDBC ODBC will not accessing in mobile phone.
http://www.patrickmcdaniel.org/pubs/ccs09a.pdf