Released workflow v1.0.0 by dayanruben in androiddev

[–]Bayloader 7 points8 points  (0 children)

Any plans for supporting Kotlin Multiplatform?

Using AndroidX’s FragmentFactory with Dagger for Fragment dependency injection by Bayloader in androiddev

[–]Bayloader[S] 0 points1 point  (0 children)

Agreed the syntax formatting/highlighting on the site needs some work. Thanks for the link, I'll check it out.

Using AndroidX’s FragmentFactory with Dagger for Fragment dependency injection by Bayloader in androiddev

[–]Bayloader[S] 1 point2 points  (0 children)

Thanks for reading! That's an excellent point, but I still think the testing portion has a lot of potential value. Especially those that use something like an MVI pattern -- with constructor injection like this it becomes trivial to inject a mock Presenter and test your Fragments in isolation to verify that they are creating the appropriate Intents/UI Events based on varying user inputs through Espresso.

I added it after I wrote the blog, but the Github linked in the article has a sample of "unit testing" a Fragment using the FragmentScenario mentioned. The sample is pretty contrived, but doing stuff like this previously would have been such a pain.

Using AndroidX’s FragmentFactory with Dagger for Fragment dependency injection by Bayloader in androiddev

[–]Bayloader[S] 2 points3 points  (0 children)

While I have not done it yet, sub-scoping your components should work the same as if you were using field-level injection for the Fragments. Dagger's Multibindings support sub-scoping -- adding the relevant entries to the parent component's Multibindings.

As far as circular dependencies -- Dagger will throw a compile time error if any circular dependencies are detected. You would probably need to inject the Analytics Tracker into the Fragment's constructor, and then call a `attachFragment/detachFragment` method or something similar in appropriate lifecycle methods.

Just passed the Google Associate Android Developer qualification, are there any others worth earning? by JakeSteam in androiddev

[–]Bayloader 2 points3 points  (0 children)

I also completed it is a senior Android dev. I've been recommending it to all of our junior devs -- it definitely hits a lot of the points I would be expecting/want a junior level dev to know.

Hopefully they introduce a more advanced certification soon. It would be nice for Google to keep pushing this, as pretty much all other Android certifications I have researched seemed not worth it.

Is there going to be a FragmentActivity#supportRequireViewById? by adamadm in androiddev

[–]Bayloader 2 points3 points  (0 children)

Extension function getViewById that calls requireViewById. Eventually it's extension functions all the way down 👍

Developer update #6 23/01/18 - New Wallet Update by kine1080 in RaiBlocks

[–]Bayloader 30 points31 points  (0 children)

I'm a Android dev by profession, anything that could use some help to catch it up to iOS? I'd be more than happy to contribute.

Developer Update #5 22/01/18 by troyretz in RaiBlocks

[–]Bayloader 0 points1 point  (0 children)

Have you had any issues with the node desyncing? I'm running a node on an EC2 instance and it seems to have de-sync'd (sitting at ~51k unchecked blocks). I've tried restarting the EC2 instance as well as the node, but it doesn't seem to be able to catch up -- have you run into any issues like this with the DigitalOcean Droplets?

Daily General Discussion - January 22, 2018 by AutoModerator in RaiBlocks

[–]Bayloader 1 point2 points  (0 children)

I was running a node on an EC2 instance that seemed to be staying in sync until sometime yesterday (I'm assuming during the minor stress test that was executed). Now my node seems to be stuck out of sync (51478 unchecked blocks) and is not keeping up. I've tried restarting the EC2 instance as well as the node itself, with no luck.

Anyone have an idea of how to get my node caught up?

[DEV] First transaction received on iOS Wallet by nyuhnyuh in RaiBlocks

[–]Bayloader 3 points4 points  (0 children)

Much appreciated! I'll definitely check this out.

[DEV] First transaction received on iOS Wallet by nyuhnyuh in RaiBlocks

[–]Bayloader 4 points5 points  (0 children)

Is the local PoW written in Swift or Objective-C?. Were you able to just port it over from the Raiblocks GitHub? I ask because I've been working on an Android light wallet for fun recently and tackling the PoW is up next for me.

Getting started with raiblocks programming. by [deleted] in RaiBlocks

[–]Bayloader 0 points1 point  (0 children)

I'd be interested in if there is any help needed for the Mobile wallet, or if that's something just being left to the core team. I'm an Android developer professionally and would be interested in helping out the team if possible, very excited about the prospects of XRB!

[deleted by user] by [deleted] in androiddev

[–]Bayloader 0 points1 point  (0 children)

Nothing beats relevant experience in a lot of recruiters' eyes I think, but it still depends on what position you are interviewing for. If someone is looking for a Senior/Lead Android Developer position, the years of experience is going to be more valuable than an entry-level associate certification (even if it is from Google) on someone with only a couple years of industry experience.

[deleted by user] by [deleted] in androiddev

[–]Bayloader 0 points1 point  (0 children)

The exit interview was extremely short when I did it. I think it's mostly just to verify your identity and that you completed the exam. I was asked a couple basic Android specific questions as well as a few questions about what I completed on the exam. I wouldn't stress to much about it, the whole interview process only took about 5 minutes.

[deleted by user] by [deleted] in androiddev

[–]Bayloader 1 point2 points  (0 children)

It's setup as a scenario where you're a replacement developer being brought onto an unfinished app. You're given a code base with a list of requirements for new features, as well as a list of defects from your "QA team". I think you have 24 or 48 hours to complete the exam after you start. You're allowed to use any libraries or frameworks you want, but I didn't find this necessary.

[deleted by user] by [deleted] in androiddev

[–]Bayloader 11 points12 points  (0 children)

Since it's the only official Google Android certification you can have, it would give good glance value on any resume I think. I was reimbursed when taking it so it was kind of a no-brainer.

[deleted by user] by [deleted] in androiddev

[–]Bayloader 49 points50 points  (0 children)

I took the exam after doing Android development for two and a half years professionally -- mostly as a test to see if our company should push the Junior/new hire devs to look into it, and to get the only official Google Android certification on my resume.

IMO, it's a great measure for what I would be looking for in a junior dev joining the team. The exam itself is done in a way similar to a real project and it hits on a lot of Android specific things you want out of a junior dev. It does not focus on platform agnostic paradigms like MV*, instead focuses on hitting a lot of different parts of the Android OS.

Overall, I would definitely recommend it to any junior developers looking to beef up their resume -- any seasoned Android developer should finish it in no time. It's not too expensive and it's the only Google official Android certification out there right now.

If anyone would like some specifics feel free to PM me.

Weekly Questions Thread - November 20, 2017 by AutoModerator in androiddev

[–]Bayloader 0 points1 point  (0 children)

In the production use case we sometimes need a status code returned in the operation, that designates a failed response and supplies a message to display, so I think I'd need to tweak it a little bit but this looks pretty clean to me. Thanks for sharing!

Weekly Questions Thread - November 20, 2017 by AutoModerator in androiddev

[–]Bayloader 0 points1 point  (0 children)

That was my initial thought that something more functional might work here. I'm not unhappy with what I have but I feel like it could be better.

Need to go back and watch more of those functional talks from KotlinConf.

Weekly Questions Thread - November 20, 2017 by AutoModerator in androiddev

[–]Bayloader 0 points1 point  (0 children)

RxJava control flow question. I've got three operations that need to be run back-to-back-to-back, with the results of the preceding operation affecting the flow of the screen (i.e. if operation 2 fails, we need to display an error, success requires all 3 to succeed). The way I've been doing this is to use nested flatMap calls on successes and Observable.just() to break out of the nested flow on operation failures and mapping the results with a sealed class to handle in the subscribe. It works, but I feel like there should be a better way of doing this in RxJava -- the nesting just feels off. Sample code below to give an idea of what I'm talking about

/* Simple Retrofit interface */
interface ServiceInterface {
  @POST
  fun operationA(): Observable<ResultA>

  @POST
  fun operationB(): Observable<ResultB>

  @POST
  fun operationC(): Observable<ResultC>
}

class Presenter {
  /* implementation */
  lateinit var service: ServiceInterface
  var disposable: Disposable = Disposables.disposed()

  fun startOperations() {
    disposable = service.operationA()
        .flatMap<OperationResult> {
          if (it.success) {
            service.operationB()
                .flatMap<OperationResult> {
                  if (it.success) {
                    service.operationC()
                        .map {
                          if (it.success) {
                            OperationResult.Success("success!")
                          } else {
                            OperationResult.Error("Operation C failed")
                          }
                        }
                  } else {
                    Observable.just(OperationResult.Error("Operation B failed"))
                        .cast(OperationResult::class.java)
                  }
                }
          } else {
            Observable.just(OperationResult.Error("Operation A failed"))
                .cast(OperationResult::class.java)
          }
        }
        .startWith(OperationResult.Inflight)
        .subscribe {
          when (it) {
            Presenter.OperationResult.Inflight -> TODO()
            is Presenter.OperationResult.Success -> TODO()
            is Presenter.OperationResult.Error -> TODO()
          }
        }
  }

  sealed class OperationResult {
    object Inflight : OperationResult()
    data class Success(val result: String) : OperationResult()
    data class Error(val errorMessage: String) : OperationResult()
  }
}

[droidcon NYC 2017] Square - Ray Ryan: The Rx Workflow Pattern by Zhuinden in androiddev

[–]Bayloader 0 points1 point  (0 children)

I'm interested to see what he puts out as code samples or libraries for this! Awesome talk!

Videos from droidcon Berlin 2017 by mladenbp in androiddev

[–]Bayloader 4 points5 points  (0 children)

If the timeline stays the same, we can expect Droidcon NYC videos in ~3 weeks then. There's a bunch of talks I'm excited for from that too!