Live data from Hacker News

I feel like I made a mistake investing professionally into Flutter

reddit.com

121–130 of 308 posts

Re: I feel like I made a mistake investing professionally into Flutter

#121

So what would be the best mobile development setup for someone who: - prefers to work in a Unix-like environment (e.g. Linux); - prefers to code in Vim; - prefers to have a single unified codebase for different mobile platforms; - prefers to test applications on a Linux machine running an X server.

The one that changes your listed points to something that's compatible with modern mobile development.

Your questions sound like a plumber asking how can he repair computers with a wrench and a saw. Don't get emotionally invested in tools.

Re: I feel like I made a mistake investing professionally into Flutter

#122

So what would be the best mobile development setup for someone who: - prefers to work in a Unix-like environment (e.g. Linux); - prefers to code in Vim; - prefers to have a single unified codebase for different mobile platforms; - prefers to test applications on a Linux machine running an X server.

Why are you hamstringing yourself?

Re: I feel like I made a mistake investing professionally into Flutter

#123
post #19

Dart is my biggest issue with Flutter. It's still missing ergonomic features like data classes and lower level things like unsigned 64-bit integers. There is no runtime reflection, which I think is a good thing for end user apps, but it's also missing static metaprogramming. And code generation is not integrated into a complier. Since, there is no runtime reflection, metaprogramming & integrated code-gen are sorely n…

It may lack things - true. But it's a pleasure to work in. I code quite a bit of Dart these days and the language never really holds you back. It flows quite easily. I use some code generation by having a build runner in the background.

Isn't the need for code generation indicative of the language holding you back?

Re: I feel like I made a mistake investing professionally into Flutter

#124

Obviously I feel the pain of the OP but I think he blames the wrong thing. Flutter is a ( viable ) technology that’s being growing for the last few years. A very significant percentage of new mobile apps are programmed with it these days. It seems his problems have everything to do with the local job market and not the technology. With the added bonus that you can be a single man operation and release your own apps f…

As long as you don’t include in that number - most apps built by Google.

Google can hire separate developers for each platform and pay them, investing millions of dollars into their mobile app.

Can you afford to spend money developing same thing twice forever?

Re: I feel like I made a mistake investing professionally into Flutter

#126
post #121

So what would be the best mobile development setup for someone who: - prefers to work in a Unix-like environment (e.g. Linux); - prefers to code in Vim; - prefers to have a single unified codebase for different mobile platforms; - prefers to test applications on a Linux machine running an X server.

The one that changes your listed points to something that's compatible with modern mobile development. Your questions sound like a plumber asking how can he repair computers with a wrench and a saw. Don't get emotionally invested in tools.

Ok, then I guess I'll wait for the day when WASM runs on these mobile platforms so I can bring my dev environment to them instead of the other way around.

Re: I feel like I made a mistake investing professionally into Flutter

#127
post #122

So what would be the best mobile development setup for someone who: - prefers to work in a Unix-like environment (e.g. Linux); - prefers to code in Vim; - prefers to have a single unified codebase for different mobile platforms; - prefers to test applications on a Linux machine running an X server.

Why are you hamstringing yourself?

(not op) This is not hamstringing. It’s a matter of preference. I prefer jeans to a tie and a costume. I prefer Emacs and Vim to Vscode. I choose jobs that allow me to wear jeans and code in Emacs.

Re: I feel like I made a mistake investing professionally into Flutter

#128
post #15

I don’t buy it. As software developers we learn technologies for breakfast. We learn them, and then we forget them. We recollect the wisdom gained and apply it in our next gig using a different technology. It works for mobile development, for frontend, for backend, for infra, for almost anything. I have worked for years with PHP, Apache, Ansible and MySQL. Nowadays not anymore. And in 7 years I’ll be using something…

> As software developers we learn technologies for breakfast. ... > I have worked for years with PHP, Apache, Ansible and MySQL.

As much as I agree with your general sentiment that adaptation is one of our primary skills in this industry, these two statements combine to sound like parody. You “eat new technologies for breakfast” but PHP and Apache are in your short list of technologies you’ve used for years?

> And in 7 years I’ll be using something else.

And 7 years for your prediction of when you’ll be using a different technology is both oddly specific and oddly long.

Apologies if this comment actually is parody and it’s just flown over my head.

Re: I feel like I made a mistake investing professionally into Flutter

#129
post #75

For anyone reading this and if you want to develop mobile apps, just first learn native iOS/Android platforms, they are not going anywhere before you get tempted by other flashy technologies like Flutter or React Native. Most companies including the ones that created these cross platform frameworks, build thier core apps using native stack for a reason.

I used to say just this. And I did native Android dev for many years, but I gave it up around 2019.

When I finally checked out, native Android was a teetering mess of compatibility libraries, half-baked never-finished “new ways of doing things”, lacking docs, forever-bugs, and overall neglect. Simple ui would take you 5x as long as equivalent css and have you dropping down to low level drawing in frustration.

Back then, I felt native Android didn’t deserve my time or patience.

Has this picture improved?

Re: I feel like I made a mistake investing professionally into Flutter

#130
post #19

Earlier quoted context omitted.

It may lack things - true. But it's a pleasure to work in. I code quite a bit of Dart these days and the language never really holds you back. It flows quite easily. I use some code generation by having a build runner in the background.

I'm wondering how you deal with the pile of constructor calls needed to construct views in Flutter? Deeply nested expressions remind me of Lisp. JSX is conceptually the same but somehow seems easier to read. Maybe it's the close tags?

I'm wondering about this as well, actually this weekend been doing Flutter 'Test Drive' of their tutorial and experience was not that great. I'm still forcing my brain to parse this complex structure with very simple widget structure from their samples.

Its Flutter:

``` class MyHomePage extends StatelessWidget { @override Widget build(BuildContext context) { var appState = context.watch(); var pair = appState.current;

    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            BigCard(pair: pair),
            SizedBox(height: 10),
            ElevatedButton(
              onPressed: () => appState.getNext(),
              child: Text('Next'),
            ),
          ],
        ),
      ),
    );
  }
} ```

versus SwiftUI:

``` struct MyHomePage: View { @StateObject private var appState = MyAppState()

    var body: some View {
        VStack {
            BigCard(pair: appState.current)
                .padding(.bottom, 10)
            
            Button("Next") {
                appState.getNext()
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(8)
        }
        .frame(maxWidth: .infinity, maxHeight: .infinity)
        .padding()
    }
} ```

versus React Native:

``` const MyHomePage = () => { const [pair, setPair] = useState(/* initial pair /);

  const getNext = () => {
    // Logic to get the next pair
    // You'll need to implement this function
  };

  return (
    
      {/* Replace BigCard with appropriate React Native components */}
      
      
        
      
    
  );
}; ```
Post reply on HN