Home > Store

App Accomplished: Strategies for App Development Success

Register your product to gain access to bonus material or receive a coupon.

App Accomplished: Strategies for App Development Success


  • Sorry, this book is no longer in print.
Not for Sale



  • Covers the entire app development lifecycle, addressing crucial issues ranging from planning to non-disclosure agreements
  • Offers expert guidance on choosing the right developers and working with them effectively
  • Includes extensive coverage of current best practices and tools for iOS development, while presenting principles that will also be valuable in the Android space
  • The indispensable companion to app coding book -- and an indispensable resource for every company or individual who wants to build successful apps


  • Copyright 2015
  • Edition: 1st
  • Book
  • ISBN-10: 0-321-96178-1
  • ISBN-13: 978-0-321-96178-5

Build Great Apps: End-to-End Processes, Tools, and Management Tips for Doing It Right!
Foreword by Kyle Richter, CEO, MartianCraft

Today, successful apps are complex software projects. You can’t just knock them off in a weekend--and, worse, many common programming habits don’t work well in mobile. You need skills, processes, tools, management techniques, and best practices that are honed for mobile platforms and realities. In App Accomplished, top mobile developer Carl Brown provides all that--so you can run your entire project effectively and get the answers you need right now.

Whether you’re writing your own code or contracting out, you’ll find hard-won guidance for your entire app development life cycle. Brown guides you step-by-step from planning and design through testing and updates. Through case studies drawn from his immense experience, he reveals why so many app projects fail--and how to avoid the mistakes that derailed them.

When it comes to apps, a great idea isn’t enough: You have to execute. This is the first book that shows you how.

  • Understand mobile-specific issues that lead even experienced developers astray
  • Find developers who can do a great job with your unique app at a fair price
  • Define the requirements you need to create accurate schedules and budgets
  • Work with developers to get the best possible results
  • Manage and communicate effectively to avoid cost overruns
  • Solve problems before they get out of control
  • Develop wireframes and prototypes that clarify the user’s core experience
  • Choose app components, from servers to data storage
  • Select tools for source control, testing, project tracking, and more
  • Identify and fill crucial skills gaps
  • Estimate the quality of the app you’re building
  • Efficiently test and debug your app
  • Recover from App Store rejection
  • Leverage user feedback to help plan your next release
  • Determine when an existing project is too far off course to fix


Related Article

Video: iOS Development with iOS Author Carl Brown

Author's Site

Please visit the author's site at appaccomplished.com/.

Sample Content

Online Sample Chapter

Strategies for App Development Success: What Could Possibly Go Wrong?

Sample Pages

Download the sample pages (includes Chapter 1 and Index)

Table of Contents

Foreword     xi
Preface     xiii
Chapter 1: What Could Possibly Go Wrong?      1

App Projects Are Not Small and Easy     1
Apps Are Not Easy to Program     5
Poor Skill Set Fit     8
If You Get a Good Developer, You Still Have to Worry     10
The Idea Is Not More Important Than the Execution     12
Unwillingness to Delegate: Micromanaging     15
Bikeshedding     16
Poorly Defined Requirements     16
Out-of-Date Requirements Documentation     18
Constantly Changing Requirements     20
Leaving the Worst for Last     20
Cost Overruns     24
That Last 10%     26
The Whack-a-Mole Problem     27
Poor Communication     29
Abdication of the Management Process     31
Wrapping Up     31
Chapter 2: The App Development Life Cycle     33
The Design Phase     34
The Development Phase     39
The Testing Phase     45
Repeating the Cycle as Needed     49
Wrapping Up     52
Chapter 3: Prototyping and Wireframing Your App     53
Focus on the Core Experience     54
Wireframe the App     58
Build an Interactive Prototype     76
Prototyping Tips and Tricks     91
Wrapping Up     95
Chapter 4: Determining Your App’s Components     97
Dealing with Devices     97
Native, Web, and Hybrid Apps     104
Dealing with Third-Party Frameworks     111
Dealing with Analytics     119
Dealing with Video and Audio     120
Dealing with Peripherals     121
Dealing with Accessibility     122
Dealing with Custom or Complex Animations     122
Dealing with Conditional Formatting     123
Dealing with Localization     124
Dealing with User Preferences      125
Dealing with Data Storage     125
Dealing with Servers     131
Dealing with Syncing     133
Dealing with Push Notifications     134
Dealing with Background Tasks     134
Wrapping Up     135
Chapter 5: Finding the Right Tools     137
Selecting Tools for Your Project Size     138
Source Control     138
Bug Tracking     144
Project and Schedule Tracking     148
The Development Environment     154
Continuous Integration     157
Beta Testing Distribution     159
Crash Reporting     160
End-User Feedback     161
Wrapping Up     162
Chapter 6: Skill Gap Analysis     163
Programming     163
Testing and Quality Assurance     168
Server Support and Troubleshooting     168
User Experience Design     169
Graphic Design     173
Sound Design and Music     176
Copywriting     178
Marketing     179
About Games     181
Wrapping Up     183
Chapter 7: Finding a Developer     185
Template App Sites     185
App Developer Matchmaker Sites     189
Local Versus Remote Developers     191
Creative Agencies     194
App Development Companies     196
Independent Developers     199
Grow Your Own Developer (Maybe Even You)      203
Wrapping Up     204
Chapter 8: Interviewing and Selecting a Developer     207
Nondisclosure Agreements     208
Setting Up an Interview     208
Previous Work     210
Gap Analysis     212
Contingency Plans     213
Estimating and Planning     214
Working Relationship     217
Wrapping Up     224
Chapter 9: Managing to Milestones     227
Never Agree to “30% Down, and I’ll Talk to You in Three Months”      227
Minimizing Risk with Frequent Milestones     228
How I Learned to Stop Grumbling and Love Milestones     229
Milestones Are Not Sprints     230
Organization, Sequencing, and Focus     232
Let Conway’s Law Be Your Guide     235
Scheduling Software: Strongly Suggested     237
Remember That Estimates Are Only Estimates     239
Renovation Versus New Construction     243
Estimates and Entomology     245
Plan Reevaluation and Project Feedback Loops     246
Wrapping Up     246
Chapter 10: Understanding What You’re Getting     249
Living Within Your Means     250
The Ticking Clock     251
Justifying Effort for Your Project Size     253
Get the Code, Even if There’s Nothing to See in the UI     253
Comments in Source Control     254
Comments in Code     256
Build and Run the App Yourself     258
Third-Party Libraries     260
Source Code Project Organization     261
Automated Test Coverage     262
Detecting Plagiarism     262
Compiler Warnings     264
Duplicated Code     264
Commented Out Code     265
Magic Numbers     265
Huge Combinatorial Complexity     266
Useless, Ambiguous, or Confusing Naming     266
The “UI Thread” or “Main Thread”      267
Wrapping Up     267
Chapter 11: Pulling the Plug Early     269
So You Missed a Milestone     270
Stop the Presses! Figure Out Where You Are     270
Discussing Failure     271
Milestone Hit but Bugs Abound     272
If Your Developer Is Proactive     274
If Your Developer Isn’t Honest     275
If It Might Have Been Your Fault     275
Evaluating the Recovery Plan     277
How Far Gone Are You?      282
Trying to Salvage a Project     283
Fair Compensation     284
Transitioning to a New Developer     284
Wrapping Up     285
Chapter 12: Communicating Using Bugs     287
Vocabulary     287
Bug Trackers as Communication Tools     288
One Bug per Bug Report, Please     290
Anatomy of a Bug Report     291
Feature Request Versus Bug Fix     292
Placeholder Issues     294
Bug Trackers as Business Continuity     295
Bug Trackers Versus Code Comments     295
Writing Useful Bug Reports     296
Attaching Files to Bugs     298
Data-Specific Bugs     299
Reproduction: There’s the Rub     299
Bug States     300
Reopening Bugs Versus Creating New Ones     301
Splitting Bugs     303
Two Bugs, One Cause     303
Saving for Posterity     304
Wrapping Up     304
Chapter 13: Testing     305
Types of Testing     305
Failures of Imagination     306
Your Testing Schedule     308
Approaching Deadlines     311
Your Testing Team     311
Getting and Incorporating Feedback     319
Wrapping Up     327
Chapter 14: Submission and Beyond     329
Getting Your Marketing Material Together     330
Reviewer Instructions     331
Last-Minute Plea for Sanity     333
Pushing the Button     334
Dealing with Rejection     335
Resubmission     340
Launch     340
Getting Feedback     340
The Next Release     342
The Red Queen’s Race     343
Wrapping Up     343
Index     345


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020