Why Apple’s new M1 chips are essential for rapid iOS development
91–100 of 135 posts
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#92Does the toolchain on x86 still build an x86 and ARM executable(s)? Perhaps that contributes to the 2x build time?
For macOS universal binaries, yes, they still build both platforms. For iOS, it's only ever building for the platform you target, simulator or device, so the only change there is the simulator is now an arm64 target.
This applies to incremental and clean builds running locally with default Xcode settings
When you archive and build for the store then your compilation will include all architectures
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#93I had to laugh at the opening: "The tools are largely free", except the bare minimum to develop for ios is a mac and the apple developer account (if you ever expect to publish your app). And a significant subset of functionality only works on physical devices and not emulators. If you don't already have the mac and iphone, you're looking at $600 for a used macbook air, ~$300 for a used 2 generations old iphone, and $…
> $1000 is not "largely free". It is absolutely insignificant compared to the cost of developing software. It’s a tool needed to do a job. Go talk to a carpenter, a builder or a mechanic and ask them how much they spent on tools. Then compare their hourly rates to that of a software engineer.
They are equivalent if not more, where I am.
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#94Earlier quoted context omitted.
30 incremental builds an hour doesn't sound like a good process to me. Personally I find if I am building too often I'm not thinking about what I am doing enough and I'm just throwing things at a wall hoping they'll stick/work. A good software process involves a lot of thinking, a medium amount of typing, a small amount of compiling. I understand that sometimes the ideal and the reality are different of course.
Have you worked with SwiftUI or Jetpack Compose? The new tooling for mobile development requires basically building the app to simulate the layout engine. And when you're building interfaces, ideally you want < 1 second updates so you can tweak things that don't lend themselves perfectly to foresight and analytical thinking - you just need feedback. Jetpack Compose in particular is atrociously slow. When was taking 1…
In an ideal world GUI tools would let you easily specify what parameters were required from the user, what standard very flexible and adaptable widgets were to be used to get those parameters, and how the parameters are constrained. All with a coherent special purpose language or some other fit for purpose technique, with an absolute minimum of pixel tweaking etc involved.
Sadly it's not an ideal world.
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#95One thing that is surprisingly slow on the M1 is running an OpenGL ES application in the simulator. I developed a game on a shoestring budget, and hoped that an M1 would be able to be used for capturing video of the game at the resolutions that Apple wants, but it was way too slow to be able to do this, so I had to just leave video out of my store page. The same app run on your M1 mac with its iOS compatibility works…
There is no OpenGL driver on M1. So your app is running through a translation layer to the native Metal driver underneath. All OpenGL rendering on M1, no matter the framework (iOS, Catalyst, macOS) has pretty terrible performance because of that.
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#96Earlier quoted context omitted.
Having your entire codebase and build process running on the machine in front of you has a lot of other efficiencies that an external cluster takes away. What about the overhead of syncing your code to the server every time you make a change, and getting the binaries back to test? What if you want to work from outside the office? What if the network connection is bad?
>What about the overhead of syncing your code to the server every time you make a change, and getting the binaries back to test? What if the network connection is bad? A bad network connection is severely disruptive to almost all dev workflows so it's not a unique reason against remote development. The other factors you raise are not really relevant. The "overhead" of syncing code should be invisible with modern dev…
If you are outside the office, chances are your internet connection is not as good. The scenario given here where everything is in the cloud sounds like a nightmare for me.
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#97Re: Why Apple’s new M1 chips are essential for rapid iOS development
#98Earlier quoted context omitted.
Having your entire codebase and build process running on the machine in front of you has a lot of other efficiencies that an external cluster takes away. What about the overhead of syncing your code to the server every time you make a change, and getting the binaries back to test? What if you want to work from outside the office? What if the network connection is bad?
>What about the overhead of syncing your code to the server every time you make a change, and getting the binaries back to test? What if the network connection is bad? A bad network connection is severely disruptive to almost all dev workflows so it's not a unique reason against remote development. The other factors you raise are not really relevant. The "overhead" of syncing code should be invisible with modern dev…
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#99"Based on rough usage patterns, we assumed an average iOS engineer does around five clean builds and 30 incremental builds each day..." ...wait, what? I know YMMW, but for me and most of my colleagues it's 1-2 clean build per day and 30 incremental... per hour, sometimes. "...In parallel with our modularization effort, we’re also adopting new technologies like SwiftUI and Xcode Previews. These technologies allow us t…
30 incremental builds an hour doesn't sound like a good process to me. Personally I find if I am building too often I'm not thinking about what I am doing enough and I'm just throwing things at a wall hoping they'll stick/work. A good software process involves a lot of thinking, a medium amount of typing, a small amount of compiling. I understand that sometimes the ideal and the reality are different of course.
Re: Why Apple’s new M1 chips are essential for rapid iOS development
#1001: https://github.com/bazel-ios/rules_ios
2: https://www.reddit.com/r/RedditEng/comments/syz5dw/ios_and_b...