HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
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.
Video: iOS Development with iOS Author Carl Brown
Please visit the author's site at appaccomplished.com/.
Strategies for App Development Success: What Could Possibly Go Wrong?
Download the sample pages (includes Chapter 1 and Index)
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