{"id":20833663,"url":"https://github.com/droideveloper/weatherandroid","last_synced_at":"2025-06-16T05:04:44.883Z","repository":{"id":96349263,"uuid":"169223057","full_name":"droideveloper/WeatherAndroid","owner":"droideveloper","description":"Weather Android for Ozan code challange","archived":false,"fork":false,"pushed_at":"2019-02-12T13:46:46.000Z","size":3652,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T08:45:24.059Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/droideveloper.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":"2019-02-05T10:27:35.000Z","updated_at":"2019-03-12T12:02:08.000Z","dependencies_parsed_at":"2023-03-21T21:17:45.193Z","dependency_job_id":null,"html_url":"https://github.com/droideveloper/WeatherAndroid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/droideveloper/WeatherAndroid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2FWeatherAndroid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2FWeatherAndroid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2FWeatherAndroid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2FWeatherAndroid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/droideveloper","download_url":"https://codeload.github.com/droideveloper/WeatherAndroid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2FWeatherAndroid/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260101849,"owners_count":22959039,"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-18T00:16:19.699Z","updated_at":"2025-06-16T05:04:44.850Z","avatar_url":"https://github.com/droideveloper.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Desing Choice\n\nI have picked MVI architecture for this app the reason behind this is using and scaling bussiness logic\nwith MVI architecture is really easy with just Event and corresponding Intent. MVI is architecture lets you\nbenefit from use of Rx and other features threading and error handling with scalable and readble code base.\n\nI used MVI because it is the newest of current architectures that pipelines stream of events and intents into your app.\n\n### Thrid Parties\n\n3rd party libraries I used in this project are Retrofit, Rx, Room, OkHttp, Glide and Dagger2.\n\nRetrofit is easy to implement and some great features for implementing Endpoint clients in android side also testing is easy.\n\nRx is really nice library that helps you in both boilerplate code and some threading with ease of use.\n\nRoom is kinda orm for android but not exactly to use with Sqlite dbs.\n\nOkHttp is http engine, been using it since android had bugs with apapche in older versions and it has better or faster imp of buffers in networking op also supports logging\n\nand interceptions for scaling your app further.\n\nGlide is image loading lib that is one of the best in my opinion and it also can scale it greatly in extensions and caching also manipulation iamges both in memory or io aka disk\n\nDagger2 is one of my must have libs in android app dev since it make app code clean in terms of di (Dependency Injection) practices and lets you manage your memory allocation optiomal\nand also you can get app development further if you are followin SOLID princaples with this di.\n\n### Extra to be done\n\nWould love to put some setting to change search of new city in the app and may be flicker api that would let you find background photos of selected city to show user\n\nAlso would like to add jenkins for automated builds and etc.\n\nAlso better ui since been hurry can not take more time to code better way\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroideveloper%2Fweatherandroid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdroideveloper%2Fweatherandroid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroideveloper%2Fweatherandroid/lists"}