{"id":18687960,"url":"https://github.com/anitaa1990/paginglib3-sample","last_synced_at":"2026-02-09T19:31:08.330Z","repository":{"id":246316823,"uuid":"813981444","full_name":"anitaa1990/PagingLib3-Sample","owner":"anitaa1990","description":"A simple demo project for demonstrating the Paging3 library with Jetpack Compose.","archived":false,"fork":false,"pushed_at":"2025-01-06T04:10:31.000Z","size":22741,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T20:06:44.396Z","etag":null,"topics":["android","android-app","android-application","android-studio","android-ui","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","kotlin-flow","mvvm-architecture","paging-library","paging-library-in-android","paging3"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/anitaa1990.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":"2024-06-12T05:47:26.000Z","updated_at":"2025-02-11T02:31:41.000Z","dependencies_parsed_at":"2024-06-27T06:02:30.630Z","dependency_job_id":"60215afd-0bb6-46bd-bf78-61a802e4182c","html_url":"https://github.com/anitaa1990/PagingLib3-Sample","commit_stats":null,"previous_names":["anitaa1990/paginglib3-sample"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anitaa1990/PagingLib3-Sample","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FPagingLib3-Sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FPagingLib3-Sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FPagingLib3-Sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FPagingLib3-Sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anitaa1990","download_url":"https://codeload.github.com/anitaa1990/PagingLib3-Sample/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FPagingLib3-Sample/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29278490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T19:05:41.198Z","status":"ssl_error","status_checked_at":"2026-02-09T19:05:37.449Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","android-app","android-application","android-studio","android-ui","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","kotlin-flow","mvvm-architecture","paging-library","paging-library-in-android","paging3"],"created_at":"2024-11-07T10:35:02.698Z","updated_at":"2026-02-09T19:31:08.314Z","avatar_url":"https://github.com/anitaa1990.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PagingLib3-Compose\nA simple demo project for demonstrating the \u003cb\u003ePaging3 library\u003c/b\u003e with \u003cb\u003eJetpack Compose\u003c/b\u003e. More details on how to implement Paging3 library with Jetpack Compose can be found [here](https://devanddroid.com/2024/11/20/5-steps-to-use-paging3-library-with-jetpack-compose/).\n\n\u003cimg src=\"https://github.com/anitaa1990/PagingLib3-Sample/blob/main/media/1.png\" width=\"200\" style=\"max-width:100%;\"\u003e\u003cimg src=\"https://github.com/anitaa1990/PagingLib3-Sample/blob/main/media/2.png\" width=\"200\" style=\"max-width:100%;\"\u003e \u003cimg src=\"https://github.com/anitaa1990/PagingLib3-Sample/blob/main/media/3.png\" width=\"200\" style=\"max-width:100%;\"\u003e\u003cimg src=\"https://github.com/anitaa1990/PagingLib3-Sample/blob/main/media/4.png\" width=\"200\" style=\"max-width:100%;\"\u003e\u003cimg src=\"https://github.com/anitaa1990/PagingLib3-Sample/blob/main/media/5.png\" width=\"200\" style=\"max-width:100%;\"\u003e\u003c/br\u003e\u003c/br\u003e\n\n### App Features\n• Users can view the latest news from the [news api](https://newsapi.org/).\n• Users can also search for any news from the api.\n• Supports pagination so you can literally view all news from around the world in the last 5 years.\n\n#### App Architecture \nBased on mvvm architecture and repository pattern.\n\n#### The app includes the following main components:\n\n* A web api service.\n* Pagination support for data received from the api.\n* A repository that works with the api service, providing a unified data interface.\n* A ViewModel that provides data specific for the UI.\n* The UI, using Jetpack Compose, which shows a visual representation of the data in the ViewModel.\n* Unit Test cases for API service and Paging source.\n\n\n#### App Packages\n* \u003cb\u003edata\u003c/b\u003e - contains \n    * \u003cb\u003eremote\u003c/b\u003e - contains the api classes to make api calls to MovieDB server, using Retrofit. \n    * \u003cb\u003elocal\u003c/b\u003e - contains the db classes to cache network data.\n    * \u003cb\u003erepository\u003c/b\u003e - contains the repository classes, which acts as a bridge between the db, api and the paging classes.\n    * \u003cb\u003esource\u003c/b\u003e - contains the remote mediator and paging source classes, responsible for checking if data is available in the db and triggering api requests, if it is not, saving the response in the database.\n* \u003cb\u003emodule\u003c/b\u003e - contains dependency injection classes, using Hilt.   \n* \u003cb\u003eui\u003c/b\u003e - contains compose components and classes needed to display movie/tv list and movie/tv detail screen.\n* \u003cb\u003eutil\u003c/b\u003e - contains util classes needed for compose redirection, ui/ux animations.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanitaa1990%2Fpaginglib3-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanitaa1990%2Fpaginglib3-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanitaa1990%2Fpaginglib3-sample/lists"}