Home > Products > SophiaFramework UNIVERSE > Architecture

SophiaFramework UNIVERSE Architecture

SophiaFramework UNIVERSE Architecture

The architecture of SophiaFramework UNIVERSE consists of three layers:

  • GUI : GUI framework and UI components that automate event-handling and drawing for stunning Look and Feel
  • Utilities : C++ classes such as SOAP / XML, POP3 / SMTP, String, Collection, Network, Stream, ...
  • C++ Wrappers : BREW interfaces wrapped in C++

The SophiaFramework UNIVERSE style of development is to use the GUI framework, and to combine APIs of the C++ Utilities and Wrapper classes as the basis for BREW applications.

*SophiaFramework UNIVERSE can also be extended according to the needs of the developer.

GUI ( GUI Framework and UI Components )

The GUI framework automates jump processing of events and redrawing of windows.

All that is left to do is register events and their corresponding event handlers to the framework.

Useful UI components such as windows, dialog boxes, buttons, radio buttons, tabs and combo boxes are also provided.

UI specifications can be readily modified using the GUI libraries, and these original specifications can be shared amongst multiple applications.


Mobile SOAP / XML

XML-related classes such as DOM / SAX parsers supporting DTD / XMLSchema, and WSDL / SOAP communication classes allow the rapid development of Mobile SOAP / XML applications.


Network classes help handle high level protocols such as POP3 / SMTP, HTTP / HTTPS, TCP / IP and SSL. A class for representing IP addresses and a DNS resolver are also included.


File classes provide high level functions such as create / delete list of directories, or create / delete and read / write of files, in addition to the management of file paths.


Stream classes automate complicated context management for data transmission / reception, and make the reading / writing of files and network communications simple.


String classes can mutually convert char and AECHAR strings, and automate the management of runtime memory. An instance of a String class can be directly passed to C++ wrappers.

There are string classes for recognizing ASCII, UTF-8, UTF-16 and for encodings like Shift_JIS.


Buffer classes encapsulates the allocation of dynamic memory by the function MALLOC(), and the deallocation by the function FREE().

Using these classes, even if the developer forgets to free memory, memory leaks won't occur.

Included are a heap class, a class that supports block allocation, a normal buffer class and a ring buffer class.

Shape and Color

Shape and Color classes make the movement of figures, arrangement and drawing processes intuitive.

Instances of shape and color classes can be passed to C++ wrappers directly.


Collection classes are classes optimized for BREW and the RVCTB compiler, including array list, interactive link list, hash map, and stack for managing mutable data.

They automate allocation and deallocation of memory needed when managing mutable data.


Mathematical classes enable the use of floating-point operations, which are the standard math functions included in the RVCTB compiler. It facilitates the migration of software from computers or PDAs to BREW-enabled handsets.

Classes that support UNIX drand48 and Mersenne Twister algorithm are also included.


General classes include classes for handling dates, converting endians, managing configuration files, managing a list of string pairs and drawing objects.

C++ Wrappers ( BREW Interface Wrappers and Smart Pointers )

All BREW interfaces are wrapped in C++ so that C++ instances for String, Shape, Color or other utility classes can be passed directly to BREW interfaces.

Using Wrapper Libraries with Smart Pointer classes automates memory allocation and deallocation, eliminating the need to manage complicated interface controls while avoiding memory leaks.


Reserved words and predefined macros make the source code readable and concise.