Hacker News new | past | comments | ask | show | jobs | submit login

How feasible is a dev setup with Flutter where one uses Emacs (or any other general purpose text editor like vi) for coding and the flutter cli for compiling and testing? I do have a couple app ideas, and I'd definitely prefer to avoid the IDEs when possible (especially Android Studio which just strangles my laptop); Flutter seems to fit that workflow, but has anybody got actual experience doing that?

I use Emacs, and I'm one of the lead contributors to Flutter. Hopefully that answers your question. :-)

We have various tools that can help you configure your setup without an IDE. For example, `flutter run` listens to SIGUSR1 to do a hot reload, `flutter analyze` has a flag to write the latest results to a file, etc.

I'm also a Flutter contributer and code entirely in vim. I use dart-vim-plugin for syntax highlighting and 'flutter analyze --watch' for live analysis.

If you're after code completion, vim-lsc plugin combined with dart_language_server should work.

[1] https://github.com/dart-lang/dart-vim-plugin

Yeah, that definitely motivates me :) Thanks!

I actually don't have any experience in that, but I think that you can absolutely do it. From what I understand, the IDEs just call the Flutter CLI and Dart analysis server, among other tools to get stuff done. From the top of my head, "flutter run", "flutter test", "flutter analyze", "flutter packages get" would be the commands you'd be using the most and could survive without using any IDEs. Of course you'd lose the autocompletion along with other IDE niceties, but I really believe that could be done. One thing is you might have to open XCode once to do the provisioning profile setup, but after that you should be good.

I'm hoping someone with more experience could chime in.

Thanks. Is having XCode necessary in order to build and publish for iOS (I guess yes)? I don't use apple computers and use linux, so if that's the case I'd need to buy a Mac and XCode to do so, no?

For iOS apps, you need a Mac. Maybe (and this is theoretical) you could set up a combined Fastlane & CI integration that builds the apps using some cloud service, such as Macincloud, Bitrise, etc. Fastlane would then build and upload the iOS test builds automatically so can use them on your phone using the internal testing group in TestFlight. When everything seems fine, then you can just promote the internal test build to production. Since Flutter custom renders everything, you could do most of the development on a Linux machine and test on Android emulator/device.

For just Android, you don't need a Mac at all.

WRT cloud building: yes, it'd be more ideal to have a Mac especially if you want any platform specific UX or features but you can definitely get around it using just a Linux machine, an iOS device and some CI system.

The Flutter project itself does it at https://github.com/flutter/flutter/blob/master/examples/flut.... You can then self-add to your TestFlight and check that way. Though you can't debug.

You can also get around it using just a Linux and an Android device. You can press 'o' after you flutter run to change the platform on the fly to get iOS scroll physics, page transitions etc etc. But again, testing on the devices your users will be using is more ideal.

[disclaimer: I'm on the Flutter team]

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact