I have a fairly large windows mobile app (written in NETCF 3.5). Those in power at my company are wanting to convert this app to run on Android.
What similarities are there between Android development and Windows Mobile (not Windows Phone) development? Specifically:
Window Forms (ie the UI)
P-invokes (my app has a lot of these)
WCF/SOAP web services support
C# and Visual Studio Development tools
Also, if you feel inclined, I would like a general statement on how a conversion would be from someone who has done it. (Keep in mind that I have never made an Android app.)
Background:
Someone (a non-programmer) here did a Google search and found a "tool" that converts Windows Mobile apps to Android for you (push of the button kind of thing). That person now has everyone believing that this conversion will take no time at all.
As a developer that has worked on several platforms, I just find that really hard to believe (though I would be happy to be wrong).
check out Will Google Android ever support .NET? as it might be what you're looking for. Not sure how well it works, but if the non-programmer is willing to front the money, I say give it a try
Update:
Looks like mono switched companies:
http://xamarin.com/monoforandroid
The short answer in NONE. Android is running Linux that is restricted to Java applications. If you want to port an application from .net to Android, you are looking at a total rewrite.
Sam
There is the monodroid project, which takes .NET applications and makes them run on Android's OS, but it's still very experimental and in no way ready for production applications. Otherwise, to mirror "Sam's" comment above, there are no similarities really. I've been building mobile apps for 11 years (delivered over 60 on various Windows flavors) and the Android model is very different than what you might have done in the past on Windows CE 5 or Windows Mobile 6 type systems.
Related
I have seen that Tablet PCs or just tablets with Windows 10 are been seen more and more on the market, and I feel tempted to program for them since I already have quite some background with C#, besides Java, but since Video calling has some complexity, I'd like to ask first in which platform, Windows or Android, is it better/easier/comfortable/faster to develop an app that supports video calls? It won't be used for the broad public, like Skype, but rather within the internal network of a building. Probably videostreaming can be achieved faster and easier on Windows 10, but maybe things would get complicated if I need to make a videocall, let's say, between an Android Smartphone and such Windows Tablets. The latter is not completely necessary though.
I've done video programming on Windows 10 and Android. For me Android was much easier than Windows. In Windows 10 you'll need to learn Microsoft Media Foundation which was a very steep learning curve for me personally.
I'm converting my Android app (apk) to Blackberry OS 10 (bar).
Everything is ok if i install the bar file to my BB.
But when I try to upload to our BB server to deploy to software to the Z10, i have the problem:
"Qnx/Android" is not supported
I found the root cause here:
It is currently not possible to add Android applications to the work
perimeter on the BlackBerry Playbook tablet or BlackBerry 10
smartphone; this is by design.
Since all applications added to the BlackBerry PlayBook tablet or
BlackBerry 10 smartphone via BlackBerry Device Service are installed
in the work perimeter, Android applications cannot be installed.
Alternatively, Android applications can be successfully downloaded
directly into the personal perimeter on the BlackBerry PlayBook tablet
or BlackBerry 10 smartphone.
What's should i do now?
I need to install my app to more hundred of BB10.
Can i reuse my Android code?
If can't, what's the best solution, best language if i must you write all the code from scratch.
Thanks you
Possible duplicate of
Deploy repackaged android (BB10) APP in Blackberry Enterprise Server within workspace
You can't reuse any of your code.
The best option depends on the type of application. If it is reasonably complex, with interaction with on device stuff like location, then Cascades/C++. Alternatively, you might consider html5. Have a look round here for more:
https://developer.blackberry.com/
Playbook is another curve ball. If you have to support that then you can't use Cascades.
And to be honest, there is a certain amount of personal preference involved here too - what do you like writing in?
Just a FYI, it took me about 6 months, part time, to feel fully comfortable with C++/Cascades. This was from nothing, no C, no C++, no experiences of GUI design tools and a different IDE. But I created my first app, a really simple one, in two weeks.
I'm always tinkering with new ideas, and sometimes I only have my phone with me. I played with ASE awhile back, but had a hard time typing much code with the limited editor, and only dynamic languages were available then. I have seen touchqode, and I think it's a neat concept to be able to compile and run on a server.
Are there any usable toolsets for doing development directly on android? Particularly, it would be nice to see a basic android development environment entirely on android as the host.
Are there any usable toolsets for doing development directly on android?
You already rejected all of them in your answer. IOW, the only significant on-device development that I am aware of is SL4A (formerly known as ASE).
Note that with SL4A, you are not limited to it's own editor, so you might wish to poke around the Market and see if there's an editor that you like better.
Particularly, it would be nice to see a basic android development environment entirely on android as the host.
You are welcome to start porting the JDK and the Android build chain to ARM. This may take some time.
AIDE lets us compile apps from Android. Looks like it didn't take as long as some thought.
Things have changed, so I wanted to update my original question to reflect a better answer.
Considering the limitations of these devices I think it's wishful thinking to have a full-blown development environment. But SL4A + python is quite amazing. Not a toy.
A small improvement to SL4A is to use the "Hackers keyboard" available from the market which can be customised to take much less vertical space than other keyboards. For me, this makes a large practical difference. Plus you can do the bulk of scripting from a computer: adb has a port forwarding option that integrates with the android python module and SL4A in server mode so that you can develop in a python environment on your pc but have the android stuff execute on your phone. You can also shell into the phone from adb and use vi to edit scripts. And then you can do tweaking from your phone, having done most of the scripting in a more comfortable environment.
Is it possible to use Android OS for creating apps for Blackberry phone?
Although Android and Blackberry both use Java, they expose very different application APIs to developers. So I don't think it is possible to run Android apps on a Blackberry - YET. RIM has already announced that they are planning on supporting Android apps on the upcoming Blackberry Playbook tablet.
Please clarify. Develop BB apps on an Android machine? Or run Android OS on a BlackBerry device?
The former is plausible, albeit painful, and you'll still need an Android device or emulator to debug. Android machines (read: smartphones and tablets) are not, as a rule, content creation-friendly.
The latter is a epic hack, probably doable but nowhere near straightforward. And will surely void your warranty :)
Despite both platforms being Java-based, the runtime environments are quite different. Neither BB Java nor Android Java is Java ME compliant.
EDIT: Officially, it's not possible to run Android on a Blackberry device. They use their own operating system. Unofficially, who knows. But even if you manage, it will be a hack, not a supported configuration.
Converting apps from Android to BB - it will be more of a rewriting. Unless there's a well-isolated business layer (unlikely in the mobile software world), it will be a complete rewrite rather than conversion.
If you want to create BB apps, download Eclipse and Blackberry SDK, read the Getting started guide, and code away :) Knowing or learning the Java language would also help.
In addition, please note the difference between applications written "on" Android and "for" Android. "For" means "running on Android", "On" implies the actual coding/compiling was performed on an Android machine.
Not all features of Android are supported in Blackberry OS 10, find the link for the same.
I would like to learn mobile development for fun and as well to enrich my resumé.
I'm currently developing in C/C++ at work on Windows (and sometimes with C# that I don't like too much). I have a nice Android phone and an iPod touch, so I wonder what is the best enviroment on which work.
Sure iPhone/iOS now has huge user base and a lot of attention, but it is used just i
on 3 devices from a single vendor (iPhone + iPod touch + iPad), Android instead is used by a lot of vendors, however is not gaining the attention it deserves.
I own a MacBook white so I can develop for iOS (I even have installed XCode but it seems a mess to me), but I prefer to work on Windows and I downloaded Android SDK + Eclipse and it seems much more easy given my Visual Studio background. I also know some Java and I'm already resigned to Linux.
So... which one should I learn, also given my background?
I don't think there is a real Answer to your question but since you already have the Android SDK and Eclipse set up why not try that first. Then if you don't like it try something else.
I found it very easy to deploy application on the Android Market and the registration fee is very small.
Android programming is a little bit difficult. Apple provide, in its development tool, a storyboard system that make very simple to control the flow of the app. Android is a bit more complicated.
On the other side, Apple programming is expensive: you need at least a Mac Book, an one between Iphone or Ipad. Last but not least, you need to sign to the apple developer program if you want to publish the app or to test it on a real device, which means 80 dollar/year. You can develop even without the program, and without a real device (iphone or ipad), but this means no possibility to test on a real device, which provides some characteristics that the simulator doesn't provide. And still you need a Mac, for Xcode (the apple developer tool) is only for Mac.
I believe though that is only your choice. Personally, i would begin with Apple in order to start with something that is simple at the beginning, but only if you have all the instruments listed above. For fun, Android is better: more complicated but free.