{"id":19734151,"url":"https://github.com/devmike01/jetnews-extended","last_synced_at":"2025-07-24T16:34:19.563Z","repository":{"id":98269799,"uuid":"543786375","full_name":"devmike01/JetNews-Extended","owner":"devmike01","description":"JetNews-Extended is an extension of Google's Jetpack Compose's JetNews sample project ","archived":false,"fork":false,"pushed_at":"2022-09-30T21:52:03.000Z","size":10179,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-10T18:24:48.888Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devmike01.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":"2022-09-30T20:53:09.000Z","updated_at":"2022-09-30T21:10:09.000Z","dependencies_parsed_at":"2023-03-11T08:30:18.498Z","dependency_job_id":null,"html_url":"https://github.com/devmike01/JetNews-Extended","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmike01%2FJetNews-Extended","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmike01%2FJetNews-Extended/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmike01%2FJetNews-Extended/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmike01%2FJetNews-Extended/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devmike01","download_url":"https://codeload.github.com/devmike01/JetNews-Extended/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241059043,"owners_count":19902301,"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":[],"created_at":"2024-11-12T00:35:43.543Z","updated_at":"2025-02-27T20:53:44.522Z","avatar_url":"https://github.com/devmike01.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jetnews sample\nJetnews is a sample news reading app, built with\n[Jetpack Compose](https://developer.android.com/jetpack/compose). The goal of the sample is to\nshowcase the current UI capabilities of Compose.\n\nTo try out this sample app, you need to use \n[Android Studio Chipmunk](https://developer.android.com/studio).\nYou can clone this repository or import the\nproject from Android Studio following the steps\n[here](https://developer.android.com/jetpack/compose/setup#sample).\n\n## Screenshots\n\n\u003cimg src=\"screenshots/jetnews_demo.gif\"\nwidth=\"200\" height=\"400\" alt=\"Screenshot\"\u003e\n\u003cimg src=\"screenshots/jetnews_favorites_tablet.png\" alt=\"Screenshot\" \nwidth=\"500\" height=\"400\"\u003e\n\n## Features\n\nThis sample contains three screens: a list of articles, a detail page for articles, and a page to\nsubscribe to topics of interest. The navigation from the the list of articles to the interests\nscreen uses a navigation drawer.\n\n### App scaffolding\n\nPackage [`com.example.jetnews.ui`][1]\n\n[`JetnewsApp.kt`][2] arranges the different screens in the `NavDrawerLayout`. \n\n[`JetnewsNavGraph.kt`][3] configures the navigation routes and actions in the app. \n\n[1]: app/src/main/java/com/example/jetnews/ui\n[2]: app/src/main/java/com/example/jetnews/ui/JetnewsApp.kt\n[3]: app/src/main/java/com/example/jetnews/ui/JetnewsNavGraph.kt\n\n### Main article list\n\nPackage [`com.example.jetnews.ui.home`][4]\n\nThis screen shows how to create different custom Composable functions and combine them in a list\nthat scrolls vertically and horizontally.\n\nSee how to:\n\n* Use `Row`s and `Column`s to arrange the contents of the UI\n* Add a top app bar that elevates as the user scrolls\n* Use Material's `Typography` and `ColorScheme` to style the text\n* Use tonal elevation to make the `Card`s stand out from the background\n\n[4]: app/src/main/java/com/example/jetnews/ui/home\n\n### Article detail\n\nPackage [`com.example.jetnews.ui.article`][5]\n\nThis screen dives into the Text API, showing how to use different fonts than the ones defined in\n[`Typography`][6]. It also adds a bottom app bar, with custom actions.\n\n[5]: app/src/main/java/com/example/jetnews/ui/article\n[6]: app/src/main/java/com/example/jetnews/ui/theme/Type.kt\n\n### Interests screen\n\nPackage [`com.example.jetnews.ui.interests`][7]\n\nThis screens shows how to use Tabs and switch content depending on the selected tab. It\nalso includes a custom checkbox button, [SelectTopicButton][8]\nthat uses a `Toggleable` composable function to provide\nthe on/off behaviour and semantics, while drawing a custom UI. The UI of the button is partly\ndrawn with low-level primitives and partly overlaying images. See also how to visualize\non and off, light and dark version in the Android Studio Preview.\n\n[7]: app/src/main/java/com/example/jetnews/ui/interests\n[8]: app/src/main/java/com/example/jetnews/ui/interests/SelectTopicButton.kt\n\n### Data\n\nThe data in the sample is static, held in the `com.example.jetnews.data` package.\n\n### Instrumented and Robolectric tests\n\nUI tests can be run on device/emulators or on JVM with Robolectric.\n\n* To run Instrumented tests use the \"Instrumented tests\" run configuration or run the `./gradlew connectedCheck` command.\n* To run tests with Robolectric use the \"Robolectric tests\" run configuration or run the `./gradlew testDebug` command.\n\n## Jetnews for every screen\n\n\u003cimg src=\"screenshots/jetnews_all_screens.png\" alt=\"Screenshot\"\u003e\n\nWe recently updated Jetnews to enhance its behavior across all mobile devices, both big and small.\nJetnews already had support for “traditional” mobile screens, so it was tempting to describe all of\nour changes as “adding large screen support.” While that is true, it misses the point of having\nadaptive UI. For example, if your app is running in split screen mode on a tablet, it shouldn't try\nto display “tablet UI” unless it actually has enough space for it. With all of these changes,\nJetnews is working better than ever on large screens, but also on small screens too.\n\nCheck out the blog post that explains all the changes in more details:\nhttps://medium.com/androiddevelopers/jetnews-for-every-screen-4d8e7927752\n\n## License\n\n```\nCopyright 2021 The Android Open Source Project\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    https://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n# JetNews-Extended\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmike01%2Fjetnews-extended","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevmike01%2Fjetnews-extended","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmike01%2Fjetnews-extended/lists"}