In the spirit of staying one step ahead of the innovation curve, we periodically take on the role of inventors and experiment with new technologies, methodologies and real-world solutions. Sometimes we do it to fix a problem, other times it’s a challenge, but more often than not, we just feel the need to break out and build something completely new. For these occasions we created Mobile Jazz Experiments – an open forum to let our own ideas and imaginations run wild, latch onto something tangible and then bring a new concept to life.
But why is a software development and design firm experimenting with new technologies outside of our domain? Well, we all know that theoretical knowledge is useless if you don’t know how to apply it in the real world. Therefore, we are constantly running several Mobile Jazz Experiments to explore and validate the latest trends and technological breakthroughs. Sometimes the outcome is disappointing, since many new technologies are overhyped and not quite ready for production. However, once in a while we discover a gem, a new technology or application that can be integrated directly into one of our clients’ products, thereby keeping our clients one step ahead of the market. Regardless of what the outcome is, it’s always a valuable learning experience and keeps us on the bleeding-edge of actionable innovation.
To give you a better idea of what we’re talking about, we’d like to show you a few recent Mobile Jazz Experiments:
The idea was to build a tool that could automatically operate the lamps in our office with an iPhone using iBeacon technology. The underlying idea was to design an energy-saving solution that would automatically turn our lamps on and off based on our physical location in the room. We quickly discovered distance measurements were unreliable as the readings fluctuated even while the iPhone and iBeacon were in static positions, and varied considerably based on the position (portrait vs landscape) of the device. Furthermore, we discovered that the power level of the battery charge was critical to the quality of the measurement. Ultimately, while iBeacon technology is able to sense the proximity of your position, it has not yet reached a level of sensitivity capable of implementing an extremely precise indoor location system in real-time.
When building a mobile app, developers are constantly having to manually validate and transform the received network data. This process can be very tedious and time consuming for developers to implement. Motis aims to save development time by automating and simplifying this process in a very elegant and scalable way.
Motis is a high-level Objective-C open source library that works best between network data responses and the application data model, by transforming the received data into the custom data model. Motis is very simple to use and its flexibility allows the developers to handle any kind of received data and any kind of application model. Furthermore, Motis integrates an automatic validation and transformation process, manipulating the received data and automatically converting it into the custom desired model type.
Although there are many other libraries that perform this JSON to model objects mapping (as well as and many other features), Motis is the only one that only focuses on performing the mapping in the simplest possible way. Developers who choose Motis from other libraries are searching for code scalability, a reduction in development time, object cohesion and easy-of-use.
Motis is currently being used in 30 different iOS projects and growing within the open source community, and it is a key library in almost all of our Mobile Jazz iOS projects.
You can explore Motis in more detail in Mobile Jazz’s GitHub repository.
As a professional design and development firm, we needed a way to systematically and effectively manage client logs (mobile & web) from a single place. We developed Remote Logger as a tool to help developers control what their production apps are printing on the console (behind the scenes). Although still in a very early stage, Remote Logger has been useful to fix difficult bugs remotely. For example, if a user tells the system “I cannot login on your app”, the developer can remotely check the logs of that user’s specific device.
Jazzy was inspired by the messaging app Firechat, which relies on Bluetooth and Wi-Fi to deliver messages to phones as far as 200 feet away in areas without a cell signal (ie: the annual Burning Man festival in the Nevada desert). Think of Jazzy as an offline, decentralized version of Twitter that works without servers. Everything is stored directly on the devices, thereby creating a worldwide network of data storage where each time two devices pass one another they transparently exchange information. Users can post new information that will be distributed every time they pass by another Jazzy user on the street, metro, bus, cinema or restaurant.
This is extremely useful when the internet connection (Wi-Fi or 3G) is not readily available, but also if the network is monitored by the government or any other major entity. Jazzy uses direct device-to-device communication and transmits all messages without needing any connectivity to the main internet network. Furthermore, this adds an anonymous security layer that protects the people who send messages.
Unfortunately, Bluetooth LE is not fast yet enough to transfer large amounts of data within the time it takes for you to pass someone walking on the street (about 10-20 seconds). Even if Bluetooth were fast enough, we still hit the limits of iOS’ capability to process data in the background. Apple imposes these limitations for power-saving purposes, but future versions of iOS should be capable of transmitting larger amounts of data. We’ve pushed pause on Jazzy for now, but are really excited to execute more trials as these technologies continue to evolve.
With the invention of the iPod and the proliferation of the smartphone, everyone at the party suddenly became the DJ, no matter how poor their taste in music. Typically, this leads to random song selections and an annoying skipping of tracks because someone always disagrees with the playlist. Introducing PlayThis:
PlayThis allows you to share a common playlist with your friends so that everyone at a party can add tracks and vote on what song they want to hear next, thereby democratizing the DJ. We worked with MongoDB on the first attempt, but weren’t pleased with the results. One of the queries to the database required summarizations and sorts, and that could only be programmed with the MapReduce technique. This ended up being a large workload for the server, even for such a small application. The development was further slowed as we had to program much of the functionality ourselves that is typically already present in relational databases. Our key learning was to use NoSQL databases only when a relational database would be inappropriate, not the other way around.
We also ran into some problems around DRM-protected songs on iOS that would cause the app to crash if not handled properly. While we were aware that the existing competition was unable to provide a reliable product, we ultimately halted development on the PlayThis application as the market economics did not justify any further investment of our time and resources.
The Impact of Mobile Jazz Experiments
In addition to providing entertainment and keeping us attuned to the latest technologies, these experiments have helped us make technical decisions and assess our customers’ mobile strategies. For example, based on the knowledge we obtained through Mobile Jazz Experiments, we have helped our customers create a sensitive indoor location application, designed a mobile peer-to-peer payment system without the need of an internet connection, and developed a platform for collecting data from thousands of connected automobiles.
We believe experiments like these keep our minds sharp as they push us outside of our comfort zone and force us to think creatively to discover new solutions to real problems. Furthermore, Mobile Jazz Experiments help us create a culture of innovation and encourage proactive learning and discovery within our team, all of which is passed onto our current and future clients. If you want to learn more about MJ Experiments or see what other projects we’re cooking up, send an email to firstname.lastname@example.org or subscribe to our newsletter.