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.
It’s Been Real, Android: Why I’m Retiring from Android
291–300 of 342 posts
Re: It’s Been Real, Android: Why I’m Retiring from Android
#292Earlier 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?
Re: It’s Been Real, Android: Why I’m Retiring from Android
#293Earlier 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.…
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
#294Earlier 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…
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
#295Earlier 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…
Thats not a bragging point.
Re: It’s Been Real, Android: Why I’m Retiring from Android
#296Earlier 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.
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
#297Developers 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…
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
#298Earlier 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.
I appreciate the reply
Re: It’s Been Real, Android: Why I’m Retiring from Android
#299I 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…
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
#300Like 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…
What do you mean? Where craigslist entrepreneurs and seed stage startups want iOS apps?