Live data from Hacker News

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

news.ycombinator.com

61–70 of 166 posts

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

#61
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…

Personally I think that Flutter is the future for cross-platform UI toolkits. As a React dev (in my spare time, I’m still a student), using RN was a pain due to the need to install native extensions for almost everything. The batteries-included approach of Flutter and just the polish around the dev workflow made it more attractive to a beginner mobile dev.

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

#62
post #3

I regret not knowing about cross-platform development such as Flutter and ReactOS. I also regret not buying a book explaining all the concepts in as simple a manner as possible. As a semi-amateur programmer, I feel like most of the documentation is meant to refresh the memories of people who have been developing apps for years; they're extremely beginner-hostile.

> I feel like most of the documentation is meant to refresh the memories of people who have been developing apps for years; they're extremely beginner-hostile. Yeah, really agree with that; I'm not sure about the state of Google, but the word 'beginner-hostile' is really an exact state of Apple's documentation (well I'm touching AppKit not UIKit, so that's a factor too but...). Coming from a web background, almost ev…

It’s really sad as Apple’s “Inside Macintosh” documenting the 1984 Mac was fantastically good and readable, very enjoyable to read.

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

#63

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…

Would you mind elaborating on how build scripts helped you (what problem did you solve?) and sharing learning resources?

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

#64
post #46

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?

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 rei…

> The problem with this is that it is an enormous task

It's an enormous task that never ends, too. Flutter has to continually keep up with UI/UX changes that Apple makes. Without enough momentum there, the devs using their platform are going to have apps that appear/feel old, which tends to be a marketing negative for Apple users.

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

#65

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.

> Also, I wish I knew mobile developers are some of the lowest paid developers other than game industry peons. I wish I can tell you you were wrong here but I only have anecdotal evidence. Maybe you’re stuck in a company that’s taking advantage of you with a low salary?

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

#66
post #2

I should’ve known that it’s turtles all the way down. Considering how many years I’ve sunk into programming for other platforms, this shouldn’t have come as a surprise, but I got suckered into believing that mobile computing platforms represented a significant enough paradigm shift to allow for starting with a cleaner slate. Not true! Having gotten into iOS development over the past couple of years, I’ve come to real…

I think certain paradigms were completely shifted compared to the PC space.

  -Revamped permissions
  -App packaging/name spacing/consistent installation
  -IPC was redesigned as asynchronous Intent blobs on Android
  -Urls becoming first class citizens at the OS level
  -More consistent background app apis (and eventually better ways to track them)
I could come up with more but I think there's actually a very big difference. But yes, its all built on top of older Java and obj-c libs.

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

#67

Earlier quoted context omitted.

Currently, Flutter targets OpenGL ES on iOS which is less than ideal. https://github.com/flutter/flutter/issues/18208

"We were discussing this in today's Triage meeting. Our current plan is to turn Metal on soon. This will increase the size of our engine by ~200KB. We can eventually reduce this by removing the OpenGL code but (a) that would drop support for Seems like it will be solved 'soon'

I am really curious why you are concerned at all about supporting iOS 9 (and lower?) at this point. That's a tiny, tiny fraction of worldwide iOS users. Probably not more than 1%. How many people are creating apps in Flutter that need to target that far back, and that user base?

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

#68
post #3

I regret not knowing about cross-platform development such as Flutter and ReactOS. I also regret not buying a book explaining all the concepts in as simple a manner as possible. As a semi-amateur programmer, I feel like most of the documentation is meant to refresh the memories of people who have been developing apps for years; they're extremely beginner-hostile.

Agreed. This absolutely kills me when people say “just read the documentation” or “the documentation is very good” as a reason why they don’t produce examples or templates or starter kits. Not all of us are CS majors or programmers in large teams or with decades of experience to fall back on. Just reading the documentation isn’t enough to get me into a new framework or language. I need to see practical examples. For…

Apple used to have a lot of pretty good (not perfect, but pretty good) conceptual/architectural documentation. Most of it has sadly been sunset, and is hard to find, even though it's still largely applicable. And it hasn't been replaced -- hopefully that's just "hasn't been replaced yet".

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

#69
On Android, that there hasn't been much love for C/C++ and the NDK is full of interesting pitfalls:

Oh your camera gives you NV21 frames, but the hardware VP8 encoder only accepts I420? Makes perfect sense.

Oh, we don't actually let you query what format the encoder expects until a later API than you're using. Just try them in a loop until one doesn't fail, makes perfect sense.

The camera was a party too, added a listener for Camera session events and the app crashed. Yay.

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

#70
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…

Personally I think that Flutter is the future for cross-platform UI toolkits. As a React dev (in my spare time, I’m still a student), using RN was a pain due to the need to install native extensions for almost everything. The batteries-included approach of Flutter and just the polish around the dev workflow made it more attractive to a beginner mobile dev.

I would be hesitant to recommend seriously pursuing cross-platform. Most serious applications generally run into scaling issues as they get more complicated and demands require more than the abstractions the cross-platform tool can provide.
Post reply on HN