Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 22 Symbian Rob Pooley

Slides:



Advertisements
Similar presentations
CE881: Mobile and Social Application Programming Simon M. Lucas Menus and Dialogs.
Advertisements

Chapter 16 Graphical User Interfaces John Keyser’s Modifications of Slides by Bjarne Stroustrup
Using Eclipse. Getting Started There are three ways to create a Java project: 1:Select File > New > Project, 2 Select the arrow of the button in the upper.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Advanced Object-Oriented Programming Features
4. Concept of Applications What constitutes an application? Design process Example Packaging applications Symbian OS application development Summary.
Component and Deployment Diagrams
Mobile Application Development
1 Computing for Todays Lecture 22 Yumei Huo Fall 2006.
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
Customizing Outlook. Forms Window in which you enter and view information in Outlook Outlook Form Designer The environment in which you create and customize.
Object-Oriented Analysis and Design
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Building a Deployment The following screens demonstrate how to: 1. Create a new OpenHRE™ tailor-made deployment using a remote (sample) deployment Standard.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 19 Microsoft’s Approach 1 –.NET Mobile Framework part 2 Rob.
Introducing JavaBeans Lesson 2A / Slide 1 of 30 JDBC and JavaBeans Pre-assessment Questions 1.Which of the given symbols is used as a placeholder for PreparedStatement.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 18 Microsoft’s Approach 1 –.NET Mobile Framework Rob Pooley.
Access Tutorial 10 Automating Tasks with Macros
Android Application Development 2013 PClassic Chris Murphy 1.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
OOP Languages: Java vs C++
Android Introduction Platform Overview.
Mobile Programming Lecture 1 Getting Started. Today's Agenda About the Eclipse IDE Hello, World! Project Android Project Structure Intro to Activities,
Java Beans.
Database-Driven Web Sites, Second Edition1 Chapter 8 Processing ASP.NET Web Forms and Working With Server Controls.
Chapter 5 Java Script And Forms JavaScript, Third Edition.
Microsoft Visual Basic 2012 Using Procedures and Exception Handling CHAPTER SEVEN.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Getting Started The structure of a simple wxWidgets program, Look at where and how a wxWidgets application starts and ends, how to show the main window,
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
© 2005 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures for Java William H. Ford William R. Topp Appendix E The EZJava.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 12 lcdui Rob Pooley
Programming Languages and Paradigms Object-Oriented Programming (Part II)
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
XP New Perspectives on Windows XP Tutorial 1 Exploring the Basics.
Martin Schmidt / The Silent Revolution Mobile Java.
© 2010 Delmar, Cengage Learning Chapter 8 Collecting Data with Forms.
Lecture 3Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 3 Palm conventions Rob Pooley
Chapter One An Introduction to Visual Basic 2010 Programming with Microsoft Visual Basic th Edition.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 17 Microsoft’s Approach 1 –.NET Mobile Framework Rob Pooley.
Programming mobile devices Part II Programming Symbian devices with Symbian C++ Environment and building applications.
INFO 355Week #71 Systems Analysis II User and system interface design INFO 355 Glenn Booker.
Lection №5 Modern integrated development environment.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
C# GUI - Basics. Objectives.NET supports two types: WinForms, traditional, desktop GUI apps. WebForms – newer, for Web apps. Visual Studio.NET supports.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Programming of Handheld and Mobile Devices Lecture 2 What is a MID? Rob Pooley
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
COMPUTER SOFTWARE FORM 1. Learning Area Introduction to computer software Operating System (OS) Application Software Word Processing Software Presentation.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
Folio3 IPhone Training Session 2 Testing App on device Presenter: Imam Raza.
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
XP Creating Web Pages with Microsoft Office
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
6. WinForms 2003 C# GUI - Basics.
Presentation transcript:

Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 22 Symbian Rob Pooley

Programming Handheld and Mobile devices 2 Symbian OS™ - summary Targeted at ARM-based handsets. Multitasking-Multithreading allows for background applications and multithreaded applications. Shared libraries – DLLs User Interface –Provides support for check boxes, radio buttons, lists, scrollbars, and other components. –Symbian OS UIQ supports one –application presented to the user at a time – other tasks can run in the background. Infrared, Serial, HTTP, HTTPS, TCP, UDP, Bluetooth, socket API, SSL, SMS, Telephony, dual WAP, IPv4/IPv6 stack, etc. Connectivity Software Development Kit to write data synchronization converters and plug-ins. –Supports SyncML. Native programming in C++ language. Java programming using PersonalJava and MIDP.

Programming Handheld and Mobile devices 3 History Symbian itself grew out of Psion Software (hence many of the similarities between Psion's EPOC operating system and modern Symbian software platforms). Recognising that the future was a connected one, with messaging, and web central, mobile phone giants Ericsson and Nokia (plus a few others) were involved in setting up the new consortium with the Psion staff. Today (2005), Psion itself has more or less ceased to exist, leaving Nokia as the dominant partner in Symbian, at least in terms of investment and new products.

Programming Handheld and Mobile devices 4 Structure of Symbian OS applications Symbian OS applications are –object-oriented –based on the Model-View-Controller (MVC) model that allows for a clean separation of the user interface from the application logic. A Symbian OS application consists of C++ header and source files that define and implement the classes that together make up the application, These classes are –the application class, –the document (and a data model) class, – a user interface class. In addition UIQ applications have one or more view classes;

Programming Handheld and Mobile devices 5 Symbian application structure (from Model View Controller

Programming Handheld and Mobile devices 6 The Symbian OS is an event-based operating system Symbian OS applications communicate with the system by implementing event handlers, –but using an object-oriented approach. the application consists of –an application class that creates the document data model and the user interface, communicates with the system via the application and control frameworks (not shown in figure) through event-handlers implemented in the user interface class.

Programming Handheld and Mobile devices 7 Symbian OS UIQ Application Screen Layout A typical UIQ application has menu bar, folders, dialogs, a button bar displaying one or more controls, and/or one or more tabs that enable users to switch between pages – similar to a Palm OS application. For a complete list of all the UI objects supported by UIQ refer to the online documentation that comes with Symbian OS UIQ SDK.

Programming Handheld and Mobile devices 8 More on UIQ The user interface in the Palm OS platform is centered on Forms, in UIQ it is centered on Views –both are similar in concept. A View is a control that occupies the screen area between the Menu bar and the Status bar, shown as “Application Space”. A View is owned and constructed by the application’s User Interface object, and is responsible for displaying/drawing data to the screen. It allows the user to interact with the application. Like Forms in Palm OS, Views contain user interface components such as text fields, checkboxes, and scrollbars. All are defined via the resource file or at runtime by using the UIQ API. To handle user interface events, the UIQ User Interface class implements an event command handler, HandleCommandL(), that is analogous to the event handlers in the Palm OS platform.

Programming Handheld and Mobile devices 9 Views Views are a very important concept on Symbian OS UIQ applications. All UIQ user interfaces have a base or list view, and a details view. The base or list view displays a summary list of items, and the details view, as the name implies, displays the details for a particular item that was selected from the list view;

Programming Handheld and Mobile devices 10 List and Detail Views The idea behind the List/Detail views is simplicity. It provides a consistent look-and-feel across applications. Applications first display a base list view, using text or graphics, providing a summary of items. In the example, the base list view displays a text summary of shapes. In our example the user can choose either a text or a graphics list view of shapes. Selecting an item from the list view brings the details view for that particular entry, ( a blue circle). The application can provide many different details views using tabs. Currently there are no GUI builder tools for UIQ.

Programming Handheld and Mobile devices 11 The Application’s Entry Point #include "HelloWorld.h" // The entry point for the application code. It creates // an instance of a CApaApplication. // EXPORT_C CApaApplication* NewApplication() { return new CExampleApplication; } // This function is required by all EPOC32 DLLs. In this // example, it does nothing. // GLDEF_C TInt E32Dll(TDllReason) { return KErrNone; }

Programming Handheld and Mobile devices 12 The Application Class The Application Class is responsible for bootstrapping the application itself. It is responsible for returning the application unique id and creating the document object. It must derive from the UIQ Application base class, CQikApplication. To return the application unique id, the Application Class must overload method CQikApplication::AppDllUid(). To create the document object, it must overload method CQikApplication::CreateDocumentL(), passing the application class as an argument.

Programming Handheld and Mobile devices 13 Simple example Application’s.h file CExampleApplication : public CQikApplication { private: //CreateDocumentL calls for NewL in //CExampleDocument CApaDocument* CreateDocumentL(); //Returns the Uid of the application. TUid AppDllUid() const; };

Programming Handheld and Mobile devices 14 Simple example Application’s.cpp file // Gets the application UID TUid CExampleApplication::AppDllUid() const { return KUidViewApp; // The same UID as is in the mmp file. } // Create the document object. CApaDocument* CExampleApplication::CreateDocumentL() { return CExampleDocument::NewL(*this); // pass this app. object }

Programming Handheld and Mobile devices 15 A Basic Document Class.h File: CExampleDocument : public CQikDocument { public: // Constructor. CExampleDocument(CEikApplication& aApp); static CExampleDocument* NewL(CEikApplication& aApp); // Gets the Model. TQExampleAppModel& Model(); private: // Implements CEikDocument. CEikAppUi* CreateAppUiL(); // Second phase constructor. void ConstructL(); private: } ;

Programming Handheld and Mobile devices 16 Document class The Document Class must provide a constructor that takes the application object as an argument and that calls the base CQikDocument constructor with the application object as an argument. It must also implement the NewL()method, which completes the construction of the data model. It must also implement the method CEikDocument::CreateAppUiL(), which creates the application’s user interface. To automatically save and restore information, implement CQikDocument SaveL and RestoreL methods. Note that applications should save their data as they go into background, and should restore their state when launched.

Programming Handheld and Mobile devices 17 A Basic User Interface Class.h File: CExampleAppUi : public CQikAppUi { public: // Construction and destruction. CExampleAppUi(); void ConstructL(); // Destructor. ~CExampleAppUi(); private: // From CEikAppUi. // Handle commands. void HandleCommandL(TInt aCommand); private: // A View. CExampleAppView* iAppView; };

Programming Handheld and Mobile devices 18 The View Class This class implements the user interface that the user actually sees and interacts with. It must derive from the Control framework base class, CCoeControl and from the view architecture class, MCoeView.

Programming Handheld and Mobile devices 19 A Basic View Class.h File: class CExampleView : public CCoeControl { public: // Construction, destruction. CExampleAppView(); ~CExampleAppView(); static CExampleAppView* NewL(const TRect& aRect); void ConstructL(const TRect& aRect); private: // Inherited from CCoeControl void Draw(const TRect& /*aRect*/) const; private: // Data internal to View. HBufC* iExampleText; };

Programming Handheld and Mobile devices 20 Resource Files As in the Palm OS platform, UIQ user interface objects are defined in the application’s resource file. An application’s resource file typically has the same name as the application, with the extension.rss. The framework reads in the resource file with this name when the application is started. In addition, an.hrh header file links the resource file with the C++ source. Using resource files is always more efficient than dynamically creating UI objects. Even for dynamically modified UI objects, you should create the object itself via the resource file, and then modify it as appropriate at runtime using the UI API. Currently there is no WYSIWYG GUI builder for UIQ, so you have to manually build your resource files.

Programming Handheld and Mobile devices 21 Building resource files To create a resource file: Create a text file with the name of your application using the extension.rss. Enter the header information, including the NAME statement and the files to #include. Enter the application GUI configuration information into an EIK_APP_INFO resource. Optionally enter a RSS_SIGNATURE to specify version information, and enter a TBUF used to set the name of an application's default file. Enter the application GUI configuration information into an EIK_APP_INFO resource. Define the resources for the menu bar. For more than one view, define resources for each view. Define dialogs or localizable strings as appropriate.