app_demo_compresed.mp4 |
A task for Instabug Internship. The idea is simple, create an app to test Rest API's endpoints that support GET and POST requests
- Enter URL to connect to
- Add request headers which numbers are dynamic
- App must support GET/POST:
- For POST request type, App must provide a way to enter request body as string
- After request completion the app needs to display the following:
- Response code
- Error if any
- Request/Response headers
- Request body or query parameters depending on request type/Response body
- If the device is offline then app must show an error message and do not make the call
- Requests alongside their responses should be cached
- App must allow to view cached requests and responses
- App must allow sorting cached requests/responses by their execution time.
- App must allow filtering cached requests/responses by request type.
- Your app must handle configuration changes like screen rotation
- Hint: check httpbin.org
- Night mode support 🤩🤩
- RTL support
App must not use any third party libraries. (Retrofit,volley, coroutines, room….etc) considered as 3rd parties (NOT ALLOWED)
- MVI Clean Architecture 🚧🏗️
- Singleton pattern to provide the same instance for Database and Network Helper.
- States to describe screens state, easily observe data changes, handle configuration changes, and separate UI from app logic.
- Actions to easily communicate with view models and Events to deliver events back to UI.
- AZExecutors (a wrapper around Executors) to do background thread work neatly.
- Dynamically add views and save their data on configuration changes.
- Repository to group different data sources and provide a single interface for view models to get the data.
- SQLite to persist data locally (Room is considered a third-party library and not allowed).
- Manually provide objects (Dagger is considered a third party library and not allowed )
- Greate UI with little layout animations
- More to explore and more to be added ... 🤩