Software engineering is about managing complexity - implementing
business requirements in a systematic way, and working within
constraints. In wireless programming the constraints are tight and
many of the tools for implementation are immature or missing. For
server side programming the constraints are looser, and the tools
better, however the business requirements are usually more
complex. Building client-server software for wireless without a
technical strategy is not an option.
ThumbJive invests a good part of
its engineering resources to building and improving its tools,
libraries and support systems. Part of this effort is spent
investigating new products and libraries as they emerge, many of them
from the Open Source movement.
The rest of our investment effort is devoted to producing and
revising our own tools to fill the major technology gaps. The
aim is to factor out the common, repetitive and fragile elements
of software development into automated systems. In summary:
- TJ-Lib provides UI and
infrastructure features that greatly simplify highly customized
software production, and provides the same high-level APIs on top of
BREW and J2ME to allow easy cross-platform porting. TJ-Lib also
contains a server side infrastructure template which bootstraps new
networked mobile products.
- WIRMI is a code generation
system that automates the way that information is passed between
handsets and servers.
- The Handset Database is a
comprehensive information repository for mobile hardware with a web
services interface. It drives internal research, build systems
and runtime systems.
- TJ-WAP provides a WML/XHTML
rendering pipeline that customizes output for each target
handset. It also implements APIs for advanced WAP2 features such as
SMS Push.
- Our client and server side build system, TJ-Build, ensures the fast and
efficient build and deployment of products across multiple platforms
and handsets.
- ThumbJive's graphics preview
tools reduce the dependencies between graphic designers and
programmers during development so we can produce the same
applications cheaper and faster.