{"id":16100062,"url":"https://github.com/fooock/android-github-jobs","last_synced_at":"2025-07-05T17:34:07.677Z","repository":{"id":128381895,"uuid":"117303012","full_name":"fooock/android-github-jobs","owner":"fooock","description":"Github jobs application. MVP architecture, Dagger2, RxJava2, Retrofit, Room persistence, Timber and much more!","archived":false,"fork":false,"pushed_at":"2018-08-20T00:13:39.000Z","size":637,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-12T05:57:00.704Z","etag":null,"topics":["android","android-app","android-application","architecture","dagger2","dagger2-mvp","github","mvp","mvp-android","mvp-architecture","retrofit2","room","room-persistence-library","rxjava-android","rxjava2","timber"],"latest_commit_sha":null,"homepage":"","language":"Java","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/fooock.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":"2018-01-13T01:11:09.000Z","updated_at":"2018-08-20T00:13:42.000Z","dependencies_parsed_at":"2024-08-19T23:20:07.275Z","dependency_job_id":null,"html_url":"https://github.com/fooock/android-github-jobs","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooock%2Fandroid-github-jobs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooock%2Fandroid-github-jobs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooock%2Fandroid-github-jobs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooock%2Fandroid-github-jobs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fooock","download_url":"https://codeload.github.com/fooock/android-github-jobs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415826,"owners_count":20935384,"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","android-app","android-application","architecture","dagger2","dagger2-mvp","github","mvp","mvp-android","mvp-architecture","retrofit2","room","room-persistence-library","rxjava-android","rxjava2","timber"],"created_at":"2024-10-09T18:44:51.760Z","updated_at":"2025-04-05T23:33:37.937Z","avatar_url":"https://github.com/fooock.png","language":"Java","readme":"# Github Jobs\nApplication to show the current opened jobs from [Github jobs](https://jobs.github.com/). You \ncan view and filter jobs by country, company name, title etc using the powerful search engine.\n\nTechnically, this application was developed using MVP architecture, divided in three \nmodules:\n* **app**: Android views, navigation, activities and fragments. If you want to contribute \nto the look \u0026 feel, you need touch this module\n* **domain**: All business logic lives here!\n* **data**: Manage persistence, to allow offline mode and fast data recovery. \n\nIf you want to compile the application yourself see below.\n\n## Building the application\nFirst clone the project:\n```sh\ngit clone https://github.com/fooock/android-github-jobs.git\n```\nNow, build the application in debug mode to generate the `apk` :\n```sh\ngradlew app:assembleDebug\n```\nIf you want to know the current application version, you can execute the gradle task `printVersion`\nwhich produces an output similar to the following:\n```sh\n+----------------------------------\n| Version Name: 0.1-89-g27c749b\n| Version Code: 1\n| Version Code Time: 1517590824\n+----------------------------------\n```\n\u003e **Important!**\n\u003e If you find any bug, please attach this info in the issue tracker. For this example, the \nnumber `g27c749b` is the commit identifier, and it will allow me to do a checkout, create a new \nbranch and upload the fix.\n\nThe application has two build types, and each one initialize things required for the given\ncase. For example, the *[debug](app/src/debug/java/com/fooock/github/jobs/DefaultApplication.java)* build type, initialize among other things:\n* Log debug tree using `Timber` . This allows us print **only** in debug mode logs with `DEBUG` and `INFO`\ntags, because normally, this logs can't be needed in release builds\n* `LeakCanary` library, to look for memory leaks, and fix it!\n* Database inspection using `Stetho`\n* Enable `StrictMode` to detect all kind of problems\n\nNote that in *[release](app/src/release/java/com/fooock/github/jobs/DefaultApplication.java)* \nmode, we only need to catch `WARNING`s and `ERROR`s, and send it to a crash reporting system.\nFor this purpose I created the [`CrashLibrary`](app/src/release/java/com/fooock/github/jobs/CrashLibrary.java) class\n\n## Images\n\n\u003cp align=\"left\"\u003e\n    \u003cimg src=\"art/img6.png\" width=\"250\" /\u003e\n    \u003cimg src=\"art/img3.png\" width=\"250\" /\u003e\n    \u003cimg src=\"art/img1.png\" width=\"250\" /\u003e\n    \u003cimg src=\"art/img4.png\" width=\"250\" /\u003e\n    \u003cimg src=\"art/img2.png\" width=\"250\" /\u003e\n    \u003cimg src=\"art/img5.png\" width=\"250\" /\u003e\n\u003c/p\u003e\n\n## Tech stack\nThis project uses the following libraries. You can view for each module what library is\nused in the [dependencies.gradle](buildsystem/dependencies.gradle) file.\n\n* Android support libraries: *app-compat*, *constraint-layout*\n* [RxJava](https://github.com/ReactiveX/RxJava)\n* [Timber](https://github.com/JakeWharton/timber)\n* [Butterknife](http://jakewharton.github.io/butterknife/)\n* [Google OSS Licenses](https://developers.google.com/android/guides/opensource)\n* [Retrofit 2 \u0026 Gson converter](http://square.github.io/retrofit/)\n* [OkHttp3](https://github.com/square/okhttp)\n* [Dagger2](https://google.github.io/dagger/)\n* [Room persistence library](https://developer.android.com/topic/libraries/architecture/room.html)\n* [Joda time](http://www.joda.org/joda-time/)\n\nFor application debug, I included:\n* [Leak Canary](https://github.com/square/leakcanary)\n* [Stetho](http://facebook.github.io/stetho/)\n\nFor application testing:\n* [JUnit 4.12](http://junit.org/junit4/)\n* [Mockito](http://site.mockito.org/)\n* [Espresso](https://developer.android.com/training/testing/espresso/index.html)\n\n## License\n```\nCopyright 2017 Javier (nhitbh at gmail dot com)\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    http://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```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooock%2Fandroid-github-jobs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffooock%2Fandroid-github-jobs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooock%2Fandroid-github-jobs/lists"}