roadblocks, cross platform dev-env, new machine?

I've been reading, and now can to participate!

I'm spent the last month hitting roadblocks when trying to code an app. I'm not sure if this is user error, blind and willy-nilly customization or due to an older system, older software and newer software not playing well together. My question is, should I upgrade? If so: MBP, M1, M2?

My company has these apps in the pipeline: a simple alarm clock app and a more complicated book app using CoreML.

2015 Big SurSystem: OS: macOS 11.7.9 Shell: 5.8 - /bin/zsh Binaries: Node: 16.8.0 - ~/.nvm/versions/node/v16.8.0/bin/node Yarn: 1.22.19 - ~/.nvm/versions/node/v16.8.0/bin/yarn npm: 9.8.1 - ~/Development/2-argonne_software/node_modules/.bin/npm Watchman: 2023.08.14.00 - /usr/local/bin/watchman Managers: CocoaPods: 1.12.1 - /Users/btryon/.rvm/gems/ruby-2.7.4/bin/pod Homebrew: 4.1.5 - /usr/local/bin/brew pip3: 22.3 - /Library/Frameworks/Python.framework/Versions/3.11/bin/pip3 RubyGems: 3.4.18 - /Users/btryon/.rvm/rubies/ruby-2.7.4/bin/gem Utilities: Make: 3.81 - /usr/bin/make GCC: 4.2.1 - /usr/bin/gcc Git: 2.32.0 - /usr/bin/git Clang: 13.0.0 - /usr/bin/clang Curl: 8.1.2 - /usr/bin/curl SDKs: iOS SDK: Platforms: DriverKit 21.2, iOS 15.2, macOS 12.1, tvOS 15.2, watchOS 8.3 IDEs: Xcode: 13.2.1/13C100 - /usr/bin/xcodebuild npmGlobalPackages: eas-cli: 4.1.1 expo-cli: 6.3.10 Expo Workflow: bare

thx in advance

You've not told us which Mac, but no Mac models from 2015 can run current macOS 13 software, which means no app submissions and older tools.

What roadblocks are being encountered, too?

Cross-platform is always a hassle, too—and the cross-platform frameworks can simply move your app dependencies from the platform vendor to the cross-platform vendors, and the cross-platform vendors are always chasing all of the platform vendors.

More generally, I'd start with a macOS upgrade to macOS 13 and to Xcode 14.3.1, which will provide the most recent set of roadblocks available. 😜 This upgrade will require a newer or new Mac. If purchasing newer and not new, stay within this list of Mac models.

For this case, I'd avoid running any macOS or app or tool betas when learning and establishing your environment and apps, and particularly when a spare Mac is unavailable for testing. As experience is gained, and as a need to test apps for upcoming releases is acquired, then betas become more interesting.

Any M1 or M2 will be fast enough for development, though I'd go for at least 16 GB, and preferably more SSD storage than you think you'll need as neither of those are expandable over the usable lifetime of the Mac.

Probably the biggest difference among the M1, M1 Pro, M1 Max, M1 Ultra, M2, ... etc., processors (for most developers) is the number of displays supported, though there are other limits. The low-end processors support at most two displays, one of which is always the internal for laptops.

Whether Mac desktop or Mac laptop is entirely your choice. I prefer bigger (and variously more) displays, and don't need to or want to develop apps while mobile (and thus can avoid the mobile-focused pricing and features and I/O ports tradeoffs involved), so Mac mini and Studio are locally the more interesting models for development. If you're mobile-focused, MacBook Pro is the usual choice.

As for tooling, I tend to stay with Swift Packages, Homebrew, and Apple distributions, and Python from the distribution and not the package managers. I typically don't use npm, so there's that.

roadblocks, cross platform dev-env, new machine?
 
 
Q