Application development for mobile phones
Upcoming SlideShare
Loading in...5
×
 

Application development for mobile phones

on

  • 4,167 views

Seminar report on Mobile Application development was provided by Vineeth M. M of CSE dept from SOE, CUSAT

Seminar report on Mobile Application development was provided by Vineeth M. M of CSE dept from SOE, CUSAT

Statistics

Views

Total Views
4,167
Views on SlideShare
3,259
Embed Views
908

Actions

Likes
1
Downloads
152
Comments
0

5 Embeds 908

http://www.aliencoders.com 878
http://aliencoders.com 23
http://www.techgig.com 5
http://translate.googleusercontent.com 1
https://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Application development for mobile phones Application development for mobile phones Document Transcript

  • APPLICATION DEVELOPMENT FOR MOBILE PHONES & ITS TRENDS SEMINAR REPORT Submitted by VINEETH M.M In the partial fulfillment for the award of the degree of BACHELOR OF TECHNOLOLGY in COMPUTER SCIENCE & ENGINEERING SCHOOL OF ENGINEERING COCHIN UNIVERSITY OF SCIENCE AND TECHNOLOGY KOCHI-682022
  • Division of Computer Engineering School of Engineering Cochin University of Science & Technology Kochi-682022 ______________________________________________________ CERTIFICATE Certified that this is a bonafied record of the seminar work titled Application Development For Mobile Phones & Its Trends Done by Vineeth M.M of VII semester Computer Science & Engineering in the year 2010 in partialfulfillment of the requirements for the award of Degree of Bachelor of Technologyin Computer Science & Engineering of Cochin University of Science & Technology Dr.David Peter S Mr.Sudheep Elayidom Head of the Division Seminar Guide
  • ACKNOWLEDMENT I am greatly indebted to Dr .David Peter , head of the Departement, Division ofComputer Science ,CUSAT for permitting me to undertake this work. I express my heartfelt gratitude to my respected Seminar Guide Mr SudheepElayidom, for his kind and inspiring advise which helped me to understand the subjectand its semantic significance. I extend my gratitude to my colleagues who helped and co-ordinated with me in conducting the seminar by their active participation. VINEETH M.M
  • ABSTRACTApplication Development for mobile phones & its trends Mobile application development is the process by whichapplications are developed for hand held devices such as personal digitalassistants, enterprise digital assistants or mobile phones. Theseapplications are either pre-installed on phones during manufacture, ordownloaded by customers from app stores and other mobile softwaredistribution platforms. Each of the platforms for mobile applications also has a developmentenvironment which provides tools to allow a developer to write, test anddeploy applications into the target platform environment. An example isQt which is a cross platform development framework released by nokia. Trends in this industry has give rise to several design anddevelopment issues.
  • CONTENTSChapter Index Page number 1. INTRODUCTION 1 2. CURRENT PRACTICES 2 3. MOBILE PLATFORMS 3 3.1 Platforms supporting devices by multiple Manufacturers 3.1.1 Java ME 3 3.1.2 Symbian OS 3 3.1.3 Android 7 3.1.4 Qt 8 3.1.5 Brew 8 3.2 Platforms supporting devices by one Manufacturer 3.2.1 Black Berry 13 3.2.2 iOS 13 4. PLATFORM DEVELOPMENT ENVIRONMENT 15 5. QT 19 5.1 Qt(framework) 19 5.2 History 19 5.3 Platforms 20 5.4 Applications 20 6. DEVELOPMENT TRENDS 23 7. DESIGN AND DEVELOPMENT ISSUES FOR MOBILE WEB 25 7.1 Native app / web based 25 7.2 Privacy 26 7.3 Emerging wireless standards 26 8. CONCLUSION 28 9. REFERENCES 29
  • SEMINAR REPORT Chapter 1 INTRODUCTIONApplication Development for mobile phones & its trends Last year I have seen an advertisement of nokia n95 mobile phone. the caption belowa big picture of that particular model was interesting. “This is what computers havebecome”. Yes, mobile phones have changed a lot. Most of modern mobile phones serveas a mini computer. And hence application development for mobile phones becomes anew industry. Mobile computing has caught the attention of the research community for quite sometime and has also reached the commercial industry and mainstream consumers via smartphones and PDAs. More than ever, such devices can run rich stand-alone applications aswell as distributed client-server applications that access information via a web gateway.This opens new avenues for future mobile application and service development. Duringmany years, the development of mobile services was mostly controlled and managed bythe mobile network operators (MNO), phone manufacturers, and some mobile applicationand content providers. Recently, this has changed with the arrival of new mobile phonesand platforms such as the iPhone. Development of mobile applications has generatedmore interest among the independent and freelance developers. The constantimprovement of hardware related to mobile computing (e.g., better computing power,larger wireless network bandwidth) clearly enhance capabilities of mobile devices. Thepotential of the mobile application market is seen to reach$9 billion by 2011, according to Compass Intelligence1 Mobile application development is the process by which applications aredeveloped for hand held devices such as personal digital assistants, enterprise digitalassistants or mobile phones. These applications are either pre-installed on phones duringmanufacture, or downloaded by customers from app stores and other mobile softwaredistribution platforms.Division of Computer Engineering SOE 1
  • SEMINAR REPORT Chapter 2 CURRENT PRACTICES To structure the description of the current practices, It is proposed to examine thecurrent mobile development platforms from the point of view of individual mobileapplication developers. Start by classifying the platforms in different categoriesdepending on the three main components depicted in Figure 1. First, the developer usesdevelopment tools to build its mobile application. Second, the developer publishes itsapplication on a portal, from which the consumer can download the application onto itsmobile device. This model, includes developers, the application portal, consumers, andall the processes related to the publishing and purchasing of a mobile application. Thismodel (Figure 1) supports us to separate and examine three main issues, which areaddressed in different subsections. we look at the different kinds of development toolsthat are supported. This helps to characterize the type of technology each platformprovides for developers (e.g., software development kit). More precisely, we determine ifthe technology provided has an open access or not (i.e., open source versus proprietarysources). we describe the different types of portals for each platforms. Characterizeportals that act as intermediaries between developers and consumers. Differentiatebetween centralized and decentralized portals. , we look at the level of integration of eachplatform, from no integration to a full distribution model integration.Division of Computer Engineering SOE 2
  • SEMINAR REPORT Chapter 3 MOBILE PLATFORMS 3.1 Platforms supporting devices by multiple manufacturers3.1.1 Java ME This platform generally produces portable applications, although sometimes device-specific libraries exist (commonly used for games), making them non-portable. It is oftenused to provide simple applications on feature phones. Applications (including their data)cannot be larger than around 1 MB if they are to run on most phones. They must also becryptographically signed in order to use APIs such as the file system access API. This isrelatively expensive and is rarely done, even for commercial applications. Java ME runsatop a Virtual Machine (called the JVM) which allows reasonable, but not complete,access to the functionality of the underlying phone. The JSR process serves toincrementally increase the functionality that can be made available to Java ME, whilealso providing Carriers and OEMs the ability to prevent access, or limit access toprovisioned software.3.1.2 Symbian OS Symbian OS is one of Nokias mobile operating systems for mobile devices andsmartphones, with associated libraries, user interface, frameworks and referenceimplementations of common tools, originally developed by Symbian Ltd. It was adescendant of Psions EPOC and runs exclusively on ARM processors, although anunreleased x86 port existed. In 2008, the former Symbian Software Limited was acquired by Nokia and a newindependent non-profit organisation called the Symbian Foundation was established.Symbian OS and its associated user interfaces S60, UIQ and MOAP(S) were contributedby their owners to the foundation with the objective of creating the Symbian platform asa royalty-free, open source software. The platform has been designated as the successorDivision of Computer Engineering SOE 3
  • SEMINAR REPORTto Symbian OS, following the official launch of the Symbian Foundation in April 2009.The Symbian platform was officially made available as open source code in February2010. Devices based on Symbian OS account for 46.9% of smartphone sales, making it theworlds most popular mobile operating system.Design Symbian features pre-emptive multitasking and memory protection, like otheroperating systems (especially those created for use on desktop computers). EPOCsapproach to multitasking was inspired by VMS and is based on asynchronous server-based events.Symbian OS was created with three systems design principles in mind: • the integrity and security of user data is paramount, • user time must not be wasted, and • all resources are scarce. To best follow these principles, Symbian uses a microkernel, has a request-and-callback approach to services, and maintains separation between user interface andengine. The OS is optimised for low-power battery-based devices and for ROM-basedsystems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and theOS itself, follow an object-oriented design: Model-view-controller (MVC). Later OS iterations diluted this approach in response to market demands, notably withthe introduction of a real-time kernel and a platform security model in versions 8 and 9. There is a strong emphasis on conserving resources which is exemplified bySymbian-specific programming idioms like descriptors and a cleanup stack. There aresimilar techniques for conserving disk space (though the disks on Symbian devices areusually flash memory). Furthermore, all Symbian programming is event-based, and theCPU is switched into a low power mode when applications are not directly dealing withDivision of Computer Engineering SOE 4
  • SEMINAR REPORTan event. This is achieved through a programming idiom called active objects. Similarlythe Symbian approach to threads and processes is driven by reducing overheads. The Symbian kernel (EKA2) supports sufficiently-fast real-time response to build asingle-core phone around it — that is, a phone in which a single processor core executesboth the user applications and the signalling stack. This has allowed Symbian EKA2phones to become smaller, cheaper and more power efficient than their predecessorsDeveloping on Symbian OSQt As of 2010, the SDK for Symbian is standard C++, using Qt. It can be used with eitherQt Creator, or Carbide (the older IDE previously used for Symbian development). Aphone simulator allows testing of Qt apps. Apps compiled for the simulator are compiledto native code for the development platform, rather than having to be emulated.Symbian C++ It is also possible to develop using Symbian C++, although it is not a standardimplementation. Prior to the release of the Qt SDK, this was the standard developmentenvironment. There were multiple platforms based upon Symbian OS that providedSDKs for application developers wishing to target Symbian OS devices – the main onesbeing UIQ and S60. Individual phone products, or families, often had SDKs or SDKextensions downloadable from the manufacturers website too. The SDKs contain documentation, the header files and library files required to buildSymbian OS software, and a Windows-based emulator ("WINS"). Up until Symbian OSversion 8, the SDKs also included a version of the GCC compiler (a cross-compiler)required to build software to work on the device.Symbian OS 9 and the Symbian platform use a new ABI and require a different compiler– a choice of compilers is available including a newer version of GCC (see external linksbelow).Division of Computer Engineering SOE 5
  • SEMINAR REPORT Unfortunately, Symbian C++ programming has a steep learning curve, as SymbianC++ requires the use of special techniques such as descriptors, active objects and thecleanup stack. This can make even relatively simple programs harder to implement thanin other environments. Moreover, it was questionable whether these techniques, such asthe memory management paradigm, were actually beneficial. It is possible that thetechniques, developed for the much more restricted mobile hardware of the 1990s, simplycaused unnecessary complexity in source code because programmers are required toconcentrate on low-level routines instead of more application-specific features. Theseissues however are no longer the case when using standard C++, with the Qt SDK. Symbian C++ programming is commonly done with an IDE. For earlier versions ofSymbian OS, the commercial IDE CodeWarrior for Symbian OS was favoured. TheCodeWarrior tools were replaced during 2006 by Carbide.c++, an Eclipse-based IDEdeveloped by Nokia. Carbide.c++ is offered in four different versions: Express,Developer, Professional, and OEM, with increasing levels of capability. Fully featuredsoftware can be created and released with the Express edition, which is free. Featuressuch as UI design, crash debugging etc. are available in the other, charged-for, editions.Microsoft Visual Studio 2003 and 2005 are also supported through the Carbide.vs plugin.Other languages Symbian devices can also be programmed using Python, Java ME, Flash Lite, Ruby,.NET, Web Runtime (WRT) Widgets and Standard C/C++. Visual Basic programmers can use NS Basic to develop apps for S60 3rd Edition andUIQ 3 devices. In the past, Visual Basic, VB.NET, and C# development for Symbian were possiblethrough AppForge Crossfire, a plugin for Microsoft Visual Studio. On 13 March 2007AppForge ceased operations; Oracle purchased the intellectual property, but announcedthat they did not plan to sell or provide support for former AppForge products. Net60, a.NET compact framework for Symbian, which is developed by redFIVElabs, is sold as acommercial product. With Net60, VB.NET and C# (and other) source code is compiledDivision of Computer Engineering SOE 6
  • SEMINAR REPORTinto an intermediate language (IL) which is executed within the Symbian OS using a just-in-time compiler. (As of 18/1/10 RedFiveLabs has ceased development of Net60 withthis announcement on their landing page: ”At this stage we are pursuing some options tosell the IP so that Net60 may continue to have a future”.) There is also a version of a Borland IDE for Symbian OS. Symbian OS developmentis also possible on Linux and Mac OS X using tools and techniques developed by thecommunity, partly enabled by Symbian releasing the source code for key tools. A pluginthat allows development of Symbian OS applications in Apples Xcode IDE for Mac OSX is available. Java ME applications for Symbian OS are developed using standard techniques andtools such as the Sun Java Wireless Toolkit (formerly the J2ME Wireless Toolkit). Theyare packaged as JAR (and possibly JAD) files. Both CLDC and CDC applications can becreated with NetBeans. Other tools include SuperWaba, which can be used to buildSymbian 7.0 and 7.0s programs using Java. Nokia S60i phones can also run Python scripts when the interpreter Python for S60 isinstalled, with a custom made API that allows for Bluetooth support and such. There isalso an interactive console to allow the user to write python scripts directly from thephone.3.1.3 Andriod Android is a Linux-based platform from the Open Handset Alliance, whose 34members include Google, HTC, Motorola, Qualcomm, and T-Mobile. It is supported byover 34 major software, hardware and telecoms companies. The Linux kernel is used as ahardware abstraction layer (HAL). Application programming is primarily done in Java.The Android specific Java SDK is required for development although any Java IDE maybe used. Performance critical code can be written in C, C++ or other native codelanguages using the Android Native Development Kit (NDK).Division of Computer Engineering SOE 7
  • SEMINAR REPORT3.1.4 Qt (framework) Qt uses standard C++ but makes extensive use of a special pre-processor (called theMeta Object Compiler, or moc) to enrich the language. Qt can also be used in severalother programming languages via language bindings. It runs on all major platforms andhas extensive internationalization support. Non-GUI features include SQL databaseaccess, XML parsing, thread management, network support, and a unified cross-platformAPI for file handling.3.1.5 BREW Used for deploying applications on CDMA devices (but also supports GPRS/GSMmodels). Distributed via a Brew Content Platform. Little penetration in Europe. BREWcan provide complete control of the handset and access to all its functionality. Howeverthe power provided by native code with direct access to the handset APIs, has caused theBREW development process to be tailored largely towards recognized software vendors.While the BREW SDK (Software Development Kit) is freely available, running softwareon real mobile hardware (as opposed to the provided emulator) requires a digitalsignature which can only be generated with tools issued by a handful of parties, namelymobile content providers and Qualcomm themselves. Even then, the software will onlywork on test enabled devices. To be downloadable on regular phones the software mustbe checked, tested and given approval by Qualcomm via their TRUE BREW Testingprogram.BREW application development Software for the BREW-enabled handsets can be developed in C or C++ using thefreely downloadable BREW SDK. Java applications are also supported if the handset hasa Java Virtual Machine available. For testing applications during the developmentprocess, the SDK includes a BREW Emulator, or starting with BREW Version 3.1.5 andabove, the BREW Simulator. The BREW environment provides for multiple levels ofapplication signatures. One signature authenticates the developer. Another signatureDivision of Computer Engineering SOE 8
  • SEMINAR REPORTverifies that an application has passed TRUE BREW testing and is bestowed throughQualcomm. The individual telecommunications operators configure the handsets to eitherenforce or ignore the presence and verification of this second signature. BREW enabledHandsets have a test mode that allows applications to bypass verification of theQualcomm signature. Qualcomm makes applications that have passed testing available toBREW enabled wireless network operators. The operators are then able to choose whichof these applications to make available to end-users on their catalog. The BREW Emulator (currently called BREW Simulator) does not emulatehandsets hardware. Instead, the BREW application is compiled to native code and linkedwith a compatible BREW runtime library. Because of this, applications cannot be testedfor platform bugs related to memory alignment and various firmware related glitcheswithout a BREW handset operating in test mode. For testing purpose, BREW applications can be transferred using a USB or serialcable to any BREW-compatible handset using BREW AppLoader from Qualcomm. ABREW application contains several components which, if not present and valid, cause theapplication to be automatically deleted on reboot. This includes the compiled binary file,a file which describes the application, the features it uses and permissions requested, afile which contains string and image resources if required, and a file containing theapplication digital signature. BREW Applications may be unloaded from a consumer handset to save handsetmemory space. This is referred to as "Disable/Restore", and is a requirement of theTRUE BREW Test Cycle. Saved files are kept intact using Disable/Restore, and it ispossible to re-load the application without paying for it again. In a "Disable" situation, all.bar, .mod, and .sig files are deleted from the handset, while any other files remain intheir original place. During the "Restore" operation, the .bar, .mod, and.sig files aredownloaded from the carriers mobile store, and the previously disabled application willhave full functionality remaining. The Disable/Restore process is only available toconsumer users once the handsets memory is completely full.Division of Computer Engineering SOE 9
  • SEMINAR REPORT3.1.6 Windows Mobile Windows Mobile (rebranded as Windows Phone with the launch of Windows Phone7) is a mobile operating system developed by Microsoft for use in smartphones andmobile devices. The current version is called "Windows Mobile 6.5". It is based on the Windows CE5.2 kernel, and features a suite of basic applications developed using the MicrosoftWindows API. It is designed to be somewhat similar to desktop versions of Windows,feature-wise and aesthetically. Additionally, third-party software development isavailable for Windows Mobile, and software can be purchased via the WindowsMarketplace for Mobile. Originally appearing as the Pocket PC 2000 operating system, most WindowsMobile devices come with a stylus pen, which is used to enter commands by tapping it onthe screen. Microsoft announced a completely new phone platform, Windows Phone 7, atthe Mobile World Congress in Barcelona on February 15, 2010. Phones runningWindows Mobile 6.x will not be upgradeable to version 7.Common featuresWindows Mobile for Pocket PC carries these standard features in most of its versions: • Today Screen shows the current date, owner information, upcoming appointments, e-mail messages, and tasks. (Is now Home screen in later WM6.5 builds) • The taskbar shows the current time and the volume. • Office Mobile a suite of Mobile versions of Microsoft Office applications • Outlook Mobile comes with Windows Mobile. • Internet Explorer Mobile is an Internet browser developed by Microsoft for Pocket PC and Handheld PC that comes loaded by default with Windows Mobile and Windows CE for Handheld PC. • Windows Media Player for Windows Mobile.Division of Computer Engineering SOE 10
  • SEMINAR REPORT • Client for PPTP VPNs. • Internet Connection Sharing (ICS) which in mobile phones allows attached computers to share internet connections via USB and Bluetooth. • Coherent file system similar to that of Windows 9x/Windows NT and support for many of the same file types. • Ability to multitask.3.1.7 Palm OS Palm OS is a mobile operating system initially developed by Palm, Inc. forpersonal digital assistants (PDAs) in 1996. Palm OS is designed for ease of use with atouchscreen-based graphical user interface. It is provided with a suite of basicapplications for personal information management. Later versions of the OS have beenextended to support smartphones. Several other licensees have manufactured devicespowered by Palm OS..Application development Palm OS Garnet applications are primarily coded in C/C++. Two officiallysupported compilers exist: a commercial product, CodeWarrior Development Studio forPalm OS, and an open source tool chain called prc-tools, based on an old version of gcc.CodeWarrior is criticized for being expensive and is no longer being developed, whereasPRC-Tools lacks several of CodeWarriors features. A version of PRC-Tools is includedin a free Palm OS Developer Suite (PODS).OnBoardC is a C compiler, assembler, linker and programming editor that runs on thePalm itself.Palm OS Cobalt applications are also coded in a variation of gcc, but the Cobaltcompilers have fewer limitations.There are development tools available for Palm programming that do not require low-level programming in C/C++, such as PocketC/PocketC Architect, CASL, AppForgeDivision of Computer Engineering SOE 11
  • SEMINAR REPORTCrossfire (which uses Visual Basic, Visual Basic.NET, or C#), Handheld Basic,Pendragon Forms, Satellite Forms and NSBasic/Palm (Visual Basic like languages). AJava Virtual Machine was previously available for the Palm OS platform, however on2008-01-12 Palm, Inc. announced that it would no longer be available. Palm, Inc. furthersaid "There is no alternate Java Virtual Machine that we are aware of for Palm OS."[38]Waba and a derivative of it, SuperWaba, provide a Java-like virtual machine andprogramming language. A version of the Lua language, called Plua, is also available forPalm; however, due to the fact that it requires an additional runtime to be installed alongwith the application, it is only used for mainstream applications by a minority of softwarecompanies. Quartus Forth is an ISO/ANSI Standard Forth compiler that runs on the Palmitself. It also has an interactive console for dynamic development and debugging. Two environments allow programming in Pascal for Palm OS. The free PPCompiler[39] runs directly on the handheld computer, while PocketStudio is a Delphi-likeIDE for Windows Computers that has a visual form designer and generates PRC files forbeing transferred to handhelds via HotSync. As Palm has no connection drivers that enable the transfer of data with a serverDBMS (Oracle, mySQL, MS SQL Server), the programmer can use Middleware softwarethat enables this connectivity. A roughly R4RS-compatible implementation of Scheme, LispMe, provides thePalm platform with a GPL-licensed onboard Lisp REPL with some Palm OS-specificadaptations, but although it is functionally a compiler it does not produce code thatoperates outside the development environment, so its use is restricted to prototyping. A free development tool, LaFac, works directly on the Palm device, using theMemo Pad for source code editing, and provides support for a limited subset of C, Pascal,and Basic.Division of Computer Engineering SOE 12
  • SEMINAR REPORT3.2 Platforms supporting devices by one manufacturer3.2.1 BlackBerry The operating system used by BlackBerry devices is a proprietary multitaskingenvironment developed by RIM. The operating system is designed for use of inputdevices such as the track wheel, track ball, and track pad. The OS provides support forJava MIDP 1.0 and WAP 1.2. Previous versions allowed wireless synchronization withMicrosoft Exchange Server e-mail and calendar, as well as with Lotus Domino e-mail.The current OS 5.0 provides a subset of MIDP 2.0, and allows complete wirelessactivation and synchronization with Exchange e-mail, calendar, tasks, notes and contacts,and adds support for Novell GroupWise and Lotus Notes. Third-party developers can write software using these APIs, and proprietaryBlackBerry APIs as well. Any application that makes use of certain restrictedfunctionality must be digitally signed so that it can be associated to a developer accountat RIM. This signing procedure guarantees the authorship of an application but does notguarantee the quality or security of the code. RIM provides tools for developingapplications and themes for BlackBerry. Applications and themes can be loaded ontoBlackBerry devices through BlackBerry App World, Over The Air (OTA) through theBlackBerry mobile browser, or through BlackBerry Desktop Manager. dominatingposition on the North American smartphone market. Also important for BlackBerry arethe BES (Black Berry Enterprise Server) and the Mobile Data System (BlackBerryMDS).3.2.2 iOS (Apple) iOS is Apples mobile operating system. Developed originally for the iPhone, it hassince been shipped on the iPod Touch and iPad as well. Apple does not permit the OS torun on third-party hardware. As of June 7, 2010, Apples App Store contained more thanDivision of Computer Engineering SOE 13
  • SEMINAR REPORT225,000 iOS applications, which had collectively been downloaded more than five billiontimes. The user interface of iOS is based on the concept of direct manipulation, usingmulti-touch gestures. Interface control elements consist of sliders, switches, and buttons.The response to user input is immediate and provides a fluid interface. Interaction withthe OS includes gestures such as swiping, tapping, pinching, and reverse pinching.Internal accelerometers are used by some applications to respond to shaking the device(one common result is the undo command) or rotating it in three dimensions (onecommon result is switching from portrait to landscape mode).iOS is derived from Mac OS X, with which it shares the Darwin foundation, and istherefore a Unix-like operating system by nature. In iOS, there are four abstraction layers: the Core OS layer, the Core Services layer,the Media layer, and the Cocoa Touch layer. The operating system uses roughly 500megabytes of the devices storage, varying for each model.Division of Computer Engineering SOE 14
  • SEMINAR REPORT Chapter 4 PLATFORM DEVELOPMENT ENVIRONMENT Each of the platforms for mobile applications also has a developmentenvironment which provides tools to allow a developer to write, test and deployapplications into the target platform environment.The following table summarizes the elements in each of the development environments. Integrated Programmin Debuggers Emulator Development Cross-Platform g Language available available Environment Deployment available All native: BREW, Android, iPhone, C, C++ but no Debugger Emulator Visual Studio, WindowsAirplaySDK threads available available Mac OS SDK Mobile, Symbian, Samsung Bada, Maemo, Palm/Web OS Debugger Emulator BREW, integrated is Android, in Visual available Visual Studio, alcheMo Java iPhone, Studio, in Eclipse, XCode Windows Eclipse or correspon Mobile XCode ding IDE Debugger integrated Java but in Eclipse, Android only, Eclipse, Undroid portions of Standalone Free because of Android (Plugin for code can be in debugging Emulator Dalvik VM Netbeans) C, C++ monitor (march 09) also available Bedrock Java Yes Yes Eclipse Java ME,Division of Computer Engineering SOE 15
  • SEMINAR REPORT BREW, BlackBerry, iPhone, PSP, DS, Android, Windows Mobile, Palm JDE - BlackBerry Debugger BlackBerry only Free JavaBlackBerry Java integrated because of the Emulator Development in JDE RIM API Environment XML routed through N/A, None Blueprint Yahoo Mobile translates N/A, translates beyond a N/A, any XML(programmin servers and to web or to web or mobile schema editor g language) displayed in mobile as as needed check native needed browsers No Debugger Emulator support for for the the native target C (the APIs Visual Studio ARM target ARM Compile for the are provided 6.0, Visual code.Can code, has specific BREW BREW in C with a Studio 2003 .net, use Visual a version available C++ style Visual Studio Studio to simulator on the handset. interface) 2005 debug the for the x86 testing x86 code. testing code. Bundled with Debugger iPhone integrated SDK, iPhone, iPodiOS (Apple) Objective-C Xcode in Xcode integrated Touch, and iPad. IDE with Xcode IDE Free Yes although Emulator, many VM Sun Java Eclipse,LMA implementations Java ME Java Yes Wireless NetBeans have device Toolkit, Mobility Pack specific bugs mpowerpl necessitating ayer separate builds Lazarus Object Pascal Yes. Can Uses the Lazarus IDE, CompiledDivision of Computer Engineering SOE 16
  • SEMINAR REPORT debug on emulators including language the IDE via of the integrated GUI available for ActiveSync platforms designer and Windows CE, for debugger linux-based Windows devices and a CE SymbianOS port is under development. MacromediaMacromedia Bundled ActionScript Yes Flash MX2004/8 Yes Flash Lite with IDE / Eclipse Basic Page XHTML rendering withMicrobrowse (WAP 2.0), per page Yes Many Many r Based WML (WAP customizations 1.2) for different browsers. Windows Mobile, Eclipse, MoBuild Symbian, Java (w/ text editors), MoSync C, C++ Yes Yes ME, Moblin, Visual Studio Android, 2005 and later Smartphone 2003, Pocket PC Free emulator Windows (source Visual Studio Mobile, .NET C#, VB.NET, code 2008, 2005, WindowsCE, Compact Yes Basic4ppc available), 2003, Basic4ppc Symbian-basedFramework also IDE devices (via bundled third party tools) with IDE OS 1.0 - 4.1: Free Emulator provided Palm OS Palm OS by Development handhelds, or PalmSour C, C++, System (Eclipse), Windows Palm OS Yes ce Pascal CodeWarrior, Mobile with (Access); PocketStudio, StyleTap OS 5.0: - HB++ emulator 5.4 Device- specific SimulatorDivision of Computer Engineering SOE 17
  • SEMINAR REPORT s provided by Palm (palmOne ) Interpreted language available natively only on Nokia Series60 Add-on to Several, (and desktops) Python Python Yes Nokia including plugins though there are Emulator for Eclipse ports to other mobile platforms, including PalmOS N/A, Ruby with applicatio HTML Yes(Supports ns can run interface iOS (inc. 3.0), in Win32 xCode or Eclipse, features Windows runner, or on-demand Rhomobile compiled Yes Mobile, in device RhoHub version through an Blackberry, emulators includes full IDE interpreter Symbian and for into native Android) supported applications. platforms. Free Compile per Symbian C++ Yes Qt,c++, Emulator target Javascript, Free webOS, Palm webOS Yes Eclipse CSS, HTML emulator only Free emulator (source Visual Studio Windows Windows code 2008, 2005, C, C++ Yes Mobile, Mobile available), eMbedded VC++ WindowsCE also (free) bundled with IDEDivision of Computer Engineering SOE 18
  • SEMINAR REPORT Chapter 5 QT4.1 Qt (framework) Qt (pronounced officially as cute though commonly pronounced as Q.T. ) is a cross-platform application development framework widely used for the development of GUIprograms , and also used for developing non-GUI programs such as console tools andservers. Qt is most notably used in Google Earth, KDE, Opera (before 10.60 version),OPIE, Skype, MO-Call, VLC media player and VirtualBox. It is produced by Nokias QtDevelopment Frameworks division, which came into being after Nokias acquisition ofthe Norwegian company Trolltech, the original producer of Qt, on June 17, 2008 Qt uses standard C++ but makes extensive use of a special pre-processor (called theMeta Object Compiler, or moc) to enrich the language. Qt can also be used in severalother programming languages via language bindings. It runs on all major platforms andhas extensive internationalization support. Non-GUI features include SQL databaseaccess, XML parsing, thread management, network support, and a unified cross-platformAPI for file handling.4.2 History Haavard Nord and Eirik Chambe-Eng (the original developers of Qt and the CEOand President, respectively, of Trolltech) began development of "Qt" in 1991, three yearsbefore the company was incorporated as Quasar Technologies, then changed the name toTroll Tech and then to Trolltech.The toolkit was called Qt because the letter Q looked appealing in Haavards Emacs font,and "t" was inspired by Xt, the X toolkit.Division of Computer Engineering SOE 19
  • SEMINAR REPORTThe first two versions of Qt had only two flavors: Qt/X11 for Unix and Qt/Windows forWindows. The Windows platform was only available under a proprietary license, whichmeant free/open source applications written in Qt for X11 could not be ported toWindows without purchasing the proprietary edition. At the end of 2001, Trolltechreleased Qt 3.0, which added support for Mac OS X. The Mac OS X support wasavailable only in the proprietary license until June 2003, when Trolltech released Qt 3.2with Mac OS X support available under the GPL. Nokia acquired Trolltech ASA in 2008 and changed the name first to Qt Software,then to Qt Development Frameworks. Since then it focused on Qt development to turn itinto the main development platform for its devices, including a port to the Symbian S60platform. Version 1.0 of the Nokia Qt SDK was released on 23 June 2010.[7] The sourcecode was made available over Gitorious, a community oriented git source coderepository, in order to gather an even broader community that is not only using Qt butalso helping to improve it.4.3 PlatformsQt is released by Nokia on the following platforms: • Linux/X11 – Qt for X Window System (Unix / Linux) • Mac OS X – Qt for Apple Mac OS X. Support for applications on top of Cocoa APIs • Windows – Qt for Microsoft Windows • Embedded Linux – Qt for embedded platforms (PDA, Smartphone, etc.) • Windows CE – Qt for Windows CE[14] • Symbian – Qt for the Symbian platform.Qt is to replace Nokias Avkon as the supported UI SDK for the development of Symbian applications. • Maemo – Qt for Maemo, merged with Moblin to MeeGoDivision of Computer Engineering SOE 20
  • SEMINAR REPORT4.4 Applications • 3DSlicer, a free open source software for visualization and medical image computing • AcetoneISO, a software to mount most common images • Autodesk Maya, 3D modelling and animation software • Avidemux, a Free Software program designed for multi-purpose video editing and processing • Doxygen, an API document generator • Emergent, a neural network simulator. • Freemat, a free numerical computing environment and programming language • Gadu-Gadu, a popular Polish instant messaging client • GoldenDict, an open-source dictionary software • Google Earth, a 3D map program • Hydrogen, an advanced drum machine. • Last.fm Player, the desktop client for the popular internet radio and music community website • Launchy, the open source keystroke launcher for Windows and Linux • LMMS, a free open source sequencer and software synthesis package • LyX, a GUI frontend to LaTeX • Mathematica, Linux version uses Qt for the GUI front-end • Mixxx, cross-platform open source DJ mixing software • MuseScore, a WYSIWYG graphical music notation editor • MythTV, an open source digital video recorder • Nimbuzz, a instant messaging and VoIP application • Opera, cross-platform internet browser • Psi, an instant messaging client for XMPP • Qt Creator, a cross-platform IDE for C++ and QML • Quantum GIS, a free desktop GIS • Rosegarden, a free software digital audio workstation prograDivision of Computer Engineering SOE 21
  • SEMINAR REPORT • Scribus, a desktop publishing application • Skype, a P2P VOIP application • SMPlayer, a multiplatform multimedia player front-end for MPlayer. • TeamSpeak, cross-platform voice communication software • Texmaker, a cross-platform LaTeX editor • Tlen.pl, a popular Polish instant messaging client • TOra, a database administration tool • UniversalIndentGUI,an application which helps the user to beautify, reformat or indent various kinds of code. • Valknut, a program that uses the Direct Connect protocol. • VirtualBox, a PC virtualization application • VisIt, an interactive parallel visualization tool for viewing scientific data • VisTrails, a scientific workflow management and visualization system • VLC Media Player, an open source media player. • VoxOx, a unified communications software. • Xconfig, Linux Kernel configuration toolDivision of Computer Engineering SOE 22
  • SEMINAR REPORT Chapter 6 DEVELOPMENT TRENDS Bellow there are some thoughts on how the Mobile Development industry willevolve in the nearest future.Micropayments Micro payments within mobile applications can be used to upgrade basic app to apremium version, purchase game items, digital content or even small gifts for friends.Mobile bill payments and micropayments for digital content consumption continue togrow in the future.Enhanced Security Better security for mobile application platforms is expected. This is especiallyimportant when more users are conducting financial transactions and life streaming usingtheir phones.Business App Store With all the mobile platforms targeting their app store towards averageconsumers, the introduction of a business app store is imminent.Location-Based Technology Location-based technology or GPS technology received the most buzz in 2009and we expect it will continue growing this year.Division of Computer Engineering SOE 23
  • SEMINAR REPORTSocial Based Applications Social networking activities certainly do not end when you leave your computer.We are already seeing a great number of people tweeting and updating their Facebookstatus on-the-go, not to mention those who are posting videos and photos to services likeTwitpic and 12seconds using their mobile phone.Augmented Reality (AR) Augmented reality (AR) is a term for a live direct or indirect view of a physicalreal-world environment whose elements are merged with (or augmented by) virtualcomputer-generated imagery – creating a mixed reality.High Entry Barriers for Fledgling Developers: Developers that are new to the scene and without much support will face troublegetting user adoption. Not only that there are already tons of mobile applications outthere, established developers have better advantages in terms of capability to introducenew features over a short time span as well as the resources to adapt and test theirapplications on new platforms.Mobile Application Advertising The increasing number of mobile application users opens up another advertisingchannel for brands and businesses. This is definitely good news for developers.Importance of Marketing for Applications There are already hundreds of thousands of mobile applications out there. In orderto stand a chance, developers or mobile application entrepreneurs need to know how tomarket applications developed by them.Division of Computer Engineering SOE 24
  • SEMINAR REPORT Chapter 7 DESIGN AND DEVELOPMENT ISSUES FOR MOBILE WEB7.1 Native App and/or Browser Based? Just as businesses in the PC-based Web spent years in the 90s wondering if adesktop app or web browser based service was the best choice, in 2010 the same questionapplies to mobile phone applications. Organizations are asking themselves: should we build a native mobile phone app, orshould we build a cross-platform browser-based mobile service? If they choose theformer, which platform(s) do they focus on first? The choices include iPhone, Android,RIM, Palm, Windows Mobile and Symbian. In February, mobile search company Taptu released a detailed report showing thatthe future of the Mobile Web is likely to be dominated by cross-platform browser-basedmobile web sites - rather than apps built specifically for iPhone, Android, or any otherplatform. The company estimated that there were 326,000 Mobile Touch Web sitesworldwide at that time, compared to 148,000 iPhone apps in the App Store and 24,000apps in the Android market. Whats more, Taptu expects the browser-based mobile webmarket to grow much faster than the app market. One factor to consider is that both options, native app and browser site, still havesomething of a wild west element to them. We can see evidence of this in the stand-offbetween Apple and Adobe over Flash on mobile phones. Apples iPhone platform and itsdefault mobile Safari browser do not run Adobes Flash technology, despite Flash havingan almost ubiquitous presence on desktop PCs. Apple has been pushing HTML5, thelatest generation of the Webs mark-up language, as a replacement for much of theDivision of Computer Engineering SOE 25
  • SEMINAR REPORTfunctionality in Flash. This battle is yet to be won - but its not looking good for Adobe,because its hard to bet against the next version of HTML.7.2 Privacy Location-based mobile apps have been a big trend in 2010 (well cover this in Part 2of this series), but there are significant privacy implications for these apps. Sites likeFoursquare, BrightKite and Gowalla encourage their users to "check-in" to places, so thattheir social network knows where they are at any given time. While these apps haveprivacy controls that allow you to (for example) send a check-in update to just a selectgroup of friends, a lot of times the updates are sent to the entire network. In a recent analysis post, Sarah Perez asked: are location-based social networksprivacy disasters waiting to happen? She added that many web and mobile apps are usinglocation data now, including Google, Facebook and user review site Yelp. The privacy dangers were highlighted earlier this year by a social experimentcalled PleaseRobMe, which displaying aggregated real-time updates from Foursquareusers who used the social sharing feature to broadcast their updates publicly on Twitter.Although PleaseRobMe has since been shuttered, the point they were trying to make stillresonates: sharing your physical location with a public network is potentially dangerous.7.3 Emerging Wireless Standards Think your smart phone is cool now? Wait till it gets RFID chips, then itll truly besmart. Thats the promise of two emerging RFID-based mobile technologies called NFCand DASH7. NFC (Near Field Communication) holds great promise as an enabler of mobilepayments. DASH7 is a wireless sensor networking standard that complements NFC; itDivision of Computer Engineering SOE 26
  • SEMINAR REPORTwill enable things like advanced location-based services, long-distance mobileadvertising and mobile coupons. Both NFC and DASH7 may soon be a part of the mobile phone that you carryaround everywhere. Nokia already deploys NFC, and Apple and Google are rumored tobe working on NFC implementation. There are a group of other emerging mobile standards and technologies to lookout for, such as WiMax, ZigBee and 4G. They all play an increasingly important part inthe evolving Mobile ecosystem.Division of Computer Engineering SOE 27
  • SEMINAR REPORT Chapter 8 CONCLUSION • Mobile application development is the process by which applications are developed for hand held devices such as personal digital assistants, enterprise digital assistants or mobile phones. • There are a number of mobile phone software platforms available in the industry • Each of the platforms for mobile applications also has a development environment which provides tools to allow a developer to write, test and deploy applications into the target platform environment • Qt is a crossplatform application development framework released by nokia • Mobile development industry is highly dynamic. Trends in this industry are in such a direction that mobile phones replace computers. • This industry also faces design and development issuesDivision of Computer Engineering SOE 28
  • SEMINAR REPORT Chapter 9 REFERENCES • Je_rey L. Funk. The emerging value network in the mobile phone industry: The case of japan and its implications for the rest of the world. Telecommunications Policy, 2009. • B. Adrian. Overview of the mobile payments market 2002 - 2007. Gartner, 2002. • www.nokia.com • www.wayneliew.com • www.androidphonethemes.com • www.articlesbase.com • www.asia.cnet.comDivision of Computer Engineering SOE 29