What’s your go-to device for development? I’ve seen a lot of devs use different setups, and I’m curious—what’s yours like?
Do you usually start with the iOS simulator and then test on an Android emulator or a real device later? Or do you mainly stick to a real device or an Android emulator from the start?
For me, I mostly use the iOS simulator because it’s super convenient, and then I test on a real Android device towards the end.
Side note: I know you can run multiple environments at the same time, but honestly, I find it a bit distracting.
I have an iOS and Android device, dedicated for testing to avoid getting distracted on my own device. At the start of the project, I’ll make sure I can run on real devices to get that out of the way.
I mostly randomly pick a device at the start of the day, making sure I develop on both. When it’s about platform specific features like notifications, file pickers, etc, I’ll switch during the day.
I don’t run on the simulator that much, unless when I’m not at my desk and I don’t have the physical space for it (e.g. at coffee shop, on the train, etc)
i prefer using mobile devices, so i tend to test on android and ios nearly simultaneously, first simulator and then physical devices, once i have the build debugged. i do a lot of live reloads in the simulators so i can fuss with the layouts, flows, etc.
then i deploy to physical android and ios devices and use the apps, live, on the type of gear i intend for the apps to be used on.
then i try out web, get that the way i think it should work, and then desktop.
During development, I mostly use the iOS simulator and then use the Android emulator while running flutter run -d all when I need to test both mobile platforms.
I test using physical devices before handing off to testers or clients or deploying to the app stores.
I would love to use iOS first but I tend to android because the first build is much faster than iOS (from 7 to 11 minutes). Btw, do I have a wrong set up?
Doing a test right now, Hackintosh using Sequoia 15.1, i7 13700K, 128Gb RAM, SSD nVME gen 4 (7Gb/s):
I would love to do this test with flutter run, but since it will never return, time won’t work here.
❯ flutter clean && flutter pub get && time flutter build ios --release
...
Building XXX for device (ios-release)...
Automatically signing iOS for device deployment using specified development team in Xcode project: XXX
Running pod install... 3.8s
Running Xcode build...
└─Compiling, linking and signing... 23.2s
Xcode build done. 109.4s
✓ Built build/ios/iphoneos/Runner.app (52.6MB)
flutter build ios --release 14.89s user 5.04s system 16% cpu 1:59.22 total
Android:
❯ flutter clean && flutter pub get && time flutter build appbundle --release
...
Running Gradle task 'bundleRelease'... 74.9s
✓ Built build/app/outputs/bundle/release/app-release.aab (33.6MB)
flutter build appbundle --release 2.72s user 0.73s system 4% cpu 1:16.81 total
XCode is slower than a handicap elder snail with asthma.
I really doubt an ARM processor would be faster than an i64. Maybe it can even or beat single-core CPU raw performance, but no way it would access PCIe or multithread faster (and, since XCode and Android Studio both uses 92% CPU while compiling, they are multithreading).
And, of course, XCode would be way more optimized to Apple ARM than Java is, so, maybe, for now, Android build really is slower than XCode on ARM processors.
Also, since my Mac is a PC, we’re talking about decent hardware (PCIex 5.0, way faster RAM, a decent nvme, etc.). So, yes, I’m comparing Apples to Oranges (pun intended), and since Intel macs no longer exists:
…so the whole thing is an exercise in futility.
Cletus Spuckler - Season 18 Episide 14
To get timings of a command in posix shells use the time command.
I’m planning to start a benchmark on different hardware using the Flutter compass sample app. When I have prepared that I would like you to provide timings with your machine because indeed currently it’s really difficult to know which machine make which difference.
I mostly write software that I run on Desktop and Mobile so my primary test “device” is usually running in the platform desktop app mode. I spend most of my time developing on Linux machines so that means mostly Linux desktop followed by macOS desktop. It’s only when I have to test something mobile specific that I jump to a simulator or a physical device. For physical devices I have an old iPhone and an old Pixel I use for testing. I used to also have an old TeraCube 2e running /e/os to test the app on an open Android platform.
Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.
Using contents of this forum for the purposes of training proprietary AI models is forbidden. Only if your AI model is free & open source, go ahead and scrape.