Tuesday, August 27, 2013

Amazon Kindle Publishing for Books, Technical Manuals & Blogs

This article provides insight into publishing content for Amazon's Kindle Fire, Kindle Fire HD and other Kindle versions. The first part of the article discusses the KindleGen tool used to generate a digital book or manual for Kindle. The article also talks about the files that must be created so a book or technical manual can be published for Kindle users. And it provides an overview of Kindle Previewer, which is used to view a Kindle book or manual before it is publish for distribution. Lastly, it provides insight on how to make a Kindle version of a blog available for purchase from the Amazon Kindle store.

International Digital Publishing Forum (IDPF)


The IDPF is responsible for defining and managing the specifications adhered to by Kindle and other devices that provide a way for users to read electronic publications. You can learn more about IDPF by visiting http://idpf.org .

Getting Start With Kindle Publishing using KindleGen


There are a couple ways you can make your book or technical manual available for Kindle users. One way is to use KindleGen, which is a tool used to generate a file (.mobi) that Kindle can read. You can download KindleGen from the Amazon website. To begin you will need to click the "I agree to terms of use" to accept the terms of use and download KindleGen. Next you will need to click the "Download Now" button that corresponds to your computer's operating system (i.e., if you are running Windows XP, Vista or Windows 7 you would click the first Download Now button).

You will also want to download the sample files that are available (the arrow in the picture below is pointing to the link you must click to download the sample files). The sample files include useful examples that you can review to see the layout, navigation and other features of a Kindle publication.


Once you have downloaded the files you will need to unzip them to a desired location on your computer. It is useful to create a folder on your c:/ drive (if using windows) so you can easily find and access the files. If you download all of the files available, you will have a number of files to access. The following picture shows the zipped files and the folders created after I unzipped the files.


KindleGen


KindleGen is a command-line tool, which means you cannot access it's functionality by pointing and clicking a user interface. Instead you must type commands to access and use KindleGen. To use KindleGen, after I unzipped the files, I created a folder called KindleGen on my c:\ drive, as shown below. I then copied the kindlegen.exe file into this folder so I could access it more easily.


Since kindlegen.exe is a command-line tool you must use a Command window (if you are using a Windows operating system); or, the Terminal window (if you are using a Mac) to execute commands. When you are ready to compile your book or manual you will type:  kindlegen.exe press the Space key on the keyboard and then type the name of your .osf file (described below) and press the Enter key. This will execute the command to compile your book or manual.

The Files That Make Up Your Kindle Book or Manual


When you use kindlegen.exe to create a digital copy of your book; KindleGen will create a .mobi file. However, there are several files you will need to create to ensure you have a complete publication. If the publication will be sold on Amazon some of these files, discussed below, are required. (Amazon published a manual that outlines its publishing criteria for Kindle. Following is the link to the publication:  http://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf )

You don't need a special tool to create the book you want to make available to Kindle users. Microsoft Word can be used not only to create your book; but also to create the front cover and back cover. When you save your document(s) using Word you can select web page filtered (as shown below). This option ensures your file only contains standard HTML elements.



Your book chapters can be created as either separate HTML files (a file for each chapter); or, a single file (all chapters in one file). If you create a single file you will need to add anchors (see HTML Hyperlinks for more information) to your document so your table of contents listings can link to the anchors.

The following list briefly discusses some of the files that will make up the digital version of your book or technical manual:

1. Cover - This is the page users see when they first access your product using Kindle Fire.



2. Book or Manual File(s) - This is your book or manual (excluding the front/back cover and the table of contents).


3. Navigation Document - The Navigation document (NCX file) is a logical table of contents. The NCX file (i.e., toc.ncx) is built using Extensible Markup Language (XML) standard concepts.  The .ncx file includes elements to define the text that should display in the table of contents and the link to the text.  Following is a picture of what the table of contents looks like using the Kindle Previewer (discussed later in this article):


 Below is the code used to build the table of contents shown above.



Notice, the <navPoint> element is used to define a single table of contents entry that includes the text to display and the page the user views when the text is clicked. The <navLabel> holds the <text> element, which defines the text to display in the table of contents. (Note that when you work with elements each opening element must have a closing element. For example, <text></text>.)

You may be wondering how Kindle knows Cover and cover.html belong together? It reads the information between the <navPoint> and </navPoint> elements as belonging together. Further, it knows Cover is the text to display because it is between the "text" elements. The "text" elements must be enclosed by the <navLabel> element. This means every line that must show up in the table of contents should be preceded by <navLabel><text> and followed by </text></navLabel>. Every link associated with the table of contents text must be preceded by <content> and followed by</content> (as shown in the above picture). The src property (of the <content> element) defines what page Kindle should jump to when the text is clicked. For example, when Cover is clicked Kindle should jump to the following source (src): cover.html. Lastly, the playOrder property associated with the <navPoint> element defines the order of the table of contents items. The id property provides a way to define a unique ID for each <navPoint> element since a file will usually have multiple navPoint elements.

5. Publication Header File - The Publication Header File (.opf file) includes information about the book or publication including the author name, publisher name, book title, etc. It also lists the files that make up the entire book (located between the <manifest> </manifest> elements). Following is a picture of an .opf file displayed using an XML editor, which makes it easier to create, read and edit the file. Notice it uses elements just as the .ncx file uses elements. Therefore, you would expect each element that is opened (in the .opf file) to have a matching closing element. Notice this file also includes the Spine element (after the <manifest> element).



4. Back Cover - The contents and picture that should display as the back of the book.

6. MOBI File - KindleGen uses the .opf file to generate a book or manual that includes all of the files listed between the <manifest> elements. The result is a .mobi file. (For example, my .opf file is called "business system analysis.opf". From the Command window I typed: kindlegen.exe "business system analysis.opf" and then pressed the Enter key to execute my command. KindleGen then created the Business Systems Analysis.mobi file, which I opened using the Kindle Previewer.)

If you want to learn more about creating a Kindle book and you own a Kindle; or, you use a mobile phone and have the Kindle app installed you can order the free book titled: Building Your Book for Kindle.

The Kindle Previewer


The Kindle Previewer provides a way to look at a book or manual to see how it will look when it is opened using Kindle. Kindle Previewer includes the options that allow you to browse through the pages of your book or manual. You can view your table of contents and make sure your product is properly formatted for the various Kindle versions.


You can even check out your front and back covers. If you are interested in learning more about the Kindle Previewer you can access the Kindle Previewer user's guide at the following location: http://kindlepreviewer.s3.amazonaws.com/UserGuide.pdf. (Note that you can download and install the Kindle Previewer from the same page from which you download KindleGen: http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000234621)

Amazon Kindle Samples


If you downloaded the samples when you downloaded KindleGen and Kindle Previewer you have great example files. You can open each of these samples to see the associated files and file structure (i.e., the images are placed in the image folder, etc.). You can use the Kindle Previewer to open the .mobi file in each sample to see how the navigation works and to see digital book looks like. And, you can use any HTML editor to open the HTML files. You can also create a copy of the .opf and the .ncx files and open them in an XML editor to see the contents of these files as well. Sometimes looking at examples can help clarify how things work.

Kindle Direct Publishing


If you want to avoid KindleGen you can still publish your book for Kindle users to access. If you use Kindle Direct Publishing (KDP) you not only provide readers an alternate way to access your book; but also you retain 70% of your royalties. And, KDP provides a way for you to view your book using an online viewer. You can use Microsoft Word to create your book; and, you can then upload it to the Kindle Direct Publishing site. If the book already exists, all you need to do is upload it. You can learn more about building your book for KDP by reading Amazon's Simplified Formatting Guide and access the Getting Started page.


Kindle Publishing for Blogs


Lastly, if you have a blog that contains useful information you can make your blog available to Kindle users who buy from the Kindle store. There are two key reasons a blogger would want to make a blog available on the Amazon Kindle store site: 1.Those who want to view blog content without an internet connection can do so; and, 2. Bloggers make money when customers download the Kindle version of the blog.



Kindle Publishing for Blogs also means customers receive the entire blog article, right to their device, as new articles are posted.



To get started you will need to create a Kindle Publishing account, if you don't already have one.  You will need to create a Masthead file, which is the image that will display as the banner when users access your blog using Kindle. You will also need a screenshot of your blog to display on your blog's Amazon page. And, you will need the RSS feeds URL for your blog. (If you use Blogger the feed URL can be accessed by going to the bottom of your blog's page and clicking: Subscribe to: Posts (Atom).)

To publish your blog for Kindle access you can visit the Kindle Publishing for Blogs site at https://kindlepublishing.amazon.com/gp/vendor/sign-in

Conclusion


Our society is busier than ever. And, some people want to avoid piling old books in the attic; while others want to access content sooner rather than later.  So, digital publishing may not be for everyone; but there are certainly quite a few who have found a niche in it.

Tuesday, August 20, 2013

Business Intelligence: Using Mining Structures, Models, Cubes & Dashboards

In a previous article I discussed the design of the data warehouse database. This is the first article in a series of articles that discuss ways to access and use data warehouse data to achieve corporate goals. Topics discussed in this article include mining structures and models, cubes, scorecards and dashboards.

I remember when I was first exposed to SQL Analysis Services. That was when it was launched for SQL Server 2000. Business Intelligence (BI) has come a very long way since then; and, Microsoft has (over the years) continuously updated its suite of BI tools. With SQL Server 2000 Analysis Services accessing data warehouse information took more effort and provided less options than today.

Today BI developers can use the Business Intelligence Development Studio or Visual Studio 2010 (or higher) to build mining structures and models that help sales and marketing teams launch more effective strategies to sell products or services. And, let's face it, nearly every company has a product or service it wants to sell. And, most want marketing to be more efficient and effective in this sluggish economy. What BI can do is answer the question "who" is most likely to buy my product or service. Instead of sending marketing materials to every single prospect; companies can narrow the list down to the people most likely to make the purchase. BI developers can also build cubes; and, ultimately develop scorecards so companies can monitor sales progress; or, determine an organizations progress towards meeting established targets. 

Getting Started


Before a BI developer can build scorecards and dashboards; there are preparation steps that must be followed. The developer must for create a business intelligence project to access and prepare the data in the data warehouse. But cubes are not the only power-tool offered through BI. Mining structures and models give access to predictions that can save time and money as well as boost sales. However, Before a mining structure and model or cube can be created the following three tasks must be completed from within SQL Server Business Development Studio; or, a BI project created with Visual Studio 2010 or higher:
  • Create a Data Source: A connection must be made to the database that contains the data to be accessed.
  • Create Data Source View(s): A view of the data, to be accessed, must be created. The Data Source View uses the data source to access the database so developers can select the tables/views that contain the data. If a developer is to use some (not all) of the columns in a table the developer can create a Named Query using the Data Source View. Although the project is Analysis Services, Transact-SQL (T-SQL) is used to build the Named Query because the query directly accesses the database objects. The T-SQL select statement can be used to select the desired table and fields, as shown in the following picture.


Likewise, if a New Named Calculation is created, from the Data Source View, T-SQL expressions are also used.



  • Create Dimension(s): Data that presents meaningful attributes to support a measurable event, within an organization, are modeled in business intelligence as dimensions. Dimensions provide the data that helps companies learn more about itself. For example, a company's purchases are measurable events as are its sales. Details, or attributes, associated with sales might include products, promotions, customers, region, etc. The details, which are the data stored in dimension tables, provide a way for companies to answer questions about  the internal events. For example, the sale of products might lead the company to ask what products brought in the most money? what products aren't selling? If companies spent money on promotions that company may want to know what ads were tied to peaks in sales? A company may even ask who are our top 10 customers? Or, in what region is our product most popular?  Dimension details is what provides the details that gives companies answers to these questions. And, in a Visual Studio 2010 BI project the dimension(s) are defined before mining structures and models or cubes are created.

Mining Structures and Models


Any company that has historical promotional, orders/sales, demographic and other data has a data goldmine. BI developers can create a mining structure that defines the input data for mining models. The mining models can use demographic (such as gender, age, region, marital status, etc.) and other data to identify the makeup of and drivers for customers who have purchased a product or service. This information can then be used to identify the people most likely to buy. The Microsoft SQL Server 2012 Tutorials - Analysis Services Data Mining tutorials provide BI developers a great foundation to learn how to build a business intelligence project and work with mining structures and models.

Through the tutorials the developers use data in the AdventureWorksDW2012 database to build three mining models: the Decision-Tree, Cluster and Naive Bayes. In addition, the tutorial teaches developers to test the accuracy of each model's predictions to identify the most accurate mining model by creating a Mining Accuracy Chart. Developers begin by selecting the models to be compared.




The Lift Chart's property window (bottom right corner in the following picture) displays the Model Name, Score (which conveys the effectiveness of the model), Population Correct  (a value that defines the percentage of population data that is correct) and Predict Probability (a value that tells how accurate the predictions will be).  There are several useful resources that provide additional information on Lift Charts as follows:  http://technet.microsoft.com/en-us/library/ms175428.aspx and http://msdn.microsoft.com/en-us/library/ab77eca1-bd48-4fef-b27f-ff5b648e0501%28v=sql.90%29 . In the following Lift Chart, the TM_Decision_Tree model is closest to the Ideal Model and will, therefore, provide the most accurate predictions regarding who will buy the product (which in this example is a bike).




Once the company has the profile of the persons most likely to buy the product; marketing materials and promotions can be designed for the targeted audience. The following paragraphs provide additional information about Microsoft models used in the above chart.

Decision Tree Model


The Decision Tree and other mining models, used by Microsoft BI tools, apply advanced statistical methods that have been used for years to analyze data. 

The Decision tree model was developed to make predictions. In the following example, the decision tree results originate from an All node for bike buyers (also taken from Microsoft SQL Server 2012 Tutorials - Analysis Services Data Mining). The light blue represents the group that has a 50.59% probability of buying a bike versus the pink group that has a 49.41% probability of not buying a bike (as shown in the properties window in the bottom right corner of the picture below).


The decision tree presents the attributes as nodes that can be expanded or collapsed. From the All root node the decision tree shows bike buyers in four groups of people based on the number (0, 1, 2, 3 and 4), which defines the number of cars owned.


From there users can see the people grouped by income, age, commuting distance, marital status, etc.


Users can mouse over a node to see the number of cases broken down by the light blue (represented by 0), pink (represented as a 1) and cases with missing values (represented as the word missing).


If the drill-down option is selected when the mining model is created; users can select the drill-down option to view the cases associated with a node.




The Dependency Network tab of the Mining Model Viewer provides access to the All Links slider. This view shows all of the factors relevant in predicting whether someone will buy a bike.


Users can move the slider down towards the Strongest Links option to see the factors that that have the most impact on predicting whether someone is or is not a bike buyer. According to the decision tree model (shown below) age, region and number of cars owned are among the strongest influences. Notice, in addition to the predictions the influencing factors also represent information someone is not likely to conclude without a model.


The following paragraphs present additional information on the two other models that were compared to the decision tree model to determine the most accurate model in this scenario.

Microsoft Clustering


The following diagram shows the data modeled using the Clustering algorithm. Notice the clustering mining model presents the same data in a way that looks very different from the decision tree model. The data is grouped into clusters.


The Cluster Profiles view, show below, provides details on how the clusters are divided into the same attributes (income, age, commute distance, etc.) as the decision tree.


Microsoft Naive Bayes


With the Naive Bayes model the user is first presented the Dependency Network tab. The All Links slider is moved to view the influencing factors used to identify bike buyers.



The Naive Bayes model also has an Attribute Profiles view and an Attributes Characteristics view, as shown below. The following view sow the probability based on attributes.


Querying Multidimensional Data


When creating the inputs for a model the BI Developer uses the Mining Model Prediction tab, which is available from the Mining Structure design window. The mining model is built from the mining structure, which uses Multidimensional Expressions (MDX) as shown in the picture below. The Mining Model Prediction window has an option that allows the developer to manually build the MDX query; or, the developer can select the input table(s)/field(s) and the system will build the MDX query.  Follow are a few resources to learn more about MDX:  Basic MDX Query article; Key MDX concepts article: http://technet.microsoft.com/en-us/library/ms144884.aspx; and MDX Reference: http://technet.microsoft.com/en-us/library/ms145506.aspx .

Cubes


While mining models aide in predictions, cubes provide a way for developers to select views or tables that will be used as measures, which are numeric values pulled from a fact table. The developer can then select one or more dimensions (discussed in the beginning of this article) to be associated with the measure. The following picture shows the Internet Sales table selected as the measure. Geography, Customer, Product, DimPromotion are all dimensions associated with the measure.


Once the measures and dimensions are created users can access the cube's Browse tab and select a dimension. From within the Browse tab users can view the dimension data associated with the measure. In the following example the Customer dimension was selected, therefore; the Browse details show sales data for each customer.


SharePoint 2010 PerformancePoint Dashboards


SharePoint 2010 extends the capability of BI cubes. Developers can make use of SharePoint's business intelligence capabilities by creating a SharePoint site collection from the Business Intelligence Center template. SharePoint creates a Business Intelligence site collection that provides a way to manage external connections, create reports, scorecards and dashboards. (The following article provides useful information on the difference between a scorecard and a dashboard:  http://office.microsoft.com/en-us/sharepoint-server-help/what-is-the-difference-between-a-dashboard-and-a-scorecard-HA101772797.aspx)


Developers can use the Dashboard Designer, accessed from within SharePoint, to define color-coded thresholds that reveal values below, above or at business targets (for performance measurement) and perform other tasks.



Scorecards let managers and executives view data, in real-time, to remain abreast of an organization's progress towards reaching established goals. Excel charts (discussed in an upcoming post) and reports can be added to the business intelligence center to build dashboards that can help the entire organization improve customer service, sales, productivity and more (see the following tutorial on balanced scorecards:  http://technet.microsoft.com/en-us/library/hh750382%28v=office.14%29.aspx).



With SharePoint 2010 organizations not only manage documents; but also achieve piece of mind by knowing where a company stands with every aspect of its key business operations. The following link provides access to a tutorial that includes instructions on how to build a dashboard and scorecards:  http://msdn.microsoft.com/en-us/sql10r2byfbi-trainingcourse_sql10r2byfbi08-hol-01.aspx

Thursday, August 8, 2013

Mobile Software Programming: Designing & Building Mobile Apps (Android)

We've all heard the Nick D'Aloisio's story right? He's the British high school student who built and sold a mobile news app to Yahoo for $30 million earlier this year. He is just one of many developers who have learned they can make good money developing mobile apps--particularly ones that add value to social networking apps. This blog article presents an overview of software design and programming associated with one of our biggest passions "the mobile phone".

Introduction


Software development for mobile devices refers to developing software for a mobile phone, tablet or other handheld device. Within the Information Technology community mobile phone development is part of the telecommunications (or telecom) industry.

When we pick up a mobile phone to make a call we are holding hardware manufactured by Motorola, Apple, Nexus, Samsung, LG Corporation or some other corp. The phone has an operating system (OS) and additional apps so you can make calls, store phone numbers, add calendar appointments, etc. The OS might be Android built by Google. Or, you may have a phone running Windows by Microsoft; or, even a iPhone running iOS by Apple. When you install applications on a phone you select applications that are compatible with the phone's OS. 

Ever stop to wonder why you can't use a Verizon phone on a Sprint network? When Google, Microsoft or other software development company develops a mobile OS that company does not customize the OS for one or more networks (such as Verizon, AT&T, Sprint, etc.).  Instead Verizon, AT&T, Sprint and other telecommunication companies hire software developers to customize the mobile OS so the phone connects to and communicates with their network. I had an opportunity to support a software development project at Nextel, before it was acquired by Sprint. It was an amazing, insightful opportunity.



There are three types of apps that can be developed for the mobile phone: 1. Mobile version of a web application; 2. A mobile business or other non-game application; and 3. a mobile game application.

Mobile Version of a Web Application


Often companies want software developers to build a web application, which is installed on a web server and accessed using a web browser. These developers are often tasked with building a mobile version of the web application. When building a mobile version of a web app a phone's OS isn't considered. This is because the user will use the phone's browser to access the mobile version of the web app. Consider the following blog site.


Following is the mobile version for the same page shown above. Notice the image is gone and the navigation has changed. Since this is a blog app a "categories" drop-down is added so users can select a category and clicks the Refresh button. The page then displays a list of articles associated with the selected category. The links have been added so the user can navigate to the details stored on a separate page. Content on a mobile page is typically limited so the page loads quickly.


The following picture shows the page the user was directed to after clicking the "Day 1 Class Notes - 7th Grade English... link on the above page.


The mobile version of a website or web application is designed to be intuitively; and, enable users to easily access information. In addition, images may be removed, especially if they are large, so loading pictures doesn't slow down the page load. Lastly, header and footer designs are either simplified or not shown on a mobile version of the site or web app.

Mobile Application Design


The a key different between developing a mobile web app versus a mobile app or mobile game app. The key difference is the non-web mobile app or mobile game is developed to be installed directly onto a mobile device. Therefore, the mobile phone's operating system is a consideration when developing a non-web mobile app or mobile game.

There are various aspects to designing a mobile app including the application structure. Every mobile app (including games) include a top Level page (also referred to as the Start Screen). The Start Screen is the page the user sees when first accessing the application. The Start Screen for mobile apps have an action bar (that includes the app's icon or title). The action bar may include a button to create content; and,t it may also include a search icon so users can search content. The Start Screen may include tabs or other ways to navigate through various views of the data. Mobile apps built to manage data also include category views and detail/edit views.  Let's look at the design of a couple of Android apps.

Consider Google's Blogger application (or app) used to manage blog articles. Notice the action bar at the top includes the icon and the app title. The pencil is the button used to create a new post unless the checkbox beside a post is selected.  In that case the pencil is the button used to display the edit post page view. In addition three tabs are displayed so the articles can be grouped using the following categories:  All, Published or Draft. This means users can view all articles; only published articles; or, articles for which a draft has been created. In the following picture the Published category is selected.


Notice the top level page includes a list of articles that shows us the title of the article, the keywords associated with the article and the date the article was published. The user clicks on an article to view the article details.  (Note that Google's Blogger can be accessed using the mobile phone's browser; or, users can download and install Google's Blogger mobile app from Google Play.)

Consider the Calendar mobile app used to manage events or appointments. The action bar at the top of the page includes the month and year. It also includes a menu so users can select a view as follows: Day, Week, Month or Agenda. And, the action bar has a button that allows the user to create a new event. The top level page also has tabs that include the same options as the action bar menu. If the user selects week the user can view all events for the week. Or, if the user selects Agenda the user views a list of all events. From any of these views the user clicks on an event to view the details pages that contains detailed information for the event.

Twitter's action bar includes the Twitter icon, the tab selected (in the following page Me is the tab select). Also notice you can search content or create a new tweet from the action bar. The top level page displays profile information that spans 2 pages. The tweets, # of followers and # following of people following you are also included. In addition, only the first few tweets are loaded when the page displays. This approach ensures users don't have to wait too long to view the top level page. Notice the Home, Connect, Discover and Me options are available from the top level page. As previously mentioned, the following capture shows the Me option selected.

The mobile music app presents an example of how the top level can offer users a number different views to present the same data. For example, the Songs view lists each individual song (and yes I do listen to Christmas music all year despite my daughter's complaints). The Artists view groups songs by artist. Notice in the following picture I have songs from three Take 6 albums. The music app groups all of the Take 6 albums under one artist and displays the picture for each album. Users click the button with a circle and arrow to expand or collapse the items listed under an artist. The Albums view groups the songs by album. And, the Playlist view groups songs by favorites, most played, recently played, and recently added.


When the phone is turned landscape the app automatically displays the album image for every album. The title of the album playing scrolls across the bottom of the album image.



Notice, most mobile applications follow a design concept that focuses on making user access intuitive and simple. In every example, the mobile application is designed so users spend more time using the app and less time learning "how to" use the app. To learn more about designing mobile apps view Google's Design page for mobile apps.

A Non-game Mobile Application


Android applications are created using Java, which is one of two popular programming languages used by businesses across the country. Android is a multi-user system in that each application is treated like a different user; and, each application is automatically assigned a unique user ID when it is installed. Also, once installed, the Android app resides in its own security sandbox. And, the system ensures each app only performs the actions its permissions allow it to perform based on selections made by the user during the installation process.


Building Your Development Environment


Mobile app programming can be interesting and fun--especially for those who spend hours on the computer. Prior to building an Android app you have to configure your computer (or laptop) to serve as a development environment. This includes downloading and installing the Android SDK - ADT Bundle for Windows or other platforms.



Once you download the ADT Bundle you end up with a zipped file called:  adt-bundle-windows-x86-20130729.zip (unless you download the 64 bit for Windows or version for a different operating system). You will need to add a new folder to your computer and then extract the contents of this file to the new folder you created. When you navigate to the extracted files you will see the SDK Manager.exe.


You can double-click the SDK Manager.exe to install the Android SDK tools including the Eclipse plugin, Android app samples and more.


Once you have installed the Android SDK you can launch Eclipse by navigating to the folder you created and then exploring the contents of the Eclipse folder. Locate and double-click on the Eclipse.exe file to launch the Eclipse development environment.



The Android Developer Tools splash screen displays, as shown below.



Next, the Eclipse Integrated Development Environment (IDE) displays. You can then create a project and begin developing Android apps.



Once you have reviewed the Android App Fundamentals you can use the Training link to learn how to build your first Android App. The training presents the steps on how to create a project, build a simple user interface and more. The best rule of thumb is to following the trainings to learn how to build an Android app. Once you are successful at following the trainings and you understand how the training apps are developed; you can then practice building small apps to become experienced in building custom apps. Most importantly, don't expect to conquer the Android app world overnight.

After you have finished developing your app you will want to test your app. The Android framework includes an integrated testing framework so you can test your application. In addition, the Android SDK includes tools that enable you to setup and run your test applications. Once you have completed testing you are ready to learn about distributing  your app.

Next, you'll want to follow the steps necessary to publish your Android app to Google Play, which is the tool Android users turn to to pay for, download, and install mobile apps. To publish your app to Google Play you must become a registered developer. This is part of the process required to "Register for a publisher account". Be prepared to pay the $25.00 registration fee. This process will enable you to publish your Android app to Google Play and make it available to your target audience.



Whether you are just getting started with Android development; or, you have some experience you may enjoy your development experience more if you join a development community.  Or, if you want to become an Android developer; but you are a bit nervous join a development community and read about other's experiences. Development communities share information. This approach gives you access to fellow developers with whom you can share problems and gain insight, etc. There are several communities that you may find useful. A few of these communities are listed in the following paragraphs.

The first community is  XDA Developers, which is a software development community that focuses solely on mobile technologies. The community includes over five million users and the group shares tips, helps troubleshoot problems and more.  XDA Developers enables users to view and download content as a guest. However, to post comments you must register. XDA Developers can be accessed by navigating to http://forum.xda-developers.com/ .  XDA also have an XDA TV channel that presents very useful information. The Register button is located in the far right corner of the page as shown below.


You can also join Google's Android Developer group at https://groups.google.com/forum/#!forum/android-developers . Android Community is also another choice. Android Community is an open-source project community led by Google. You can learn more about the Community by visiting the following link: http://source.android.com/index.html .

A Mobile Game Application

Game developers can use Google Play game services, and their imagination, to building interactive, addictive games.


Game developers can also incorporate achievements that unlock new game capabilities once a player obtains a number of points defined by the game developer. 


The achievements can be tied to levels (i.e., a player completes level 1 after earning 100 points, which then unlocks level 2). Or, developers can tie achievements to game capabilities. For example, with the game Plants vs Zombies players must reach a certain level in the Adventure part of the game to unlock the Quick Play functionality.




Another very useful option that can be added to games is Cloud Save. Developers can incorporate the Cloud Save service so players can play a game across multiple devices. For example, while in the car a child may play a game using a mobile phone. Once the child gets home he can go to a computer and pick up where he left off by playing the web version of the game. Cloud Save enables data to be synchronized across multiple devices so the player never looses progress as he moves from one device to another.

Games can also include a capability called leaderboards, which can be used to up the stakes by allowing players to compare their score to previous game scores; or, top scores from other players. When the developer creates a leaderboard for a game the developer programs the leaderboard to submit the score to one or more leaderboards at the end of a game.

At the end of each game the game checks to see if the player's score is better than a previous score, which can be compared to daily scores, weekly scores or all-time high scores. The game will always update the leaderboard with the best score so the player (or other plays) can see how good a player is at the game.

Games can also be built to support multiple players (referred to as multiplayer games). For example, the real-time multiplayer game can be developed to include participants and a virtual meeting room, used as the game space. Games can be designed so that a player can invite other players to the virtual meeting room. Players who accept the invitation are joined to the meeting room. Or, the game can be designed to automatically match players to a meeting room based on preferences stated by the player.

Lastly, with Google Play game services game developers can build games so players can sign into the game using their Google+ account. Users can play other Google+ players by accessing multiplayer mode on the mobile game. Game players can even compete with one another and compare scores. In addition, developers can add a Google+ Share button so players can post tips, progress and other information about the application right to their Google+ wall from within the game--adding the power of social networking to a player's experience. Like non-game applications, Android game applications must be published. Games are published  to Google Play Game Services and to Google Play.

Future posts will include more details on mobile programming and programming for the Amazon Kindle (which is pretty hot right now).

This article has discussed a few of the capabilities available to game developers. Note that there is an interesting video about game development at:  https://developers.google.com/events/io/sessions/326367481. The video is hosted by Dan Galpin, who is a Developer Advocate; Jaewoong Jung, who is a software engineer that builds games; and Jennie Lees, who is a product manager.

For More Information


The following links provide access to trainings, tutorials and additional information you may find useful in your endeavor to become an Android app developer, Android game developer or both: