I have been in iOS development for two full years and there are something you might want to keep in mind for making your app easier to DEVELOP and EXTEND. This post will be updated if there are many more in the future.

  • General:
    • Organize your file structure under actual folder as well as Project Navigator in Xcode. Your coworkers will find it easier to understand the code responsibility.
    • Do spend some time to research whether some complex functionalities have convenient and meaningful third-parties to accelerate development process but DO NOT overuse or use less reliable frameworks.
    • Take advantage of code snippets provided by Xcode and create your own convenient code snippets for future development. Your own codebase is highly recommended!
  • UI-Layout:
    • If you use a storyboard, try to split view controllers based on modules or responsibilities. Like, you can move all view controllers belonging to user management to a specific area etc. Also, including XIB files is accepted if it will make the project modular. You can split it into multi storyboards from iOS9.
    • Use UIViewController with UITableView instead of UITableViewController so that you have the flexibility to change UI elements inside this UIViewController. There has a great article talking about this issue: Containment-View-Controller
  •  Coding:
    • The naming convention has to be unified or taken good care in a specific manner so that your coworkers know what it does and its purpose.
    • Create a file to handle key string and declare it as constant so that you can take advantage of auto-completion and avoid the typo. For instances, reuseIdentifier or segue identifier etc.
    • Try to create your model classes just like creating library's APIs and consider critically what you should expose or not. For example, take advantage of public and private header declaration.
  • Codes management:
    • Get used to composing useful comments as well as git comments and sticking with clean coding style like the one from NYTimes Objective-C Style Guide.
    • Always filter out unnecessary lines inside a file or files when committing like .xcuserstate, .xcbkptlist because your coworkers do not necessarily to have these files.
    • Take advantage of GUI tool like SourceTree if you are not familiar with git command

These hints are my personal experience that will probably help you to reduce your time in iOS development. I have tried to finish a client app for two days ONLY. Hopefully, this will be helpful. Leave comments below and let's share what other iOS developers think.