java swing and android - java

Hello guys coding newbie here. I've just finished basics of Java and some multithreading techniques then started learning some Java SWING coding. At the same time I have started Android which I found more interactive and fun to learn and the fact that it uses Java meant I did not have to learn it all over again.
So when I was learning the two simultaneously, I found out that the construction of Android application and Java SWING applets are very similar. So simple stuff like getting responses of the button seemed to be exactly the same for the two (I guess it's because they use the same language). Are they completely the same?
Also, although Android uses Java, does it have some of its own variations in usage of Java that makes it different from Java language itself?
Thanks guys

Android is using java as a coding(native) language , there is no difference, but they've removed some packages in the android api because they might not needed in Mobile development and they've included some of their own.
Android applications are different from Swing application in terms of platforms and their scope.
Android applications are designed more in .xml files, it has different machanism (like generating ids specified in xml to R.java etc). But the basic java with which you are accessing resource is same

Swing wasn't designed for a touch based constrained environment so it just couldn't fit into mobile. Android is actually radically different to Swing in many regards e.g. Activity.
I'd suggest checking out Codename One (my employer) which allows Android/iOS development and is more similar to Swing. Codename One has its roots as a Swing clone designed for mobile that we built at Sun Microsystems.

Related

can i develop a multiple platform project -windows/Android- entirely with a single cross-platform language?

as i'm still learning, i'm not sure what tools, frameworks, even languages i'm gonna work with..
so i'm working on a simple project that got windows side and android side.. that obviously needs at least 2 languages to get it done, but it's impossible that i can learn those languages and know how to deal with their frameworks to get the job done
so is there a language i can develop the entire project(windows & android) with, and without need to any other language no matter what or how many tools or methods im gonna use to make it work?
-note: i know java is essential for the android side, so that's the point im talking about.... "entirely"
I would recommend you giving a loot at Flutter, it's not like native windows but it can produce applications for Android, iOS and web with a single codebase. It's really intuitive to use and the apps built with it work really well.
You can also take a look at React Native expect you need a Native app that you have to use Java as the core language if not give a trial to this
I notice you've tagged this with C#. To answer your question: that. You can write Android apps in it as well via a library called Xamarin that Microsoft bought out and has integrated into the platform.

What are the limitations of Python on Android?

I am getting ready to start a little Android development and need to choose a language. I know Python but would have to learn Java. I'd like to know from those of you who are using Python on Android what the limitations are. Also, are there any benefits over Java?
Most of the points mentioned by Andrew stand, I just wanted to mention that python can be and is used for full fledged Apps published on GooglePlay and even iOS. I can't speak for other frameworks but here are some examples of Apps published using Kivy.
Process Craft Google Play iOS
Fantasy War hammer
PreseMT is a multitouch presentation maker
Memo robots
Ground Truth
Kaleidoscope
Showcase demo example from Kivy project
DefelectTouch game iOS
Bargenius and many more...
On Packaging we have tried to make it as simple as possible, we also provide
A pre-built VM that can be used to make your apk with you having to do nothing except
copying your project dir over and running one command.
On GUI, yes the ui is custom, by default(tries to match Android's Holo theme). However it can be customised to resemble other look and feels, although I haven't tried it personally.
Oh and as long as one is talking about python based apps on android, I found this project mentioned on stackoverflow PyMob, their apps page mentions some interesting apps .
I investigated this recently for similar reasons. My conclusions were that I could not use Python to develop a native-looking application, which is what I wanted at the time. Specifically:
Python can't receive callbacks from the Java UI classes, so you can't use any native Java UI elements such as ListView, etc. Only dialog boxes etc. are easily available. If you have a totally custom UI such as a game, you can try PyGame for Android, or you could look at Kivy, which also uses PyGame.
Packaging of Python applications is very difficult, especially because the Python interpreter is not included on Android by default. The Kivy and PyGame teams are making some intermittent progress on this.
Because of the aforementioned issues, Python is essentially never used to make full fledged applications published in the app store, and so the literature on how to handle the many sundry issues with SL4A (Scripting Layer For Android) is very thin.
So, if you want to make an application that uses native UI elements, that you can actually distribute in the Play Store, or both, Python is regrettably not an option.
I have developed Android Apps on the market, coded in Python. Downsides:
Thus far my users must download the interpreter as well, but they are immediately prompted to do so. (UPDATE: See comment below.)
The script does not exit properly, so I include a webView page that asks them to goto:Settings:Apps:ForceClose if this issue occurs.

Can a systems developer with NO Java programming experience write Android Apps?

I am basically a embedded systems programmer on linux. However, I would like to try my hand at writing Android applications. With no previous Java experience, are there GUI toolkits or something that can help me. Or is it mandatory to learn Java.
Any links, tips for newbies like me will be very helpful
There are various app builders available for those who do not want to do any programming but they are very limited in the apps they can produce. Basically, such builders offer the developer a series of templates which the developer personalizes before building the app. For instance with a video player template, the developer would choose the look and feel such as background colors etc but the rest of the app would be fixed.
Here is an article that looks at some things to consider before using a No-Programming app- builder
http://hypernextandroid.wordpress.com/2012/09/04/coding-and-no-coding-app-makers/
As you are already a programmer and the Java route is extremely intensive then you could try Basic4Android, HyperNext Android Creator etc. These have much easier learning curves than the Java/Android SDK approach and can still produce native apps.
I am 2 months late, but I have been using a software called Titanium Studio to develop android apps. You cannot write advanced apps like games, but its good for developing simple apps. If you have a mac, then you can develop for iOS as well.
You will basically use javascript and PHP to write your app, which are much easier than learning JAVA.
Cons-
It includes most of the commonly used functions from android, iOS SDK but it is missing a lot as well.
The size of the apps will generally in range of 10-20 MB.
Apart from that, If you want to create a simple app and want to do it quick Titanium is the software to use.
Yes you can. You just require an Android tutorial to get started. Try foolowing links:
One
Two
Three
Four
Its better if you first try learning some basics of Java and then try for this.
Hope this helps.
yes.
App Inventor for Android - its simple and easy, no need of any prior Java programming knowledge
Eclipse with ADT plugin - the better way to develop applications - start with Hello World
For UI development - try inbuilt UI editor with ADT plugin or DroidDraw
Gotta learn Java. But if you're familiar with C then the syntax will be familiar. It's object model is pretty simple and it's libraries are great, so it should be fun. Android, of course, has it's own constraints and best-practices.

Can I write an Android app in Java and convert it later?

I've got a lot of experience in Java but none developing mobile apps. I'd like to write an application using Java/Swing and then convert it for use on an Android phone.
Is this feasible or do I really need to develop from the ground up for the Android platform?
I don't own an Android phone as I can't afford one at the moment, and the Android emulator is so slow that I find myself wasting a lot of time sitting around waiting.
Alot of the code from Java is the same in Android but I would say don't. Android uses its own UI system and it would be hard to transfer from swing. Also when you get deeper into the Layouts the Android system has the application would be completely screwed up. Not to mention the whole Intent, Receiver, Content Provider aspects would not transfer properly. Then you need to think about memory. Simple answer in my opinion... no.
With Intent/Activities, in many ways Android applications need to be designed like web apps with pages connected by links. It's quite a different paradigm, so until you know it well I would develop straight onto Android.
If you use the control-model-view paradigm so that your application logic is separated from your display logic, then you should be able to port your application logic from ordinary Java to Android with few or no changes. As for the display logic, that will have to be rewritten using the Android SDK.
If you consider, J2ME may not support fullest functionality of swings. So, it breaks on the first step. Secondly, Android native development method uses XML for its presentation layer and java for Application and Business layers. If you can write the extending methods for android tags, then you may achieve your target at the basic level.
Rather I suggest use the phonegap and develop everything in HTML5, DOJO and CSS3. This would work on any mobile, any platform.

JavaFX in the wild?

Does anybody know of any real-world web applications based on JavaFX? I'm an experienced Java programmer considering starting a website while I'm not at my day job. I don't have a lot of expertise on the UI side, so I'm looking for the best way to leverage my existing skills to create something that can provide an awesome RIA experience. Only trouble is, I don't know of any sites that are implemented using JavaFX, since it's so new. I'd like to see what it's capable of.
Found here quite an interesting stories. Top two listed below.
TweetBox
TweetFX
I think the best example of what JavaFX can do is in the examples on JavaFX.com.
However, it's still early in the JavaFX days thus you will be in pioneer days. Which means there are potential rich rewards to be had, but also - many unknowns.
What I think JavaFX "sweet-spots" are:
1 - If you either have Photoshop skills or are collaborating with someone who is - JavaFX provides the only real platform that lets you take Photoshop and generate a UI. Normally you mock-up in Photoshop and try your best to replicate, JavaFX can leverage it natively.
2 - You get all of the goodies from Java libraries "for free".
3 - Can leverage the UI skills to mobile (those that JavaFX will run on anyway).
However, if you are just wanting to have a Java GUI but would rather wait for more polish on JavaFX - I would recommend grabbing MigLayout & go with Swing on Java 6u10 or later.
There are a few JavaFX apps from the JavaFX Coding Challenge; my personal favorite is Music Explorer FX.
The new version of Indaba Music's software was written in JavaFX; the old version was in Flash.
In my personal opinion I would not use JavaFX for web. Simply because HTML5 is crushing everyone in sight. Now, I totally recomend the use of JavaFX for desktop applications.

Categories