Low-level Programming
In the mobile development industry, bringing the most breath taking solutions to the market often means getting your hands dirty with low-level programming. With Psiloc's over a decade experience in mobile platforms we have reached a thorough understanding of "under the hood" mobile device programming. The difficulty in low-level programming solutions, especially in the mobile device development is the lack of one size -fits-all solutions, with each problem requiring an alternative approach and some Monte Carlo development to achieve a successful result. Some of our most acknowledged solutions include:
irRemote has been developed against all odds, with the world's leading mobile device engineers claiming the former to be impossible due to the specific manufacturer implementation constraints. Some time was required to handle and trick the LDD (Logical Device Driver) and PDD (Physical Device Driver). Forcing the IR (Infra Red) module to send proprietary manufacturer specific custom infra red signals that would be properly decoded by IR controlled devices.
Language Localizations are yet another example of complementing Symbian OS devices with the functionality lacking in the original firmware. This time very low level programming of the Window Server plugins and Text Subsystem (TAGMA) was required to make sure all native applications have access to various language specific characters. This has been achieved not only by adding the appropriate characters originally missing from the codepages of Symbian devices, but also controlling reading order, word wrapping and characters transformation. Additionally some replacements in charsets had to be performed as well.
WLAN Agent is an application running in the background. Its main purpose is to seamlessly perform device authentication and AP (Access Point) handover without the need for user interaction, to provide constant connectivity in WLAN blanket covered areas. This proved to be a non-trivial task in the development stage and finally required to turn to low-level programming as a last resort. The key behind this solution was the creation of a custom, special AP (Access Point) resembling more a small script than just plain static settings. This special AP allowed triggering of new events, starting applications, running other access points on user predefined WLAN events.