Architecting Mobile Solutions for the Enterprise Book Review
|I was thrown onto a mobile project a few months ago and admittedly needed to catch up fast. My primary development environment is Microsoft's .NET and although I had been keeping up with Windows Phone, I had not been keeping up with mobile as a whole. I would go as far to say keeping up with Windows Phone was not keeping up with the mobile world at all. Luckily this book is a smorgasbord of mobile information. I purchased and printed the Rough Cuts version as soon as it came out. This book saved me tons of time getting up to speed with the latest information on the mobile world.|
The first thing we were tasked with was creating a mobile strategy based on our current business processes and their needs. Luckily this book starts off with a chapter on that. It really helped shape the direction we took by painting a realistic view of today's mobile world. It is a world of tradeoffs and understanding your business needs and requirements before blindly giving marching orders is a must.
It is not a choice between better technologies, or native applications versus mobile web applications, it is about knowing where you want to go and then choosing the tools and resources you need to get you there. There are no silver bullets and anyone who tells you one way, or one platform, will meet all yours needs, is lost and heading down a road to a dead-end.
I had developed on Pocket PC, Windows Mobile 2003, 5, 6, 7, 7.1 and played with Android and iOS, but have never had to mobilize a web site. I have honestly been doing my best to ignore HTML5, CSS, and jQuery. I simply cannot stand any browser development and find it unjustifiable unless it is for the open public. Too bad for me that was exactly what we were doing for the first phase of the project, mobilizing our public web site to increase usability.
We decided to go with MVC 4 and take advantage of the new mobile features. I quickly found that the Microsoft mobile browser detection using HttpCapabilitiesBase.IsMobileDevice Property absolutely sucks and that jQuery Mobile also has a few bugs on the different devices. We are not building a separate page for each device; we are attempting to address them all with jQuery Mobile.
This book does not pull punches and it gave me a realistic expectation of what mobilizing the public web site would take. Basically it is just the same situations that browsers have caused since there was more than two.
Expect to develop customizations for the different browsers just like you're back in the early 2000s. If you really want to take advantage of the different devices using the web, expect to develop different solutions for each device using server-side device detection. The book shows you how to take advantage of the best device detection repositories available. jQuery Mobile is not a silver bullet either. The book does a great job of outlining its features and also covering its disadvantages.
The book is broken down into three parts: Going Mobile, Mobile Sites, and Mobile Applications. The chapters are listed below.
Pillars of a Mobile Strategy
Mobile Sites vs. Native Applications
Building Mobile Websites
HTML5 and jQuery Mobile
Developing Responsive Mobile Sites
Patterns of Mobile Application Development
Developing for iOS
Developing for Android
Developing for Windows Phone
Developing with PhoneGap
The Mobile Application section covers building native applications. It first introduces functional patterns common to all devices. Understanding these is essential and anyone who has never done mobile development before should take the time to understand them.
iOS, Android, Windows Phone, and PhoneGap are given equal treatment in the Mobile Application section. In the iOS section the author also does a great job of not only introducing the iOS development environment, but also introducing MonoTouch. MonoTouch is a commercial framework that allows you to use C# to write iOS applications.
The PhoneGap chapter starts off with an overview of the virtual machine approach versus the shell approach, which are the two main paradigms for cross-platform development. In the overview of the virtual machine approach the author introduces Titanium Mobile and Flash builder. I like that the author is honest about the difficulties the come with using PhoneGap and that he doesn't try to sell it a as a silver bullet, but rather just another possible solution that comes with its own set of problems.
The Mobile Application section gives you enough information to get started down the path of learning the covered technologies. You won't come away a master iOS, Android, or Windows Phone developer, but you will come away understanding what each technology has to offer and a understanding of the challenges you must overcome with each.
The thing I found I liked best about this book is that it is not Microsoft centric, even though it is branded Microsoft Press. Yes he covers Microsoft tools, but definitely gives other technologies just as much attention, if not more.
The downloadable code is very well organized and usable. The author has also put up a companion site to show how the different types of browser detection tools work.
A mobile strategy is a balancing act. The book is a great place to get most of the information you need to make the right decisions about your mobile strategy. All in all I highly recommend this book to anyone looking at moving into the world of mobile development.
Architecting Mobile Solutions for the Enterprise