gear iconOur technology competence

Technology is a tool for us, not the main purpose or goal. Our technology competence is not limited to a single platform; our technology portfolio is more oriented to multi-platform applications and open source components.

New platforms have emerged especially in the mobile sector, such as Android, iPhone, different Mobile Linux variants and QT. Linux and Mac OS X are also slowly becoming more common on desktop.

Supporting new platforms separately may not be cost-effective; a better solution may be to create portable applications, or platform-agnostic applications. We aim to help our customers with portable applications, and we continuously develop our competence in this area.

coffeecup iconJava

Java is an established and common development environment especially for server software. Seamless support for multiple databases and production-grade solutions for distributed applications make it an excellent platform for heavy-weight enterprise solutions. Java is also used to some extent for mobile development, but the possibilities there are more limited. Strong points for Java are its portability and extensive 3rd party library selection.

CodeCraft Oy has extensive experience for building scalable, distributed applications on the Java platform. We know the problem domain starting from different ORM-solutions (like Hibernate) to different RIA-technologies (Vaadin, Google Web Toolkit). We also have experience in carrying out software integration projects using different technologies. We know automatic testing and analysis tools (such as JUnit, JDepend and PMD), build automation systems (such as Maven, Ant and Ivy), and profiling and load testing environments (such as JFluid and JMeter).

hammer iconC++

C++ is still very commonly used for developing software on mobile devices. Maximising performance and minimising power consumption are typical reasons to use C++, although the implementation work is usually slightly more expensive compared to higher level programming languages. Even though C++ is a compiled language and thus must be compiled for each platform separately, it is possible to design software that is almost platform agnostic on source-code level.

We have experience on design and implementation of portable C++ applications. We can offer design and implementation service for Symbian and Windows Mobile platforms.

tools iconPython

Python is dynamic scripting language. Python can be used to write short scripts, complex server software, and anything in between. Python usage has been slowly rising in recent years, and many large corporations, such as Google, use it to implement production-grade services. Python as a language is not new: the first version was released in 1991. The language has been actively developed since.

Python is primarily platform-independent development environment, and programs usually work without changes on multiple operating systems. Python has an extensive standard library and third party library support is good. The language is object-oriented and has many advanced features; yet the basics are easy to learn. There are multiple Python implementations. CPython is the reference implementation, and Jython and IronPython execute the code on top of Java and CLR runtimes, respectively.

Python has many web frameworks to choose from, and Google Apps hosting environment uses Python. Some of the more prominent web frameworks are Django, TurboGears and Pylons. We have focused mostly on the Django framework, but we can offer assistance for developing on other frameworks as well.

Nokia supports Python on Series 60 platforms. Python on the Series 60 is a very convenient platform for quick application prototypes and testing automation. Python is also a very good solution for quick integrations. An extensive standard library, high developer productivity and multiple runtime environments for multiple operating systems make the platform very compelling.

arrows_outwards iconServer software

Web server, mail server, application server... An IT infrastructure is based on server-side software. Qualities that are desired for server software are reliability, maintainability, and security.

Server software is nowadays most commonly implemented in high-level programming languages and runs on an application server. Java, PHP, Python, C# and Ruby are commonly used languages in developing web-based applications.

Whether you are talking about web services implemented using Python web frameworks, back-web integration, or Java-based enterprise software, our experience and expertise are available to you.

display iconUser interfaces

For some time now, information systems have been in transition toward web-based user interfaces. Traditional interfaces are nowadays used only in special, mobile and stand-alone applications. In our view, mobile applications will follow this trend in the near future.

AJAX web-based interfaces are closing the traditional functionality gap between desktop applications and web applications. We offer Java-based RIA user interface work using Google Web Toolkit and Vaadin, or traditional user interface design using Python-based web frameworks.

mobile iconMobile devices

By looking at the market shares, Symbian and Windows Mobile are currently the only commonly used advanced mobile operating systems. In the future the situation will change, when Apple iPhone, Google Android, QT Extended and other Linux-based solutions start to appear on the market in larger numbers.

Mobile device performance and usability have improved considerably in recent years. In addition to cellular networks, WLAN has become a commonly available data transfer option. Mobile device development environments are also better and more versatile than a couple of years ago.

We offer design and implementation services for Symbian and Windows Mobile. We are also building our competence for Android, iPhone and Mobile Linux, so please contact us if these platforms are of interest to you.