After putting years into iOS and Swift development, I have come to a point where I am pretty happy with my project structure, code conventions, coding habits etc.

However, since even the worst ideas can be considered brilliant if you only show them to yourself, I would like to put them to the test of displaying them in the public space.

So, below is a list of top of mind topics that I have put together as a starting point for a series of posts where I’ll describe the various parts of my process. I hope they will be of help to others and trigger interesting discussions, but I am happy just to have them serve as some sort of self-reference as well.

I will take on this task as an open process, where I’d love for you to reach out with comments, corrections, suggestions, links to related posts etc. If you have any suggestions regarding this process idea, please let me know.

The topics below is a top of mind brain dump. The list will evolve as I proceed. As soon as a topic is written, I will link to that post in the list.

Get started

Project setup

  • Setup a brand new app project
  • Separate code into libraries
  • Automate tasks with Fastlane
  • Manage dependencies with CocoaPods
  • Manage dependencies with Carthage
  • Setup localization with SwiftGen
  • Use swiftlint to enforce conventions

Resource management:

  • Manage color assets
  • Manage image assets
  • Manage font resources
  • Setup application themes
  • Setup strong resource references with SwiftGen

Implementations:

  • Take control of your application theme
  • Protocol Driven Development
  • IoC & Dependency Injection
  • Unit testing with Quick & Nimble
  • Use Alamofire to talk with your A
  • Streamline in-app navigation
  • Message Handling
  • Notificatons
  • Extending protocol-based collections

As you can see, the list is pretty unstructured. Hopefully, the pieces will fall into place as I proceed with the project :)