Live data from Hacker News

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

news.ycombinator.com

41–50 of 166 posts

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

#41

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.

all software is buggy

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

#42

Earlier quoted context omitted.

> I guess that's what Flutter is doing (for both iOS and Android). How does it do this as opposed to adding yet one more layer? Does it somehow get beneath all the cruft mentioned?

Yes. It's not using any native UI widgets or UI code, but drawing everything itself using the lowest level API it can get, which I guess on iOS is Metal (and something for input). This means that the look and feel and the behavior and accessibility features will not match those of other apps (which do use the native toolkits), or the Flutter team will have to do a lot of reverse engineering and re-implementation to m…

Currently, Flutter targets OpenGL ES on iOS which is less than ideal.

https://github.com/flutter/flutter/issues/18208

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

#43

On the iOS side, I regret not knowing how horrible Xcode is and how horrible Apple's documentation is. On the Android side, I regret not realizing that no matter what kind of slick new well documented APIs Google releases we will all be writing code for Android 4.4 for the rest of our lives. Also, I wish I knew mobile developers are some of the lowest paid developers other than game industry peons.

as a mobile dev at the FANG companies, were paid the same as other engineers. in fact, some are paid more because of the smaller talent pool

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

#44

On the iOS side, I regret not knowing how horrible Xcode is and how horrible Apple's documentation is. On the Android side, I regret not realizing that no matter what kind of slick new well documented APIs Google releases we will all be writing code for Android 4.4 for the rest of our lives. Also, I wish I knew mobile developers are some of the lowest paid developers other than game industry peons.

I have recently looked at surveys in my country and mobile developers are one of the most paid programmers out there, especially the ones experienced with Swift. What does cause the low pay in your country? Logically the sector is ever expanding and there is always demand for hires with any experience.

[deleted]

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

#45

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.

If you want an idea of how good PWAs can get check out Pinafore:

https://github.com/nolanlawson/pinafore

Runs better than most native apps.

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

#46
post #10

Earlier quoted context omitted.

> Don’t get me wrong, iOS is great, and I love it to death. However, the baggage signals to me that a massive opportunity to start anew has been missed. I guess that's what Flutter is doing (for both iOS and Android).

> I guess that's what Flutter is doing (for both iOS and Android). How does it do this as opposed to adding yet one more layer? Does it somehow get beneath all the cruft mentioned?

It is another layer, but it has as small as possible dependence on the below layers (UIKit, OpenGLES, posix) and instead tries to reimplement everything. For instance, if you want a slider control, that’s not going to use UISlider underneath, it’s going to reimplement it from scratch.

The problem with this is that it is an enormous task and they have barely scratched the surface of it.

Flutter is hardly the first reimplement the world GUI programming environment that tries to match the existing first party environment in terms of look and feel. Java swing was pretty much the same idea 20 years ago, and probably had more investment and momentum behind it than Flutter does today. While I can think of a number of swing success stories, I don’t think java swing as a whole was successful in what it set out to do.

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

#47
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 is I didn’t go all-in on mobile sooner. I have been on a constant upward career trajectory since the day I put my first app on the store. Get an app on the store as soon as you can and if it gets traction listen to feedback and update it. If you’re early in your career this will be the only thing on your resume that matters. I highly recommend you start with iOS just because the tools are more friendly for beginners. Watch WWDC/Google IO sessions and keep up with the latest. However it’s best to keep a healthy distance with things that only support the newest OS. For instance I wouldn’t build an app in SwiftUI yet but I follow it like a hawk because it’s likely to be the only way Apple platform apps are made very soon. Closely follow VR/AR frameworks and machine learning. Those will become must-know this decade.

Mobile dev is so rewarding! Every developer should at least dip their toes in.

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

#48
That developing for Android isn’t even as half as smooth as developing for iOS. Yes, with iOS you’re using Xcode and have to set up provisioning for your dev device and all that, but once you’ve done that you’re mostly on your way. UIKit, while not the shiniest thing out there, is quite competent and functional — you can easily write world class apps with it while keeping third party libraries to a minimum.

On Android, setting up for development is a bit faster but the actual development story is so, so much worse. Kotlin improved things a great deal and Jetpack improves it further, but it still has such a long way to go. You’ll spend inordinate amounts of time researching the “right” way to do things only to find that there really isn’t one, but instead several ways with varying levels of wrongness with different trade offs. Even mundane things will be a source of trouble and you will likely have to make concessions in your UI design to work around Android SDK awkwardness.

If I could just have UIKit on Android I would be a much, much happier Android dev. Hoping Jetpack Compose improves the situation but I’m not holding my breath.

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

#50
I built an iOS game using Sprite Kit and had to hack together support for multiple screen sizes later which was kind of a pain. Likewise they make you provide an app icon of like 25 different sizes. Have not done standard UI work yet but unless you use a “reactive” set of layouts I can only imagine the pain.
Post reply on HN