Moritz Post
Scan barcodes faster with the new Tabris.js barcode scanner plugin
Scanning barcodes is a very common task on mobile phones. If you want to read data from the physical world, there is a good chance that a barcode will provide this data. With the newly created Tabris.js plugin tabris-plugin-barcode-scanner this process is now even more efficient. To provide the fastest and most accurate detection rate the plugin uses AV foundation on iOS and Google Mobile Vision API on Android.
Tabris.js 2.4 released with printing support and pinch-to-zoom on images
[UPDATE2] The 2.4.1 release has been updated with a 2.4.2 revision to remedy a build issue discovered on iOS.
Tabris.js 2.3 released
With Christmas around the corner, it is time for presents! The Tabris.js team joins the festivities with the new Tabris.js 2.3.0 release. This latest incarnation brings support for the iPhoneX, external loadable fonts, a themable navigation bar and more.
Tabris.js 2.0 – Top 10 Features: AlertDialog
With the Tabris.js 2 release only a few days away we continue our rundown of the Tabris.js 2 Top 10 features. Today we focus on the highly requested modal dialog. A modal dialog is used to show contextual information while blocking the rest of the UI. It is able to inform the user about important events or to request immediate feedback.
Tabris.js 2.0 - Top 10 Features: StatusBar and NavigationBar
The Tabris.j2 2.0 release is approaching with many great features in tow. While we put the final touches on the release we are continuing our top Tabris.js top 10 feature blog post series. Today we highlight the new APIs to control the StatusBar
and NavigationBar
.
Tabris.js 2.0 - Top 10 Features: NavigationView
Tabris.js 2.0 is less than a month away, and to help celebrate we are highlighting 10 of the most important features in this upcoming release. The top 10 rundown is in no particular order but we are sure that this first item will be of interest for every developer. So strap in, buckle up and lets get started with our first top 10 feature:
Tabris.js 2.0 RC2 is here
We are approaching the final release of Tabris.js 2.0 and today we are happy to announce Tabris.js 2.0 RC2. While we put the final touches on the Tabris.js features and apis, there have been several changes to the Tabris.js codebase since RC1. We also deliver some nifty new features, performance improvements and a whole slew of bugfixes.
Tabris Maps 2.0 released
With the recent advancements in maps features on Android and iOS we also took the time to overhaul the tabris-plugin-maps plugin. The new version 2.0.0 provides completely new APIs that are more in line with Tabris.js and offer a higher degree of control.
Creating a Floating Action Button in Tabris.js
Ever since its introduction at Google IO 2014, material design guidelines have gained more and more traction in the web and mobile landscape. Android has adopted the design style and more and more Google properties are moving in that direction.
Styling a Tabris.js TabFolder for Android Material Design
UPDATE: The post has been updated to use the new tabris.TabFolder
api
Creating Great Apps with a Consistent Icon Theme
Creating great mobile apps usually involves making use of icons. May it be as touch target, indicator or just as decorations, icons make an app come to life and provide personality. Therefore it is important to focus on your icon design by and make them as readable and meaningful as possible.
Pixel perfect layout in Tabris.js
Positioning widgets in a layout is a very common task in Tabris.js apps. When dealing with varying device densities, Tabris.js lets you declare all dimensions in device independent pixels. This ensures that a layout will look the same on high and low resolution displays.
Tabris.js 1.1: Custom themes on Android
UPDATE 1: With Tabris.js 1.1 released to production, we have removed the “sneak peak” indication from this article.
Customizing the Appearance of a Tabris.js Android app
Building a Tabris.js client for Android or iOS has gotten pretty easy thanks to the Tabris.js build service. For the Android client you don’t even need to provide a signing certificate to get started: Simply hit “Build Android App” and off you go. Since the build infrastructure is based on the Cordova platform, you can use the build’s config.xml
file to provide custom branding like icons or app name.
Tabris.js Examples - Animations
Creating an engaging mobile app is a challenging task. There are several best practice approaches to increase user delight and one of them is the use of animations. Animations can guide the user through the app, provide visual clues or simply give reassuring feedback. In this installment of the Tabris.js examples blog post series we will learn how to create widget animations with Tabris.js and how to react to animation events.
Tabris.js Examples - Parallax Scrolling
A modern mobile UI should be delightful to use with small details that make the app feel alive. One of such interaction models is parallax scrolling which moves UI planes independently from each other. In this blog post we will explore how such an effect can be implemented with Tabris.js.
Tabris.js Examples - Images
At some point every mobile app uses images. Maybe to indicate a button or to show you some cute kitten pictures. Tabris.js supports images in a variety of ways, be it as background images, page icons or inside an ImageView. In this blog post we want to focus on the ImageView
as used in the image example.
Tabris 1.4 Preview: Spinning ProgressBar on Android
The days until the upcoming Tabris 1.4 release are numbered and we have another nice addition to share with you.
Tabris 1.4 Preview: Client Dialogs
With the Tabris 1.4 release approaching fast, we’d like to preview another nice addition to Tabris: the client side dialog.
Tabris 1.4 Preview: Print Support
Many people can stick to consuming their content on digital screens, but there might be times when you want to have it on paper. Therefore, the upcoming Tabris 1.4 release will add native support for printing right from your mobile device.
Tabris on Android Wear
Google just announced their push into the wearable computing market with the introduction of Android Wear. Currently the main focus of Wear is to deliver rich notifications from your phone to your wrist.
User Experience Enhancements in Tabris 1.3 for Android
The upcoming Tabris 1.3 release will include visual improvements to the Tabris Android client. Most notable is an updated animation for the TabFolder appearance and an improved user experience when dealing with pages in the Tabris UI.
Dart as a programming language
Lately i have been experimenting with the dart language a lot. Dart claims to be “a new platform for scalable web app engineering” and while that is true, it is also an interesting programming language.
Crossing boundaries with the new Android transitions
A few weeks ago I posted a blog post about how to create animations using the ViewOverlay introduced in Android 4.3. Fast forward to today and we have a new Android version: Android 4.4 (KitKat). This latest edition brings a set of new, animation-centered APIs called “transitions”. +Chet Haase created a great dev byte series video explaining what transitions are and how they can be used. In addition +Mark Allison picked up on the framework and created a great multi-part blog series on the topic.
New in Tabris 1.2: Set your modal shell overlay color
Tabris 1.2 will be released on December 6th with a huge set of new features. You can check out the roadmap to get the big picture. In today’s post we’ll focus on a feature we introduced as a result of a user request: the ability to change the overlay color of a modal shell.
Crossing boundaries with the new Android ViewOverlay
Animations are an integral part of mobile applications. They make an app more enjoyable, emphasize actions and, in general enrich the user experience. While there are many ways to perform animations on Android, certain advanced effects are not always easy to achieve.
Eclipse Command Line Options
Eclipse offers a huge number of command line options to configure many aspects. Some of the more popular ones are:
Efficiently dealing with SWT GridLayout and GridData
Creating UIs with SWT or RAP is a common task in many projects. While we have a comprehensive set of widgets at our disposal, we only have a handful of layouts to choose from. One of the more popular layouts is the GridLayout. Together with its child the GridData it allows you to cover most of your layout needs. Sometimes nesting several composites is required but usually you will achieve your goal.
Follow EclipseSource
You find the posts on our website interesting? You are hammering F5 to not miss a new blog post? Then don’t forget to follow us on the various social networks:
Post Google I/O: The State of Android Development [UPDATED]
A few weeks ago i posted an analysis of the current state of the gradle based Android build system. Today we are living in a post Google I/O 2013 world and several things have changed. Time for an update. The most prominent change is the new Android development environment: Android Studio.
State of the Android Gradle Build System
Building an Android project can be challenging at times. The Android SDK ships with a set of helpful ant scripts, but has its shortcomings. It mainly lacks a well-populated dependency infrastructure similar to what maven offers (ivy doesn’t count). Hence, the natural evolution of build process spawned the maven android plugin. The plugin allows you to infuse maven artifacts and perform the necessary build steps to package your app. Although maven has a great artifact repository, it has a pretty rigid set of configuration settings. The pom files tend to get verbose and interfering with the designated build process lacks flexibility.
Tabris 1.0 is coming!
Here is a quick reminder for all Tabris enthusiasts. The 1.0 release is on track and will be available real soon.
Evolving Android design
With the release of Android 4.0 (Ice Cream Sandwich) the new Android design language “holo” has been introduced. The following list highlights a few resources that either showcase great holo styled apps or focus on the holo design process.
Integrating Gson into a JAX-RS based application
Creating modern applications often involves consuming REST based web services. One of the more popular ways to publish a REST service in Java is the JAX-RS (Jersey) specification. It allows you to very easily enhance your REST resources with Java annotations.
Mythbuster: Android annotation performance unravelled
Over the last few weeks I have been involved in a lot of discussions whether it is justified to use Android frameworks that rely on a lot of annotation processing. There have been several bug reports on annotation performance on the Android issue tracker and numerous posts on Google+ surrounding this topic. The most common candidates to suffer from annotation performance issues are frameworks like RoboGuice or the Otto event bus. Both frameworks are fully annotation driven.
Advanced Android testing with RoboGuice and Robolectric
I’ve been using the Android framework RoboGuice 2.0 a lot lately. RoboGuice is an extension for the Google Guice dependency injection framework that adds several Android specific mechanisms to easily inject views, services or custom objects. Coming from an OSGi background, it is interesting to see how much deeper Guice is able to be interwoven into the Java code when your entire project is composed of injected classes. OSGi injects components on a much more abstract service level whereas Guice encourages injecting every class from a widget to a util class.
Design for your platform
Application design and user experience has become one of the most important topics in the mobile/tablet/startup world. While some people claim the designer is the rockstar of the team i would still not sign the statement: “Design first”. Rather i would say “User experience first”. The design of the your application certainly is the very first thing people will face, but when the user experience puts them off, the design won’t save your app.
Loading, caching and displaying images in Android (Part 1)
Displaying an image in a mobile application is one of the most common tasks for app developers. Nearly every application displays some kind of graphics. Surprisingly, it can be quite challenging to efficiently load and display an image on Android.
How to apply a custom theme to an Android application
Since the release of Android 4.0, we have seen an increase in applications that follow the new Android design guidelines. The guide describes the Android holo theme that provides a cohesive user experience that is both modern and unique. At this years Google IO talk “Android Design for Success”, we got a handy outline of how important these guidelines can be:
Tabris 0.6.1 – New and Noteworthy
It’s time for a comprehensive update after the well received Tabris 0.6 release. This time we not only provide the usual set of bugfixes and performance improvements after a .0 release, we’ve also added support for the SWT List
and ProgressBar
widgets.
Tabris demo app launched in the Google Play Store
Hot on the heels of the Tabris launch we have released a brand new Tabris demo app in the Google Play Store. The app allows you to explore all the demos we have created so far and of course you can find the demo source code on github. Fell free to explore the app and don’t forget to provide feedback in the apps comment section or directly on the our website.
Serious unit testing on Android
It is not a secret that we are big fans of Mockito at EclipseSource. Our Java mocking framework of choice has helped us in many projects to stay on the test driven development path. Luckily we are also able to apply these same principles when developing Java code on Android.
RAP mobile 0.5.8 - New and Noteworthy
We are happy to announce another preview release of RAP mobile. Version 0.5.8 adds support for even more widgets on the Android side while improving stability and performance on iOS and Android.
RAP mobile 0.5.7 - New and Noteworthy
Once again we are releasing a new version of RAP mobile. This latest release 0.5.7 brings with it a very cool new feature that we call the “Client Canvas”. This extension of the classic SWT Canvas allows you to draw freehand on your screen with your stylus or even your finger.
Tabris 0.5.4 - New and Noteworthy
In this post we’d like to update you on the latest news in the Tabris (previously RAP mobile) developer preview. We’ve just released Version 0.5.4, marking the beginning of a simultaneous release schedule across all our mobile clients.
RAP Mobile for Android 0.5.3 - New and Noteworthy
The latest Android client for RAP mobile (v0.5.3) is now available. We are always looking for feedback so we urge you to take part in our developer preview program to experience the client firsthand.
Eclipse on Ubuntu 11.04 (Natty)
Already running the latest and greatest Ubuntu with the new unity desktop? It also introduced a new menu bar and java apps seam to have probs with that. When your eclipse doesn’t want to make use of it check out this post: https://blog.matto1990.com/2011/04/using-eclipse-under-ubuntu-11-04-natty/
Agile Thoughts (Part I)
In the last few weeks i was confronted with several projects and developers, who were trying to incorporate the scrum process into their project environment. The following remarks will pinpoint some of the problems and challenges several of the projects had and what a possible solution might look like (your mileage may vary).
Tip: Validation with a MultiValidator
In the last blog entry regarding databinding, we learned how to create a custom observable for a DateTime widget. Starting with Eclipse 3.5 there is a new approach to creating custom observables as described by Matthew Hall in the comments to that post. Which ever way you choose, we will now use the observable to showcase another cool databinding feature: Crossvalidation. Crossvalidation was introduced with Eclipse 3.4 and describes the process of validating one IObservable based on the value or state of another IObservable. A classic example is the input of a date ranges where the start of the period can not be after the end of the period.
Databinding: A Custom Observable for a Widget
The introduction of the databinding framework in Eclipse 3.3 is with no doubt one of the most useful tools in the hands of the form developer. The ability to transform and validate user input in such a flexible and reusable way is a great enhancement. But where there is light, there is shadow. Sometimes there is just no IObservable available for your target or model object. This blog entry will demonstrate how easy it can be to create a custom IObservable for a DateTime widget.
Toggling a Command contribution
Every once in a while something just doesn’t happen to be as intiutive as you would have liked it to be. Lately I was trying to contribute a simple command based toggle button to the workbench. Although it is simple to actually provide the menu contribution and to put the button in visual “toggle” mode, it was so straight forward to actually obtain the state of the button in the UI.
Performance Testing RAP on the Cloud
A recurring question in the RAP community is, “How good is the performance of my RAP application”? Now you can measure it for yourself on the Amazon cloud. In this tutorial I will show you how to set up your own load testing for a RAP application deployed on Amazon’s rent-by-the-hour servers, also know as the Amazon Elastic Compute Cloud (EC2) infrastructure. We will setup a server inside EC2 with a ready-to-run RAP application and use JMeter to simulate concurrent users.