Clicky

Announcing Touch4j 2.2

We have been hard at work bringing the Touch4j API to the current GA versions of Sencha Touch (2.0.1.1) and Cordova (2.0), addressing several critical issues, and improving the API, in general. You can find the list of fixes in bugzilla.



One of the biggest changes in 2.2 is a big refactoring of the Cordova and Maps bindings in our API. Those upgrading from 2.1 will have the most impact, but only if you use the Cordova or Maps APIs. All classes have moved from (please see the Javadocs for more details): package com.emitrom.gwt4.touch.device; package com.emitrom.gwt4.touch.maps; To: package com.emitrom.platform.device; package com.emitrom.platform.maps; You may be intrigued by our motivation in doing this. The short answer is reusability; the short answer with a hint of what is to come, is that we are in the middle of integrating the platform packages into a jQueryMobile binding that we will soon make available.

We have also added a binding for a really cool widget that we are sure many of you will find extremely useful: ratings!



The observant reader will notice the Save button in the screenshot above. That screenshot doubles as an example of the GWT Editor Framework support that is now available in Touch4j. Details of this new data binding are out of the scope of this announcement, so we have devoted a separate article with details on that topic: http://emitrom.com/touch4j/2.2/databinding

Last but not least, 2.2 is introducing several new mechanisms for fighting software piracy. You will now need an Internet connection in order to use Touch4j during development; in other words, once your app is deployed, this restriction no longer applies. Please make sure to follow the installation instructions so you can setup Touch4j correctly. Those instructions can be found here: http://emitrom.com/touch4j/install

To the new customers that joined us with version 2.1, you are entitled to upgrade to 2.2 for free. Please reach out to support [at] emitrom [dot] com, and let us know you would like to upgrade so we can work with you on licensing details. To the new customers signing up with version 2.2: welcome!

Happy coding.

The Emitrom Team

Comments

6

Probably any Java developer feels a nostalgic happiness as those words resonate in their minds. The whole premiss of being able to write code one time and deploy it in multiple platforms is a feat that Java conquered many years ago--except in the mobile arena. With the advent of the iOS platform, Java was all of a sudden left out in the cold. Fast forward to the Android platform, and Java has regained a sure footing in a solid portion of the mobile market. But iOS is still there, sticking its tongue out at Java, for if you want to play with it, Objective-C is the avenue Apple wants you to go down.

Enter Appcelerator.

Via the powerful world of Javascript, us Java developers are taken one step closer to our coveted "write once, run anywhere" nirvana. We have hooks straight into the souls of iOS and Android hardware, and we can develop and debug in an Eclipse-based tool. Appcelerator has done a tremendous job with that, and we are closer to perfect, yes. But we yearn for more. For a Java developer, Javascript is just not the solution. A Java developer wants Java, plain, sweet and simple.

Enter the Google Web Toolkit.

Google had to arrive on its white horse and save the day, again. Google gave developers in the Java world a way to write Rich Internet Applications in the language they love, and compile it down to Javascript for browsers to consume. The only problem is that, from a mobile platform's perspective, those apps are not native. Sure, they look nice, but no matter how we slice it or dice it, we are still confined to a browser. Google solved only part of our mobile equation, and in doing so it provided a tool that helped us solve it completely.

Enter Emitrom: "If you build it, they will come."

We are Java developers, writing tools for Java developers. What we have done is taken the best of both worlds, married them together, and obtained a precious gem as a result. From the marriage of Appcelerator's Titanium Mobile API and the Google Web Tookit comes GWT4Titanium Mobile, or GWT4Ti for short. We tap into the closeness to the hardware and the cleanliness of the Titanium API, and expose it as a Java API. As such, we are now in the world we know and are comfortable with, letting Eclipse shower us with code-assist love. Once Java is written, the task at hand is to rein it in and convert it to back to Javascript. For this we use the GWT compiler, be it from the IDE or the command line. Out comes Javascript, which is referenced in a single line from Appcelerator's Titanium Studio, ready for deployment or debugging. Finally, perfect is here. We can write in Java for all the mobile platforms that Appcelerator supports, and the only Javascript we will have had to write is one line with an include statement.

GWT4Ti is the missing link that Java developers are looking for. "Write once, run anywhere" is here for mobile, thanks to Appcelerator, Google and Emitrom.

Email: 
david@emitrom.com

Hot in the oven and soon to come out is our latest addition GWT4TiDesktop! Currently in alpha phase, our latest product allows Java developers to completely free themselves and use the wide range of skills they already have to write beautiful looking desktop applications. The user interfaces can now be built using GWT, Sencha Ext-GWT or even be combined with our GWT4Flex package.

Accessing the file system, launching new threads and sending desktop notifications are just some of the things that you can now do in Java by using Emitrom's GWT4TiDesktop which very closely mimics the easy to understand and straight forward Titanium Desktop JS API.



Email: 
alfredo@emitrom.com

Here at Emitrom we have been nose-down to the keyboard, caffeine ridden, and working on a lot of very cool stuff. A couple of weeks ago, we introduced the GWT4Titanium Mobile framework, which allows developers to write Java for both iOS and Android platforms by taking advantage of the combination of GWT and Appcelerator's Titanium Mobile framework. Conceptually, this is great, awesome indeed, a feat that almost anybody would have probably dismissed with a resounding 'no' at the thought of Java on iOS. That chasm aside, being able to write code in any language is just half of the story; the other half is being able to debug that code until it shines with perfection. And that, dear reader, is precisely what we are planning on releasing in the not so distant future.

We said it before, and we'll say it again: we are Java developers, writing tools with Java developers in mind. The very thought of us being able to debug our Java code without having to launch the Titanium Studio debugger made us all warm and fuzzy on the inside. Not only that, but in order to debug your code, there is no need to run the GWT compiler to generate Titanium-friendly Javascript. You can read that last sentence again if you like, but you read it right: no GWT compilation in order to debug; every bit of code needed is loaded dynamically. That translates into being able to do code modifications on the fly right from the debugger, and seeing them reflected in the simulator right then and there. Sweet.

There is a short video we recorded that captures what has been mentioned so far. Keep it close to your heart as a tech preview of things to come. We're here for you, working to make things better and better. Enjoy the video, and let us know if you have any comments, questions or suggestions!

http://www.youtube.com/watch?v=HYa_ctox6iw

Email: 
alfredo@emitrom.com

Our goal at Emitrom is to provide the best tools possible, no matter what type of applications your are writing and no matter what platform you are targeting.

In the last 5 weeks we released Easy GWT 1.0, GWT4Flex 1.0, GWT4Touch 1.0, GWT4Titanium Mobile 1.0 and GWT4Titanium Desktop 1.0. The reactions and feedback have been fantastic so far and we'd love to thank our community for that. But this was just the beginning. We have been working hard across all our products and we would love to share with you what to expect from our toolkits going into the future. Please note that this is our best estimate of what will happen; at the very least, we have no doubt that our products will continue to evolve and mature as time goes on.

Easy GWT

EasyGWT continues to set the bar high for GWT/GXT projects that want the mundane out of the way, so the developer can focus on content. EasyGWT provides a boilerplate GWT/GXT project with a visual framework that is ready to go: header, footer and navigation side-bar, plus a wizard and custom dialog boxes. As a developer leveraging EasyGWT, all that is left is to customize the branding of the site and providing the content for the main panels.

We continue to make small improvements to Easy GWT so that it is truly easy to write an enterprise GWT/GXT project. Again, we allow the developer to focus on what matter, and not on the mundane aspects that every enterprise project shares.

GW4Titanium Mobile

With version 1.0.0 of this library we provided a 100% implementation of the Appcelerator's Titanium Mobile API, giving developers the ability to write native mobile applications for Android and iOS in Java. Next to supporting the Appcelerator API, we added support for the GWT Server stack (RPC, RequestBuilder, RequestFactory). With the server stack, developers are now able to easily integrate any java-based backend (Spring, Hibernate, EJB, etc..) right from the client code. If you have worked with the JavaScript API from Appcelerator, then you must know this is not possible as of version 1.7.3.

Now that the core is set, our goal is to boost the development experience. Next release of GWT4Ti Mobile will support GWT DevMode. With DevMode you will be able to code and debug your Titanium application right from the Java code without needing to compile the code to JavaScript. A preview of the GWT4Ti Debugger can be seen here. Next to providing first class debugging capabilities we will always make sure that our API matches the latest production release from Appcelerator

GWT4Titanium Desktop

Titanium Desktop gives you the ability to turn any web application into a desktop application with minimal effort. The latest release of our toolkit gave you access to Appcelerator's Titanium Desktop API. With the next release we are planning to add of the Java code also a deep integration with our other UI libraries.

GWT4Touch

GWT4Touch is the second mobile framework we support. This framework gives you the ability to write mobiles applications based on HTML5. The framework internally leverage the industry leading HTML5 mobile framework application: . So by using GWT4Touch you get the best of bost worlds: the best platform to develop enterprise applications (Java), and the best mobile UI Framework (Sencha Touch).

In GWT4Touch 1.0.0 we added support for Sencha Touch 1. But because we build on top of GWT you got access to a myriade of powerful features not available in Sencha Touch. Specifically, the ability of GWT to easily talk to any backend in general. Talking to Java backends in particular is just a few line of code away.

Going into the future we aim to make GWT4Touch even more powerful by leveraging the latest Sencha Touch API, and adding custom functionality. GWT4Touch 1.1 will add support for Sencha Touch 1.1.1. Next to supporting the core Sencha Touch API, we will also add support for some exiting user extensions like the TouchGridPanel. Support for the Google Maps API will also be part of release GWT4Touch 1.1. This new API will give you the ability to write awesome map-based applications without the need to study a new API.

With GWT4Touch 2 things are getting even more interesting. With version 2.0.0 of our library we are adding real GWT Widgets support. All the UI Components will then be real GWT components enabling support for features like activities, places and other goodies GWT provides. Of course, GWT4Touch2 will support Sencha Touch 2.

GWT4Touch will be rebranded as Touch4j upon reaching GA. Touch4j 2.0 will be the first release to use the new product name.

GWT4Flex

With GWT4Flex you don't need to be an ActionScript developer to write Flex applications. This library gives you access to the powerful Flash and Flex API using you Java skills. The latest version provided not only supports the Core Flex API but also many other features like PDF and Excel creation on the client. Because we leveraged Java and GWT, intergrating a Java-based backed has never been so easy. There is no more need for tools like Blaze DS. In the next release of GWT4Flex we'll add support for Flex 4.6 and Flash 11 3D capabilities. Support for Pure PDF will also be part of this release. Until now GWT4Flex only supported the MX Skin. The next release will add support for Spark and other skins.

GWT4Flash

You can think of GWT4Flash as GWT4Flex Light. We are trimming down the edges around GWT4Flex in case you only need Flash support. This is particularly useful to certain game developers, so we are listening to you and delivering what you need. GWT4Flash will also include Flash 11 3D capabilities and some others useful APIs, so we hope to see some cool 3D games in the future based on GWT4Flash.

GWT4Air

GWT4Air is a product we have not released yet. We are really excited to introduce this product soon because we believe it will change the way you see desktop application development. Like Titanium Desktop, Adobe AIR gives developers the ability to write desktop applications using web technologies. But the integration of AIR with the underlying OS is so deep that it gives you incredible reach. GWT4Air will bring some of the following capabilities:

  • read/write from the local filesystem
  • native process (communicate with other installed apps)
  • Excel + PDF
  • Support for EXT-GWT 4.5
  • Excel + PDF
  • Flex
  • And much more...

GWT4Ext

We won't say a lot about this product at the moment but we are sure you will be excited about it like we are :)

This is just an update on the public commitments we’ve made for our products. We’ve also got a few new things under wraps . We hope to update you on those just as soon as they’re ready for unveiling. Thanks for being part of the Emitrom community, and keep the feedback coming!

The Emitrom Team
Email: 
support@emitrom.com

Titanium4j Mobile 2.0: Taking Titanium Mobile Development to another level

A couple of months ago we introduced Titanium4j Mobile, a Google Web Toolkit (GWT) based library which aims to bring structured programming and enterprise-ready software engineering to the Appcelerator Titanium platform. At Emitrom we believe that the combination of the Titanium platform and the Java language and its powerful ecosystem will give developers awesome capabilities beyond what the native JavaScript API provides.

Ti4j Mobile 1.0 has been an incredible success! The reaction and the feedback have been fantastic and we would like to thank our fast growing community for all the support. In 1.0 we introduced a 100% coverage of the TiMobile API, giving you access to the powerful Titanium API, all from the confort of Java with its amazing tooling and available frameworks. We also added support for GWT goodies like RequestBuilder, RequestFactory, I18N and even GWT RPC.

With the goal to provide the best libraries possible, no matter what platform you are targeting (HTML5, native, Flash/Flex), we took a closer look at how we can make things even better. Starting with Touch4j 2 we are enhancing the APIs across all our products. Lets have a look at what is coming in Titanium4j Mobile 2.0.

Real Java Objects

In 1.0 Everything was based around GWT overlays types(JavaScriptObject). Because of that we needed factory methods all over the framework to create objects. Button b = UI.createButton(); b.setTitle("Hello Emitrom"); Because Button is a JavaScriptObject all its methods needed to be final, making the class unextensible and less flexible.
In 2.0 all the classes are first class Java Objects.The code above will now look like: Button b = new Button(); b.setTitle("Hello Emitrom"); So not only we now have a real Java constructor, but the Button class is fully extensible and customizable (no more final methods).

Interface based design

All of our components now implement common interfaces. Making designing and testing for different devices easy. One can basically have different views (for different platforms) implement the same interface and swap them at runtime based on the targeted platform.

Did we say real Software Engineering?

Back-End Integration

Most applications need to deal with data. Our data package will give you the ability to communicate with every type of backend using type-safe programming. But if your backend is a J2EE(Spring, EJB, Hibernate, OpenShift) backend you will love our server package. Ti4j Mobile ships with a custom layer that will help you leverage GWT RequestBuilder, RPC, RequestFactory, etc... all from you Ti Mobile clientside code! And that's not all. In 1.0 our server-side package was a paid add-on. We received a lot of requests asking us to move the server-side package into the core library. We heard you! In 2.0, the server-side package will now be available to everybody.

Debugging

In 1.0 working with Ti4j Mobile was a 2-step process. To run your application you first needed to compile it to the Titanium IDE and start it from there. In 2.0 we are introcuding Ti4j Mobile Debugger (beta). This application will help you run and debug your application without needing to compile it down to JavaScript. A preview can be seen here: http://www.youtube.com/watch?v=HYa_ctox6iw.

Ti4j Mobile Debugger will only support Android for the next release but iOs support will follow soon.

Tutorials and Demos

We will implement a full featured Kitchensink to show you how to use the API. Our home page will also be full of short tutorials demonstrating how to use the different APIs.

Beyond 2.0

We are really just getting started. We are making huge improvements in our entire products familly and will share more details in the coming weeks.

Happy coding

The Emitrom Team.
Email: 
support@emitrom.com

A couple of months ago we released Touch4j, a Java API for high quality HTML5 mobile applications built on top of the best web frameworks on the market: The Google Web Toolkit and Sencha Touch. After only 2 months, Touch4j has become the best Java Framework for HTML5-based mobile applications. Touch4j is powering critical applications by some of the biggest companies in the world. All this could not be possible without the support of our fast growing community. For that we say Thank YOU!

We are actively working to make our frameworks even better and we would like to share with you what's new in release 2.1.

1. Overall bug fixing and performance improvement, and support for Sencha Touch 2.0.1

Applications built on top of Touch4j 2.1 will behave faster on the device. We also fixed some annoying bugs, such as showBy not correctly working.

Now you will be able to do something like:
Panel p = new Panel(new FitLayout()); ToolBar toolBar = new ToolBar(); toolBar.add(new Button("Click Me", UI.CONFIRM, new TapHandler() { @Override public void onTap(Button button, EventObject event) { Panel myPanel = new Panel(); myPanel.setHtml("Hello World"); myPanel.setSize(300, 300); myPanel.setModal(true); myPanel.setHideOnMaskTap(true); myPanel.showBy(button); } })); p.add(toolBar); ViewPort.get().add(p);

2. Support for the latest version of Google Maps (3.9)

Panel p = new Panel(new FitLayout()); ToolBar toolBar = new ToolBar(); toolBar.setTitle("Google Maps"); p.add(toolBar); // create the Touch4j Map Widget GoogleMap googleMapWidget = new GoogleMap(); // get the underlying Google map final GMap googleMap = googleMapWidget.getMap(); // create a marker final Marker marker = new Marker(googleMap); marker.setTitle("Touch4j 2.1"); marker.addEventListener("click", new Function() { @Override public void execute() { InfoWindow infoWindow = new InfoWindow(); infoWindow.setContent("Hello, World"); infoWindow.open(googleMap, marker); } }); p.add(googleMapWidget); ViewPort.get().add(p);

3. Support for the latest stable version of Apache Cordova (PhoneGap): Version 1. 7

Panel p = new Panel(new FitLayout()); ToolBar toolBar = new ToolBar(); toolBar.add(new Button("Click Me", UI.CONFIRM, new TapHandler() { @Override public void onTap(Button button, EventObject event) { if (Device.isAvailable()) { Notification.get().alert("Touch4j 2.1", "You are running Cordova version :" + Device.get().getCordovaVersion()); } } })); p.add(toolBar); ViewPort.get().add(p);

To see how to deploy Touch4j to the device using Cordova (PhoneGap), refer to our tutorials located at:

Touch4j and Apache Cordova: Deploying to Android
Touch4j and Apache Cordova: Deploying to iOS

4. New powerful UI Components

We also added support for some new UI components like the AccordionContainer or the Calender Component



5. And much more...

We added a lot of new stuff in 2.1 that you will discover soon. We can't wait to see what you will build with Touch4j.

Happy coding.

The Emitrom team.
Email: 
david@emitrom.com