Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Thursday, July 26, 2012

Windows Phone 7 Development Internals: Covers Windows Phone 7 and Windows Phone 7.5 Book Review

This book starts with a great overview of the entire Windows Phone landscape. The author does a great job of introducing the development lifecycle and the anatomy of a basic windows phone application.

After the initial chapter the author continues in Part I Building Blocks to lay a solid foundation for the rest of the book. The book has a total of four parts. I have listed each part below with the chapters they include.

Part I Building Blocks
Vision and Architecture
UI Core
Controls
Data Binding and Layer Decoupling
Touch UI

Part II Application Model
Application Model
Navigation State and Storage
Diagnostics and Debugging

Part III Extended Services
Phone Services
Media Services
Web and Cloud
Push Notifications
Security
Go to Market

Part IV Version 7.5 Enhancements
Multi-Tasking and Fast App Switching
Enhanced Phone Services
Enhanced Connectivity Features
Data Support
Framework Enhancements
Tooling Enhancements

In Part II Application Model the author digs into the guts of the way applications should behave and how to figure out what is going wrong through diagnostics and debugging.

The third part of the book shows us how we can integrate the phone's built in features into our applications. It includes coverage of the launchers and choosers, the audio and video APIs, web services, the Web Browser control, OData, Bing Maps, Deep Zoom, Azure, Sky Drive, the push notification architecture, and a ton of performance tips.

The last part of the book covers the 7.5 enhancements and there are a ton of them. Some of them include multi-tasking, background agents, camera manipulation, and local database support.

The thing I like most about this book is that the author covers the architecture and design of the different features he covers. He makes extensive use of diagrams to give you an over all picture of the topics being covered, and then he digs into the details.

He backs up the details he covers with tons of code samples. The code samples that accompany this book are very well organized and usable.

The only thing that could have made this book better is to have it printed in color. After reading several recently that were in color I got kind of spoiled. I can't ding the book for that though.

I think this book is good for the experienced C# developer looking to begin Windows Phone development as well as experienced Windows Phone developers. The book makes a great cover to cover read as well as a great reference.

All in all, if you are a Windows Phone developer, you need to have this book by your side.

Windows Phone 7 Development Internals: Covers Windows Phone 7 and Windows Phone 7.5

posted by tadanderson at 10:25 AM 0 comments

Sunday, July 22, 2012

Enterprise Software Delivery: Bringing Agility and Efficiency to the Global Software Supply Chain Book Review

If you want a current look into the state of enterprise software deliver at a global level, then this is the book for you.

The book kicks off with a nice overview of the complexities involved with software delivery at an enterprise level. It then details what a typical software delivery project looks like and highlights target areas of potential improvement.

I have listed all the chapters below to give you a high level view of everything that is covered.

Chapter 1. Why Is Enterprise Software Delivery So Difficult?
Chapter 2. Anatomy of an Enterprise Software Delivery Project
Chapter 3. The Software Supply Chain and Software Factories
Chapter 4. Collaborative Software Delivery
Chapter 5. Agile Software Delivery
Chapter 6. Software Quality
Chapter 7. Governance, Measurement, and Metrics
Chapter 8. A Case Study in Agile-at-Scale Adoption at Danske Bank
Chapter 9. A Case Study in Global Software Product Delivery at IBM Rational
Chapter 10. Lessons for Success in Global Enterprise Software Delivery
Chapter 11. The Future of Global Enterprise Software Delivery
Appendix A. Enterprise Software Delivery Revisited

In the Software Supply Chain and Software Factories chapter the author discusses one of the key ingredients to success, which is successful implementation of Service Oriented Architect (SOA) and Product Line Engineering. When I find an enterprise is missing a searchable index of shared assets, which SOA and PLE provide, they are always lost and struggling to stay afloat. SOA and PLE are only possible in highly disciplined organizations. If you are thinking highly disciplined means you are not agile, you are way off base. Agile is very disciplined and very process intensive.

I have been part of some very successful global collaboration software delivery efforts, and I have been part of some that simply flopped. There were 2 primary reasons they flopped. One was the remote teams hired to do the development simply did not have the skillsets they needed, and they were not teachable. The second reason was bad communication, bad management, and unclear boundaries for the teams when it came to their responsibilities and deliverables. Chapter 4 addresses these issues head on. It does a great job of highlighting the import collaboration issues and addresses by introducing collaborative application life-cycle management.

The author then has a nice chapter on agile practices. He does a great job of introducing agile practices and covers how they can be adopted in complex enterprise at scale. He provides really practical and levelheaded advice in this chapter. Something I wish more authors would do when it comes to agile practices and the reality of their effectiveness.

I love the chapter on software quality. The author does a great job of first providing the reason why there are so many software quality problems in large, multiplatform, multi-language applications and then he introduces the testing software factory as a solution to help mitigate some of the quality issues.

The chapter on governance, measurement, and metrics is all about proper communication of responsibilities, authority, policies, and standards and how to measure your success with these items. The book continues with two case studies that highlight the topics covered in the book, a chapter that summarizes the key points made in the book, and a look into the future of global enterprise software delivery.

The thing I like most about this book is that it is down to earth and it contains no fluff. There is no soapboxing or self-proclaimed theories on how to fix the world of IT. The book is based on experience not wishful thinking.

Over all I highly recommend this book to any Enterprise Architect or CIO that wants a down to earth look at the industry's state of enterprise level software delivery and excellent advice on how to improve enterprise level software delivery in their own world.

Enterprise Software Delivery: Bringing Agility and Efficiency to the Global Software Supply Chain

posted by tadanderson at 6:14 PM 0 comments

Monday, July 16, 2012

ATDD by Example: A Practical Guide to Acceptance Test-Driven Development Book Review

If you are interested in Acceptance Test-Driven Development, Behavior-Driven Development (BDD), Specification by Example, Agile Acceptance Testing, or Story Testing this is a great place to start.

The book is broken down into three parts. The first two are end to end case studies showing how to execute Acceptance Test-Driven Development. The first case study is with a team and the second one is the reader working with the author to develop a solution.

Part one builds an online parking cost calculator. It introduces specification workshops, wishful thinking, and collaboration as key ingredients to successful testing. Cucumber and Selenium are used to automate tests.

Part two builds a traffic light software system. In this part of the book the author makes use of FitNesse and SLiM to automate tests. This part is all about discovering your domain, driving your production code with your acceptance tests, and he brings to light how important your testing code is.

The third part of the book is the Principles of Acceptance Test-Driven Development. In this part of the book the author highlights the principles that are used in the examples in the first two parts of the book.

The third part includes advice on creating, refining, and managing examples, how to work collaboratively, how to automate, and how test cleanly.

The book ends with three appendixes that introduce some of the tools used throughout the book. They cover Cucumber, FitNesse ,and Robot Framework.

One of the things I liked most about this book is the examples the author uses. They are real world and they really allow him to bring to light the points he makes throughout the book.

Both of case studies are available for download. They are well organized and usable.

The author has a great writing style which makes the book a very enjoyable read. You can read this cover to cover very quickly.

I found the advice and the working examples very valuable. Like I said in the beginning of this review, I highly recommend this book to anyone looking for down to earth practical advice on Acceptance Test-Driven Development, Behavior-Driven Development (BDD), Specification by Example, Agile Acceptance Testing, or Story Testing.

ATDD by Example: A Practical Guide to Acceptance Test-Driven Development

posted by tadanderson at 2:51 PM 0 comments

Friday, July 13, 2012

C# 5.0 Pocket Reference: Instant Help for C# 5.0 Programmers Book Review

This little book is great when you don't feel like toting around the full version of C# 5.0 in a Nutshell. It is chapters 2,3, and 4 of C# 5.0 in a Nutshell.

I take it along on trips where I can put it in my pocket. It is perfect for shopping trips with my wife. It gives me something to read while waiting outside the dressing room.

So far I have bought and read this book from cover to cover every time a new version comes out. It is a great way to get a refresh on everything that is available in the core C# language.

I have pasted the table of contents below to give you an idea of how much this little book covers.

A First C# Program
Syntax
Type Basics
Numeric Types
Boolean Type and Operators
Strings and Characters
Arrays
Variables and Parameters
Expressions and Operators
Statements
Namespaces
Classes
Inheritance
The object Type
Structs
Access Modifiers
Interfaces
Enums
Nested Types
Generics
Delegates
Events
Lambda Expressions
Anonymous Methods
try Statements and Exceptions
Enumeration and Iterators
Nullable Types
Operator Overloading
Extension Methods
Anonymous Types
LINQ
Dynamic Binding
Attributes
Caller Info Attributes (C# 5.0)
Asynchronous Functions (C# 5.0)
Unsafe Code and Pointers
Preprocessor Directives
XML Documentation

I would also recommend getting Linq Pocket Reference. I usually keep both together.

I really like that this book has an index. A very nice index. I have purchased other pocket version books and even some short full size books lately that don't have one. It is very annoying to not have an index.

Another part of this book I love is the way the authors deliver the code samples using LINQPad. I own the full auto completion version of LINQPad and it rocks. I have been using it since its first release and it has become my favorite tool when working with databases.

If you are looking for an easy to use C# language reference, this is definitely the way to go!!!

C# 5.0 Pocket Reference: Instant Help for C# 5.0 Programmers

posted by tadanderson at 9:44 AM 0 comments

C# 5.0 in a Nutshell: The Definitive Reference Book Review

This book is great. It's no nonsense approach to covering the C# 5.0 language is like a breath of fresh air. It is clean, to the point, and thorough. It makes finding a topic, and learning it, or getting a refresher, a very fast process.

This new version includes new information on the new asynchronous functions async and await.

The authors have a great writing style which makes the book a very enjoyable read. You can read this cover to cover, or use it as a very handy reference. You won't find any case studies, or made up scenarios, to help the authors describe the technology. They stick to writing about the technology, which is nice.

I have listed the chapters below.

Introducing C# and the .NET Framework
C# Language Basics
Creating Types in C#
Advanced C#
Framework Overview
Framework Fundamentals
Collections
LINQ Queries
LINQ Operators
LINQ to XML
Other XML Technologies
Disposal and Garbage Collection
Diagnostics and Code Contracts
Concurrency & Asynchrony
Streams and I/O
Networking
Serialization
Assemblies
Reflection and Metadata
Dynamic Programming
Security
Advanced Threading
Parallel Programming
Application Domains
Native and COM Interoperability
Regular Expressions

One of my favorite features of the book is the way the authors do their diagramming. They include a lot of diagrams that give a visual representation of the feature they are describing. The diagrams really help with getting a quick understanding of the overall picture of the topic. The authors also demonstrate with code that is always easy to understand and within the scope of the topic at hand. You don't have 2 pages of code with 3 lines highlighted.

If you are looking for LINQ coverage, this is a great resource. The author's do a great job of explaining how it works and thoroughly covering all the features.

Another part of this book I love is the way the authors deliver the code samples using LINQPad. I own the full auto completion version of LINQPad and it rocks. I have been using it since its first release and it has become my favorite tool when working with databases.

All in all I highly recommend this book. It belongs on the shelf of any serious developer.

C# 5.0 in a Nutshell: The Definitive Reference

posted by tadanderson at 9:26 AM 0 comments

Wednesday, July 11, 2012

Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise Book Review

I was excited to see that Mr. Ambler was working on Disciplined Agile Delivery (DAD) and was looking forward to this book. One of the biggest challenges I have is that most of the successful agile teams I interact with are isolated small teams using Scrum out of the box. It is working on the projects that have small teams with small scope, usually building one application in isolation. They don't have to be concerned with enterprise level integration.

The small successful teams I have seen also do no architecture. Although the end result is exactly what you do not want for high modifiability, they simply get it live. Usually a little buggy and slow, but they make it live nevertheless.

That is not true of all the projects I interact with. There are some large enterprise wide Scrum initiatives. The successful ones brought in an external Scrum coach to train them. Because of the complexity of the project they were also forced to do architecture and design. They ended up back at more of an iterative process. By the time they were done modifying the Scrum process, beside some Scrum names, they were much closer to the Unified Process than Scrum.

Until now my primary resource for information, that I also consider good information, implementing agile practices at an enterprise level has been Scaled Agile Framework. It is completely covered in the book Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise. The Scaled Agile Framework is great,but I am glad to have this second resource!!!  The attempts to sell Scrum of Scrums for dealing with enterprise level concerns has failed miserably.

It has been a wild ride. When it was all about UP, RUP, EUP, PLE, and Waterfall I was always in a battle to trim back the process ceremony in order avoid waste being template zombies. Then the Agile Age of Aquarius took over and I couldn't get anyone to give any thought to anything before riding off into cowboy coding bliss. The majority of the projects went from tons of worthless documents to tons of worthless code!!!!

After spending a lot of time battling the Agile Age of Aquarius coding cowboys I am so thankful some of the leaders in the industry, like the authors of this book, are starting to swing the pendulum back the other way. I just wish people would get that it's about tailoring to meet the needs of a project with the resources available. One shoe size doesn't fit everyone.

The book goes into great detail explaining the need for DAD and break it down into digestible parts. The book has 7 parts. I have listed them below with the chapters in each.

Part 1: Introduction to Disciplined Agile Delivery (DAD)
Chapter 1: Disciplined Agile Delivery in a Nutshell
Chapter 2: Introduction to Agile and Lean
Chapter 3: Foundations of Disciplined Agile Delivery

Part 2: People First
Chapter 4: Roles, Rights, and Responsibilities
Chapter 5: Forming Disciplined Agile Teams

Part 3: Initiating a Disciplined Agile Delivery Project
Chapter 6: The Inception Phase
Chapter 7: Identify a Project Vision
Chapter 8: Identify the Scope
Chapter 9: Identify a Technical Strategy
Chapter 10: Initial Release Planning
Chapter 11: Forming the Team and Work Environment
Chapter 12: Case study: Inception phase

Part 4: Building a Consumable Solution Incrementally
Chapter 13: The Construction Phase
Chapter 14: Initiating a Construction Iteration
Chapter 15: A Typical Day During Construction
Chapter 16: Concluding a Construction Iteration
Chapter 17: Case study: Construction phase

Part 5: Releasing the Solution
Chapter 18: The Transition Phase
Chapter 19: Case study: Transition phase

Part 6: Disciplined Agile Delivery in the Enterprise
Chapter 20: Governing Disciplined Agile Teams
Chapter 21: Scaling Disciplined Agile Delivery
Chapter 22: Adoption and Tailoring
Chapter 23: Overcoming Organizational Impediments

Part 7: Conclusion
Chapter 24: Towards Lean Disciplined Agile Delivery
Chapter 25: Parting Thoughts

DAD is a hybrid of agile methods including Scrum, XP, Agile Modeling, Lean, Agile Data, and the Unified Process. It does what so many successful Agile projects are doing today that are larger in size. It uses what works, when its needed, and leaves the Agile Zealot Elitist Attitude behind. It is so refreshing to read an Agile book without the attitude.

DAD recognizes Scrum's shortcomings as primarily focused on management and brings back architecture and includes agile development practices that are easily excused from most Scrum projects.

DAD includes phases. It includes a project initiation and release activities that are missing from Scrum. DAD has three phases Inception, Construction, and Transition.

DAD also comes in two flavors, basic and advanced. The primary difference is that advanced is for more experienced teams that can take advantage of lean strategies which eliminates the iterations and the work item stack in favor of the work item pool. The book primarily focuses on the basic DAD process.

The only complaint I have about the book is that the diagrams showing the Disciplined Agile Delivery life cycle – Basic, and the Disciplined Agile Delivery life cycle – Advanced should have been full page diagrams. They are too small to read in the book. It is not really a big deal since they are available on the web.

The book is really well written. It is very detailed and also entertaining making very easy to read. Throughout the book "Lessons from the Trenches" sidebars bring real world experience to the topics being covered.

The authors also include a case study for each of the phases they cover based on a project that builds a point of sale system. This gives the reader the opportunity to see the artifact creating activities in action.

All in all I found the book to be an excellent resource for the agilist looking to move beyond small develop teams. It is an absolute must read for enterprise architects and other senior management working in the IT shop.

Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise

posted by tadanderson at 4:08 PM 0 comments

Thursday, July 05, 2012

Windows Phone 7.5 Unleashed Book Review

Everything about this book rocks!!! It is in color which makes for a great read. Being able to see the code and screenshots in color doubles the value of a book like this. I wish all programming books that included coding client UIs were in color.

Although the chapter names usually highlight the main topic covered in the chapter, some chapters like chapter 2 cover a ton of topics. It covers XAP files, the capabilities model, threading model for graphics and animation, the frame rate counter, performance tools, how to determine device status, MVVM, and commands.

This book is 1095 pages huge and includes 29 in-depth chapters. It is broken into five parts. I have listed each part and the chapters below.

Part I. Windows Phone App Development Fundamentals
Chapter 1. Introduction to Windows Phone App Development
Chapter 2. Fundamental Concepts in Silverlight Development for Windows Phone
Chapter 3. Application Execution Model
Chapter 4. Page Orientation

Part II. Essential Elements
Chapter 5. Content Controls, Items Controls, and Range Controls
Chapter 6. Text Elements
Chapter 7. Media and Web Elements
Chapter 8. Taming the Application Bar
Chapter 9. Silverlight Toolkit Controls
Chapter 10. Pivot and Panorama

Part III. Windows Phone App Development
Chapter 11. Touch
Chapter 12. Launchers and Choosers
Chapter 13. Push Notification
Chapter 14. Sensors
Chapter 15. Geographic Location
Chapter 16. Bing Maps
Chapter 17. Internationalization
Chapter 18. Extending the Windows Phone Picture Viewer
Chapter 19. Camera
Chapter 20. Incorporating XNA Graphics in Silverlight
Chapter 21. Microphone and FM Radio
Chapter 22. Unit Testing

Part IV. Building Windows Phone Data Driven Applications
Chapter 23. Input Validation
Chapter 24. Network Services
Chapter 25. Isolated Storage and State Preservation
Chapter 26. Local Databases

Part V. Multitasking
Chapter 27. Scheduled Actions
Chapter 28. Background File Transfers
Chapter 29. Background Audio

One of the things I really like that the author did was introduce the Windows Phone Performance Analysis Tool right off the bat in chapter 2. Knowing how to make use of the performance tools may really help developers without an actual device.

Another thing I really liked was that the author made use of MVVM throughout the book. He did not just introduce it and then continue with the rest of the book without it, like I have seen done with some other Silverlight books, he made extensive use of it.

The author does a great job covering the Silverlight Toolkit. He covers the ListPicker, AutoCompleteBox, ContextMenu, DatePicker and TimePicker, LoopingSelector, LongListSelector, PerformanceProgressBar, TiltEffect, ToggleSwitch, and the WrapPanel. He does not just list them, he provides in-depth examples of each.

The chapter on Bing Maps is not only a great introduction to Bing Maps, it also contains a practical example of using Reactive Extensions (Rx). The chapter on Geographic Location also contains a nice example of Rx.

The chapter named Touch is all about gestures. It gives a great overview with some really good visual aids. It covers all the gestures and their associated events.

The chapter on Launchers and Choosers is awesome. The author does a great job of covering a ton of them. He covered so many of them, that I am not sure that he missed any. He provides a nice code sample for using each one.

The downloadable code is very well organized and usable. I did not run into any trouble with the samples, which is amazing because there are a ton of them.

Every chapter of this book is rock solid and they all go in-depth. The last thing I will say I liked about this book is that it took advantage of tools like LINQ to SQL, Odata, the Unit Testing Framework, and Reactive Extensions in practical real world examples. The author doesn't skimp on implementation examples.

All in all if you are considering getting into Windows Phone development, or are already involved with it, this book is an absolute must!!!

Windows Phone 7.5 Unleashed

posted by tadanderson at 12:57 PM 0 comments

Wednesday, July 04, 2012

Windows 8 : $40 : You'll get what you pay for…

I am a firm believer that you get what you pay for, especially when it comes to technology. I understand why Microsoft is selling upgrades to Windows 8 for $40, they won't have anyone upgrading to it.  Having been on Windows 8 since day one of it being available for download, as a Software Architect Consultant and an Enterprise Architect in my current position, I'll be recommending my clients and users wait to see what happens for at least a year or two after it is released.  It is fine for the phone and tablets, but on the desktop it is a joke.

I personally will continue to run it on a virtual machine and I may throw it on an old laptop to run proof of concepts and to continue learning the Microsoft platform, but I will never jam new Microsoft technology down my customer's throats again. I got burnt hard with Silverlight, Windows Workflow, and Software Factories. I have also had to battle Microsoft's ignorance when it came to UML, MSF, DSL, and DNA to protect my clients from making poor decisions.

I will not be investing in a Surface Tablet, Windows 8 Slate, or a Windows 8 Phone. I will continue to run Windows 7 on my Alienware M18X and I will be continuing to hit Objective-C full-bore on my new MacBook Pro with Retina Display.  I am not going to stop learning the Microsoft platform as it changes in the coming years.  I will continue to help implement Microsoft solutions, but I will not champion for them anymore.  It is not worth the risk.

You can argue that a company like Microsoft doesn't make mistakes as big as whole operating systems, but products like Windows Millennium Edition (ME, better known as "Mistake Edition") and Vista have proven to me they can.

Believe it or not, I am not a Microsoft hater. I am just a guy who made the mistake of trusting them one too many times. I have been burnt and my clients have been burnt time and time again. I think Microsoft will get through this time of change because there are so many enterprises dependent on them, and those enterprises have no choice but to continue down the path with Microsoft.  I don't think they will ever be technology innovators, they never really have been. They are great imitators, and that has served them well.

It is going to be interesting watching the Windows 8 story unfold from the sidelines for once.  Not having any meat in the Microsoft game this year has added years to my life!!!!

posted by tadanderson at 6:02 PM 0 comments

Tuesday, July 03, 2012

Xcode 4 Unleashed (2nd Edition) Book Review

Being pretty new to Xcode I found this book to be just the right girth and depth of topics. It covered everything I was looking for, at the right level.

The book is broken up into five parts First Steps, The Life Cycle of an iOS Application, Xcode for Mac OS X, Xcode Tasks, and four Appendixes.

It covers a ton of topics which are pretty much named by the titles of the chapter, so I have listed them below.

Part I. First Steps
Chapter 1. Getting Xcode
Chapter 2. Kicking the Tires
Chapter 3. Simple Workflow and Passive Debugging
Chapter 4. Active Debugging
Chapter 5. Compilation
Chapter 6. Adding a Library Target
Chapter 7. Version Control

Part II. The Life Cycle of an iOS Application
Chapter 8. Starting an iOS Application
Chapter 9. An iOS Application: Model
Chapter 10. An iOS Controller
Chapter 11. Building a New View
Chapter 12. Adding Table Cells
Chapter 13. Unit Testing
Chapter 14. Measurement and Analysis
Chapter 15. Storyboard
Chapter 16. Provisioning

Part III. Xcode for Mac OS X
Chapter 17. Starting a Mac OS X Application
Chapter 18. Wiring a Mac Application with Bindings
Chapter 19. A Custom View for Mac OS X
Chapter 20. Localization and Autolayout
Chapter 21. Bundles and Packages
Chapter 22. Frameworks
Chapter 23. Property Lists

Part IV. Xcode Tasks
Chapter 24. Xcode 4 for Xcode 3 Veterans
Chapter 25. Documentation in Xcode
Chapter 26. The Xcode Build System
Chapter 27. Instruments
Chapter 28. Snippets

Part V. Appendixes
Appendix A. Objective-C
Appendix B. Some Build Variables
Appendix C. Project and Target Templates
Appendix D. Resources

One of the things I liked about the book is the author started with the use of iOS 4.3 and then moved to iOS 5. He uses iOS 4.3 throughout Part II until he gets to the storyboarding chapter. He then has you port all your work up to that point to work with a Storyboard project. He takes the opportunity to teach you about workspace so you can have more than one project up.

I liked this approach because I am new to iOS programming and having the history built into the examples was good for me to see. More often than not, we aren't starting from scratch doing Greenfield Development, so this prepared me for what I can expect to run into.

Another thing I liked was that the book included the part on Xcode for Mac OS X. Although I am primarily interested in iOS at this point, I found the introduction to Mac desktop development interesting.

All the code is available for download and is organized by chapter. I found it to be very usable with a few exceptions. Like in chapter 10 where the author teaches you how to use the rename refactoring tool, he provides you with the code that has already been refactored. That may have been intentional, but it was confusing.

The author's writing style easily kept my attention and made the book very easy to read. It was a good read cover to cover, but I will also be keeping it handy as a reference especially for Part IV. Xcode Tasks and Part V. Appendixes which cover the build system, Instruments, build variables, snippets, and the project templates.

All in all I recommend this book to anyone looking to learn the Xcode 4 environment including Xcode 3 developers. The short chapter Xcode 4 for Xcode 3 Veterans will get you up and running quickly.

Xcode 4 Unleashed (2nd Edition)

posted by tadanderson at 1:43 PM 0 comments

Previous Posts

  • DevOps: A Software Architect's Perspective Book Re...
  • Scaled Agile Framework (SAFe) LiveLessons Video Se...
  • Bulletproof Android: Practical Advice for Building...
  • Swift for Programmers Book Review
  • Security in Computing (5th Edition) Book Review
  • Swift in 24 Hours, Sams Teach Yourself Book Review
  • Sparx Systems Releases Enterprise Architect 12
  • Learning Swift Programming Book Review
  • Android Security Internals: An In-Depth Guide to A...
  • Adaptive Code via C#: Agile coding with design pat...



Archives

  • December 2005
  • January 2006
  • February 2006
  • March 2006
  • April 2006
  • June 2006
  • August 2006
  • October 2006
  • November 2006
  • December 2006
  • January 2007
  • February 2007
  • March 2007
  • April 2007
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • September 2007
  • October 2007
  • November 2007
  • December 2007
  • January 2008
  • February 2008
  • March 2008
  • April 2008
  • May 2008
  • June 2008
  • July 2008
  • August 2008
  • September 2008
  • October 2008
  • December 2008
  • January 2009
  • February 2009
  • March 2009
  • April 2009
  • May 2009
  • June 2009
  • July 2009
  • August 2009
  • September 2009
  • October 2009
  • November 2009
  • December 2009
  • January 2010
  • February 2010
  • March 2010
  • April 2010
  • May 2010
  • June 2010
  • August 2010
  • September 2010
  • October 2010
  • November 2010
  • December 2010
  • January 2011
  • February 2011
  • March 2011
  • April 2011
  • May 2011
  • June 2011
  • July 2011
  • August 2011
  • September 2011
  • October 2011
  • November 2011
  • December 2011
  • January 2012
  • February 2012
  • March 2012
  • April 2012
  • May 2012
  • June 2012
  • July 2012
  • August 2012
  • September 2012
  • October 2012
  • November 2012
  • December 2012
  • January 2013
  • February 2013
  • March 2013
  • April 2013
  • May 2013
  • June 2013
  • July 2013
  • August 2013
  • September 2013
  • October 2013
  • November 2013
  • December 2013
  • January 2014
  • February 2014
  • March 2014
  • April 2014
  • May 2014
  • June 2014
  • July 2014
  • August 2014
  • September 2014
  • October 2014
  • December 2014
  • February 2015
  • March 2015
  • April 2015
  • June 2015
  • July 2015
  • September 2015

Powered by Blogger