Live data from Hacker News

It’s Been Real, Android: Why I’m Retiring from Android

raptureinvenice.com

291–300 of 342 posts

Re: It’s Been Real, Android: Why I’m Retiring from Android

#291

Earlier quoted context omitted.

Regardless of the platform, for any application with a non-trivial amount of complexity, iterative development is the best approach. I don't understand how anyone could "write it all down, read through the code a few times and test" and not produce a buggier application that doesn't meet most expectations. It does help to do some initial design work, create abstractions, loose coupling, etc. Iterative development doe…

You are confusing scopes here. The parent almost surely meant those approaches applied to a single task (meaning a few hours to a day of work), not to building an application.

Being pedantic - the parent was commenting on the article, not on a comment here dealing with a single task or one small piece worth a day's work. I see no indication on how you could make a statement saying "...almost surely meant..." Based on the information available, either of our premises could be true.

Re: It’s Been Real, Android: Why I’m Retiring from Android

#292

Earlier quoted context omitted.

I agree completely. After a while I abandoned fragments completely and started using custom views everywhere. Life got much easier and I kept waiting for the other shoe to drop - decreased maintainability, performance, robustness... something would bite me in the ass for "going my own way." But the shoe never dropped, life did get easier. Lesson learned.

Thanks for sharing your experience with using custom views only. These views would then simply act as the view controller I guess, having not much presentation logic. I was always having this in my head but then I never tried it out so far. Are you going even that far to use one Activity per app only?

I do that, but i didn't built an app so far where an activity could be directly started from "outside".

Re: It’s Been Real, Android: Why I’m Retiring from Android

#293

Earlier quoted context omitted.

> After all these years, I still find the most difficult and un-natural thing is mixing concurrency / background tasks that must outlive the UI with complex UI component lifecycles. Completely agree. I've been developing for Android since 1.0 and the complex interaction between background tasks and activity lifecycle is the worst part of Android that a significant majority of devs get wrong, introducing subtle bugs.…

Some historical context, fragments came out with Honeycomb which was the first version of Android specifically for tablets. As such Fragments were meant to be a way write UI in something both tablet and phone layouts could use. So, that's the mysterious reason for the extra layer of complexity. I think at this point, many people don't even use them unless they specifically need to for tablet/phone/tv shared layouts.…

The failure to envision future devices of unpredictable resolution was an insufferable failure of both Google and Apple.

It's worse in Google's case because Android is more recent.

I've been an iOS developer; but with Apple's continuing war on usefulness (the headphone jack being the last straw), I'm thinking of moving to Android.

But everything I read and observe in the marketplace indicates that Android is a pathetically designed pile of shit.

Re: It’s Been Real, Android: Why I’m Retiring from Android

#294
post #74

Earlier quoted context omitted.

> After all these years, I still find the most difficult and un-natural thing is mixing concurrency / background tasks that must outlive the UI with complex UI component lifecycles. Completely agree. I've been developing for Android since 1.0 and the complex interaction between background tasks and activity lifecycle is the worst part of Android that a significant majority of devs get wrong, introducing subtle bugs.…

>Overall, I wouldn't say Android is poorly designed, it's just mediocre I think it is mostly have to do with company's talent pool and focus. As far as I can see (I may be wrong, this is my estimate) Google tries hard to devote best talents to 1) ads and Search and it's maintaining 2) Chrome team 3) Google apps and services online and on iPhones. After these option they try to develop Android as kinda (I don't know w…

When you really look at Google's offerings, however, they suck. Their UI is terrible and their branding is worse.

We have dozens or hundreds of essentially proprietary versions of Android running around, which can't be updated. The great "open-source" OS that would save us all from vendor and telco tyranny most certainly DID NOT. The failure to create a proper hardware abstraction layer and driver model is just embarrassing.

Ugh, even Google's Web offerings suffer from UI incompetence and hypocrisy: Google declared that they'd "punish" Web sites that aren't "mobile-friendly," so what does Google do? DISABLE ZOOMING on mobile browsers on ITS OWN site.

Re: It’s Been Real, Android: Why I’m Retiring from Android

#295
post #284
post #232

Earlier quoted context omitted.

No it doesn't it's the same on iOS. Apple didn't come up with dependency/package managers like Carthage or Cocoapods, the community did. There's just enormous amounts of OSS libraries provided by the community too, with ones like Alamofire smoothing out the rough edges of iOS's networking APIs.

Actually, I make a point in my iOS projects to avoid third party libraries wherever possible. The first-party SDK is good enough that the dependency cost of libraries like Alamofire is usually not worth it. I had to do some Android development not too long ago, and I felt like I had entered some crazy la-la land until I found a bunch of third party infrastructure like Kotlin, RXJava and a pile of libraries to make li…

> Actually, I make a point in my iOS projects to avoid third party libraries wherever possible.

Thats not a bragging point.

Re: It’s Been Real, Android: Why I’m Retiring from Android

#296

Earlier quoted context omitted.

Did you try profiling your build? https://docs.gradle.org/current/userguide/tutorial_gradle_co... If not then you shouldn't assume it's Gradle's fault. A lot of Android Gradle builds are slow because they proguard lots of class files, merge large dex files, etc. Which is all optional functionality of the Android plugin, not inherent to gradle.

Do you realise how insane it sounds to tell someone to profile their build config? The fact that people need to do this is the problem.

> Do you realise how insane it sounds to tell someone to profile their build config?

This is absolutely not insane.

I've saved over a minute per project per build simply by switching linkers (bfd -> gold IIRC?) in a large set of C++ projects. There were several projects - this easily saved 10 minutes per build when touching core libraries.

Considering my experience was that gradle builds were faster than corresponding ant builds (when not much has changed, in codebases with relatively small amounts of Java - e.g. I'm doing small iterations, which I care to optimize for), profiling what exactly is to blame seems worthwhile. I do it for 200ms hitches, why shouldn't I do it for multi-minute builds?

You want a build pipeline so fast that you don't even have a build step? So do I, but devs will still figure out how to add one which may take several minutes (e.g. unit tests.) - better to aim for a practical compromise that lets you iterate fast (hot reloadable scripts and data for example.)

> The fact that people need to do this is the problem.

To move this towards the realm of tautologies - performance problems are problems, yes. So solve them. But profile to ensure you're actually solving the right problem first.

Yes, ideally our build systems already have perfect caching - and could rely on filesystem events instead of directory scans for cache invalidation - and have blazing fast parsing steps, all resulting in subsecond build times.

On the other hand, it's insanely complicated to reach perfect caching for all buildable things - and there's only so much you can do if one of the buildable outputs is a large compressed file, for example (which is a common feature in pretty much every project I see, containing all the assets bundled and compressed in some form for better runtime performance.)

Dumb and simple tends to be more reliable, more understandable, and usually not too much worse. Although sometimes you'll be left profiling the edge cases and adding or fixing the caching involved.

Re: It’s Been Real, Android: Why I’m Retiring from Android

#297

Developers do need to pick a set of core technologies, and stick to it or a career can fall apart I bet. I don't know from experience. I've been a Java DEV ever since MSFT tried to hijack the Java language with a proprietary version back in 1998, and I abandoned MSFT and never went back. I can imagine trying to be both iOS and Android developer would be about as insane as trying to be both .NET and Java developer. Oi…

so much wrong with that statement

iOS and Android are actually very similar and become more and more similar with each major revision. Where the syntax diverges, the unique concepts remain the exact same.

Re: It’s Been Real, Android: Why I’m Retiring from Android

#298
post #143
post #49

Earlier quoted context omitted.

> The only thing worse than gradle is ANT, which it replaced. What's wrong with ant? I liked it.. It was simple to understand for the most part. It also made it easy to develop without an IDE, although I'll admit I don't know how easy it is now as I stopped doing Android a year ago

And that's about all it does. Gradle has proper dependency managment with Maven repository support (add one line and your library is in, no fsckery with JARs and whatnot), has scripting in an imperative language instead of craziness of XML (we use it to automate releases, uploads, Git commits, etc.) and really good plugin support. It's also slow as arse unfortunately.

Ah I agree on the dependency part. I suppose it was easy enough for me to just pull in the jars but I suspect my projects had rather simple dependency needs. Sounds like what you were doing was much more involved!

I appreciate the reply

Re: It’s Been Real, Android: Why I’m Retiring from Android

#299

I was an Android developer, then flipped to being an iOS & Android developer. I chose to go back to solely Android for similar reasons to the OP. It felt like it was impossible to be excellent on both platforms. I was struggling to keep up with the pace of change. I ended up choosing Android because I found more demand for Android developers in the market. I certainly understand some of the OP's frustration with Andr…

Oversaturation of iOS devs. Many people chasing the perceived glamour, diluting each other's pie.

There's a lot of silver lining to doing android development for other people. Inflated demand, and all the client side - server side fires have already been put out when the company did the iOS project. So I would say, easier or less stressful.

But I've been at this for a while, so there's the possibility I'm just good at it.

Re: It’s Been Real, Android: Why I’m Retiring from Android

#300
post #14

Like the op, I do both iOS and Android development work. However, as an indie, my platform preference is primarily market-driven. So most of my work has been on iOS Unlike the OP, I like and use Android AsyncTasks. I have no problems with Android fragments either. However, I did have a lot of other concerns with Android - primarily the low quality of Google's SDK for Android. Here is what I wrote about it https://blo…

> However, as an indie, my platform preference is primarily market-driven.

What do you mean? Where craigslist entrepreneurs and seed stage startups want iOS apps?

Post reply on HN