Live data from Hacker News

Open sourcing our Android and iOS apps

kickstarter.engineering

61–70 of 74 posts

Re: Open sourcing our Android and iOS apps

#61
post #41

I'm not a mobile app developer by profession. But I always wanted to start learning and developing real world apps. The problem I always ran into the tutorials and demos, that they are mostly limited(i.e not close to solving real world problems). I think browsing their code, will give me a good start. And I would know how it's done right! Thank You!

Lots more open source Android apps on f-droid:

https://f-droid.org/

Re: Open sourcing our Android and iOS apps

#62
post #19

Earlier quoted context omitted.

> In less than eight months, four engineers who had never written production Java code, let alone production Android code, shipped a 1.0. Wow. That's pretty impressive

It's impressive that it took almost 3 person years to ship a 1.0 of a basic app?

it's impressive that 3 person years from _no Java experience_ was all it took. Java and Android are complex ecosystems.

Not to say they couldn't have shipped it in less time. Of course they could have. But it sounds like they shipped something very well built.

Re: Open sourcing our Android and iOS apps

#63
post #62

Earlier quoted context omitted.

It's impressive that it took almost 3 person years to ship a 1.0 of a basic app?

it's impressive that 3 person years from _no Java experience_ was all it took. Java and Android are complex ecosystems. Not to say they couldn't have shipped it in less time. Of course they could have. But it sounds like they shipped something very well built.

But what other languages did the have experience with? If it was something similar like c#/c++/ruby/python then the time to learn java should not be significant.

Re: Open sourcing our Android and iOS apps

#64
post #30

Kudos to them. Compared to the web it's rather cumbersome to poke into packaged and released mobile apps, so I really appreciate access to the source of a real world app for learning and comparison. The Android codebase looks very modern and well structured. I think it makes great use of many of the goodies (gradle, rxjava, retrofit, dagger, android support lib, ...) and learnings (bring your own MV*; use Fragments w…

And actual tests for the Android app! It's a rarity, and especially annoying since the "sample" apps that Google provides pretends that testing doesn't exist.

Unit tests or integration tests? It may be better now, but android used to be a real pain to unit test, so much important functionality was baked into the Activity base class that was hard to substitute.

Re: Open sourcing our Android and iOS apps

#65

iOS Project does not build - Xcode 8.2... There is a guard statement with no else clause, that's the first error I got. I didn't bother looking further because... a guard without an else could never compile, so what am I looking at? I'm getting flashbacks from my last workplace where people merged in code that didn't compile and then went 'oh really? let me fix that real quick'... Code wouldn't compile in master but…

> Download the Xcode 7.3.1 release.

The app requires a different version.

https://github.com/kickstarter/ios-oss/blob/master/README.md

I concede. There are issues getting the dev environment configured.

Re: Open sourcing our Android and iOS apps

#66

I had a chance to see Brandon from Kickstarter talk about their functional approach at the Functional Swift Conference in Budapest. I highly recommend watching it! https://www.youtube.com/watch?v=A0VaIKK2ijM

Thanks for the link. Watching so far, many of the points Brandon makes vaguely resonate with how I approach structuring my code, but knowing the common vocabulary (f.ex. the term ‘co-effect’) enables me to communicate how and why I do things, and ultimately to improve.

Out of curiosity, how much were the tickets and how early was it sold out? I was in Budapest right at that time to attend our remote team meeting, and I’m cursing myself for not knowing about this conference.

Re: Open sourcing our Android and iOS apps

#67
post #41

I'm not a mobile app developer by profession. But I always wanted to start learning and developing real world apps. The problem I always ran into the tutorials and demos, that they are mostly limited(i.e not close to solving real world problems). I think browsing their code, will give me a good start. And I would know how it's done right! Thank You!

Having looked through this project I would not recommend using it as a basis for learning how an iOS app is "done right", as they've deviated from standard iOS/Swift paradigms significantly. In particular, the use of ReactiveCocoa and MVVM creates an app that is structured completely differently from a "traditional" iOS app. They've also used (abused?) Swift's ability to define custom operators which results in a lot of code like this:

    self.youLabel
      |> authorBadgeLabelStyle
      |> UILabel.lens.textColor .~ .whiteColor()
      |> UILabel.lens.text %~ { _ in Strings.update_comments_you() }
Which again is very different from regular iOS/Swift code.

That said, I think this project is interesting to look at from the perspective of "this is what it would look like to go all-in with ReactiveCocoa and MVVM". It's kinda like Twisted in Python: Twisted code looks very different from normal Python code, cause once you start using Twisted, it becomes Twisted all the way down.

Re: Open sourcing our Android and iOS apps

#68
post #63
post #62

Earlier quoted context omitted.

it's impressive that 3 person years from _no Java experience_ was all it took. Java and Android are complex ecosystems. Not to say they couldn't have shipped it in less time. Of course they could have. But it sounds like they shipped something very well built.

But what other languages did the have experience with? If it was something similar like c#/c++/ruby/python then the time to learn java should not be significant.

When it comes to Android, Java by itself is the least of problems. It's the SDK and framework that are tricky, ridden with technical debt and often far from developer-friendly.

Re: Open sourcing our Android and iOS apps

#69
post #19

Earlier quoted context omitted.

> In less than eight months, four engineers who had never written production Java code, let alone production Android code, shipped a 1.0. Wow. That's pretty impressive

It's impressive that it took almost 3 person years to ship a 1.0 of a basic app?

I have never used this app myself, I don't know whether it's complex. I only peeked at the source code. And yes I was referring to the contrast between how neatly written it is, and their lack of experience with the platform, not how fast they did it.

Development on Android tends to be slow overall, owing to numerous intricacies of the platform, but I believe that in general taking some extra time to roll out a clean and polished version 1.0 will pay off when it comes to 2.0 and 3.0. It's always easy to move fast in the beginning, use lots of duct tape and snap something out rapidly, but it comes at a cost and then you get bogged down further down the line

Re: Open sourcing our Android and iOS apps

#70
post #30

Earlier quoted context omitted.

And actual tests for the Android app! It's a rarity, and especially annoying since the "sample" apps that Google provides pretends that testing doesn't exist.

Agreed! But some great companies has been Open Source'ing their Android applications for a while. I.e. DuckDuckGo's app ( https://github.com/duckduckgo/android ) and the Forcastie weather app ( https://github.com/martykan/forecastie ). They are great references!

I quickly looked up DuckDuckGo, and - unlike this one - boy is it spaghetti: https://github.com/duckduckgo/android/blob/master/src/com/du...

Yes I've seen worse, but this most certainly isn't a great example of how to structure an Android app, not to mention the overall untidiness (commented out lines, messed up indentations etc.)

Post reply on HN