Hacker News new | ask | show | jobs
by jwells89 920 days ago
Point 2 is not remotely true. I’ve been doing iOS development for almost a decade and have only ever tested against my phone (which is usually not the latest model) and an iOS device that represents the oldest thing the app supports. For testing everything in between the excellent iOS Simulator (which is far more usable than the equivalent in Android Studio) is adequate.

For development these days you can find a used/refurb M1 Air or mini that will do the job just fine for less than half the stated price.

As for 2FA they support FIDO keys and passkeys just fine.

3 comments

Wtf?? The iOS Simulator is a joke, it doesn't remotely reproduce a real iOS Device. The permissions work differently and the graphics of it are very different too - profiling has to be on a real device!

You can load images that represent Android devices in the Android Simulator and reproduce bugs that exist on the device.

I work with both and the Android simulation allows you to go further - which is good since the diversity of devices is bigger.

Both still sucks in the end and you should test on a real device. This is particularly painful because usually the devices you don't use frequently you simply don't charge, so you kinda want to prepare to charge the devices before. You can still plug and run the app while charging but it may give a throttled experience - which when profiling games may slight alter the results (a flashdrive read bottleneck may disappear when comparing to CPU one).

Still, there‘s _usually_ no need to test an app on more than 1-2 physical devices. If it were a requirement to test an app on every device, then Android developers would be quite screwed.

Some exceptions exist, like medical apps or apps that rely a lot on continuous operation (I recently worked on an OBD app that allows drivers to gather their trip data, and it needed to continuously run in the background - you wouldn’t believe how hard Android manufacturers make this).

Medical apps are true high requirements yes - specially when interacting with other devices. But also games, depending on what you are doing, you definitely want to be testing on multiple devices, specifically if you are pushing the hardware in some way performance wise. When building game engines you will also be getting different reports with different qualities from other developers, and having real devices really speeds up reproducing issues.
I’ve had no trouble with Simulator, but the run down battery bit is indeed a problem. It’d be nice if one could get ahold of versions of phones/tablets that have a dummy battery that presents itself as fully charged when plugged in. No point in burning through lithium cycles on test devices.
A version that would run without batteries would be super sweet! I understand such dev-kit for phones/tablets may not benefit from economy of scale and may be expensive but it would be nice to have the option. They could be built to be stackable, so you put them in a furniture or maybe even in a rack of devices. But once you are developing for phones and tablets and you have one device on each system version, different sizes and all, it gets really boring getting each of the drawer and charging and testing and all. Once in a while I see some offer of a platform that has these things remotely accessible through as a service, but it's not the same as having the devices available for real touch.
Point 2 is a problem if you only have one MacBook but lots of things to tests. We have burnt so much cash and time on that.
> Point 2 is not remotely true

Guess you've been lucky. Congrats!

> For development these days you can find a used/refurb M1 Air or mini that will do the job just fine for less than half the stated price.

Okay? So you still need to buy an extra general purpose computer just to be able to build for a phone? And this is somehow okay because you can "just" buy a refurbished one?

> As for 2FA they support FIDO keys and passkeys just fine.

Nope. Unless this is a very recent change which they haven't even documented yet. https://developer.apple.com/support/authentication/

The only reason App Review will ever mention testing against specific devices is when there’s been a screen resolution or form factor change, but simulators work fine for that. I’ve worked with multiple apps with many different reviewers across several such changes and they do not care if you have physical hardware to test against.

Xcode, etc are heavily reliant on macOS and would not be easy to port. Xcode itself is Swift+ObjC+AppKit and the simulators just run the iOS userland atop the shared bits between iOS and macOS. This means that a port entails porting all of AppKit or starting a whole new “Xcode for other platforms” codebase to run parallel with original Xcode as well as writing a full on iOS virtualizer for other platforms. Possible, but expensive with questionable ROI.

Apple definitely supports FIDO keys because I’ve been using YubiKeys to log into my developer account for a while now.

> The only reason App Review will ever mention testing against specific devices is when there’s been a screen resolution or form factor change, but simulators work fine for that. I’ve worked with multiple apps with many different reviewers across several such changes and they do not care if you have physical hardware to test against.

This is not my experience. We've had reviewers say "app doesn't work well on new (phone model)". When asking for clarification we were told we had to test on a real device. At that point you can either give in, or try getting more info out of the reviewer which is like pulling teeth and will take weeks.

> Xcode, etc are heavily reliant on macOS and would not be easy to port. Xcode itself is Swift+ObjC+AppKit and the simulators just run the iOS userland atop the shared bits between iOS and macOS. This means that a port entails porting all of AppKit or starting a whole new “Xcode for other platforms” codebase to run parallel with original Xcode as well as writing a full on iOS virtualizer for other platforms. Possible, but expensive with questionable ROI.

Okay, and? The entire point is that they're a greedy bigcorp and want money, so yeah. Of course they'll make everyone else bend over backwards so they can rake in the cash.

> Apple definitely supports FIDO keys because I’ve been using YubiKeys to log into my developer account for a while now.

Where is this documented? I don't see anything about this on https://developer.apple.com/support/authentication/

Can you do this without ever associating an iDevice? I can't check because I've sadly already done so and would need to spend $$$ again on a new account, which I don't feel like doing just to prove a point. Please keep in mind this is about an "Account Holder" Apple Developer Account.

IME “doesn’t work well on X device” means “the app’s controls are spilling out of the safe area into notches, etc causing usability issues”.

Here’s documentation on FIDO keys with Apple IDs. Association requires at least a Mac, after which they can be used to sign on with any modern browser. iDevices don’t seem necessary. https://support.apple.com/en-us/HT213154

Apple Developer Console "Account Holder" accounts have different requirements.
I have an account holder account which uses SMS 2FA - not ideal, but just fine.

2FA is a benefit for the site, not the user - I'm fine with them having a lousy and costly 2FA system.

Are you really a developer if you're not swimming in computers? Maybe it takes putting a few years into the industry before the disposable income is high enough to make regular computing device purchases relatively painless, but...
This perspective reeks of privilege and is extremely (North) America-centric. Developers in other countries do not make enough to afford regular purchases of $1000+ devices painlessly.
That's fair. I will say that the cost of entry has gone hugely down, relatively, over the years, though.
Some people have principles.
I wouldn't do development for a platform I have a principled stand against.
it's a balance.

let's create a hypothetical to explore : you create an app that helps victims of crime to find support structures in which to help them with whatever situations arise. The app gains momentum, and becomes successful.

Is it more ethical to avoid a platform based on principals if it then excludes a vulnerable audience from participating that you seek to empower?

it's not all as easy as "I'm a moral person, so i'm going to do this." in the real world.

It’s easy to have principles when you can just be strict when it’s about what someone else is doing and be loose when it’s about what you’re doing yourself.

That’s not a balance, it’s just hollow grandstanding.

You're right. I have always avoided Microsoft products on principle. (Until Github and ChatGPT, unfortunately.) Ever since “embrace, extend, extinguish”, and having to fix my family's Windows machines (which I vehemently advised against purchasing) while using Macs since 1984.