Good day!
Is it possible to create mobile games or services just knowing Java SE / J2EE? I applied for a job with a mobile service company and they only require Java SE / J2EE knowledge and they told me that this are what we are going to use. How is this possible? From my understanding, Java mobile applications should be created using J2ME.
Thank you in advance.
Mobile applications are different. Some are developed with Objective-C(iOs), some with pure Java(not absolutely pure, but - that's Android case). J2ME is just an option.
Some mobile applications are special web-pages developed specially for mobiles. HTML5 is a good technology now and it is supported by modern mobile browsers(Safari and Chrome mobile).
So, yes. You can develop mobile applications without knowledge of j2me.
Related
I'm interested in developing apps on cloud platform. (Microsoft Azure especially). I've been created with Java SE 8 application by request for my client, and now I'm looking to way to deliver it and my client wants me to maintain it too. I'm quite new to Windows Azure, taking takeover it soon after Christmas, but can I run the Java SE 8 application with Swing GUI -components without anything special skills in Windows Azure?
Or do I have to turn into ASP.Net?
This should not be problem. Azure support multiple platforms.
How do i deploy a java application on windows azure
Link above talks about how it can be done.
Azure and .net is optimal fit due to availability of tool set. Microsoft is adding rich support build into visual studio, which makes development with Azure very seamless.
Turning the application to .net is bigger questions. It should depends not only on hosting platform but also need of your client. What the tech road map they intend to go. What is current technological landscape looks like and so forth.
I have decided to learn another language and am in the picking phase.
Currently looking into Java and C#, but leaning towards Java because it is cross-platform. I will be mostly building web based apps, but the variety of Java editions scares me. Java EE, SE, ME, FX, what are they differences? Are there any advantages of using one to another?
Okay, FX is for desktops, ME for mobile, SE and EE are the same, but one is for "business" the other is not. So, if I learn SE for example, what would it take to switch to EE? Or FX? My problem is that I can't really understand why SE, EE and FX are separate products? They both run same JVM, and both can do the same resulting apps. Why they are separated then?
Think of them a bit like this:
ME ~= Compact framework
SE ~= .NET client profile
EE ~= full .NET framework (and some extra bits :)
FX ~= Silverlight
It's not an exact comparison, but it's a close enough start...
It is not so devastating.
Java SE is the standard for normal applications.
Java ME is for mobile telephones, a subset without floating point for instance.
Java EE is an addition for Java SE for web applications and web servers.
Java FX is a flash player alternative, but now with java bindings/integration.
Hence Java SE forms the basics. Java EE is for web applications.
In future java will get a modular system, and the distinction will be just on library level.
When you say editor, i think you mean IDE(Integrated Development Environment).
The reason why Java has so many editors and C# doesn't, is because Java is opensource, while C# is not. So the only real good IDE you are going to find out there for C# is called "visual studio"(It is not free)
I would highly recommend you to go for java, because almost all of the tools are free to use, and even the application servers where you deploy your apps.
Don't be affraid of the java editions, if you would like to build web apps, you will need to go for JavaEE(Enterprise Edition).
Anyway this is what each of them does:
SE(Standard Edition): It contains the most basic libraries, often used in desktop apps, but it is part of the Enterprise Edition too.
EE(Enterprise Edition): Used for enterprise apps(not just web apps), so that means distributed programming, from web apps, desktop to web services...
ME(Micro Edition): Is meant for mobile technologies, not just phones, also vending machines, smart tvs, missile guidance... ;)
FX: Is a rich development platform for developing powerful clients in an easy way.
Regarding to your question, the differences between EE and SE, i already answered, in other words:
EE is an extension of SE, that includes EE and allows you to program enterprise apps.
So if you want to program in EE, you need to have SE installed(Just think about it as a system requirement).
I don't really understand what do you mean by bussiness. What i can tell you is that the Enterprise Edition, has in its libraries integrated a tool for developing bussiness components, called EJB(Enterprise Java Beans).
The reason why EE, SE and FX are separet products is because a separation of concerns is needed.
Example: Maybe you create a desktop app that does not need at all to communicate via internet. Why would you have in it enterprise libraries for distributed programming?
Whit all respects, but the last question is a bit of no sense.
The different versions (SE, EE, ME and FX) are all just different APIs that sit on top of the JVM (you can find full descriptions here: Your First Cup). They are not different languages so there's no new syntax to learn switching between them, just different API calls.
Personally I prefers C# for developing web apps because of it's integration with ASP.NET and the MVC frameworks.
See the description here Java perspective
How diferent is Java used in Android apps development from Java used to develop regular desktop applications? Can I use the skills acquired by developing Java Android applications in Java EE web development?
What is Java ME all about ?
How diferent is Java used in Android apps development from java used to develop regular java applications?
From a language point of view, almost identical.
From an user interface API and application life-cycle point of view, almost completely different.
Can i use the skills acquired by developing Java Android applications in Java EE web development?
Yes. Your pure "Java-skills" will come in handy for sure. But as said above, the application life-cycle for instance, is completely different from most other scenarios.
What is Java ME all about ?
JavaME is an older technique, typically used for phones without touch screens. It defines (compared to Android) a very minimal API and was originally designed to run on very limited devices compared to todays smart phones.
Android is, roughly, JavaSE without some of the more specialized features, like security layers (JSE and JAAS), GUI (AWT, Swing and Java2D).
Android's API uses the JavaME class hierarchie for OpenGL ES.
So if you know Android, you can easily move to JavaSE development.
JavaEE relies on JavaSE, but it's about server applications, so you will have to learn how it works. Look for servlets, JSP and JSF to learn more about it.
JavaME is slightly different than JavaSE. JavaME's API is smaller and less powerful than JavaSE, and slightly different.
Well, in order to develop both for Android, Java ME and Java EE the base thing to know is Java SE. Java ME is getting old. The most popular staff to develop in Java ME is software for Blackberry.
Java EE development is pretty hard to learn technology, cause it actually consists of a big ammount of frameworks and smaller technologies. It's complicated because of many things, but, definately in order to use it you should start learning Hibernate/JPA, Java SE, RMI and OOP itself. Then you may look into Spring technology.
For Android Java is about a programming language and some core java library
J2ME is also a mobile application development framework supported by many phones. The common thing between Android and J2ME is only the Java language. Both have different set of terminology for development.
Web: It's about target platform and programming model. Android's Java is for mobile development platform. Here the apis, software stack, concepts are totally different from what are there for Web development.
This question is for anyone that's had personal experience. The question is simple: Does Apple accept iPhone apps that haven't been written using their SDK? Apps can be written using different languages these days, and then compiled into iPhone apps. Does Apple even care?
Edit
iPhone apps can be created using Java and Flash CS5, which is the reason this question uses those tags. It's relevant to to developers who are, or have created iPhone apps with those languages.
They care so much that they made it a violation of the App Store policy to use non-native APIs.
There was enough backlash, that they updated the policy to allow the use of non native APIs.
I am developing mobile apps for some time in .NET and I was always wondering if the grass is greener on the other side (Java).
Thus, I would like to ask your opinion about which one you prefer for your mobile apps and why is that so.
The main advantage of using Java is the broader installed base. If you use Java, you are going to reach orders of magnitude more phones than if you use .NET.
As far as I know, .NET works exclusively with Windows Mobile phones.
On the other hand, Mobile .NET is easier than Java (IMHO), and that's partly because of Visual Studio IDE which makes life so much simpler than any other development environment on the Java World. For example, doing Form Based applications in .NET mobile is really straightforward and simple.
So, the answer will basically depend on what you are trying to accomplish:
Trying to reach to the biggest number of mobile devices: go with Java
Trying to develop an application for Windows Mobile devices: go with .NET
Trying to develop an application that will run only on a controlled environment (A single business) where you get to decide the devices it will run on: decide which device you are going to use and then pick development environment.
Keep in mind that if you are talking about Java for Android or Blackberry development, you will face the same issue of not reaching to a huge installed base that you will with .NET. If you want the huge installed base, go with plain Java Mobile Edition.
I can only speak for windows mobile development stay with .net.
Sun don't even release a JVM for windows mobile devices I have developed for windows devices using java and using http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html as my JVM which was very good the author even responded to a feature request I made.
It is true that if you're going to develop for WindowsMobile, J2ME is not a very good option. More than likely your device of choice will not come with a JVM and if it does, it'll be buggy and slow. Also, forget about trying to integrate with with OS at more than a basic level.
Just to add to what others have said, Sun has made phoneME available and if you want to go that route and deploy your MIDlet and VM together that is certainly a possibility. It's just a lot of work at this point.
For .NET guys - there is a Ubiq Mobile framework. Ubiq Mobile apps work on Android, iOS, Windows Phone and Java-based phones and tablets. This is rapid cross-platform development with .NET with cloud-based architecture. Getting started article: How to create simple UbiqMobile application with video.