Mobile Full Stack: API Integration & Flutter Application Development

David Periscal Last updated 
This interview will include a code test, offering the candidate two options. They can either share a Flutter code repository with us, which should include various use cases and integrations with other services (a backend integration would be ideal). If the candidate does not have a code repository, they will be required to complete a small exercise that we will provide.

What do we want to validate?#

In green what we test in code exercise:
  • Understanding of Mobile development 
    • Understanding of Mobile Platforms (iOS & Android & Cross-platform)
    • Cross-platform development tools knowledge (Flutter, React Native)
  • Architecture
    • SOLID principles
    • CLEAN Architecture principles
    • Dependency Injection (DI)
    • Architectural decision-making
  • Flutter framework 
    • Dart language Proficiency
    • UI Creation with Flutter
      • Accessibility
    • Reactive Programming & State Management Expertise
    • Lifecycle Management
  • Integration with APIs/Backend Services
    • Networking
    • Understanding of Client-Server Architecture in Mobile Context
    • Integration with Backend Services
    • Repository Pattern and Data Layer Abstraction
  • Performance
  • Security
  • Refactor & Testing 
  • Debugging
  • Package development and open-source contributions

Questions#

The exercise may prompt questions for the candidate, depending on their implementation and the aspects we aim to validate. Simultaneously, we are seeking an experienced individual who perceives technology as a tool for problem-solving. Here are some questions to assess these factors.
  • Why do you like Flutter? / Why Flutter is a good tool?
    • Starting from a somewhat informal question, we expect a type of answer based on how Flutter is a tool that helps solve certain types of problems. We want to know if the candidate is only interested in working with Flutter because she likes it or because she understands what types of problems it solves.
  • Why is Flutter faster than other cross-platform frameworks?
    • Here we want to see depth of knowledge and always with a focus on the problems that the tool solves.
  • Native or Hybrid?
    • We continue on the same line. Working with one alternative or another, is it a matter of personal taste or that he understands what problem he is solving at all times?
  • What is your preferred IDE and why?
    • The same idea as before.
  • Have you ever worked with or resolved issues related to the Flutter lifecycle?
    • We are seeking experiences related to this topic, such as issues encountered when the app was running in the background or problems with push notifications
  • Have you ever encountered a very challenging issue? How did you work with it?
    • We aim to understand the types of problems he has encountered in app development and how he addressed them.
To exceed our expectations
  • When do you think it is important to create an accessible app? Do you know how to improve it?  Have you ever tested accessibility? 
    • Experience or knowledge related to accessibility.
  • What knowledge do you have regarding best practices for developing secure mobile applications?
    • Experience or knowledge related to security best practices.
  • Do you have any contributions to open-source projects or Flutter packages?
    • It may indicate curiosity and experience