Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I want to start to make a chat client that runs in web browsers, upon a colleges requests. Its my first time doing something like this, so i made some research about this mostly about HTML5. I did research on the platform itself, how fast and how used it is, but my most important factor was: mobile support
I plan to develop this chat for a long while for experience because, as a coder/programmer I am still inexperienced.So i was thinking in the future as well. i have a forum community with pretty limited chat access. I want to change that as well, and as an extra include mobile support.
i researched Flash, java and HTML5, the two most obvious choice in web applications, and pretty much the new comer HTML5.
Flash is more widely used as web app(at least what i saw and found.), and its more designer oriented than programmer, but many chats are written in this, and are used. but there is no mobile support for it, to my knowledge. thats hinders my future plans.
Java, is a robust programming language, and saw a few webchats in this, but my main issue with this is performance: its much slower than flash. But at least there is mobile support, at least the android mobiles.
as for HTML5....its pretty much still a child, not all web browsers support it fully but the major ones support web socket already, except IE9. and IE9 is the most used web browser, sadly. And i cant find any support for it on mobiles yet.
And i don't know any other platforms out there in the Internet that could do the same as the above three, but i'm open.
So my question is: Which is the best platform for writing a webchat, that lest me do mobile support at a latter stage?
No, the correct answer is: Understand which method is quick to deploy, cost-effective and easy to learn. You'll need to integrate languages to make this work. HTML 5 is the latest and greatest, that's one. JAVA ~ still in demand on the Android side..learn it..
Flash is dying..don't learn that.
Windows ~ .NET..don't count this out...Microsoft is planning on coming out with a mobile platform...this is still good to learn..always learn a language that's going to give you job opportunities in the future.
You cannot write a chat in HTML 5 alone (because it operates on the client and there needs to be server code), you would need PHP or JSP for that.
I wouldn't use flash except if you are already very proficient in it because:
it needs an extra plugin
it frequently blocks or crashes some browsers
I think it is difficult to develop and I am not sure if the development software is free
So my choice would be Java Applet by default. It needs an extra plugin but it is much more stable than flash and you need it for many applications anyways but it has so much functionality that is very easy to make a chat with it.
P.S.: Java's speed is absolutely no problem for a chat. Java is maybe 10% behind C++ depending on the application but we are talking about languages like Flash or PHP so Java is not slower but it doesn't matter anyways because a chat has next to no resource requirements.
The correct answer is: it depends. You can implement such a program using many technologies. Each of these technologies have different characteristics and pros and cons but you have mentioned that this is going to be made for a university task. This way i recommend you to choose HTML5, this is a quite new technology, i think it worths it to have a little experience in that!
If you want to have the least work with this project, you should use java.
This is MY opinion.
You should have a look at nodejs:
http://nodejs.org/
Also the socket.io module for nodejs which allows you to use websockets as a transport mechanism for capable browsers and provides fallback methods for older browsers:
http://socket.io/
There's a node and socket.io chat tutorial which might be helpful and a working chat demo based on node (though I couldn't see any reference to socket.io when I reviewed the code).
I would not discount using Flash. It is still an industry standard in web development. It is way faster than a Java applet, but you are right, Java is not going anywhere. Flash allows you to deploy your project to the web, stand alone application on Mac and PC, and on mobile.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I have read an article about Xamarin was buying RoboVM and enables developers to write mobile apps in Java for cross-platform. I am not sure if it is possible now to use Java for developing cross-platform mobile apps. Is there any reliable tools where I can write in Java for cross-platform mobile apps development? Is it a good choice to choose Java only for potential cross-platform mobile apps? I don't consider using C, C++, C# for that purpose since I have never been focusing on one of them. I apologize for the fans of those langauges. Or Is it a better choice that I better work with Java for Android apps and Swift for iOS apps? I plan to choose Java as a main language for all web apps, cross-platform mobile apps and robotic programming development.
I've been using Codename One for quite a while now. Libgdx wasn't exactly an option as I'm not a game developer.
I played a bit with RoboVM before picking Codename One and it seems that it's more about Java for iOS and not about WORA (Write Once Run Anywhere). This might be a good choice for you if that's what you want but I prefer WORA. I tried the RoboVM FX bindings and they were just horribly broken in basic ways.
A few things I love about Codename One are:
Support - I have never used a product with such amazing free support. You get answers within a day at the latest and that really sealed the deal for me.
No need for a Mac - I use my Mac at home but in the office I need a PC.
Customization and familiarity - this is pretty much Swing but WAY better. Like we always wanted Swing to be as they put it...
The docs used to suck but they made a big push on it and it shows. Now if only they could fix the IntelliJ/IDEA plugin to the level of the NetBeans plugin I'd be golden!
Depending on what you're trying to write, libgdx might be a good solution.
You write your code once in java and it compiles to basically everything (even html5!)
You have to adhere to its coding conventions and use it's classes though. (Which are great for game development, not so much for other things... but you could still probably do whatever you want with it).
As far as I know they are not compatible with Java, but they claim that if you know Java you'll be fine with C#.
I found few interesting weird facts on their website about the transition... source
In Java, you can pass parameters only by value, while in C# you can pass by reference as well as by value. (C# provides the ref and out keywords for passing parameters by reference; there is no equivalent to these in Java).
In a Java switch statement, code can fall through into the next case section, but in C# the end of every switch section must terminate the switch (the end of each section must close with a break statement).
....
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
As a developer going through web development I would like to know if J2EE or PHP is better for building web sites.
My initial thoughts were that J2EE was better because it is Java based but upon reading several articles I read that PHP might be easier and more focused with regard to web development.
On this topic I have another query, whilst looking at different articles on web design and construction I came across websites that claimed to be built in J2EE, Java and Ruby. Is J2EE the same as Java? Or is it something completely different.
First of all, there is no J2EE anymore. There is Java EE. One profile in Java EE is the web profile. So while Java EE has a bunch of complex, enterprise-level stuff in it, you just use the piece you need.
However, it isn't even like Java EE is the choice for developing web applications in Java. It is the standard, but people have enjoyed great success with open-source frameworks like Spring MVC. If you expand your scope beyond Java to all JVM languages, you have Grails (in Groovy) and Play (in Java but also in Scala) at your disposal as well. Both are extremely good.
And then there are so many other non-JVM options like Zend (PHP) as you say but also Rails, Django (Python), etc.
So to truly appreciate what's "better," you need to consider a lot of things:
Your comfort and productivity with the language
Your comfort and productivity with the "ecosystem"--i.e. accessing third-party libraries to help you with various tasks, ease of mocking and testing, boilerplate code and mundane tasks being abstracted away, ease of implementing caching and minifying web assets, etc.
Ability to find help online through a vibrant community
Your requirements. If you need to access Amazon S3 buckets, for example, and your language or third-parties libraries in that language have poor S3 support, you should avoid it. Similarly, if you need to use Neo4J as a data store but there is poor support, move on.
There is no "right" answer to this question. I would suggest the options approach described in Lean Software Development. Do some research to narrow your choices to three. Then get a site up and implement a representative feature with all three choices. The less appropriate choices for you will eliminate themselves and leave the best choice for you.
As for your last question, Java is a programming language; Java EE is an enterprise software platform utilizing the Java language and the JVM (with multiple profiles as mentioned). The Ruby part of the application you mentioned was probably utilized with JRuby, which enables you to run Ruby on the JVM via JSR 223.
this is depend on you skill or understability if you have good configuration knowledge then i suggest to you got through java j2ee. php is more easy to java
To be short and concise, If we're talking about professional development, then Java is the way to go.
If you're a hobbyist, then PHP would most probably be the right choice of yours.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I need a way to:
Create a GUI based front end to a database (MS SQL Server or MySQL).
I want it to be capable of running on Windows,Mac & Linux.
I want to be able to run the GUI as a desktop application or through a web browser.
(some people aren't allowed to install applications on their desktops and some people don't have access to web browsers.)
I need support for rich dynamic content, graphs, tables, possibly videos.
A nice IDE to generate the GUI where I can visually create and then code.
I don't want to deal with different web browsers interpreting the layout differently.
I have programming experience but plan on hiring a professional to get this project started. It is currently for a small business but has the potential to reach enterprise level with hundreds of users. This is a long term project. Some people say Java is a slow horrible language. Some people say it is great and many enterprises and financial institutions run java.
I have done quite a bit of research on oracle's website but am still lost.
Java? Java FX? Swing? JavaEE? Tomcat? Java webstart?
Where do I even begin. I don't even know what book to buy. If anyone can point me in the right direction I would greatly appreciate it. Maybe Java isn't even right for this?
Java is great for just about every project. But lets address your points.
1: Java can build a GUI and it can connect to Databases there are many APIs to make this easier, like JDBC.
2: Java is build for just that. Due to Java Runtime Environment which virtualises the execution it is easy to build Java based Applications for multiple Operating Systems.
3: This one could be a bit tricky since you would build an Applet for the browser and not an Application. But hey Java is just about the only Language that allows you to build an Application and an Applet for browsers in one step. Which is also the reason for it's big success. But beware companies may block Java in browsers for security reasons.
4: Java is capable of producing every graphic you can image a great example is Processing.
5: Well NetBeans and Eclipse both have great plugins for that. I personally love the Window Builder for Eclipse.
6: An Applet will give you that because it defines it's layout. Browsers are just running the Applet and are not doing any interpretations.
As for Java being slow: Naturally since Java Applications are run in a virtual environment they are slower then Applications developed in say C++. But this allows for Java Applications to be easily released for Windows, MacOS and Linux at the same time. Also Java uses some great technics like "Adaptive optimization" to increase it's speed and today Java isn't really all that much slower than other Languages (but still slower).
You can refer to the Java-Article on Wikipedia for some more info on Java.Link
I want to be able to run the GUI as a desktop application or through a
web browser. (some people aren't allowed to install applications on
their desktops and some people don't have access to web browsers.)
In this case Swing might not be the best solution since running a moderately Swing app in a browser as an Applet is a pain.
Java WebStart is a nice solution, but the application doesn't really runs in the browser: it just starts from the browser. If this is OK, than JFormDesigner http://www.jformdesigner.com/ is the best tool you can get.
If the application must run in the browser and without Java than you can achieve something similar with a RIA web application and package it in a similar way PhoneGap does mobile devices, e.g. with http://qt-project.org/doc/qt-4.8/examples-webkit.html and bundle the server together in background.
For the UI with this RIA framework http://www.sencha.com/products/extjs/ there's also a very advanced GUI designer: http://www.sencha.com/products/architect/ if that's an important part, but of course in this space there are many alternatives.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
What is the most efficient way to port an iPhone app to Android? I know Apple doesn't like 3rd-party, non-Objective C platforms generating code for their platform ... but is there something out there that can take an iPhone app and convert it to Android friendly code?
If not, how have folks out there been creating Android versions of their existing iPhone apps?
Thanks
There's nothing of the sort to port your app. You can use 3rd party tools to create apps that work in both. That's what Titanium and PhoneGap were aiming at. With the new changes to the SDK Agreement, those look like they're not really "legal" or at least violate the agreement.
As for your other question, yes, people do create 2 separate apps. One for Android and one for iPhone. That's the way I currently do it and seems as if Facebook and others do the same.
Yeah, people don't usually love the answer that we have for this one at Appiction. It seems like it should be easy since they are so similar, but they are completely different operating systems with different ways of being used. Sometimes a company will be able to cut a deal with you since the art has already be developed and the basic wireframes have been conceived. At Appiction we created a video to answer this exact question for our clients: http://www.youtube.com/watch?v=Y-fdRw1WNYI
Apportable provides a platform to build and deploy existing Objective C apps to Android.
There are few alternatives to port an app from one platform to other. like Rhodes Mobile, Titanium and PhoneGap. In fact they did a good job and tried very well to remove fragmentation in smart phone app development.
But according to Apple's SDK Agreement version 4.0, section 3.3.1
app must be developed in C/C++/JAVA script.
At this stage convincing way is to write it separately.
PhoneGap is not a true cross platform app development tool.
If you want to create an app for both iPhone and Android using PhoneGap, then you have to create two different apps that will make use of PhoneGap framework. But one single app for iPhone and Android can't be created using PhoneGap.
There really isn't a short cut to porting. The best thing you can do is use a company that specializes in porting, like migration.mobi. The cross-platform frameworks have performance problems and really limit what you're able to do.
Games are a different story altogether, so be ready for different answers if you've been a complex real-time game on iPhone and you want it to work on another platform.
Noodlecake Studios appear to have solved the issue of porting from iOS to Android, recently porting Trainyard among others:
Its no secret that the process of porting iOS games to the Android
platform has been met with rough waters... These issues are
familiar to us at Noodlecake Studios and prompted the creation of
Noodlecake Games, a porting and publishing entity designed to
alleviate many of these problems. Through our efforts over the past
year, we have developed technology that allows us run iOS code
natively on android devices. What that means for developers is there
is no need to rewrite iOS code for the Android platform, it all runs
automatically. To be expected, many developers at first didn’t believe
what we were doing was even possible.
At android there are 2 categories: the lower one, with g1 and the better with Nexus 1 if you want to develop games.
Those cross platform libraries I think they can do cross platform "Hello word" applications.
To generate a correct Blackberry networking application or an optimized Android graphic application (to both categories), I highly doubt it!
the frameworks has the big cons, when you want to look outside of the sandbox. Those 3-4 custom stuff, plugin often cost more, than the whole application written fast until that point.
So, "Hello word" +very basic, only soft stuff with cross platform.
High performance, nice graphic, easier to bugfix, support, professional work: develop for each platform and categories.
There actually is a tool that does exactly what you're asking called O2J. You can leverage your existing Objective-C codebase and convert it to Java with the O2J conversion tool.
It's a paid app available on the Mac App Store... O2J Objective-C to Java Converter
Most of the time it's preferable to have a native UI and native code for performance, working with the platform UI paradigms and to take advantage of platform specific APIs/services.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I was wondering if is it possible to develop iPhone applications using Java plus XMLV, which claims to cross-compile Java-based Android applications to native iPhone applications.
Is XMLV a viable way to develop iPhone applications using Java?
Here are a few Java code examples used to build and application in an iPhone:
http://www.xmlvm.org/iphone/#
I think we will have to wait a couple of years more to see more progress. However, there are now more frameworks and tools available:
Here a list of 5 options:
Codename One
RoboVM <-- Closed
Avian no maintainer
XMLVM
J2ObjC
Multi-OS Engine not maintained
If you've completed your other projects, why not take the time to learn Objective-C? There is a ton of material out on the web to help you get started. Honestly, it won't be that hard and learning to do some memory management will be a great learning exercise. Have you programmed in C before?
Most cross compilers won't do a great job in converting your code, and debugging your project may become much more difficult if you develop them this way.
I think your teacher sent you down the wrong path.
This is a classic example of trying to put a square peg into a round hole. The best way to develop for the iPhone is with the iPhone SDK and objective C. The best way to develop for Andriod is Java and the Android SDK. The best way to develop for WinMobile is C#/VB and the .Net Framework.
As you can see each has their own "best" SDK. Since you are only learning Java I would second the suggestion to play around with Java and Android.
There is anew tool called Codename one: One SDK based on JAVA to code in WP8, Android, iOS with all extensive features
Features:
Full Android environment with super fast android simulator
An iPhone/iPad simulator with easy to take iPhone apps to large screen iPad in minutes.
Full support for standard java debugging, profiling for apps on any platform.
Easy themeing / styling – Only a click away
More at Develop Android, iOS iPhone, WP8 apps using Java
take a look at codenameone.com project, it's a cross platform mobile framework where the ui part is a fork of LWUIT.
This project leverage xmlvm to translates the java bytes code to Objective C
You can also take a look at RoboVM.
It translates Java byte-code into native ARM or x86 code which can run directly on the processor without any VM or interpreter needed. Most of the Obj-C UI elements are already bridged into Java and follows the usual Java design patterns.
Edit
Robo VM recently announced that it would be shutting down the service - Source
You need to know at least basics of Objective-C to develop for iPhone. However, it is possible to use C++ classes.
As far as I know Adobe is working on building Flex/Flash applications for iPhone. Read more here: http://theflashblog.com/?p=1513
You can't.
Note however that Monotouch allows you to develop in C# instead of Objective-C. http://monotouch.net/
If you plan on integrating app functionality with a website, I'd highly recommend the GWT + PhoneGap model:
http://blog.daniel-kurka.de/2012/02/mgwt-and-phonegap-talk-at-webmontag-in.html
http://turbomanage.wordpress.com/2010/09/24/gwt-phonegap-native-mobile-apps-quickly/
Here's my two cents from my own experience: We use the same Java POJOs for our Hibernate database, our REST API, our website, and our iPhone app. The workflow is simple and beautiful:
Database ---1---> REST API ---2---> iPhone App / Website
1: Hibernate
2: GSON Serialization and GWT JSON
Deserialization
There is another benefit to this approach as well - any Java code that can be compiled with GWT and any JavaScript library become available for use in your iPhone app.
I'm answering this question 2 years down the line and I must stress that I did have pretty much the same problem as you did. However I'm so happy that Android has evolved into what it is today.
Having said that, I do regret that I did not learn C/C++ while I could have and I don't want to blame my teachers for it cos where was my brain when the time was right?
I'm sunk in Java today and I'm glad that I did not make the mistake of learning too many languages and being less productive... However I did learn HTML5 which really made things a lot easier, maybe someday, I might get motivated to learn C/C++ . Or if I get an Apple mac at a real throw-away price, I might learn Objective-C :)
I think Google Open Sources Java To Objective-C Translator will make it possiblöe to develop in Java for iOS https://code.google.com/p/j2objc/
try to use TotalCross. It is a Java Framework to help devs create iOS and Android apps with only one source code. Different from the others platforms, it doesn't require any knowledge in iOS (Objective-C or Swift) nor Android (SDK or NDK)
there is a maven integration
https://gitlab.com/totalcross/TotalCross/wikis/building-with-maven
http://www.xmlvm.org/android/
Specifically talks about Java based Android apps being ported to the iPhone using non-Apple hardware.
You might also want to check out MonoTouch (C# rather than Java...but the two are very similar).
Perhaps you should consider Android applications instead of iPhone applications if you really want to develop in Java for smartphones. Android natively uses Java for it's applications; so perhaps this might be a better option?
As for iPhone, I would recommend you to look into Obj-C or C/C++ depending on the type of applications you want to make. Should be fun to dabble into a new language! :)
You can try iSpectrum ( get it at http://www.flexycore.com )
You'll be able to develop and debug your Java apps in Eclipse. You'll still need a Mac and XCode to launch it on the simulator, or install it on the real device, though.
But you won't have to actually use XCode editor. Plus you can use it for free if you're planning to work on an open source project.
To add to this there's: http://www.oracle.com/technetwork/developer-tools/adf-mobile/overview/index.html
A Java & HTML5 Based Framework for Developing
Oracle ADF Mobile enables developers to build and extend enterprise
applications for iOS and Android from a single code base. Based on a
hybrid mobile architecture, ADF Mobile supports access to native
device services, enables offline applications and protects enterprise
investments from future technology shifts.
Even if the question states Java, most of the answers have digressed. So I thought I would do the same :)
We have been using Adobe AIR for the last 5 years and it is truly cross-platform and provides native-like performance with the same code base (at least 99% of our code is the same). Adobe AIR got some bad press at the beginning during the 'beta' period (slow, no GPU, Flash 'dead' etc.) But now, it's amazing what you can do with it. Not to mention the wealth of open source libs out there.
With the same code base you can push your app onto:
iOS
Android (x86 and ARM)
Flash (still VERY useful)
ChromeBook
PC (as native with installer)
Mac (as native with installer)
Why bother with Java or Objective-C ?
The only common platform not covered is Window Phone. But that's coming soon too.
Build a hybrid app. Anyways Java is not enough for a software engineer , you need to learn JS,HTML5,CSS as well for becoming a full stack mobile/app developer.
Build the complete backend using Java & frontend using Cordova/Phonegap.
I'm assuming you dont need the last drop of juice from the hardware even hybind app should suffice your needs.
Build a responsive webapp using Bootstrap 4 + React JS. Use https://github.com/ipselon/structor to quickly build up the frontend. Now the web app becomes an app in the browser.
You could also take the same app and build it using cordova to publish a app on ios/android platform.