Microsoft Visual Studio

Denver Visual Studio User Group   www.DenverVisualStudio.net
"mobile first, cloud first" - "any developer, any app, any platform"

 

 
 
 Review Details

Denver VS UG - Home    

     Also see Reviews and How To Review.
   
 
Start Here! Build Windows 8 Apps with HTML5 and JavaScript
(Microsoft Press)
Author(s): Dino Esposito, Francesco Esposito
Published: 2013, Pages: 388
Print ISBN:978-0-7356-7594-0| ISBN 10:0-7356-7594-5
Ebook ISBN:978-0-7356-7592-6| ISBN 10:0-7356-7592-9
Publisher (more . . .):  Microsoft Press

 

   
 
 Review
 

 

 Four out of Five Stars
  Reviewed: October, 2013
  Reviewer: Carlos A Peralta
 
       With the release of Windows 8, Microsoft brought the concept of launching apps to an operating system that could be used on a wide range of computers – ranging from tablets to desktops. There are several methods for developing applications on Windows 8 and one of these is with HTML5 and JavaScript. In this book, written by Dino Esposito, and his son, Francesco Esposito, they hope to show that developing apps for Windows 8 is something many can accomplish with some knowledge of existing web or development technologies – after all, Francesco was only 15 when they published start here! Build Windows 8 Apps with HTML5 and JavaScript.

     The authors suggest some knowledge of HTML5 and JavaScript, and wrote the book to target “experienced beginners”. These are people with development experience in other languages, such as COBOL, or older .NET languages like Visual Basic 6. In other words, the book is for anyone who is new to Windows 8, Windows Phone, Single-page applications, or Silverlight. Those who are advanced developers may not appreciate the book as much.

     Targeted towards beginners, the book starts off nicely by boosting the reader’s confidence and their abilities in writing mobile apps. The authors claim that creating mobile apps is now easier than ever and that is why we see a lot more teenage developers today than we ever did in past generations. A mobile app generally focuses on completing a task, does not take much coding, and makes it easier to convert ideas into applications. By knowing HTML5 and JavaScript we can create mobile apps that might improve our daily lives or apps to sell in the Windows marketplace. The initial focus is on mobile apps running on the Windows Phone platform, perhaps the easiest mobile platform to develop for. Translating the concept of mobile, Windows Phone, apps into Windows 8 is similar.

     About a third of the book covers essential fundamentals required to create an HTML5 Windows 8 application. The book gives a quick overview of Windows 8 and a more detailed overview of installing and working in Visual Studio 2012. Those who have worked with other IDEs, and are new to Visual Studio, should be able to quickly learn how to create and save a new project, choose the correct template (starting point), the file structure of a project, and debugging a project.

     A very good introduction is also given on HTML5, CSS, and JavaScript. The authors do suggest that those interested in gaining further knowledge on HTML5 and JavaScript should read other books. I found the material covered in the fundamentals to be a bit much; but those truly new to HTML5, JavaScript, or WinJS (apps built for Windows 8 in HTML5 and JavaScript) can appreciate the well detailed overview.

     Skipping the first third of the book covering HTML5, CSS, and JavaScript would be ok for those with experience in these technologies; but I would highly suggest at least glimpsing through the HTML5 and JavaScript chapters to gain a good foundation that is needed throughout the rest of the book. The section covering CSS might be ok to completely skip since Windows controls a lot of the styling (CSS) in the applications.

     To give an idea on how much of the book is used on background information - Chapter Five is where the book really begins going into Windows 8 development, and it is the chapter where we can start to make sense of the strong background the authors gave us on HTML5 and JavaScript. This is also where a lot of details are given on Windows 8 as compared to the Windows RT API and User Interface (UI).

     The authors ensure that before diving into much more Windows 8 development, we understand a few more fundamentals. These include the pillars of software development as applied to Windows 8, programmatic and declarative manipulation of HTML pages, and the lifecycle of a Windows 8 application (running, suspended, terminated, or not running). In another effort to perhaps make us feel comfortable, developing Windows 8 apps with HTML5 is compared to creating a series a web pages.

     Halfway through the book, I also discovered a small controversy that might lead a few developers to disagree. The authors explain we can create applications in the Windows world using one of three available formats – they are HTML 5 and JavaScript, C# or Visual Basic with XAML, or C++ with XAML. It is suggested that all three options grant the same programming power and that the same applications can be built. This is clearly an advantage for Windows 8 and Windows Phone; however, developers using the .NET frameworks may argue that they can accomplish more than a developer using HTML5 and JavaScript can. I personally prefer HTML5 and JavaScript due to being a web developer and the quick learning curve it has; however, those who prefer an object oriented programming language and the flexibility of XAML might disagree. Regardless, the controversy may not be relevant to those reading this book; the important part is that we have several options when it comes to developing Windows 8 applications.

     Once the book goes into creating an actual Windows 8 application, it moves quickly and incrementally adds, or builds upon, what we are learning. The author starts getting into the development by focusing on the UI, which involves working with images. After understanding the images folder, a logo is created for the app, and an image for the splash screen. An overview of each type of file found in the projects root folder is given. Our first application is a form that collects data. Initially we do not learn how to save the data since that is a topic covered towards the end of the book.

     Our first applications are all based on a new, blank, template. The author does spend time telling us about other types of projects we can create as our starting point; but mainly focuses on a Navigation App. We are given different examples and case scenarios of when, or why, to choose a certain type of starting application. In our first navigation app, we learn how to create an application that is very user friendly and easy to navigate. In the app, we have several image and video galleries.

     The concept of running an application in the foreground, as allowed in Windows 8, caught many by surprise. Since the apps run in the foreground it is important to not only allow the app to run in full screen, but also allow the user to run it in split screen, or in a smaller space. Running the application in a smaller space is called Snapping, and it means the app will normally run in a 320px x 760px space (minimum space, it may increase with screen size). Developers should design the app to look presentable in full screen, weather the device is held vertically or horizontally, or the user takes advantage of snapping the app so they can see two things at once.

     Another element that caught consumers by surprise with Windows 8 was the concept of apps being able to focus on getting a single task (or a few tasks) completed. An operating system is dependent on its apps to run well and complete tasks successfully. Although Windows 8 apps might be independent, it is still possible to allow apps to communicate with one another through Contracts. The authors cover the communication between apps, but also the ability to communicate with Windows 8 OS through Extensions. To improve the user experience, Charms are also important and as developers we must allow users to search and change application settings.

     Two chapters, 10 and 11 are devoted to adding data, and saving data from our application. Data can be saved locally, which is the easiest method to store data; but the authors spend time showing us how to create an app that saves data in a roaming folder; something the authors compare to an Apple ad that once aired on TV, in which a user begun a task on a mobile devise, and upon arriving home, they were able to pickup the task and complete on their desktop. In the data section, RSS and JSON were covered. With JSON, the author walks us through creating an example by pulling images from a Flickr account.

     I found the section covering sensors to be very educational, and fun. It is amazing how many modern day computers ship with GPS, light sensors, an accelerometer, and compass, and yet we are able to attach more devices such as webcams and printers. It is important to keep in mind that not every computer has these sensors built in; but if your computer does, playing with these sensors can be fun. The authors walks us through building several apps with JavaScript, such as an app that allows us to take and save pictures, and an app that reads longitude and latitude to determine our position. Microsoft does provide several SDKs, and we learn how to add the Bing SDK to the GPS application we build, which allows us to pull in a mapped location of where we are.

     The last thing that we learn is how to create Live Tiles – the tiles introduced by Microsoft in Windows Phone that keep us up to date with the latest status. The book gives us a guide of when, or why, to use Live Tiles, how to create these, and how to use data from our applications.

     As mentioned towards the start of this review, much time is spent in learning the fundamentals that would allow us to succeed in building a good WinJS Windows 8 application. Although the authors claim this book is not for those who have built a Windows Phone application, I am still new to Windows Phone apps, and am still learning HTML5 and JavaScript. I enjoyed the beginning of the book and did learn a few things; but to be honest did quickly read through some sections. I’m sure those that are very new to HTML5 and JavaScript would greatly appreciate the long introduction to these base concepts. I have read other HTML5 books; but the introduction this book gives is different since it’s tailored to applying the concepts to Windows 8, which is a bit different than using HTML5 to build a website, or apps on a website.

     I greatly enjoyed the flow of the book and the details provided in each section. The book was an easy read and I felt as if I was progressing in my knowledge of building apps and also seeing the progress applied as my app improved. With that said, I do think I would have preferred the authors had built exercises into the book – not having exercise sections made it a bit challenging to determine when they were giving a code snippet in support of a section, or a code snippet to add to the applications being built. Since the lack of exercise sections started to confuse me a bit, I gave up on trying to build the apps the authors were walking through and instead started building my own application and applying the different parts being covered in the book. I did review some of the solution files created for this book, and found them to be very helpful when I got stuck on a problem, or even see them as good starting points for future applications I would like to build.

     Aside from the flow between teachings and exercises, I would also suggest that in future revisions, Live Tiles not be one of the last sections, but covered sooner. I do understand why Live Tiles was covered last – it was because we needed to learn about data before populating Live Tile information; but I think that have a pre-notion of Live Tiles would give us a better idea when working wit the chapters covering data. Mentioning data, I think more information should have been provided – such as reading from and writing to SkyDrive, Dropbox, and other popular services. Also working with different type of data other than JSON or RSS, such as XML.

     Some might think that the book spent much time with principles, and maybe it did, but if you truly feel you don’t need to read much about HTML5, JavaScript, and CSS, than maybe this isn’t the right book for you since you might no longer be a beginner.

     Dino and Francesco Esposito did a great job writing this book. Those who are creating a Windows 8 app for the first time using HTML5 will find the book to be very useful. Although the authors do not recommend this book for those who have created a Windows 8, or similar, I would still recommend the book if you struggled through building that first HTML5 app, or want more clear guidelines. Those with existing development experience, whether it be COBOL, or an older .NET language, or with web development experience, should have no issues following this book thanks to the strong foundation it provides.
   
  Top
  Copyright © 2000 - 2017 Denver Visual Studio User Group.
All Rights Reserved. Please see Notice