Build modules, not apps

updated 10 months ago; latest suggestion 9 months ago

This proposal has been withdrawn...

Build modules, not apps

It's easy to get lost in large codebases. Unnecessary coupling, intertwining business logic, and incidental complexity all tend to grow exponentially with the overall growth of the codebase.

Modules are often thought of as libraries for very common, but generic functionality: a networking library, or frequently-used UI components, or the analytics stack. However, thinking of your entire app as a collection of modules can help with battling the common problems a codebase runs into when it grows larger and larger.

In this talk I will explain how we extracted our apps into modules as our iOS team grew from 5 to 45, and the short and long term benefits as well as the drawbacks we encountered in the process.

Suggestions

  • The proposal author responds 9 months ago

    The intention is to make this apply to a very broad audience. While examples from our own apps work well, the concepts, approaches, pros/cons, pitfalls, etc. that we ran into aren't necessarily unique to our apps. I think developers on all kinds of apps will be able to benefit from our learnings.

  • 8b2f2d3e6553c2b4048b93300959895ab76b4154?size=100x100 8b2f2d3e6553c2b4048b93300959895ab76b4154 suggests 10 months ago

    I'll second the concern about domain knowledge. How much of your talk revolves around project specifics from your application? While the topic is crucial to app development, it may be tough to grasp if you rely too much on your application.

  • 9aa7ce9a7221485eeaa04683d137c15ef266c2dd?size=100x100 9aa7ce9a7221485eeaa04683d137c15ef266c2dd suggests 10 months ago

    This is typically a very hard talk to pull of properly, since appreciating the content requires a lot of domain knowledge – meaning: actual project where this was applied which is impossible for the general audience to get.

    Something for you to keep in mind, as I would really like this talk to be useful for me.