Ask HN: Is it me or iOS development has become more fragmented than Android

I'm referring to developer experience. Take dependencies for example. Adding a dependency for an SDK in Android seems to have become more consolidated; a Maven url in Gradle and you're good to go. On iOS you have multiple options; Swift Package Manager, CocoaPods, Carthage. On the other hand, iOS UI feels consolidated but Android design feels still fragmented. Is anyone adopting Material design at all?

  • Android inherits its DUX from the Java ecosystem, which standardized on Maven decades ago (with a brief bout of friendly competition from Ivy, which should honestly have become the standard, but I digress). Build tools are all over the place, though; Android doesn't support Ant any more, but you can still build projects with Maven, Gradle is officially supported, and Google themselves either use Gradle, Bazel, or wrap Gradle in Bazel, depending on the team.

    As far as UI, you have to go out of your way to not use Material Design, as it's the default theme on all devices since Android 5.0. The good thing is that the UI technologies are becoming increasingly unbundled from the core SDK; you have the View-based Material components library and Compose, which can be bundled with your app and used everywhere. SwiftUI ships with OS updates, so you have to use the version that shipped with your minimum target, which feels like a byproduct of Apple's culture more than a technical limitation.