Developing Palm WebOS Mojo applications with Google Web Toolkit GWT - java

Has anyone successfully developed a "native" Palm WebOS app using GWT?
How do you setup your development environment and how did you interface with the mojo framework?
I was thinking one setup might be to create 2 projects: a GWT & a Palm OS project.
Setup your build to copy the results from you GWT compile into the Palm OS project.
Probably want to target your GWT builds at Safari.
I guess you would want to generate Java wrappers for the Mojo framework.

Please understand, I don't mean to offend you, but ... at first glance, this sounds like a really bad idea to me. GWT sacrifices some things to be able to do the cool stuff it does, but some of those things it sacrifices (eg. efficiency) seem very likely to be problems on WebOS. Not to mention that GWT is designed for "normal" (web browser) JS, and WebOS JS has some significant differences (in terms of the core types available and such).
Not saying it's impossible or anything, but just ... there's probably a reason you've had this question up for a week and haven't even gotten a single response.

Actually, there's no reason it shouldn't work, provided you add the requisite PalmSystem.stageReady(); code into your app's index.html file.
ie:
<script type="text/javascript">
if (window.PalmSystem) {
PalmSystem.stageReady();
}
</script>
If you've packaged the application properly, you can actually write an app in raw JS and HTML, without ever using the Mojo or enyo frameworks. You just wouldn't be able to access MojoDB, or other similar system resources. It follows that a GWT project should work as well, with the exact same tweak.

Related

React vs GWT for large scale web application

As Java developer, I always felt comfortable developing web applications using GWT, but every now and then I am trying to check if there is a better framework that I can use for developing a large scale web application.
I tried out React, and I liked it, but as a Java developer I am not feeling as comfortable developing using JS, and I am scared that when the project will become really big I will have troubles maintaining it, and I will get "spaghetti code".
Basically I wanted to know what are the benefits of React over GWT? and am I right to be scared of big scale projects developed in JS?
Now you could try VueGWT: Github project
The idea is to write your control in Java and your views with vueJS templates. We have started (only a few part for now) to use it for GenMyModel, a very big GWT application.
I'm a java born developper who now works in react-redux and miss the object language. If you try to develop a real good application you will have to add redux to react but its pattern is quite weird and not well documented.
If you feel more comfortable with Java than JS you should use GWT. It's true that ag-grid with infinite loading for example, may not exist in GWT for the moment but you have Google support. If you want the latest amazing widgets (the react virtualized select is another example) for your app and you really need them you will have to document yourself about these (with lacks of documentation) and use react.

Django-cms with non-django-based project

I have a project with a Java backend and Angular-based frontend and I'd like to utilize Django-cms. Is this possible to do with a non-Django project? I've been looking over the documentation, but I can't find an explicit 'yes' or 'no'. I can't wrap my head around how I'd integrate, what seem to me, two very different projects.
No, it's not possible.
django CMS is a standard Django application, that requires a standard kind of Django environment. It can't do anything except as part of a Django project.
There's nothing to stop you configuring your web server so that some requests (by URL) go to the Django project while the others are handled by the Java backend, but this isn't integration, it's simply some form of wholly independent co-existence.

Easiest web development method from Java perspective?

I have always been a front-end Java programmer, sometimes had to do C# on .NET but for the most part, Java is probably all I know about.
Just currently I have to do a small-scale website doing extremely simple thing and I really don't know where to start. My HTML skill is probably as good as I am with XML on Android, which is fair to say far less complicated than the HTML source code modern website have. I have almost no experience with PHP either, and no strong background on building or managing a database.
Is there some sort of technology that builds fully working website using mainly Java? It may have other languages I have to familiarize with but for the most part, I'd like to have little learning curve. For the backend I'm very sure I'm going to use cloud server services like Azure or Parse.
This is a very special project of me so I can't let anyone code it rather than me and myself only. Thank you and have a good day.
Use Servlets and JSPs for web development it's a start point and then java webservices as you already know XML.
I suggest you to build all your front-end using the following set of technologies: HTML5, AngularJS, JQuery, javascript, bootstrap. Your backend could exchange json with the front-end. The Bootstrap is the base for all your website and you could get a free template from the web itself, which would severely reduce your hard work at web designing. You would need just to adapt the links and calls, and the AngularJS would handle the controller and other stuffs ( have a chance to learn about ). Some JQuery components, or even AngularJS components would enhance your system usability and combined with javascript would bring most of hard work to front-end. I had the chance do start a system from zero and this is what I did, and now I have an AngularJS app working together with java by having java on the backend ( spring, hibernate, etc ) receiving and providing json data. At github you find some angularjs seed examples which you could use in your app and, again, save time and effort.
My apologies in advance, My answer is a bit broader in scope,
The Best Development Model for developing any website regardless of your language choice in Azure App Service is to take advantage two powerful features offered by Azure App Service, the Continuous Deployment feature and Deployment slots.
Start your website on a git repository and you may have node modules or bower packages, but on build your git will crunch it down to a working website with proper gulp files. Check out this blog to understand the process.
Once you have the git repo working for a simple website, your development process becomes much smoother. You can commit a change and Continuous deployment will automatically start a deployment for you to get your latest bits into your web app.. Check this blog for more details on Continuous Deployment.
You can use deployment slots to stage your changes and swap to maintain multiple versions of your web app on the cloud to easily build a production level application that has a last known good state. Check this blog for more details on Deployment slots.
The two features are the most used features while developing, deploying and servicing any project I work and I have found them very useful to understand them and use them in all their glory.
I am not a Java developer, but from the your question I can see you are looking to start on web development, the quick and powerful way (purely subjective here :D) is to use Asp.Net 5 with Angular 2 Beta. Here is an end to end tutorial on how to setup a development environment. Asp.Net 5 should be friendly toward Java developers as it is very light weight and simple to use and works great with vscode and visual studio community edition.
Let me know if the long answer helped, if you need a pure java environment that should be possible too :).

Java libraries to manage CSS explosion and or reuse?

Java Q:
I like CSS for simple web pages but loathe it when it comes to real world sites because you get css explosion and lots of repeating.
I am tempted to use Sass and or Compass but they are Ruby programs which will most likely require some interesting Maven + JRuby love to get working for Java Web app dev. This also makes it difficult if you are using Eclipse or any IDE that supports synchronization with a running web app.
Is there a better alternative for the hell that is CSS in the hell that is Java?
I went down the same road recently using LessCss, a similar technology. At first I tried to embed JRuby in my build lifecycle. But unfortunately Maven + JRuby is a monster, it's slow, huge and buggy (half the time it wouldn't even start because it would complain about the file path it was running on).
Fortunately, there is now a JavaScript port of LessCss, which I now embed via Mozilla Rhino. I describe the process in this blog post.
Yesterday though I took it to the next level, making a Maven LessCss Plugin to minimize POM configuration and code duplication. Unfortunately I can't share it because it's proprietary code for my current client, but the solution is simple:
Use GMaven to create the Plugin, create an abstract base mojo that calls the LessCss compiler and several concrete implementations that configure the base mojo for different resource sets:
e.g.
lesscss:compile compiles from all
<resources> to
${project.build.outputDirectory}
lesscss:test-compile compiles from
all <testResources> to
${project.build.testOutputDirectory}
lesscss:war-compile(compiles from
all src/main/webapp to
${project.build.directory}/${project.build.finalName}
, the exploded war directory)
So while I can't help you with SASS (apart from you asking the auth
or to port it to Groovy, Java or JavaScript), I think I've shown you a feasible alternative.
Of course you can also implement a Maven Plugin in java without Groovy (also embedding the JavaScript via Rhino), but I think it's easier in Groovy.
I ended up using wro4j.
Highly recommend the library as it will handle many things like less css and coffee CoffeeScript.
A good solution for using sass with eclipse is answered in this question.
The Sass command-line interface is very thorough. If you call out to sass --update in your build rules, you can just use the standard Sass executable (either via Ruby or JRuby) without having to integrate it directly into your build.

Develop desktop applications view with HTML, as a web application

I am used to develop web applications in Java (Struts, Spring, JSP...). But now I want to develop a desktop one. I never liked to design windows in Java (AWT, Swing, SWT): too much work for an ugly interface. So I think it could be a good idea if could take advantage of my web-app skills. One option is to modify the SWT Browser and make calls to a Java function instead of HTTP requests. A very good add-on would be use of JSP. Finally, I thought that probably there is some framework or tool for this.
Do you think that what I propose is a good idea?
There is available some framework for this?
I need this for light applications. So I think that embedding an Tomcat server and using it with HTTP requests is not a good idea.
Edit: One example application could be a folder comparer: you specify two folders and the app shows you which folders and files are different. In this case, I think opening an external browser is ugly. Bloated application (with its server, MVC, etc) wouldn't be the best choice.
If you have used the JavaScript library - ExtJs - then you can use it with Adobe AIR to build good looking desktop based web app.
Building app's in Adobe AIR is also simple and elegant with the flex builder ide.
If your option goes to embed a light server, check winstone is not fully J2EE compliant but should be enough for what you need.
About the browser, I am not a big fan of swt myself, it complicates a lot cross-platform deployment, so probably worth to keep an eye on jwebpane, not quite ready yet, but probably the solution you'll need.
I wouldn't discount embedding a web server. I've done this before with a web start application embedding Jetty.
The download was pretty fast, the server starts up and you can use BrowserLauncher to immediately drive your browser to the embedded server, and hence your application. Jetty is designed to be modular and have a small footprint, so you can probably cut it down to the bare necessities.
There are several options: You can use the plugin API of Firefox and develop your app in there. You can use HTML, JavaScript, the built-in database, all the browser features and access the OS level.
Or you could try PyQt (Python and Qt) which allows to write simple applications very quickly.
[EDIT] The main problem you're facing is security: For security reasons, JavaScript apps (running in a HTML page) can't access local OS resources. So unless your browser allows you to write plugins in JavaScript (which is only true for FF AFAIK), there is no way to write an application which uses HTML as the "view" without the help of something else.
Moreover, HTML is very limited when it comes to features for applications. HTML is designed to be a "static document view" not an "application". You can do things like GMail but if you compare GMail to any real mail app (Outlook, Thunderbird, Notes), you'll see quickly that real desktop apps offer a lot more features.

Categories

Resources