{"id":18708200,"url":"https://github.com/czajnikowski/rdxchallenge","last_synced_at":"2026-05-19T10:35:29.280Z","repository":{"id":214653094,"uuid":"644952778","full_name":"Czajnikowski/RDXChallenge","owner":"Czajnikowski","description":"Coding challenge, a part of the interview process for RDX.","archived":false,"fork":false,"pushed_at":"2024-02-12T13:16:59.000Z","size":56,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-28T07:27:23.283Z","etag":null,"topics":["composable-architecture","ios","swift","swiftui","tca","thecomposablearchitecture"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Czajnikowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-24T15:39:58.000Z","updated_at":"2024-06-13T08:46:55.000Z","dependencies_parsed_at":"2024-11-07T12:25:56.600Z","dependency_job_id":"bf422ca3-50f4-42f8-a4ea-d803e9196abf","html_url":"https://github.com/Czajnikowski/RDXChallenge","commit_stats":null,"previous_names":["czajnikowski/rdxchallenge"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Czajnikowski%2FRDXChallenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Czajnikowski%2FRDXChallenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Czajnikowski%2FRDXChallenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Czajnikowski%2FRDXChallenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Czajnikowski","download_url":"https://codeload.github.com/Czajnikowski/RDXChallenge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239571586,"owners_count":19661165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composable-architecture","ios","swift","swiftui","tca","thecomposablearchitecture"],"created_at":"2024-11-07T12:22:16.161Z","updated_at":"2026-05-19T10:35:29.244Z","avatar_url":"https://github.com/Czajnikowski.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RDXChallenge\nCoding challenge, a part of the interview process for RDX.\n\n## First things first\nIt was a fun challenge 🎉\n\nInitially, I’ve been a bit sceptical about the tight timeframe, and the fact that I have never used the Composable Navigation before (it wasn't even released to the `main` branch yet), but the fact that it introduced the solution to work with the `NavigationStack` (which is a super nice API) comforted me a bit, so I decided to take the challenge.\n\n## How did I do?\nAs you suggested, I spent 5 hrs working on the solution. Well, obviously, I familiarized myself briefly with the spec, the domain and the `prerelease/1.0` branch the day before 🤓\n\nObviously, the app has a bunch of issues at the moment, but I decided to stop coding here and only mention some of them:\n- I forgot about the last name in the Main module\n- All the logic related to the sign in and out could have been extracted to a dedicated reducer\n- Each onboarding step could have been placed in it's own module\n- ~~There are some typos here and there~~\n- At the end of the day I refactored `.fireAndForget` into `.run` effects, but forgot about cancellation…\n- `ProviderToStateReducer` is likely a mild overengineering\n- ~~Some `struct`s can be simplified to `enum`s~~\n- There is a duplication in onboarding steps - most of them can be generalized into some bindable state + validation (in a shape of the current `isNextButtonDisabled`)\n- No tests (well, four that I added are a drop in the ocean)\n- Tests were the only bonus that I aimed for in given time frame\n\nLooking forward to your feedback and the next interview stage 🤷🏼‍♂️\n\nYours, Maciek.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fczajnikowski%2Frdxchallenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fczajnikowski%2Frdxchallenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fczajnikowski%2Frdxchallenge/lists"}