S60 View Architecture with UI Design For Symbian OS


Overview

This example shows how to develop S60 UI applications similar to the native “Settings” application available on every S60 device. This application was chosen because it has different views and uses tabs and a main view to switch between them. The example is based on the S60 UI view architecture.

The article discusses the view architecture and other architectures that can be used to develop UI applications. The example was developed using the Carbide S60 UI design. This article also gives some tips on using this tool.

This snippet can be self-signed.

Screens.jpg

Preconditions

This example requires using Carbide UI Design.

Background

There are three UI architecture options for developing applications: the traditional Symbian OS architecture, the S60 view architecture, and the dialog-based architecture.

Dialog-based architecture:

An architecture where most parts of the views are dialogs. In these cases multi-page dialogs act as multiple views.

Advantages:

  • Content and layout can be changed in the resource file without rebuilding the C++ code.

Disadvantages:

Read a .txt file in Symbian


If you want to read a file and display that on alert screen the following code snippet will do that for you.

TBuf8<128> rcvr;
TBuf<128> tDsply;
RFs fSessionRd;
User::LeaveIfError(fSessionRd.Connect());
RFile fileRd;
TInt retRd=fileRd.Open(fSessionRd, _L("C:\\testFile.txt"), EFileRead);

if(!retRd){
fileRd.Read(rcvr);
tDsply.Copy(rcvr);
iEikonEnv->AlertWin(tDsply);
}

How does Google do a barrel roll?


By now you’ve probably seen Google “do a barrel roll”. If you haven’t, head over to google.com and enter “Do a barrel roll”. What? You’re using IE? Ok, well then no tricks for you. I suggest Chrome. For the rest of us, Google’s page does a nice little in-place spin. When you saw it you may have thought “How the heck did they pull that off?” or maybe you said “Since when does google use flash?” or possibly “I feel the need… …the need for speed!”. The answer to the first question is easy. I’ll show you how they did it: Continue reading

Top 10 Concepts That Every Software Engineer Should Know


successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects – they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are:

  1. Interfaces
  2. Conventions and Templates
  3. Layering
  4. Algorithmic Complexity
  5. Hashing
  6. Caching
  7. Concurrency
  8. Cloud Computing
  9. Security
  10. Relational Databases

10. Relational Databases

Relational Databases have recently been getting a bad name because they cannot scale well to support massive web services. Yet this was one of the most fundamental achievements in computing that has carried us for two decades and will remain for a long time. Relational databases are excellent for order management systems, corporate databases and P&L data.

At the core of the relational database is the concept of representing information in records. Each record is added to a table, which defines the type of information. The database offers a way to search the records using a query language, nowadays SQL. The database offers a way to correlate information from multiple tables.

The technique of data normalization is about correct ways of partitioning the data among tables to minimize data redundancy and maximize the speed of retrieval.

9. Security

With the rise of hacking and data sensitivity, the security is paramount. Security is a broad topic that includes authentication, authorization, and information transmission.

Authentication is about verifying user identity. A typical website prompts for a password. The authentication typically happens over SSL (secure socket layer), a way to transmit encrypted information over HTTP. Authorization is about permissions and is important in corporate systems, particularly those that define workflows. The recently developed OAuthprotocol helps web services to enable users to open access to their private information. This is how Flickr permits access to individual photos or data sets.

Another security area is network protection. This concerns operating systems, configuration and monitoring to thwart hackers. Not only network is vulnerable, any piece of software is. Firefox browser, marketed as the most secure, has to patch the code continuously. To write secure code for your system requires understanding specifics and potential problems. Continue reading