Here the story: I was developing a mobile application for my MSc project. Thi application was relying on an open dataset on the website www.kasabi.com, a marketplace for open data.
It was everything perfect until they ended up saying "we're gonna shut down the website".
You can understand that now I'm quite....well, I let you imagine.
the dataset is still available and downloadable so what I have now is: A server on Amazon, a backup file of the kasabi dataset (triples) and...nothing else.
I looked around for tutorial on how to develope semantic web applications, but I still don't have any idea on how to use this backup file in order to set up a triplestore and make it accessible from my android applications.
suggestions?
You could try using Apache Jena on your server (if amazon allows this):
http://jena.apache.org/index.html
Then you can access data in in a similar way to what you are used to in kasabi.
But you might like to have a look thorugh Which Triplestore for rapid semantic web development? , possibly Sesame would suit you better (http://www.openrdf.org/)
Related
Suppose , i have a website and its running well . Now i want to make an android apps using website information or My apps will contain all the information of that website already contain or how can i connect an android apps with any website.
Some solution :
1. convert website into android apps (i don't need this).
2. JSON API (i think this is best option for me ).
May be there has so many option but this time i can't remember. option is best for me if it is possible . but i don't how to create a JSON API from website .
but i don't know how to do it. please let me know share something for better understand.
or if has any other better solution for this problem please let me know .
You could create a web app, using android native web view or some technologies like ionic, etc..., or create a comprehensive API endpoint in your backend/website and start build an android app from scratch.
creating a web app is a simpler approach but has so many shortcomings in design, functioning and flexibility aspect, so if you want a competitive app with a fine extendibility feature the best option is native android development. but it could be more costly as it needs both backend and android development.
If your website is already implemented and running, you can just create an Application using a https://developer.android.com/reference/android/webkit/WebView. Basically, this is an injected Browser, allowing the user to access your Website without actually open chrome/firefox etc. on the smartphone.
To improve the usability, the layout of your website should be able to dynamically resize the content.
If you wish to actually implement an application (Activities/Fragmets...) you need to connect to your backend server the same way your website is retrieving the information.
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.
My client has Joomla website with plugins (Mosets tree and JSE events) that basically lists business an events. He wants an android app developed to fetch these info. Immidiately what came to mind, is I create php scripts that query the Database and I call those scripts from my app. In my app, I display the information collected.
Another idea that occurred to me, is to enable RSS feed and then I read this RSS feed.
Is my approach above the right approach? Is there a different way or standard way when developing apps that fetch information from the Joomla website backend?
Please note the website is already mobile friendly but the requirement is to create an app for part of the website. Any pointers are helpful
Building one or more PHP scripts that query the db and returns the data is definitely the faster and simpler solution.
If you want to build a more robust / compatible solution, you may extend your set of PHP scripts into a full blown REST API application. In that case take a look frameworks like SLIM or SILEX which are very good at this.
There are more complete and elegant solutions but they are probably overkill for your needs.
Edit: why query directly the database
In theory, it seems to be better to NOT access directly the database, and interact with the Mosets Tree component instead; because in that way you will not have to duplicate any logic.
But in my experience, with a very few exceptions, Joomla components are coded so that it's very hard to interact with them programmatically.
I answered a similar question regarding Joomla RESTful APIs here:
REST API for Joomla 3.0
Basically, I ended up developing a solution which meshes the Slim PHP micro-framework with the Joomla Framework / CMS (requires Joomla 3.4.3+).
Why?
Well, the main reason is that while using the Slim framework would be OK as a one-off solution, I realized that one would still need to develop all the accompanying ACL and access security, not to mention the actual CMS that might store and manage all the important data in the first place.
Basically, I did the work so you don't have to. Yes, it's a commercial component (must pay to download) but I think it's WELL worth it for what you end up getting out of it.
It's brand new, so the service routes in the cAPI ("Constant API") Core package are still limited, but those are being built-out over time (all included in the core package of course). The component/plugin/library package is architected to allow for easy integration of add-on plugins which will introduce new service routes to add functionality like RESTful JSON APIs for MySQL, MSSQL, MongoDB, LDAP, etc. I already use an alpha version of the LDAP add-on in a an enterprise environment, so I expect that to be available for purchase/download soon.
The point of all this is that you can use an existing Joomla site to drive mobile apps (with some development for Mosets), while taking advantage of built-in user management and ACL, along with token auth (via cAPI).
Let me know if you have any questions.
I know very little about developing apps/software, so please forgive my ignorance in advance.
I would like to develop a proprietary digital dictionary (using my own definitions, not taken them from other websites). To do this I will need to build a database, that will contain multiple definition for each words and many examples of their use.
Eventually, I would like to use this database to build apps for Android, iOS, and Microsoft operating systems. My question is, for example, if i use SQL Server 2012 will I be able to use this same database when I try to make an app for Android? If not are their any neutral open source database systems like XAMPP which would work across all three operating systems?
Extra Information: I would like the apps to pull definition from a database embedded inside the app, not from an internet server; this way, users will be able to use the dictionary without an internet connection.
Yes and no.
SQL Server works exceptionally well with ASP.NET, and with ASP, you can write a webservice to grab the data off the server and deliver it to ANY platform in a readable format (XML, JSON, or whatever).
Getting data from the server would then be simply a matter of consuming the webservice from whatever platform. Any of the mobile devices, any desktop implementation you decide to make, or even if you just gave your webservice a web page so the webservice could be consumed by browsing to a web address.
From there, all you need to do to make the data accessible offline is to setup the application to download the entire database the first time and store it locally (and from here, you could simply use sqlite). From then on, it could simply look for updates. Keep in mind, however, mobile devices have limited storage capacity.
If you want a common database that can be embedded locally in your app, as opposed to accessing a remote database, then SQLite is probably a good choice. It is fully supported in iOS and Android. It has a C API as well as others so it should also work with other mobile environments.
My goal is to replicate my CouchDB to Android to allow offline access & reduced latency.
I watched this video:
http://www.youtube.com/watch?v=3RdcKWYGqig
One fundamental point I don't get is:
Does CouchDB replication work only
for Android Applications?
Or, can it work for a web application
running in the Android browser (this
is what I am shooting for)? If so, how?
you would need to install the CouchDB software on the Android device in order to get it to work.
Once that is installed, the user can visit your app via the browser at http://localhost:5984/path/to/my/app
You could create one of those bookmarks that looks like an app, and point it to the local couch url.
Chris
Ofcourse you can create browser based applications.
Either try creating a couchapp and loading it with the browserview in android or club it with something like Sencha to wrap it around and making it a hybrid native web app!
If you know how to create couchapps, then it should be pretty straight forward, else, take a look into how to create simple couchapps. Ofcourse, i'm going under the assumption that you already know a bit of Android!