Hoccer XO 1.1.8 (7541) is now available!

The new version of Hoccer XO for iOS has just been released.

As iOS 7 has hit the Apple store, we would like to present our new and latest update for Hoccer XO. Besides some bug fixes, you will find several new design elements and a whole new range of settings:

Bugs:

What is fixed?

  • URL handling in messages
  • music players won’t stop when opening Hoccer XO
  • performance issues allowing even faster data transfer
  • improved Android communication with iOS
  • bug fixes for iPad usage
  • iOS 7 compatibility

Design:

What is new?

  • improved look & feel
  • new designs for media attachments
  • new download buttons
  • new icons in profile settings

Hoccer XO - Messenger Design Elements       BlogDesignElements2

Settings:

What is new?

  • seperate up-/download-limit for WWAN and WLAN
  • adaptable font size
  • German translation for Tutorial & FAQ
  • more quality settings for images

BlogSettings1        BlogSettings2

Update now and share hugs & kisses!

New Filecache service released

Today we brought a complete rewrite of one of our backend services online that is used to transfer large files between devices, the Filecache-Service. You should experiences faster and more reliable file transfer from now on. There is no need to update or change anything as  end-user.

Quicker Hoccer

We have fine-tuned and optimised our Hoccer backend  services. The latency has been much improved, the Hoccer App feels much more responsive.

Preview Thumbnails

The Hoccer Apps for Android and iOS will now display preview images of content which takes some time to download:



This greatly speeds up the time until you see what has been delivered and hence improves the overall perception. We also added this feature to the Hoccer Wall at http://wall.hoccer.com. Now it’s ultra fast! Try it your self!

Hoccer 2.0

We have finally released Hoccer 2.0 for Android, iOS and the Web! The look and feel has not changed much but the new Linccer backend improves usability enormously: Handshaking two devices is ultra fast and file up- and download will happen at the same time as can be seen by the progress bars:

Our improved Web App focuses on one-to-one sharing simply with the dragging gesture. If your browser is able to provide location information, then desktop to mobile transfer is a matter of a single click:

Javascript API for Linccer

Linccer Enters Public Beta


We are happy to announce public beta status of our cloud service Linccer. With it’s very simple RESTful interface, Linccer enables you to transfer informations between internet devices at hand. There is no special hardware or setup required. We provide SDK’s for iOS (iPhone/iPad/iPod Touch), Android, Java and Ruby. Other platforms and languages will follow.

The service is free of charge right now. So if you are interested in creating a product which uses Hoccer-like device linking, check out our Developer Page and sign up for an API Key.

Hoccer Technology for your own App: Linccer

Hoccer is nice when it comes to spontaneous content transfer between devices at hand. But there are so many other ideas where a location based device connector could provide a superior user experience. So we took the call and extracted the  Linccer API: A simple RESTful Web Service which connects devices through a set of matching meta informations derived from the environment. We are very happy to announce our ongoing private alpha which enables you to use this technique in your own App:

If you are interested in some of the details please contact us and check the slides we presented yesterday at Fraunhofer Web Symposium:

Measuring performance in the Android SDK

Michael A. Jackson once stated “The First Rule of Program Optimization: Don’t do it. The Second Rule of Program Optimization (for experts only!): Don’t do it yet.”

Of course we needed to measure execution times before jumping to action and spending valuable time on performance optimization. We found the android.util.TimingLogger helper class from the Android SDK very helpful so here comes a short description on how to use it:

Whithin the method or class in question create an TimingLogger object, execute some code and dump the statistics to the android log.

TimingLogger timings = new TimingLogger("TopicLogTag",
"preparePicturesFromList");
// ... your time consuming code
timings.dumpToLog();

Note that the output will only be dumped to the log if you set the VERBOSE log level for the given log tag (here named “TopicLogTag”):

 $ adb shell setprop log.tag.TopicLogTag VERBOSE

now start your Activity and make sure the code you want to measure is executed

 $ adb logcat -v time TopicLogTag:V *:E
...
D/TopicLogTag(14857): preparePicturesFromList: begin
D/TopicLogTag(14857): preparePicturesFromList: end, 2711 ms

For more informations about log levels and filtering the log output see the Andorid documentation about debugging, the Log reference and especialy the isLoggable() method.

If the informations you get from this measurements is to coarse you can split the timings into sub-tasks with the addSplit(“split label”) method:

TimingLogger timings = new TimingLogger("TopicLogTag", "preparePicturesFromList");
// ... time consuming code which creates picture objects
timings.addSplit("creating picture objects");
// ... time consuming code which generates thumbnails
timings.addSplit("generating thumbnails");
timings.dumpToLog();

The log output will then look like

 $ adb logcat -v time TopicLogTag:V *:E
D/TopicLogTag(14857): preparePicturesFromList: begin
D/TopicLogTag(14857): preparePicturesFromList:      1999 ms, creating
picture objects
D/TopicLogTag(14857): preparePicturesFromList:      712 ms, generating
thumbnails
D/TopicLogTag(14857): preparePicturesFromList: end, 2711 ms