My personal iOS & Swift setup

After years of iOS and Swift development, I have come to a point where I am very happy with my way of handling project structures, code conventions, tooling etc. Here, I’ll discuss a series of posts that I will write to descibe this in detail, in hope that it may be of help to others. If not, it will at least serve as some sort of self-reference.

I will take on this project 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. I have no writing schedule in mind, and will instead write whenever I feel like it.

The topics below is currently 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 currently pretty unstructured. The pieces hopefully fall into place as I proceed with the project :)

Conclusion

I look forward to getting started with this project and hope that you will keep me company. Feel free to reach out at any time.