Githawk: Refactor networking into its own library

Created on 20 Feb 2018  ·  4Comments  ·  Source: GitHawkApp/GitHawk

I want to put everything:

  • Alamofire
  • GithubClient
  • All session management stuff
  • All Apollo stuff (lib and gen)

Into a single library, call it "GithubAPI" or w/e. I want to prepare to allow things like a watch app or extension, but all of this needs to get moved out.

While we're at it, I really like the networking API design in this article. We can make requests + responses all typed and use enums to reduce all of the request options into a single API on GithubClient. That should reduce a lot of complexity and greatly decouple requests, responses, and parsing.

Also I want to remove the FlatCache from the network client. That's cheating.

Phase 2 will be to migrate and use shared app storage for sessions, bookmarks, etc. But we can do that later.

❔ question

Most helpful comment

I’m still not sold that enterprise support will ever truly work given the GraphQL version issues.

Very least after 1.18 ships. Not a huge rush, but I’d like to clean this stuff up plus pave the way for someone to hack freely on a watch app or extension (I’ll basically ship whatever anyone wants to build).

Sent with GitHawk

All 4 comments

Any idea as to when you want to tackle this? Might get a bit hairy when working on enterprise support at the same time.

I’m still not sold that enterprise support will ever truly work given the GraphQL version issues.

Very least after 1.18 ships. Not a huge rush, but I’d like to clean this stuff up plus pave the way for someone to hack freely on a watch app or extension (I’ll basically ship whatever anyone wants to build).

Sent with GitHawk

Yep, fair! Will update on my findings regarding Enterprise. 👍

After #1549 the Request type can probably be pulled out of the GithubClient by the way.

Sent with GitHawk

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rnystrom picture rnystrom  ·  3Comments

BasThomas picture BasThomas  ·  3Comments

BasThomas picture BasThomas  ·  3Comments

BasThomas picture BasThomas  ·  3Comments

BasThomas picture BasThomas  ·  3Comments