This task focuses exclusively on UI development and aims to evaluate technical skills, attention to detail, and adherence to design specifications and requirements.
A demo video showcasing the UI design and functionality is available at:
Tip
There is a bit more details in the video than in this description, so please watch it carefully. You will be evaluated on your ability to pay attention to details.
- Implement the drawer avatar & App bar interaction as shown in the demo video.
- Consider as well that the avatar in the drawer & the App bar may not be identical even though they look the same.
- The avatar should transition between the App bar and the drawer in a hero-like manner.
- The avatar should be responsive and maintain its aspect ratio during the transition.
- The avatar should be centered in the drawer when it is open.
- The drawer can be opened by tapping the avatar in the App bar and closed by tapping the close button in the drawer.
- The drawer can also be opened by dragging from the left edge of the screen and stay responsive to the drag gesture.
- The drawer can also de dismissed by dragging towards the left and again stay responsive to the drag gesture.
- The drawer should also respect the position of the avatar during the transition when it is scrolled out of view.
- Task Objective: Implement a critical UI feature for the app.
- Timeline: at most 7 days from the start date.
- There is an included sample project that you should use as a base (ignore everything but the content).
- Use only Flutter's built-in widgets
- Ensure it is stable, responsive, and performant.
- Smooth transitions and animations as per the specifications.
Submissions will be evaluated ONCE based on the following:
- Design Accuracy: Precise adherence to the provided UI specifications, including transitions and animations.
- Code Quality: Clean, maintainable, and efficient code following Dart and Flutter best practices.
- Stability: No performance degradation.
- Compatibility: Proper functionality across a portrait and landscape mode.
Make a private gist containing a main.dart file and share the id of the gist to mobile-dev@busha.co.
Important
For example, a gist with url: https://gist.github.com/username/6bcc57b1c6b919e68905618787b66c36, the id would be 6bcc57b1c6b919e68905618787b66c36.
You can test this is runnable via Dartpad as this https://dartpad.dev/6bcc57b1c6b919e68905618787b66c36
In order words, your submission should be runnable via dartpad.dev.
This task is an opportunity for senior developers to demonstrate their UI development skills and contribute to our growth. Ensure your submission meets all requirements and adheres to the provided specifications for the best chance of success.
Important
In the case you stumble unto this task, before attempting (unless for recreational purposes), ensure that the role is still open to applications and that you have been invited to continue. See https://busha.breezy.hr/p/3efc7a33ac7f01-senior-flutter-mobile-engineer