Build Mobile Apps With Zero Coding
Mobile Apps Made Easy
Quick start guide to skyrocket your offline and online business success with mobile apps. If you know anything about mobile devices, you’ve probably heard that famous phrase coined by one of the mobile device’s most prolific creators proclaiming that there’s an app for pretty much everything.
In this section, you'll see how to integrate iWebKit into your UlWebView-based mobile applications to match what users expect to see in an iPhone application. The following sections walk you through integrating iWebKit in applications built in Xcode using Objective-C, as well as applications built using the Rhodes and PhoneGap frameworks. These examples build on the foundation provided in earlier chapters, so if it's been awhile, take a minute to refresh your memory before continuing on.
Lists are one of the most frequently used components in iPhone applications, as they provide a simple way to layout various types of information, and can optionally provide hierarchical organization to allow for sub-lists and navigation. iWebKit provides several different formatting options for lists in your application. You can choose to style your list using the classic style, with support for images and comments a list in the classic iTunes style, containing album covers, artist, title, and rating information an App Store list with ratings and prices an iTunes style list with ratings and album covers an iPod music list that shows a numbered list of songs with times. App Store To include any of the options available to the cells in an App-store style list, simply add App Store-style Lists App Store-style lists support background images, star rating comments, the number of ratings, and price of the product. Figure 11-6. App store list items Figure 11-6. App store list items App...
If you're familiar with other mobile development environments (J2ME, Symbian, BREW, etc.), you're probably an old hand at signing applications. But if you're new to developing mobile applications, you may be asking yourself what all this signing stuff is for, anyway. Android uses application signing for only one purpose to ensure that applications that claim to be from the same developer actually are. Applications from the same developer have special capabilities, discussed in the next section.
Mobile applications on most platforms run in their own sandboxes. They're isolated from each other, and have strict limitations applied to their interaction with hardware and native components. Android applications are also sandboxed but they can use Intents, Broadcast Receivers, Adapters, Content Providers, and the Internet to interact through those boundaries.
11 play and no work makes your smartphone an expensive toy. But with the help of a wide selection of professional-grade mobile apps from the Android Market, your Android device can get down to business. Here's an overview of some of the best apps for viewing, creating and editing business documents on the go.
CONTROL FILES File transfers are designed to resume transparently after connection problems. This resume feature really helps when you use mobile apps, and especially when transferring large files. In Android-based mobile phones, it is possible to have multiple file transfers occurring simultaneously. Teradesk give you lots of options on what to do with your files in the cloud. In short, this app never ceases to impress with its myriad options, features, and capabilities.
The goal of the FieldService Activity is to put the functions the mobile worker requires directly in front of him and make sure they are easy to access. A good mobile application is often one that can be used with one hand, such as the five-way navigation buttons, or in some cases a thumb tapping on a button. In addition, if there is helpful information to display, you should not hide it. It is helpful for our mobile worker to know that he is configured to obtain jobs from a particular server. Figure 12.6 demonstrates the Field Service Application conveying a very simple, yet easy-to-use home screen.
Best Practices in Designing Bulletproof Mobile Applications 571 Meeting Mobile Users' Demands 572 Designing User Interfaces for Mobile Devices 572 Designing Stable and Responsive Mobile Applications 573 Designing Secure Mobile Applications 574 Designing Mobile Applications for Maximum Profit 575 Designing Mobile Applications for Ease of Maintenance and Upgrades 576 Best Practices in Developing Bulletproof Mobile Applications 579
NOTE It is too early to tell whether there will be a big battle between the Open Handset Alliance and Sun over the use of Java in Android. From the mobile application developer's perspective, Android is a Java environment however, the runtime is not strictly a Java virtual machine. This accounts for the incompatibilities between Android and proper Java environments and libraries.
AutoCompleteTextView, as the name implies, is a modified TextView that will refer a possible value for the completion of a word or phrase typed into it. Such Views are greatly useful in mobile applications when you do not want to devote a large amount of space to a ListView, or you want to speed along the process of entering text into your application.
As is common practice, this example initializes jQTouch in a script tag in the HTML header. (Optional initialization parameters are discussed later in this chapter.) This example uses a toolbar, which is an optional component, but commonly used in most mobile applications. To get started, copy the jQTouch and themes directories to the root of your web application with apple theme.
JQTouch is a jQuery plug-in for mobile web development originally developed for the iPhone and iPod Touch.1 jQTouch enables animated transitions, swipe detection, and themes for HTML-based web applications based on features in WebKit. The most exciting and interesting feature of jQTouch is that it allows you to quickly make HTML pages look like a native iPhone application. While you can use jQTouch in hosted mobile applications and access it on a device with a web browser, you can also use it in native applications produced by several cross-platform frameworks. To use jQTouch in a native application, you would include it in a browser control, as discussed in Part 1, or leverage a cross-platform framework, such as Rhodes or PhoneGap (Chapters 6 and 8), that enable the use of HTML UI in a native application. The visual themes and styling of jQTouch are suitable for any WebKit-based mobile browser however, its animated transitions only work on iOS, as of this writing.
Developing mobile applications can be tricky business. Mobile developers need to use platform-specific tools and APIs and write code in different languages on different platforms. It is often hard to understand what it takes to develop and distribute an application for a specific device without actually building one. Each platform has different processes and requirements for membership in developer programs and documentation for different parts of the development process are often scattered and hard to piece together. Therefore, we have divided the book into three main topics Platform Development and Distribution, Cross-Platform Native Frameworks, and HTML Interfaces. To develop a mobile application user interface, a mobile developer must typically learn a platform-specific language and SDK. This can become quite cumbersome if you need your application to run on more than one platform. Fortunately, there is an alternative all smartphone platforms today include a browser control...
We're seeing a change in how people use computers. Desktop applications that we use most frequently are centered around communications, rather than the more traditional personal computer task of document creation. In the business world, we file expense reports, approve decisions, or comment on proposals. As consumers, we read reviews, send short notes to friends, and share photos. E-mail is the killer app of the late 20th century, not the word processor or spreadsheet. Both in the business world and in our personal lives, these communication-centered tasks translate effectively into mobile applications.
In September 2009, Apple announced that more than two billion applications had been downloaded from its App Store. With more than 100,000 applications available, Apple has transformed the mobile phone market by dramatically increasing consumer spending on applications and successfully shifting independent developer mindshare toward mobile application development. By the end of 2009, Google Android's open platform was reported to have over 20,000 apps in the Android Market online store.1 Mobile applications are not new. Even in the late 90s, mobile development was considered to be a hot market. While there were independent application developers and most of the high-end phones supported the installation of applications, the process of application install was awkward and most end users did not add applications to their phone. Examples of early smartphone and PDA devices from this era included the Apple Newton Message Pad, Palm Pilot, Handspring (and later Palm) Treo, Windows Pocket PC,...
Wallace Jackson is a seasoned multimedia producer and i3D programmer for Acrobat3D PDF, Android mobile apps, iTV Design, JavaFX, and JavaTV. He has been designing rich media since the Atari ST1040 and AMIGA 3000 and has been writing for leading multimedia publications on new media content development since the advent of Multimedia Producer magazine nearly two decades ago. He can be reached at www.wallacejackson.com.
Android is designed around the unique requirements of mobile applications. In particular, Android recognizes that resources (memory and battery, for example) are limited on most mobile devices, and provides mechanisms to conserve those resources. The mechanisms are evident in the Android Activity Lifecycle, which defines the states or events that an activity goes through from the time it is created until it finishes running. The lifecycle is shown diagrammatically in Figure 1-1.
Understanding the Value of Iteration 553 Gathering Application Requirements 553 Determining Project Requirements 553 Developing Use Cases for Mobile Applications 555 Incorporating Third-Party Requirements 555 Managing a Device Database 555 Assessing Project Risks 558 Identifying Target Devices 558 Acquiring Target Devices 560 Determining Feasibility of Application Requirements 561 Designing Mobile Applications 564 Understanding Mobile Device Limitations 564 Exploring Common Mobile Application Architectures 564 Designing for Extensibility and Maintenance 565 Designing for Application Interoperability 566 Developing Mobile Applications 567 Testing Mobile Applications 567 Deploying Mobile Applications 568 Determining Target Markets 568 Supporting and Maintaining Mobile Applications 568 Track and Address Crashes Reported by Users 569 Testing Firmware Upgrades 569 Maintaining Adequate Application Documentation 569
Don't assume that mobile applications are simpler to test just because they are smaller than desktop applications or have fewer features. Testing mobile applications poses many unique challenges to testers, especially in terms of configuration management. One of the biggest challenges a mobile application tester faces is the explosion of new Android devices on the market. This problem called handset fragmentation makes the task of keeping track of the devices available running the different versions of the Android SDK and having different screen sizes, features, and hardware increasingly complex (see Figure 22.1).
Android applications and mobile applications in general are small apps with a lot of functionality. One of the ways that mobile apps deliver such rich functionality on such a small device is that they pull information from various sources. For example, the T-Mobile G1 comes with the Maps application, which provides seemingly sophisticated mapping functionality. We, however, know that the application is integrated with Google Maps and other services, which provide most of the sophistication.
Many mobile applications today are networked and have some social component. One way for users to differentiate themselves from others is by setting custom icons to represent who they are. To give users this ability, you can implement the avatar feature on the settings screen. Avatars come in many forms an avatar may be a close-up photograph of the user's face, or it might be a funky graphic that speaks to the user's personality. Space is at a premium in a mobile application, and you want to keep the settings screen for the Been There, Done That application as easy to use as possible. The avatar feature has two requirements The user must be able to set the avatar from a custom graphic, and the graphic chosen must be displayed on the settings screen. Of the various controls available in Android, the ImageButton control would be able to handle both tasks.
Probably one of the hottest mobile applications right now is videos. From pod-casts to music videos, everyone is watching videos on their mobile devices or, at least, they wish they could watch videos on their mobile devices. With the Android phone, you can watch videos through the YouTube application.
The version name (android versionName) is a user-friendly, developer-defined version attribute. This information is displayed to users when they manage applications on their devices and when they download the application from marketplaces. Developers use this version information to keep track of their application versions in the field.We discuss appropriate application versioning for mobile applications in detail in Chapter 26, The Mobile Software Development Process.
Windows Mobile applications can be distributed on the Web or through the Windows Marketplace for Mobile. To compress and package application files for distribution, Windows Mobile uses Cabinet files, designated with the .cab extension. To distribute your application, you need to build your application as a signed CAB file. The following section provides an overview of the process required to release the hello world application built in the previous section. Additional advanced configuration options may be necessary for more complex applications outside the scope of this chapter.5
Another option companies can use is to develop an app that is an extension of an existing product or service. These types of apps typically provide a scaled-down version of the main web-based service. They often lack all the features of the original app because the app is new or because the original web service is much more complex than an Android app can support. These types of apps offer a lot of the functionality for traders, but not all of it. Complex option trades are currently not available in many mobile apps, but features that the majority of the audience needs are included. Providing a mobile app to extend your web-based technology is also about customer service. Your customers will be pleased when you provide technology that meets their needs and makes their lives easier. Your app can help you retain customers who might otherwise move to another bank, broker, or tool. You can bet your competitors will tout their app as an advantage to their solution over yours.
Nearly all mobile applications, at least at the time of publication, begin with a graphical main menu. This graphical screen directs users to the various functionality of the mobile application. Because the concept of a main menu is so universal to the mobile application experience, it makes for an excellent and practical case study. Your objective, in this example, is to put together a simple and functional main menu. For the sake of comparison, you'll use another linear layout to put everything together. The example will be built in three major stages When you've finished all three of these tasks, you should have the framework to build the primary entry screen of about 80 percent of all mobile applications. Although not entirely practical (being that I've used exactly zero XML), it is an excellent demonstration of how to get things done in a custom runtime-driven way. As you add more functionality to your socially awkward application, you'll fill out this main menu more completely.
You can develop Android applications wit h the same high-quality tools you use to develop Java applications. The Android core libraries provide the functionality needed to build some amazingly rich mobile applications, and the Android development tools make running, debugging, and testing your applications a snap.
Similarly, the mobile application may need to communicate with different servers, depending on locale. A mobile worker in the United States might use a server located in Chicago, but a worker in the United Kingdom may need to use a server in Cambridge. Because of these requirements, we have decided that both the mobile worker's identifier and the server address need to be readily accessed within the application. Remember, these fields would likely be secured in a deployed application, but for our purposes they are easy to access and not secured.
Google within the Open Handset Alliance (OHA) delivers a complete set of software for mobile devices an operating system, middleware and key mobile applications. What was released a week later was not a final product, but a First Look SDK what many did not realize. Major news sites grabbed the discomforts of some developers who said that Android is full of bugs and heavily lacks of documentation. But the majority says that Android is not buggier than any other software at this stage.
To create a compelling mobile application, you will want to take advantage of capabilities that are available on a phone, differentiating the experience from a web or desktop application. Most applications want to interface with native phone functionality such as the GPS, the camera, and the contacts. Access to these features is implemented quite differently on different smartphone platforms, but Rhodes lets you write simple, clean code that will work on all the supported platforms.
With mobile applications, defects come in many forms. Some defects occur on all handsets, while others occur only on specific handsets. Functional defects that is, features of an application that are not working properly are only one type of defect. You must look beyond these and test whether an application works well with the rest of the Android operating system in terms of performance, responsiveness, usability, and state management.
The RhoSync server acts as a middle tier between a mobile application and the web service that it accesses for remote data. The RhoSync server stores information from back-end systems in its data store as object-attribute-value (OAV) triples capable of representing any type of arbitrary data. OAV triples allow small changes between the device and the back end to be communicated back and forth very efficiently. Because RhoSync operates on individual attribute values rather than entire objects, RhoSync handles conflicts elegantly.
Your device is identified by a Unique Device IdentifierUDID. To add a device to a profile, you will need the device id, which can be found in two places iTunes and Xcode. Verify that the device is connected to the computer and go to iTunes. Select the device from the Devices section on the left. This should reveal the summary page with some device specific information at the top (name, capacity, and so forth). If you click on the serial number, the device identifier will be revealed (see Figure 2-11). The other way to find your device identifier is to open Xcode and go to the Organizer window. You can get there through the top menu bar Window Organizer or by using the keyboard (Shift+Command+O). Click on your device in the left-hand panel and it should reveal the summary page with the device ID. There is also a handy free application, AdHoc, that you can download from the App store that will automatically compose an e-mail with the UDID of the device.
Eclipse is an IDE for developing applications. It is a preferred development platform for creating applications on many platforms such as JDK and Aptana. You can use Eclipse to develop desktop and mobile applications using the JDK integration. It's an open source application that IBM originally developed. It has a good plug-in model that easily integrates other tools. Although this isn't required when creating Android applications, using an IDE simplifies your development process by providing easy access to most of the tools available in the Android SDK. An IDE also provides syntax highlighting, code completion, running and debugging environments for testing your application, and other useful features. You can download the Eclipse IDE from
Mobile users are always on the go, and mobile applications that include integration with LBS have become incredibly popular. The Android platform makes it simple to add LBS support to applications. The degree to which LBS support is incorporated into an application is a design choice for the developer, and there are a number of options.
When developers have and follow some guidelines, their code is more cohesive and easy to maintain. Developing a set of well-communicated coding standards for development can help drive home some of the important requirements of mobile applications. For example, developers might want to do the following
The Android application framework includes traditional programming constructs, such as threads and processes and specially designed data structures to encapsulate objects commonly used in mobile applications. Developers can rely on familiar class libraries, such as java.net and java.text. Specialty libraries for tasks such as graphics and database
Thankfully, Android provides a series of clear and simple building blocks with which to create your application. Activities form the backbone of any Android app, with intents and intent receivers acting as the communication officers. Services and content resolvers cater to very specific needs such as background processes and formatted data transmission. Put all these pieces together, and you're left with a robust system for quickly turning around mobile applications.
Mobile users expect a lot from today's mobile applications. They expect the applications they install to be stable, responsive, and secure. Stable means that the application works and doesn't crash or mess up the user's phone. Responsive means the phone always responds to key presses, and long operations use progress bar indicators. Secure means that the application doesn't abuse the trust of the user, either intentionally or unintentionally. Users expect an application to have a reasonably straightforward user interface, and they expect the application to work 24 7 (especially when it comes to networked applications with a server side).
Gmail is arguably the best free e-mail service available. There's no automatic tagline on the end of your messages advertising that you're using a free e-mail. You don't have to pay extra in order to use a desktop or mobile app to access your e-mail. The spam filtering is above average, and you get plenty of storage space. In fact, Gmail works so well that many business users have come to rely on the service through the enterprise Google Apps suite.
The Android SDK provides developers with an interesting way to provide functionality outside the traditional boundaries of a mobile application by using App Widgets. Developers can use the App Widget API to create mini controls or views that can be added to the user's Home screen. These simple controls can provide a user with information about the application and remind the user to launch the application when necessary.
The iWebKit framework allows you to create HTML that matches the look and feel of native iPhone applications. As the name implies, iWebKit is customized for browsers based on the open source WebKit engine, specifically iPhone's mobile Safari browser. The iWebKit framework was developed in accordance with the Apple Human Interface Guidelines, outlining application look and feel on the popular iPhone OS. iWebKit was originally developed to optimize web sites for viewing on a mobile device.1 However, in mobile applications that use HTML in a web browser control (WebUI view) for some or all of its application interface, it is practical to utilize toolkits originally developed for web UI, including iWebKit. iWebKit can be easily integrated into iPhone applications developed in Objective-C, as well as the iPhone versions of applications developed using the Rhodes and PhoneGap frameworks. As discussed previously, all of these platforms allow you to produce native iPhone applications that can...
Mobile applications need to be ready to pause and resume at any time. Typical web form style with various fields and Submit, Clear, and Cancel buttons isn't very well suited to mobile development. Instead, consider committing data as it is entered. This will keep data housekeeping to a minimum as activity state changes, without frustrating users.
In economic terms, location-based applications are a major factor in mobile telephony, constituting half the revenue from mobile applications, and growing fast. Because they are based on the ability of the mobile network to locate devices and the relationship of mobility and location, location-based applications are as fundamental to mobile telephony as communication.
Network speed simulation is a key element of mobile software development. This feature is helpful because the actual user experience will vary during real-world use, and it is important that mobile applications degrade gracefully in the absence of a reliable network connection. The Android Emulator provides for a rich set of emulation tools for testing various network conditions and speeds. Table 2.1 lists the available network speed and latency conditions available in the Android Emulator. The higher-speed network environment found in the Android Emulator is welcome when testing core features of our applications. This is because functional test cases are often run hundreds or even thousands of times before releasing a product. If we had to compile the application, sync the application to the device, and run our application over a wireless data network, the testing time would add up quickly, reducing the number of tests performed in a given amount of time and elevating the associated...
The fast-growing market for applications drives the need for faster time to market. Just as market opportunities led vendors to release cross-platform applications on desktop computers in the 1990s, mobile applications are more frequently available across devices. Operating systems vendors vie for the attention of developers and application vendors, but improve their tools incrementally. Where such dramatic challenges exist in developing across multiple platforms, it is natural for third party cross-platform frameworks to emerge. mobile applications as common techniques by individual developers as well as in cross-platform frameworks. The new cross-platform frameworks (and the native Palm webOS) leverage these skills using an embedded web browser as the mechanism for displaying application UI. This is combined with a native application that transforms URL requests into the rendering of application screens simulating the web environment in the context of a disconnected mobile...
A background to mobile application development Despite the name, Android will not help you create an unstoppable army of emotionless robot warriors on a relentless quest to cleanse the earth of the scourge of humanity. Instead, Android is an open-source software stack that includes the operating system, middleware, and key mobile applications along with a set of API libraries for writing mobile applications that can shape the look, feel, and function of mobile handsets. The introduction of Java MIDlets expanded developers' audiences, but the lack of low-level hardware access and sandboxed execution meant that most mobile applications are regular desktop programs or web sites designed to render on a smaller screen, and do not take advantage of the inherent mobility of the handheld platform. Android sits alongside a new wave of mobile operating systems designed for increasingly powerful mobile hardware. Windows Mobile, the Apple iPhone, and the Palm Pre now provide a richer, simplified...
Sensors that detect physical and environmental properties offer an exciting innovation for enhancing the user experience of mobile applications. The incorporation of electronic compasses, gravity sensors, brightness gauges, and proximity sensors in modern devices provides an array of new possibilities for interacting with devices, such as augmented reality and physical movement-based input.
Need new digs but not ready to buy Use this app to tap into the thousands of available rentals listed at ApartmentGuide.com, with the extra features only a mobile app can provide. Take it along on your hunt and use the GPS feature to find apartments near you. Collect properties in your favorites to compare later on. When you're ready to set up an appointment to view, select a property and call or email the rental office with one touch.
We are seeing the influence of web development on emergent cross-platform techniques for mobile. Before any cross-platform frameworks existed, many developers found that embedding Web UI in a native application was a practical way to develop mobile applications quickly and make cross-platform applications easier to maintain. The user interface for mobile applications tends to be presented as a series of screens. From a high level, the mobile UI can be thought of as having the same flow-of-control as a traditional web site or web application. It is common in a mobile application for every click to display a new screen, just as a click in a traditional web application displays a new page. By structuring the UI of the mobile application such as a web application, the coding can be simplified. By actually using Web UI controls, the implementation of the user interface can be created with a single source that renders and behaves appropriately across platforms. Also, it is much easier to...
Part 1 of this book, the next four chapters (2-5), guide you through building native mobile applications. You will learn how to write code for simple applications and how to embed a browser control into a native application. These chapters are designed to give you a feel for what it is like to develop using native methodologies.
Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It is built to be truly open. For example, an application could call upon any of the phone's core functionality such as making calls, sending text messages, or using the camera, allowing developers to create richer and more cohesive experiences for users. Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that has been designed to optimize memory and hardware resources in a mobile environment. Android will be open source it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications.
The Android SDK includes a variety of custom tools that help you develop mobile applications on the Android platform. The most important of these are the Android Emulator and the Android Development Tools plugin for Eclipse, but the SDK also includes a variety of other tools for debugging, packaging, and installing your applications on the emulator.
This in-depth hook provides the concepts and code you need to start building smartphone applications with the Android programming environment, the most popular open source platform available for mobile app development. Andruicl Application Development introduces you to this environment including the operating system and SDK and provides working examples with thorough explanations to demonstrate Android's architectural features and APIs.
In Android Essentials, I cover the details of installing and using the Android SDK, making and rendering user interface tools, harnessing location tracking and Google Maps, and putting everything together with a little glue from XML parsers and networking clients. These tools and tricks should be enough to get you past your empty editor, the daunting blank canvas of the developer world, and onto the path of your own innovative mobile app. Android potentially represents our best hope for a break from the constricted world of mobile development. Use it to make something amazing. I can't wait to see what you create.
The Android stack includes an impressive array of features for mobile applications. In fact, looking at the architecture alone, without the context of Android being a platform designed for mobile environments, it would be easy to confuse Android with a general computing environment. All of the major components of a computing platform are here and read like a Who's Who of the open source community. Here is a quick run-down of some of the prominent components of the Android stack
Mobclix is a mobile application platform that, as part of its solution, delivers analytics data for the Android along with its ad network. Mobclix is one of the largest mobile ad exchange networks and gives developers a sound technology if they decide to pursue an ad-generated business model.
Dialog boxes are a common UI metaphor in desktop, web, and mobile applications. They're used to help users answer questions, make selections, and confirm actions, and to display warning or error messages. Dialog boxes in Android are partially transparent, floating Activities that partially obscure the Activities that launched them.
With more than 16 years of work experience in mobile, security, and web technology for both national and international projects, Massimo has worked as a project manager, software engineer, research engineer, chief security architect, and software specialist. He has been a visiting lecturer and supervisor for the Security of Communication Protocols course at the Networking Laboratory of the Helsinki University of Technology (TKK). He is very familiar with security communication protocol testing tools and methodologies, he has developed Internet and mobile applications for many different technologies, and he has used many programming languages.
Since Rhodes apps are native binary applications, they can be submitted and distributed through the Apple iTunes App Store, BlackBerry World, Android Marketplace, and other distribution channels. To build for a device, you typically need to sign up for those developer programs and acquire cryptographic keys required to sign applications, even though you will not be writing in the platforms native SDKs. You also need to observe each platform's user interface guidelines so that your applications can be approved. (See Part 1 of the book on submitting apps for your target platform(s).) Although Ruby is an interpreted language, using Rhodes, you cannot run arbitrary Ruby code at runtime by using, for example, string eval. That capability was intentionally removed in Rhodes Ruby interpreter to comply with iPhone App Store's Rule 3.3.2 that states
Android's official app store is the Android Market. While the open nature of Google's platform allows you to download apps from anywhere (several other app download sites exist), the Android Market is the largest collection and offers a secure way to pay through Google Checkout.
Apps Apple's App Store may have more items, but Android lets you install what you like. With no pre-approval, there's no censorship of content. Tethering Android opens up the potential to hook up your laptop to a 3G tablet and use its interne connection without having to pay extra. Samsung says all the apps in the Android Market will run on the Tab, although just a small number are optimised for this size of screen. The iPad, similarly, can run almost any app designed for the iPhone (or iPod touch), and a large number have already been optimised for the tablet, or designed for it from scratch, including magazines from many well-known publishers. Standard Android apps appear on the Tab at 800x400 size in the centre of the screen and look better than iPhone apps do on the iPad.
Thanks for your interest in developing applications for Android Increasingly, people will access Internet-based services using so-called non-traditional means, such as mobile devices. The more we do in that space now, the more that people will help invest in that space to make it easier to build more powerful mobile applications in the future. Android is new - at the time of this writing, there are no shipping Android-powered devices - but it likely will rapidly grow in importance due to the size and scope of the Open Handset Alliance.
Now that we've provided a brief introduction to the Android Platform, we'll describe how it appeared on the mobile-development scene. Mobile phones use a variety of operating systems such as Symbian OS, Microsoft's Windows Mobile, Mobile Linux, iPhone OS (based on Mac OS X), and many other proprietary OSs. Supporting standards and publishing APIs would greatly encourage widespread, low-cost development of mobile applications, but none of these OSs has taken a clear lead in doing so. Then Google entered the space with its Android Platform, promising openness, affordability, open source code, and a high-end development framework.
Android has the potential for removing the barriers to success in the development and sale of a new generation of mobile phone application software. Just as the the standardized PC and Macintosh platforms created markets for desktop and server software, Android, by providing a standard mobile phone application environment, will create a market for mobile applications and the opportunity for applications developers to profit from those applications. Why hasn't it been profitable to develop mobile applications for smartphones until now And what are the problems that Android alleviates
As a product of the OHA's vision for a robust and open source development environment for wireless,Android is an emerging mobile development platform.The platform was designed for the sole purpose ofencouraging a free and open market that all mobile applications phone users might want to have and software developers might want to develop.
Android is the first open source mobile application platform that has the potential to make significant inroads in many markets. When examining Android there are a number of technical and market-related dimensions to consider. This first section introduces the platform and provides context to help you better understand Android and where it fits in the global cell phone scene.
The process for building Titanium Mobile applications for iPhone devices is very straightforward. Download your Development Certificate and Provisioning Profile from the Apple iPhone Provisioning Portal. You will need to enter them in the screen titled Run on Device. Titanium will then build and sign your application, put it into iTunes, and trigger a sync to install it on your device. The only caveat is that you need to do this on a Mac that is configured to sync applications with your iPhone.
Caution Nowhere in this example application have I done any useful error handling. Mostly I'll catch exceptions and print something to a log. Your eventual mobile app will have to be better about errors than I'm currently being, because, trust me, networking on the mobile can be a bit touch-and-go.
All Android mobile applications, at least in the traditional sense, will revolve around an activity. If you've had any experience with other mobile platforms, Android's activity is quite similar to BREW's applet or Java ME's midlet. There are, however, a few very important differences.
Because a mobile application typically has many screens, navigational controls are often helpful. Several different approaches to navigation are commonly implemented to help users find different areas of the application. In addition to the navigational paradigms implied by the design pattern details in the Screen-Based previoussection, many devices implement toolbars, tabs, or menus.
In addition to developing C++ and C -based applications with the .NET Compact Framework, Windows Phone 7 will provide support for application development and game development using Silverlight and XNA, respectively. Microsoft Visual Studio 2010 and Expression Blend 4 for Windows Phone will be the primary tools used for Windows Phone 7 development. Unfortunately, Visual Studio 2010 does not support mobile application development for versions of Windows Phone prior to Windows Phone OS 7.0, so in order to develop for both devices, you will need to purchase licenses for both Visual Studio 2008 and 2010.