{"id":18160456,"url":"https://github.com/joreilly/fantasypremierleague","last_synced_at":"2025-05-15T16:09:19.557Z","repository":{"id":36992452,"uuid":"332307418","full_name":"joreilly/FantasyPremierLeague","owner":"joreilly","description":"Fantasy Premier League Kotlin Multiplatform sample using Jetpack Compose, Compose for Desktop and SwiftUI (and Room for local persistence)","archived":false,"fork":false,"pushed_at":"2024-10-17T00:46:56.000Z","size":1732,"stargazers_count":491,"open_issues_count":16,"forks_count":54,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-10-19T10:38:56.383Z","etag":null,"topics":["android","compose-multiplatform","datastore","fantasy-premier-league","ios","jetpack-compose","jetpack-room","kmp","koin","kotlin","kotlin-multiplatform","kotlin-native","room","skie","swift","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joreilly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-01-23T21:03:15.000Z","updated_at":"2024-10-18T22:35:14.000Z","dependencies_parsed_at":"2023-02-12T10:00:48.303Z","dependency_job_id":"a2fd4daf-a4da-4fef-a1fd-3a5b5498e1e3","html_url":"https://github.com/joreilly/FantasyPremierLeague","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FFantasyPremierLeague","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FFantasyPremierLeague/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FFantasyPremierLeague/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joreilly%2FFantasyPremierLeague/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joreilly","download_url":"https://codeload.github.com/joreilly/FantasyPremierLeague/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737770,"owners_count":20987718,"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":["android","compose-multiplatform","datastore","fantasy-premier-league","ios","jetpack-compose","jetpack-room","kmp","koin","kotlin","kotlin-multiplatform","kotlin-native","room","skie","swift","swiftui"],"created_at":"2024-11-02T08:08:20.290Z","updated_at":"2025-04-07T22:06:09.011Z","avatar_url":"https://github.com/joreilly.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fantasy Premier League\n\n![kotlin-version](https://img.shields.io/badge/kotlin-2.1.0-blue?logo=kotlin)\n\n**Kotlin Multiplatform** project with Jetpack Compose, Compose for Desktop and SwiftUI clients (and using Ktor for remote API requests and Room for persistence). Currently running on:\n* Android (Jetpack Compose)\n* iOS (SwiftUI)\n* Desktop (Compose for Desktop)\n\n\nRelated posts:\n* [Using Realm persistence library in a Kotlin Multiplatform project](https://johnoreilly.dev/posts/realm-kotlinmultiplatform/)\n* [Using new Swift Async Algorithms package to close the gap on Combine](https://johnoreilly.dev/posts/swift-async-algorithms-combine/)\n* [Displaying Charts on iOS, Android, and Desktop using Compose Multiplatform](https://johnoreilly.dev/posts/compose-multiplatform-chart/)\n* [Using Jetpack Room in Kotlin Multiplatform shared code](https://johnoreilly.dev/posts/jetpack_room_kmp/)\n\n### Building\nThis project currently uses iOS16 features (e.g. Swift Charts) so requires use of at least Xcode 14.\n\n\n\n## Screenshots\n\n### Android\n\u003cimg src=\"https://user-images.githubusercontent.com/6302/210137422-7c289cbb-d428-4ae3-9183-6c481184b5fa.png\" width=300/\u003e|\n\n### iOS\n\u003cimg src=\"https://user-images.githubusercontent.com/6302/233188752-f18cb96d-cf2b-45a1-af7d-fdad0db06dfb.png\" width=300/\u003e|\n\n### Desktop\n\n\u003cimg width=\"912\" alt=\"Screenshot 2023-09-14 at 17 07 32\" src=\"https://github.com/joreilly/FantasyPremierLeague/assets/6302/86582f04-60e7-480c-97ae-908c31dfd321\"\u003e\n\n### Kotlin Notebook\n\u003cimg width=\"916\" alt=\"Screenshot 2024-04-06 at 11 03 15\" src=\"https://github.com/joreilly/FantasyPremierLeague/assets/6302/37fef7a1-190d-4c14-acdd-5dafc11e8e30\"\u003e\n\n\u003cimg width=\"932\" alt=\"Screenshot 2024-04-06 at 11 03 36\" src=\"https://github.com/joreilly/FantasyPremierLeague/assets/6302/53cba0ea-1175-4349-ab1f-9aba4f8f0066\"\u003e\n\n## Full set of Kotlin Multiplatform/Compose/SwiftUI samples\n\n*  PeopleInSpace (https://github.com/joreilly/PeopleInSpace)\n*  GalwayBus (https://github.com/joreilly/GalwayBus)\n*  Confetti (https://github.com/joreilly/Confetti)\n*  BikeShare (https://github.com/joreilly/BikeShare)\n*  FantasyPremierLeague (https://github.com/joreilly/FantasyPremierLeague)\n*  ClimateTrace (https://github.com/joreilly/ClimateTraceKMP)\n*  GeminiKMP (https://github.com/joreilly/GeminiKMP)\n*  MortyComposeKMM (https://github.com/joreilly/MortyComposeKMM)\n*  StarWars (https://github.com/joreilly/StarWars)\n*  WordMasterKMP (https://github.com/joreilly/WordMasterKMP)\n*  Chip-8 (https://github.com/joreilly/chip-8)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoreilly%2Ffantasypremierleague","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoreilly%2Ffantasypremierleague","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoreilly%2Ffantasypremierleague/lists"}