Live data from Hacker News

Ask HN: What do you regret you didn't know when programming for iOS or Android?

news.ycombinator.com

151–160 of 166 posts

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#151
post #107

Earlier quoted context omitted.

Flutter is DOA for anything but short-term projects. For one thing, it’s tied to a custom language. That means there’s significant overhead for developers which shows itself directly as a learning curve, or indirectly in terms of hiring or retention of developers. At least as significantly, they chose to implement custom controls (rather than wrap native controls). With that approach there’s really no way for them to…

> For one thing, it’s tied to a custom language. Are you talking about Dart? If so, that's absolutely savage, lmao. To not only call it a "custom" language but not even name it. The amount of disrespect - and the worst thing is I don't even think it was intended. Even if this is one person, I think this speaks volumes about how much of a joke the language is. It's just so sad. And to think that the team behind flutte…

Well they did add the compiler half way through.

You can write idiomatic Dart code that won't run because Flutter asserts crash it at runtime. And you fix it by writing code that the Dart compiler complains about but lets you run and it works (even though it shouldn't). Is there another compiled language where this is the norm?

What's the point of dealing with a half baked ecosystem when there are much better languages available?

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#152
post #24

I'm a self taught programmer and started developing for Android in 2012. It took me a while before I realised that you needed third party libraries to do absolutely anything useful as the platform APIs were so poor and undocumented. There were gaps everywhere and you needed to write tons of boilerplate code to do things properly. Image loading was often a huge source of crashes due to out-of-memory errors and doing i…

>Even Google's own Pixel devices do not support this. The image quality from CameraX API is not ass good as the stock camera. And there is no support for Night Sight. I do not get this.

From the comment 2 months ago https://www.youtube.com/watch?v=QYkTXJ2TuiA&lc=UgwBlx_R3eL4k...

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#154
post #127

React Native isn’t nearly as good as the hype suggests, and the pain only gets worse as your project grows.

Why do you say that? What are some of the issues?

The tooling is just unstable in general in my experience. You never know when things will get into a bad state and you have to kill everything and clear your caches and restart. And then in my experience styles don't actually behave the same way on iOS and Android. They also continue to make breaking changes so you always have to be worried about not only your own code but your dependencies handling that appropriately. The debugger itself is also prone to crashing and requiring full restarts at inconvenient times. Overall, I feel like the amount of random bullshit and platform specific workarounds I have to do makes it so I'm not really saving time VS having 2 native apps and I'm less confident about the overall quality of my software. There's also A LOT of valuable things in the native SDKs that no quality wrapper exists for, so you're missing out on a lot of productivity benefits of the underlying platforms.

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#155
post #134

Earlier quoted context omitted.

IB files are essentially impossible to code review.

If you read the storyboard diffs the layout code is human readable, just need to get used to it. Although there is no docs

Not in the case where a bunch of views are moved inside a new view. Then the XML diff is really janky, and elements are assigned new IDs.

The constraints are impossible to code review in XML since they refer to elements by IB ID which is essentially obfuscated. I don't understand why IB doesn't let you give the elements their own human-readable IDs.

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#156

It depends somewhat on why you ask. A lot of people are recommending using cross platform solutions. As a hobby or learning exercise, go for it! As someone who has a career across many projects working full time as a native iOS and Android dev, I can say these solutions are generally avoided. They are good for prototypes you don’t plan to maintain long term, I’ll give them that. I know it’s cheesy but my only regret…

As a front end dev I’ve been thinking about it for so long but honestly I don’t know what I should build or study first.

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#157

I regret not knowing that Android API is awful. Then I regret looking into Nativescript, because it was pretty buggy. Then I regret not knowing about Flutter earlier. THEN I regret not knowing that Flutter is pretty buggy as well. Next step is me trying to learn other frameworks, like Cordova or React Native. I wonder what my regrets will be.

Flutter is quite good, what were some of the issues you experienced? The one PITA for me is state management, but once you understand how to solve that using BLoC or Providers then it should be relatively usable

Well since you ask: Flutter is good, but it's also buggy.

1. Problem with Cupertino theme on Android - https://github.com/flutter/flutter/issues/42988#issuecomment... -- only point 1 from this post matters, because point 2 was resolved by a helpful person below the post. But point 1 is still unresolved, and it looks bad.

2. Flutter runtime simply crashes on some mobile phones when loading the app. I've released an app on old SDK, and with every update of some minor thing + SDK I'm getting reports about new crashes from people who rated the app 5 starts on older SDKs, because it was working for them earlier. I've tried to report it: https://github.com/flutter/flutter/issues/43240 but my issue was grouped with some unrelated problem, and my questions were ignored.

3. I think the x86 codegen in Flutter is sometimes buggy. I've used a ZIP compressor/decompressor library written in pure Dart and it sometimes crashed in random location after using the library. I've tried to debug it but there was no pattern for the crash. The crash also was happening on the system level (SIGSEGV) instead of simply throwing an exception that would be catchable by Dart. When testing on the mobile phone, so when ARM codegen was used, I've observed no crashes and no problems when using the archive library.

4. Google AdMob has poor support for Flutter. The official AdMob lib doesn't support native ads, and is incompatible with widgets that draw an always-on-top layer, like Drawers or Action Buttons at the bottom right corner of the screen. It IS possible to finally work out the solution by using some thirdparty library which uses AdMob in a hacky way, but I would expect something better for one of the most crucial Google services like AdMob.

5. Until recently there was no support of Cupertino theme's i18n. I had to manually translate all texts of Cupertino theme to a different language (like 'copy', 'paste', etc).

I've released two apps in Flutter but I'm afraid to update them, because something always breaks after update.

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#158

I regret not knowing that Android API is awful. Then I regret looking into Nativescript, because it was pretty buggy. Then I regret not knowing about Flutter earlier. THEN I regret not knowing that Flutter is pretty buggy as well. Next step is me trying to learn other frameworks, like Cordova or React Native. I wonder what my regrets will be.

Cordova and react native are going to disappoint you for the same reasons.

With an expectation like this, I only can be pleasantly surprised :)

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#159

Don’t underestimate the value of build tools. Just because you know Xcode and Swift or Android Studio and Kotlin (or their antecedent languages) are you done. Finally having a senior dev who knows what he’s talking about has done more for me in the past two years than the previous 8 of reading blog posts and hacking. He’s shown me the real value of build scripts. Today even my personal iOS projects are dependent on a…

Can you explain more? I'd like to learn more about this.

Re: Ask HN: What do you regret you didn't know when programming for iOS or Android?

#160
post #112
post #107

Earlier quoted context omitted.

Flutter is DOA for anything but short-term projects. For one thing, it’s tied to a custom language. That means there’s significant overhead for developers which shows itself directly as a learning curve, or indirectly in terms of hiring or retention of developers. At least as significantly, they chose to implement custom controls (rather than wrap native controls). With that approach there’s really no way for them to…

I disagree strongly with this. I'm currently writing a cross-platform app in Flutter that is launching soon, and I found that the developer experience is world-class and I've had very few issues so far. The language is incredibly easy to pick up with close to zero overhead if you are a somewhat competent programmer as it is essentially a very lightweight OOP language. My main languages are otherwise Go and Rust, and…

I've released two Flutter apps on Google Play and I don't see Flutter in such pink colors. Every SDK update makes some users change their ratings because the app starts crashing for them, even when I'll make trivial changes. Cupertino theme is bugged on Android. Flutter team is OK with doing breaking changes to widgets, so when you update, prepare your self that you may need to rewrite some parts of your app, because some widget has changed, etc.
Post reply on HN