I've been playing for some time with python and matplotlib and managed to create some neat desktop applications. [like graphical analysis tool for linear algebra, rendering engine for maps etc.
I was wondering if I could turn these applications into android apps. I'am completely new to android. I plan to use python (though I'm good with java) for the coding (I know this is possible with tools such as kivy or SL4P).
I want to know the limitations for using these tools in android. Can I even get matplotlib into android? I searched everywhere, but couldn't find how to go about a matplotlib based android app.
Any kind of pointers would be helpful.
I doubt you can embed matplotlib on an Android device (or any other kind of smartphone or tablet).
One alternative possibility would be to make your app connect to a back-end server that has matplotlib, and use that to generate the figures and send back images to the client.
Advantage: Can potentially get a working mobile prototype finished somewhat quickly by reusing existing code.
Disadvantage: The app cannot work offline since it relies on your central server.
Matplotlib cannot be compiled for android, numpy can though:
https://code.google.com/p/android-scripting/issues/detail?id=260
Related
I have one simple question, that is can I convert my android .apk app into ios using any software? If yes, then please give me the name of that software. If any alternative method for that please guide me.
Google has a tool to convert the back-end, nothing for front-end though
http://www.xda-developers.com/google-tool-helps-developers-port-android-apps-to-ios/
There is a new startup that clains to convert the APK to IOS.
It's called MechDome.
The goal is very simple and attractable:
Reduce time to market by eliminating cross-platform development. Automatically convert your existing Android apps to high-fidelity, native iOS apps.
There is nothing out there that would convert apk into ios app. To my knowledge there is also nothing out there that could translate android code to IOS. The operation is simply too complex for a simple tool to manage.
However, there are tools you could use to make your apps (developed by you) work across multiple platforms. I'm sure there are more, but here are 2 of them I found in minutes (look into them if you are interested): Apportable, Phonegap (discontinued as of 2020/03. It was made obsolete by ProgressiveWebApps - PWA).
In past decade or so WebApps have been picking up for anything that is not too graphically demanding as they can run on anything that has a Web Browser. With this style devs pretty much open their website in a platform-specific executable and it looks like an app.
As for your existing app depending on complexity of your software you have to rewrite from a little to a lot of code to adapt to IOS APIs.
In short: No. Unless your app is build on multiplatform framework, converting means manual adaptation.
There is no known way to convert an android app to iOS. MechDome which is a Developer Tool that Automatically Converts Android Apps into iOS Apps seems to have stopped as of 30/03/2021. link
However if it is your plan to launch android and iOS app from one coding project, use Flutter which allows you to launch on both platforms simultaneously.
Flutter is Google’s mobile UI framework that provides a fast and expressive way for developers to build native apps on both iOS & Android, using a single codebase.
Get started here link
I am new to Andorid. i am developing an app that uses Google Map API and calls web services and transfers data through socket IO. I m wondering it can be implemented as Native app or cross platform app. I searched a lot. But i cant get the correct one. Tell me Which is simple and why why not the other one. Thanks in advance
IMO if you like to build a high quality application on Android, then don't ever take the cross platform path (like Cordova).
You will surely face performance issues especially on old devices.
The only advantage I see of a Cordova application in your use case, is that you are going to write the client and the server in the same language.
So to summarize:
If you want a high quality application then go for the native path.
If you want to rapid develop your application and don't care much for quality/performance, or you want to produce a fast prototype as a proof of concept then go for the cross platform path.
In case you chose the native path see this question for available Java WebSocket client implementation.
I would recommend Xamarin. Yes, it does cost money, but if you plan on possibly moving your app to iOS at any point in time you won't have to port your code over to objective-C. Not to mention you're using C# the whole time! I would recommend giving the free trial a shot.
I have a web application developed on .NET Framework using MVC4. So now I need to create a Android Application for it.
Do I have to convert my entire C# code to Java (The code in
controllers in my MVC app)?
Will it be better if I use Xamarin?
Can I just create new Views for my application as I have controllers
and Models?
How do I approach this?
You won't be able to rip out your Models and Controllers directly from your MVC4 app and stuff it into an Xamarin.Android Application. However you will be able to reuse some of it. Especially the models.
At work I ported a Silverlight app to WP7/Android/iOS apps where a lot of the logic fetching data from servers, models and more were directly copy/pasted. However all the Views and logic for the Views had to be written from scratch as View Ports are different on a Computer monitor and a mobile device, and general UI is very different.
Also using the MVVM pattern helps separating the UI from the Model making the apps more testable and allows more code sharing. For this I use MvvmCross. There is also an MVC alternative called MonoCross. Both are free as in beer and as in speech. Both of these are for Xamarin.Android.
If you are only going to make an Android application and not going to be making it for other platforms as well and don't want to pay the price of the Xamarin products you should be able to make it in native Android. I don't see why this is possible. However you really need to find out what it is you want.
What does your Web App do? My guess is that it somehow manipulates some data in a database. So you would need to alter your Web App to expose that database in some kind of Web Service, maybe RESTful or otherwise.
You will need to layout your Android application such that the Views of the Web App you have fits into the smaller view ports of the mobile devices. A good too for this is to sketch your Android app out on paper and make arrows and annotations. You probably already know the model of your code in the Web App, it would be similar in your Android app. So get started coding the Views and then wire them up to the Web Service.
If you have read this far you might notice my answer is very vague. This is because your question is very vague.
I see more and more professional mobile app from different companies that are simply build upon the same companies' responsive Web Application (Website).
Either they use Cordova or some other technology, I can't say.
The architect is simple: 1- build a professional well-designed angularJs web application; 2- and then use Cordova to convert it to mobile apps (iOS, android, etc.).
Is it really that simple? hmmm.... maybe not! But theoretically it should work.
The good thing is Visual Studio still supports Cordova, even after Microsoft bought Xamarin.
https://www.visualstudio.com/vs/cordova/
You can start here:
https://taco.visualstudio.com/en-us/docs/get-started-first-mobile-app/
Happy Cross Platform Mobile Developing!
I am new to PhoneGap, and I have several questions:
I need a way to develop an application that will have iOS, Android, and other platform compatibility. In other words, I want to write 1 app and get compatibility versions for different platforms.
By reading the "Get Started" guide linked by the PhoneGap website, I found there are different procedures for different platforms. So to have compatibility versions across platforms, do I have to go one-by-one and change all of them if I make a modification to my app?
Also, what exactly is PhoneGap Build? It seems like I can avoid all that hassle mentioned previously and toss my app into the PhoneGap Build? Do I really not have to do anything besides writing the app? What if I need to make changes?
And finally, I've read that PhoneGap works with HTML, CSS, and Javascript, but not PHP. What if my app needs to contact a server? Can PhoneGap handle that?
Thank you for bearing with all these questions!
PhoneGap achieves platform compatibility by embedding a webview within your application. Therefore you can apply your knowledge in HTML, CSS, JavaScript and it additionally provides ways to interact with native features (e.g. camera, gps, ...).
With PhoneGap you write one general web app, tweak parts for the specific platform (sometimes you do not have to this at all) and build it for that platform. The latter can be handled with PhoneGap Build service: It takes your webapp and bundles it for the mobile operating systems out there (Embeds it within a Java app on Android, an Objective-C app on iOs)
PhoneGap is able to communicate with a server hosting a PHP script just as every other web application. Trying to dynamically load resources from remote sites can be quite a hassle but this is another question.
traumalles is correct. All your HTML/Javascript/CSS is running from within a webview on the device. Your code is, therefore, all "client-side." You can communicate with a server just like with any other page. When they say PhoneGap isn't compatible with PHP, they mean only that PhoneGap can't execute PHP code like it's a server, because it's not. It's just loading your webapp in, basically, a browser.
One other important question is what exactly do you mean with "other platforms" phonegap does provide many functionality for nearly every platform but the different webbrowser of the mobile devices have their problems and limitations.
For example are there many problems if you want to provide your application on a WindowsPhone Device because the Webbrowser has a few limitations which will cause your app to not look and behave like a native app.
Just look a bit through the phonegap API you will see that some functions are just available for IOS or for Android and there are a few only Blackberry methods and so on.
So you really have to be careful when a framework tells you it will work on all devices.
So i really don't have a problem with phonegap i worked with it very great but there will be limitations you have to deal with.
If you primarily want to develop for IOS and Android you can really achieve great native like results !
I have been developing an Android application for about two months now, and the guy I'm writing it for wants me to use this instead of the android SDK so we can deploy the application for multiple smart phones: http://rhomobile.com/
he says you can write the application in one language and it can be deployed for most smart phones. Has anyone used this website to do something similar? Any advantages or disadvantages I should know about and tell him? Maybe someone could give me a better explanation on what this really does.
I'm current a one man army. He wants the application out for most smart phones but can afford to hire more developers.
Rhomobile will start up a small webserver on your phone and then show a webview that is directed to this webserver. You are able to write all the application logic in ruby in a way you would do it if you would write a web app that is deployed on a real web server. Rhomobile uses CSS etc. to have the app look look a little bit like a native app.
If you know Ruby you will get an App fast but it will look crappy and the user experience will be crappy too. A similar framework is appcelerator titanium they will let you write the app in Java Script and then compile it into a mix of javascript, webview and native components that run on an Iphone and on an Android phone and titanium has a much nicer user experience then rhomobile.
Visit their pages and test some of the apps that they are promoting as showcase for their frameworks.
As many developers writing apps in Objective C have learned using HTML for the view and styling with CSS styling libraries is a great way to create attractive native apps. Rhomobile's Rhodes uses this approach as well. We used to let people use whatever CSS they wanted and they could choose to use IUI, JQTouch, IWebKit, WebApp.net or any other library along with Rhodes. The best external apps all seemed to use JQTouch for styling and animated transitions.
Recently we decided to ship with our own fork of JQTouch (which we made work on Android) in order to make this even easier. The recent Rhodes master branch created apps with JQTouch builtin makes such attractive apps even easier to build, as the stylesheets are included with Rhodes scaffold-generated apps.